51单片机的LED灯是共阳极的,如图。所以要想让LED灯发光,就要让对应引脚输出低电压,即在程序中令其值为零。
include "reg52.h"
sbit LED2 = P2^0;//以2号LED灯为例
void main ()
{
LED2 = 0;
while(1)
{
}
}
想要进一步实现LED灯闪烁的功能,我们只需要让对应引脚交替地输出高低电压(1和0),中间用延时函数控制时间 即可。
include "reg52.h"
sbit LED2 = P2^0;
void delaytime(unsigned int a)
{
while(a--);
}
void main()
{
while(1)
{
LED2 = 0;
delaytime(5000);
LED2 = 1;
delaytime(5000);
}
}
每次循环执行时间约为10us,故本次设置时间间隔约为 0.05秒