由原理图可以看到按键前后存在抖动,我们需要通过delay函数去消除抖动,所以直接delay(20);就行了,然后中间放循环判断,现在我们是K1按键控制第一个灯,按下LED会亮,再按一次就会灭
#include <REGX52.H>
void Delay(unsigned int xms)
{
unsigned char i,j;
while(xms)
{
i = 2;
j = 239;
do
{
while (--j);
} while (--i);
xms--;
}
}
void main()
{
while(1)
{
if(P3_1 == 0)
{
Delay(20);
while(P3_1 == 0);
Delay(20);
P2_0 = ~P2_0;
}
}
}