51单片机点亮一颗LED灯

一、单片机介绍

1.1 单片机实物照片

图1 普中51单片机实物照片

1.2 单片机介绍

普中科技的A2型号51单片机是基于STC89C52芯片的一款增强型51内核的CMOS 8位单片机,具有低功耗和高性能的特点。以下是STC89C52的一些关键特性和功能:

  1. CPU内核:STC89C52采用的是增强型80C51中央处理单元,支持6T或12T的机器周期。

  2. 操作电压范围:工作电压范围为3.3V至5.5V。

  3. 操作频率范围:在12T模式下,操作频率范围为0至48MHz;在6T模式下,操作频率范围为0至24MHz。

  4. 程序存储容量:内置8KB的FLASH程序存储器,支持灵活的ISP(在系统可编程)和IAP(在应用可编程)能力。

  5. RAM总容量:内置512字节的RAM。

  6. 外部存储器寻址能力:能够寻址高达64KB的外部RAM和64KB的外部存储器。

  7. 数据指针:具有双数据指针(DPTR),以加快数据移动速度。

  8. 定时器/计数器:有三个16位的定时器/计数器,其中定时器2是一个可编程的上/下计数器,P1.0上可输出时钟。

  9. 中断能力:具有8个向量地址、4级优先级的中断能力。

  10. 串行通信:有一个增强型UART(通用异步接收/发送器),支持硬件地址识别、帧错误检测功能,并具有自动波特率生成器。

  11. 看门狗定时器:内置一个15位的看门狗定时器,具有8位预分频器(一次性启用)。

  12. 复位电路:集成MAX810专用复位电路。

  13. 功耗管理模式:具有空闲模式和掉电模式两种功耗管理模式。

  14. I/O端口:最大提供39个可编程I/O端口,包括四个8位双向端口;对于PLCC-44和LQFP-44封装,额外提供四个附加的P4位。

  15. 工作温度范围:工业级为-40至+85°C,商业级为0至75°C。

  16. 封装类型:提供LQFP-44、PDIP-40、PLCC-44、PQFP44等多种封装类型。

普中科技A2型号51单片机因其丰富的功能和灵活的编程能力,被广泛应用于各种嵌入式控制系统和应用中。

1.3单片机原理图

图2 普中51单片机原理图

二、建立工程

2.1 keil工程环境搭建

        打开keil软件后,选择peoject,新建工程 new uvision project,新建文件进行保存。

图3 Keil工程框

          之后会弹出对话框Select Device target......,我们选择Legacy  Device Database。

图3 芯片选择对话框

     然后我们选择 Atmel中的AT89C51芯片。

图4 芯片选择

        然后我们新建一个文件,注意需要记住保存好的路径,后面我们编译好的hex文件会与他保存在相同路径下。

图5 新建工程

        保存完成之后,我们双击Source Group1,将刚刚保存好的文件添加进工程即可。

图6 添加工程

2.2 Proteus仿真搭建

        打开Proteus,我们找到文件,新建一个文件,确定好保存路径,然后一直保持默认即可。

图7 Proteus界面

        Proyeus的界面及其功能大致如下:

 图8 Proteus功能说明

      在Proteus中,鼠标的操作与传统方式有所出入,右键选取、左键编辑:

右键单击即为选中; 右键拖拽 即为框选一个块的对象;左键单击即为放置对象或选中对象编辑对象的属性;左键拖拽即为移动对象。

三、工程设计

3.1 Keil工程设计

        我们根据该单片机的原理图可以知道,集成在单片机上的的LED模块使用的I\O口为P2。然后我们就可以进行程序的编写。

3.1.1 设计思路

  1. #include<reg51.h>:这是包含51单片机特定功能的头文件,它定义了单片机的特殊功能寄存器和其他一些宏。

  2. sbit led0 = P2^0;sbit led7 = P2^7;:这些行定义了8个独立的位变量(sbit),分别对应单片机的P2端口的8个位。每个变量都可以直接控制P2端口上对应的LED灯。例如,led0 控制P2.0位,led1 控制P2.1位,以此类推。

  3. void delay(unsigned int i):这是一个延迟函数,用于在程序中创建延迟。它接受一个无符号整型参数i,然后在双层循环中递减直到0,从而实现延迟。

  4. unsigned char j;:在延迟函数中声明了一个无符号字符型变量j,用于内层循环的计数。

  5. for(i; i > 0;i--):外层循环,i从传入的值开始递减,直到0。

  6. for(j = 100; j > 0;j--);:内层循环,j从100开始递减,直到0。每次外层循环i递减一次,内层循环就会执行100次,从而实现更长时间的延迟。

  7. void MAIN():主函数,程序的入口点。

  8. while(1):一个无限循环,确保程序会一直运行。

  9. led0 = 0x00;:将led0对应的P2.0位设置为低电平(0),如果P2.0连接的是LED灯,那么这将导致LED灯熄灭。

  10. delay(1000);:调用延迟函数,传入1000作为参数,创建大约1秒的延迟。

  11. led0 = 0xff;:将led0对应的P2.0位设置为高电平(1),如果P2.0连接的是LED灯,那么这将导致LED灯点亮。

  12. delay(1000);:再次调用延迟函数,创建大约1秒的延迟。

这段程序的目的是让连接在P2.0位的LED灯交替闪烁,每次闪烁间隔大约1秒。但是,程序中只控制了一个LED灯(led0),如果需要控制其他LED灯,需要添加相应的代码来设置其他ledX变量的状态。此外,程序中的0xff0x00是针对整个P2端口的值,而不是单个位,所以如果只想要控制单个LED灯,应该使用01而不是0xff0x00

