51单片机嵌入式开发:1、STC89C52环境配置到点亮LED

STC89C52环境配置到点亮LED

  • 1 环境配置
    • 1.1 硬件环境
    • 1.2 编译环境
    • 1.3 烧录环境
  • 2 工程配置
    • 2.1 工程框架
    • 2.2 工程创建
    • 2.3 参数配置
  • 3 点亮一个LED
    • 3.1 原理图解读
    • 3.2 代码配置
    • 3.3 演示
  • 4 总结


1 环境配置

1.1 硬件环境

硬件环境采用“华晴电子”的MINIEL-89C开发板,这个板子是大学较为经典的51开发板硬件平台,作为单片机入门级应用来说是一个很好的学习板。
板子如图所示:
在这里插入图片描述

资源丰富,基础学习只此一个板子就够用,集成的开发模块主要有:
1、8 个高亮数码管显示(数字和字母显示)
2、16 个优质按键(2Pin)可配置成 4 个独立按键和 4*4 矩阵键盘(人机接口输入)
3、8 个高亮发光二极管(跑马灯、指示灯、红绿灯等)
4、标准的 RS232 通信接口(PC 通信)
5、一体化红外接收头(高灵敏度,可做红外遥控器解码)
6、遥控器用红外发射管(广发射角)可以模拟遥控器。
7、喇叭(报警以及音乐播放)
8、一路继电器输出(弱电控制强电,隔离控制)
9、EEPROM 24C02(数据存储)
10、8X8 单色点阵
11、DS18B20 接口(精密温度检测)
12、USB 口供电
13、加装优质电源开关
14、晶振采用拔插方式,可以使用于不同频率
15、DC 电机接口(直接接入小功率直流电机即可)
16、4 相步进电机接口(直接接入即可)
17、DS1302 实时时钟
18、经典双复位电路,支持 AVR
19、ISP 10Pin 下载线接口
20、PS2 键盘鼠标接口
21、标准 1602 液晶接口,独立对比度调节
22、标准 12864 液晶接口,独立对比度调节
23、外围供电,7805 稳压,最大电流 1A
24、4路AD模数转换输入
25、1路DA数模转换输出,LED指示

1.2 编译环境

编译环境采用资料包中的keil软件(Keil uVision2),安装过程按照安装说明安装即可。
安装说明:
版本号: 7.50a 安装过程
安装序列号:SN = K1DZP-5IUSH-A01UE
安装步骤如下:

  1. 记下安装序列号, 进入setup目录点击setup.exe进行安装;
  2. 选择Install Support…全新安装,以前没有安装过或者放弃以前的序列号安装;
    选择Update Current Installation升级安装,将可以保持原来的序列号,不必再次输入
  3. 选择Full安装,Next->Yes(接受版权信息)->选择安装目录->Next->输入序列号、姓名、公司
    等,除了序列号以外,都随意,可以如实输入你的姓名等。->next->
    …直到安装完成。
    一路确认直至安装完毕。
    注意:
    (1).每次安装都必须进行这几步,每次都需要重新写入AddOn标识;
    (2).假如安装过程中存在病毒防火墙,可能会产生xcopy错误使安装失败,此时请先
    关闭病毒防火墙,然后再安装;
    (3).安装前必须退出正在运行的Keil软件,否则也会产生xcopy错误使安装失败;
    (4).安装过程中可能会出现安装Secrity Key错误,点击确定即可。

1.3 烧录环境

烧录环境我们从官网下载最新的STCAI-ISP V6.94F 完整版烧录软件。并将Keil uVision2的STC芯片包安装,具体配置步骤如下:
1、 打开STCAI-ISP V6.94F
安装将芯片选择框选择如图所示,并点击如图中的配置框。
在这里插入图片描述

添加到Keil uVision2的安装目录下,如图所示,选择后点击确定即可。
在这里插入图片描述

