首先我们要明白LED在单片机中的工作原理才能写出使其点亮的代码。
请先看原理图:
VCC(电源)连接LED(D1~D8)的阳极,IO口P20~P27进电阻(RP9、RP10)依次连接LED(D1~D8)的阴极。
电阻有限流保护LED的作用。
LED(发光二极管)只有在电流方向正确时才会被点亮;也就是说要让电流从“大头”进、“小头”出(阳极接正极,阴极接负极),才能成功点亮。
那么要如何实现呢?例如:我要点亮“D2”,只需要让P21口输出一个低电平(0)、VCC(电源)输出一个高电平(1),如此就实现了LED的点亮条件。
在写代码前我们还需了解一个知识、,sbit。
sbit是定义特殊功能的寄存器的位变量(具体用法可自行去了解)。
此处用法为:sbit 变量名=地址值;例如:sbit LED=P2^0 说明P2^0是变量LED的地址值,把地址赋给变量。
代码如下:
#include //51或者52都可以
sbit LED=P2^1; //注意P21口的写法,用keil的话,sbit要用在函数声明之前,原因很简单,自己想吧
void main()
{
while(1) //死循环结构,让主程序一直运行
{
LED=0; //使P21口输出低电平,以此点亮D2
}
}
然后将hex文件烧入单片机就点灯成功了。
萌新上路,若有错误还请多多指正,谢谢。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)