单片机入门:点亮第一个LED小灯

2022-07-21 15:23:42 浏览数 (1)

认识了单片机的基本概念,掌握了单片机最小系统的设计方法后,我们开始进行第一个单片机设计——利用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灯的点亮,具体如图,红灯被点亮。

0 人点赞