关于51单片机点亮LED灯的文章,感觉已经很多了,这里不再多说什么大的框架了,现在主要看一下LED的连接原理图:
可以看到,在开发板上使用的LED灯,一端是一起接的VCC,说明此时如果单片机IO口输出低电平时,LED亮,输出高电平时LED灯灭,所以我们现在来写代码实现控制单片机IO口输出低电平。
#include <REGX52.H>
void main()
{
P2=0xFE;//1111 1110 //此处使用二进制来注释,表示一个八进制
//数最低位为0,及表示最低位也就是P2.0
//口输出低电平,对应的LED灯被点亮,其余的熄灭
}
此时可以观察到P2.0所对应的LED被点亮。
我们举一反三一下,如果要点亮一个LED灯,并让他闪烁,如何实现?首先我们应该想到,闪烁意味着需要等待一段时间,再将LED灯点亮,再等待一段时间,将LED灯熄灭。
那么我们就需要再写一个延时函数,来实现我们想要的功能。
#include <REGX52.H>
//延时函数,延时时间为500毫秒
void Delay500ms() //@12.000MHz
{
unsigned char i, j, k;
i = 4;
j = 205;
k = 187;
do
{
do
{
while (--k);
} while (--j);
} while (--i);
}
void main()
{
while(1)
{
P2=0xFE; //1111 1110
Delay500ms(); //调用延时函数,进行延时之后再动作
P2=0xFF; //1111 1111
Delay500ms();
}
}
这样我们就实现了LED灯闪烁。