认识了单片机的基本概念,掌握了单片机最小系统的设计方法后,我们开始进行第一个单片机设计——利用51单片机点亮一个LED小灯。
硬件电路设计
结合51单片机最小系统的知识,利用AD19画好最小系统电路(未包括电源部分)。
本设计需要点亮一个LED小灯, LED(发光二极管)正极接 5V电源,负极接单片机P1.0口,这样只要单片机P1.0口输出低电平就可以导通二极管,实现LED灯的点亮。
仿真电路设计
仿真电路图与AD原理图画法一致,但应注意仿真最小系统复位电路中电容值取0.1uf,电阻值取100Ω,与AD原理图中有所区别。
程序设计
程序采用Keil5设计,点亮本设计的LED灯有两种方式:
方式一:
代码语言:javascript复制/*-----------------------------------------------
名称:IO口高低电平控制
内容:点亮P1口的一个LED灯
------------------------------------------------*/
#include<reg52.h> //包含头文件,一般情况不需要改动,
//头文件包含特殊功能寄存器的定义
/*------------------------------------------------
主函数
------------------------------------------------*/
void main (void)
{
//此方法使用1个字节对单个端口赋值
P1 = 0xFF; //P1口全部为高电平,对应的LED灯全灭掉,
//ff换算成二进制是 1111 1111
P1 = 0xfe; //P1口的最低位点亮,可以更改数值是其他的灯点亮
//0xfe是16进制,0x开头表示16进制数,
//fe换算成二进制是 1111 1110
}
方式二:
代码语言:javascript复制/*-----------------------------------------------
名称:IO口高低电平控制
内容:点亮P1口的一个LED灯
------------------------------------------------*/
#include<reg52.h> //包含头文件,一般情况不需要改动,
//头文件包含特殊功能寄存器的定义
sbit LED=P1^0; //将单片机的P1.0端口定义为lED
/*------------------------------------------------
主函数
------------------------------------------------*/
void main (void)
{
LED=0; //P1.0端口设置为低电平,LED灯导通,实现点亮
}
仿真实现
为了直观感受本设计实现的效果,这里利用protues8.7仿真实现LED灯的点亮,具体如图,红灯被点亮。