3.1.2 程序展示

#include<reg51.h>


sbit led0 = P2^0;
sbit led1 = P2^1;
sbit led2 = P2^2;
sbit led3 = P2^3;
sbit led4 = P2^4;
sbit led5 = P2^5;
sbit led6 = P2^6;
sbit led7 = P2^7;


void delay(unsigned int i)
{
	unsigned char j;
	for(i; i > 0;i--)
	{
		for(j = 100; j > 0;j--);
	}
}

void MAIN()
{
	while(1)
	{
		led0 = 0x00;
		delay(1000);
		led0 = 0xff;
		delay(1000);
	}
	
}

3.2Proteus工程设计

3.2.1 原理图设计步骤

        (1)新建设计文件并设置图纸参数和相关信息

        (2)放置元器件

        (3)对原理图进行布线

        (4)调整、检查和修改

        (5)补充完善

        (6)存盘和输出

3.2.2 放置元器件

         (1)选择元器件 单击图标工具栏中的 图标,并选择下图所示对象选择器中的 按钮,出现选择元器件对话框 对象选择器中P按钮 元器件选择对话框

图9 Proteus元器件选择对话框

        (2)放置元器件 在对象选择器窗口中,选中元器件,将鼠标置于图形编辑窗口该对象的欲放位置,单击鼠标左键,该对象被完成放置。

        (3)移动元器件 若对象位置需要移动,将鼠标移到该对象上,单击鼠标右键,此时我们已经注意到,该对象的颜色已变至红色,表明该对象已被选中,按下鼠标左键,拖动鼠标,将对象移至新位置后,松开鼠标,完成移动操作。

        (4)删除元器件 对于误放置的元器件,右键双击对象,即可删除,若不小心进行了误删除操作,可通过工具栏的撤销按钮进行恢复。

        (5)调整元器件方位 选中元器件,使其高亮显示,单击旋转按钮,可调整方位。

        (6)撤销选中(刷新) 编辑窗口显示正在编辑的电路原理图,可以通过执行菜单命令“View”下的“Redraw”命令来刷新显示内容,也可以点击工具栏的刷新命令按钮回或者快捷键“R”,与此同时预览窗口中的内容也将被刷新。

         (7)编辑对象 先用鼠标右键点击选中对象,然后用鼠标左键点击对象,此时出现属性编辑对话框。这里你可以改变元器件标号、值、PCB封装以及是否把这些东西隐藏等,修改完毕,点击“OK”按钮即可。

3.2.3 对原理图布线

        Proteus的智能化可以在你想要画线的时候进行自动检测。Proteus具有线路自动路径功能(简称WAR),当选中两个连接点后,WAR将选择一个合适的路径连线。 单击绘图工具栏中的总线按钮 ,使之处于选中状态。将鼠标置于图形编辑窗口,绘制出总线。 单击绘图工具栏中的导线标签按钮 ,在图形编辑窗口,完成导线或总线的标注。 我们会发现许多器件没有Vcc 和GND引脚,其实他们隐藏了,在使用的时候可以不用加电源。如果需要加电源可以点击工具箱的接线端按钮 ,这时对象选择器将出现一些接线端。 在器件选择器里点击对应符号,将鼠标移到原理图编辑区,左键点击一下即可放置。

3.2.4 绘制仿真原理图

绘制如下仿真原理图:

图10 仿真原理图

四、程序烧录

        烧录程序我们使用的是PZISP,PZ-ISP是一款专业的普中单片机烧录软件,主要用于普中单片机的MCU程序下载和串口调试。以下是PZ-ISP的一些主要功能和特点:

  1. 串口调试功能:PZ-ISP可以接收从串口进来的数据并在窗口显示,支持字符方式或HEX方式的数据展示。

  2. 中文显示无乱码:软件支持中文显示,且不影响速度。

  3. 波特率设置:用户可以选择110bps到115200bps的串口波特率。

  4. 数据位和停止位选择:可以选择“5、6、7、8”四种数据长度和“1、1.5、2”三种停止位(1.5停止位需要硬件支持)。

  5. 校验位设置:可以选择“无、奇校验、偶校验、1、0”四种方式的第9位数据。

  6. 设置保存:串口设置和字符串操作等设置在程序关闭时自动保存,打开时自动载入。

  7. 即时发送和重复发送:可以选择在发送窗口按键即发送该键值,也可以定时重复发送数据,并设置发送时间间隔。

  8. 发送新行:在发送字符串时可以选择发送新行,即自动加上回车换行。

  9. 信号线控制:可以自由控制当前串口的DTR、RTS信号线的输出状态。

  10. 文件预览和发送:可以打开一个文本文件或者一个二进制文件预览其内容,查看方式可以是文本方式,并且可以以当前波特率发送到串口。

  11. 窗口内容保存:可以保存窗口内容到一个文本文件。

  12. 字节数显示:可以即时显示发送的字节数和接收到的字节数,按清除窗口将会清零。

  13. ISP上载功能:带有常用MCU设备ISP上载功能。

  14. 绿色软件:PZ-ISP是个绿色软件,单个文件即可执行,不会给机器增加任何负担。

PZ-ISP适用于几乎所有的Windows操作系统,是一款简易实用且功能全面的工具软件。它支持STC90CXX/STC89CXX等多种芯片类型,方便用户进行单片机程序的下载和调试。

图11 烧录APP图标

        最后实验现象为,LED模块D1一直交替闪烁:

图12 实验现象(实物)

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值