2、 烧录测试
(1)使用方口-USB线连接板子和电脑(首先电脑应具有CH340串口驱动);
(2)打开串口STCAI-ISP下载工具,选择“芯片型号”和“串口”
在这里插入图片描述

(3)点击图中的打开程序文件,选择我们的测试程序。
在这里插入图片描述

(4)然后点击“编程”,板子打开供电(初始时,板子不供电,点击编程后再打开)。可以看到程序烧写成功,后续烧录过程不再演示。

在这里插入图片描述

2 工程配置

2.1 工程框架

首先创建一个文件夹“C51project20240701”,并在其文件夹下创建4个文件夹,用具存放不同的内容。
APP:用于存放用户代码h和c文件
Include:用于存放系统的h文件
Listing2:用于存放编译生成的文件
Objects:用于存放可执行文件

在这里插入图片描述

2.2 工程创建

(1)打开Keil uVision2软件,在C51project20240701文件夹下创建新工程,新工程名称我们任意取名,

在这里插入图片描述

(2)弹出窗口,我们选择STCMCU……。

在这里插入图片描述

(3)芯片选择我们开发板上使用的芯片型号,点击确认,后续的弹出窗继续点“是(Y)”即可创建成功。
在这里插入图片描述

2.3 参数配置

工程配置过程
(1)OUTPUT配置如图所示,并选择输出hex文件HEX-80。

在这里插入图片描述

(2)listing配置如图所示

在这里插入图片描述

(2)工程创建路径如图所示,指明.h文件的路径
在这里插入图片描述

以上配置完成后直接确认即可完成配置。

配置工程框架:

(1)将STARTUP.A51移动到include文件夹下。
(2)在App文件夹下新建一个main.C文件,并实现点亮LED。
(3)工程架构修改:
在这里插入图片描述

在这里插入图片描述

点击确认完成,至此,工程创建完成,后续再有实现功能的c和h文件,按照这种方式添加即可,后续测试编译成功。

在这里插入图片描述

3 点亮一个LED

3.1 原理图解读

根据原理图所示,其中8个指示灯对应板子位置如图所示,按照原理图的原理,当P10~P17引脚为低电平时,指示灯会亮起来,
所以设定以下实验题目,我们现在实现D0/D2/D4/D6指示灯亮起,D1/D3/D5/D7指示灯灭掉,并演示。

在这里插入图片描述

3.2 代码配置

/*-----------------------------------------------
  名称:IO口高低电平控制
  内容:现在实现D0/D2/D4/D6指示灯亮起,
				D1/D3/D5/D7指示灯灭掉,并演示
------------------------------------------------*/
#include<reg52.h> //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义
/*------------------------------------------------
                    主函数
------------------------------------------------*/
void main (void)
{

	P1 = 0xFF;		//P1口全部为高电平,对应的LED灯全灭掉,ff换算成二进制是 1111 1111
	P1 = 0x00;		//P1口全部为低电平,对应的LED灯全亮起,ff换算成二进制是 0000 0000
	
	P1 = 0xAA;		//D0/D2/D4/D6指示灯亮起
					//D1/D3/D5/D7指示灯灭掉,AA换算成二进制是 1010 1010 
	while (1)		//主循环
	{
					//主循环中添加其他需要一直工作的程序
	}
}

3.3 演示

如图所示,指示灯点亮方式与实现题目一致,工程创建成功,代码演示成功。

……
……
……
……
……

在这里插入图片描述

4 总结

嵌入式领域开发过程,涉及的细节方面较多,尤其是一些环境配置编程细节与原理细节,遇到问题,一步步根据提示和现象去解决,重要的是掌握方法和解决问题的思路。
欢迎大家交流。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/782537.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

在iPhone / iPad上轻松模拟GPS位置 AnyGo for Mac

