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

STC89C52环境配置到点亮LED

  • [1 环境配置](#1 环境配置)
    • [1.1 硬件环境](#1.1 硬件环境)
    • [1.2 编译环境](#1.2 编译环境)
    • [1.3 烧录环境](#1.3 烧录环境)
  • [2 工程配置](#2 工程配置)
    • [2.1 工程框架](#2.1 工程框架)
    • [2.2 工程创建](#2.2 工程创建)
    • [2.3 参数配置](#2.3 参数配置)
  • [3 点亮一个LED](#3 点亮一个LED)
    • [3.1 原理图解读](#3.1 原理图解读)
    • [3.2 代码配置](#3.2 代码配置)
    • [3.3 演示](#3.3 演示)
  • [4 总结](#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 代码配置

c 复制代码
/*-----------------------------------------------
  名称: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 总结

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

欢迎大家交流。

相关推荐
爱学习的南瓜6 小时前
笔记14:程序中的循环结构
c语言·笔记
远望创客学堂6 小时前
【单片机毕业设计选题24047】-基于阿里云的工地环境监测系统
stm32·单片机·嵌入式硬件·阿里云·云计算·课程设计·arduino
极客小张7 小时前
利用 STM32 实现多协议物联网网关:Modbus/Zigbee 到以太网/Wi-Fi 的数据桥接
stm32·单片机·嵌入式硬件·物联网·网络协议·https·硬件工程
PPPPPaPeR.7 小时前
二叉树的顺序存储
c语言·开发语言·c++·算法
FPGAmaster创新者7 小时前
基于AGX ORIN与FPGA K7实现PCIE高速数据通信/Orin与FPGA高速数据传输/XDMA在linux系统使用教程
linux·嵌入式硬件·fpga开发
XD7429716368 小时前
【TB作品】电子琴,ATMEGA16单片机,Proteus仿真
单片机·proteus·电子琴·atmega
maybe_YX8 小时前
51单片机基础8——单片机控制超声波模块
c语言·单片机·嵌入式硬件·51单片机
@一二三四五8 小时前
STM32 看门狗 HAL
stm32·单片机·嵌入式硬件
北京迅为8 小时前
【北京迅为】《i.MX8MM嵌入式Linux开发指南》-第一篇 嵌入式Linux入门篇-第四章 Ubuntu启用root用户
linux·嵌入式硬件
安步当歌8 小时前
【FFmpeg】avcodec_send_packet函数
c语言·c++·ffmpeg·视频编解码·video-codec