一个按键控制发光二极管LED的扩展功能:二进制运算
实现功能,LED灯呈现二进制递增式亮
首先也是要知道LED的电路图
共阳极二极管,IO口输出低电平LED亮
初始状态是:
0000 0000递增就是
0000 0001
0000 0010
0000 0011
0000 0100
.......
1000 0000
共阳极发光二极管,最后再取反,就可以实现LED灯呈二进制递增式亮
#include <REGX52.H>
sbit KEY=P3^4;
void Delay20ms() //@11.0592MHz
{
unsigned char i, j, k;
i = 1;
j = 216;
k = 35;
do
{
do
{
while (--k);
} while (--j);
} while (--i);
}
void main()
{
unsigned char LEDnum = 0;
while(1)
{
if(KEY == 0)
{
Delay20ms();
while(KEY == 0)
{}
Delay20ms();
LEDnum++;
P1 = ~LEDnum;
}
}
}