在iPhone / iPad上轻松模拟GPS位置 AnyGo for Mac AnyGo for Mac是一款专为Mac电脑用户设计的虚拟定位工具。它可以模拟你的GPS位置&#xff0c;让你的设备显示你在任何世界上的任何地方。无论你是想在游戏中虚拟移动&#xff0c;还是在社交媒体上分享虚拟的旅行照片&#xff0…

基础权限存储

一丶要求 建立用户组shengcan&#xff0c;其id为 2000建立用户组 caiwu&#xff0c;其id 为2001建立用户组 jishu&#xff0c;其id 为 2002建立目录/sc,此目录是 shengchan 部门的存储目录&#xff0c;只能被 shengchan 组的成员操作4.其他用户没有任何权限建立目录/cw,此目录…

第二周:李宏毅机器学习笔记

第二周学习周报 摘要Abstract一、深度学习1.Backpropagation&#xff08;反向传播&#xff09;1.1 链式法则1.2 Forward pass&#xff08;前向传播&#xff09;1.3 Backward pass&#xff08;向后传播&#xff09;1.4 总结 2. Regression&#xff08;神奇宝贝案例&#xff09;2…

Bug记录:【com.fasterxml.jackson.databind.exc.InvalidDefinitionException】

bug记录 序列化错误 异常com.fasterxml.jackson.databind.exc.InvalidDefinitionException: 完整错误(主要是FAIL_ON_EMPTY_BEANS) 00:15:20.250 [http-nio-3000-exec-1] ERROR org.apache.catalina.core.ContainerBase.[Tomcat].[localhost].[/].[dispatcherServlet] - S…

【漏洞复现】TerraMaster TOS exportUser.php 远程命令执行

免责声明&#xff1a; 本文内容旨在提供有关特定漏洞或安全漏洞的信息&#xff0c;以帮助用户更好地了解可能存在的风险。公布此类信息的目的在于促进网络安全意识和技术进步&#xff0c;并非出于任何恶意目的。阅读者应该明白&#xff0c;在利用本文提到的漏洞信息或进行相关测…

Windows编程[下]

Windows编程[下] 一、线程1. 内核对象2.多线程群聊服务器3.多线程群聊客户端4.线程同步之事件对象常用函数和参数解释 二、进程三、Qt1.第一个Qt项目2.Qt助手的使用3.QPushButton简介4.Qt对象树对象树的基本概念使用对象树模式的好处对象树的问题 5.信号与槽5.1 自定义信号和槽…

通用的职位招聘小程序ui模板

蓝色简单的校园招聘&#xff0c;行业招聘&#xff0c;职位招聘手机小程序页面模板。包含&#xff1a;职位列表、职位详情、基本信息填写、登录、个人主页、消息页面等功能 通用的职位招聘小程序ui模板

InvalidVersionSpecError: Invalid version spec: =2.7解决方案

大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。喜欢通过博客创作的方式对所学的…

驾校管理系统的全面革新与升级

智慧驾校系统是一款专为现代驾校量身定制的综合性管理平台,它深度融合了云计算、大数据、物联网及人工智能等前沿技术,旨在为驾校打造一个高效、智能、便捷的运营生态系统。该系统通过数字化、信息化的手段,彻底革新了传统驾校的管理模式,不仅极大地提升了驾校的运营效率,…

初识Spark

一、简介 官网&#xff1a;Apache Spark™ - Unified Engine for large-scale data analytics Apache的顶级项目&#xff0c;用于大规模数据处理的统一分析引擎。 支持语言&#xff1a;Java、Scala、Python和R (源码为Scala) 高级工具&#xff1a; 1、SparkSQL用于SQL和结构…

ARM汇编与机器码、汇编指令

文章目录 1. CISC与RISC指令集 2. ARM汇编指令 3. 汇编与机器码 4. 汇编指令格式 5. MOV指令 6. BL指令 7. B指令 8. ADD/SUB指令 9. LDR/STR指令 1. CISC与RISC指令集 根据指令的复杂度&#xff0c;所有CPU可以分为两类&#xff1a; CISC&#xff08;Complex Instr…

