独立按键控制LED状态
所用到的电路图
一,独立按键模块,
JP1连接到单片机P1口,接口一一对应的
二,LED模块,
J19连接到单片机P2口,接口一一对应的
按键的小问题
解决方法: 在按下前面加个延时函数,渡过这时间段
代码如下:
#include <REGX51,h>
void Delay_ms(Xms) //延时函数(ms)
{
unsigned char i, j;
while(Xms>0)
{
i = 2;
j = 239;
do
{
while (--j);
} while (--i);
Xms--;
}
}
void main()
{
while(1)
{
if(P1_0 == 0)
{
//机械抖动,前后大约都是(5~10)ms,因此20ms肯定能够消抖
Delay_ms(20); //消除按下的抖动
while(P1_0 == 0); //判断手松开了没
Delay_ms(20); //消除松开的抖动
P2_0 = ~P2_0; //进行取反,~是非的意思
}
}
}
实验现象:
按下K1,不会有任何反应,当松开K1,灯才会有反应,灯会从亮变灭,或者从灭变亮。