破局 AI 2.0 时代:利用 AI 提升自我核心竞争力

文章目录 破局 AI 2.0 时代&#xff1a;利用 AI 提升自我核心竞争力1. AI 2.0 时代1.1 特点1.2 发展1.3 影响 2. AI 2.0 时代的机遇 & 挑战2.1 AI 对行业市场的冲击2.2 挑战变为机遇2.3 不同场景下的 AI 效能提升2.3.1 自动化办公任务2.3.2 提升学习效率2.3.3 创意生成与内…

SpringBoot彩蛋之定制启动画面

写在前面 在日常开发中&#xff0c;我们经常会看到各种各样的启动画面。例如以下几种 ① spring项目启动画面 ② mybatisplus启动画面 ③若依项目启动画面 还有很多各式各样好看的启动画面&#xff0c;那么怎么定制这些启动画面呢&#xff1f; 一、小试牛刀 ① 新建一个Spr…

【分布式系统三】监控平台Zabbix对接grafana(截图详细版)

目录 一.安装grafana并启动 二.浏览器访问 三.导入zabbix数据&#xff0c;对接grafana 四.如何导入模版 以前两篇博客为基础 【分布式系统】监控平台Zabbix介绍与部署&#xff08;命令截图版&#xff09;-CSDN博客 【分布式系统】监控平台Zabbix自定义模版配置-CSDN博客 …

前端面试题(CSS篇五)

一、设备像素、css 像素、设备独立像素、dpr、ppi 之间的区别&#xff1f; 设备像素指的是物理像素&#xff0c;一般手机的分辨率指的就是设备像素&#xff0c;一个设备的设备像素是不可变的。 css像素和设备独立像素是等价的&#xff0c;不管在何种分辨率的设备上&#xff0c;…

网络连接线相关问题

问题1&#xff1b; 直通线为什么两头都是T568B&#xff1f;是否可以两台T5568A&#xff1f;或者任意线序&#xff0c;只需两头一致&#xff1f; 不行&#xff0c;施工规范规定。&#xff08;原因&#xff1b;网线最长距离100m&#xff0c;实际用起来要把网线包管&#xff0c;走…

Kafka第四篇——生产数据总体概括,源码解析分区策略,数据收集器,Sender发送线程,key值

目录 流程图以及总体概述 拦截器 分区器以及分区计算策略 为啥进行分区计算&#xff1f; producer生产者怎么知道有哪些分区&#xff1f; 分区计算 如何自定义实现分区器&#xff1f; 想说的在图里啦&#xff01;宝宝&#xff01;&#x1f4a1; ​编辑 如果key值忘记传递了呢&a…

前端后花园周刊vol.18-React Native 称唯一推荐的社区框架是Expo

⚡️行业动态 React Native 团队推荐使用 Expo 框架构建应用程序 React Native 发文称&#xff1a;唯一推荐的社区框架是Expo&#xff0c;Expo 的开发者从 React Native 早期就开始支持 React Native 生态系统&#xff0c;相信 Expo 提供的开发者体验是同类中最好的。 &…

vscode调试教程

VSCode调试 VSCode Debuggers VSCode使用launch.json进行细粒度的控制&#xff0c;可以启动程序或将其附加到复杂的调试场景中 打开Run and Debug视图Ctrl Shift D 点击create a launch.json file&#xff0c;选择C(GDB/LLDB) 会在工作目录自动创建.vscode/launch.json文…

简单的基追踪一维信号降噪方法(MATLAB 2018)

基追踪法是基于冗余过完备字典下的一种信号稀疏表示方法。该方法具有可提高信号的稀疏性、实现阈值降噪和提高时频分辨率等优点。基追踪法采用表示系数的范数作为信号来度量稀疏性&#xff0c;通过最小化l型范数将信号稀疏表示问题定义为一类有约束的极值问题&#xff0c;进而转…