独立按键控制LED状态

独立按键控制LED状态
所用到的电路图

一,独立按键模块,
JP1连接到单片机P1口,接口一一对应的
独立按键控制LED状态_第1张图片
二,LED模块,
J19连接到单片机P2口,接口一一对应的
独立按键控制LED状态_第2张图片

按键的小问题
独立按键控制LED状态_第3张图片
解决方法: 在按下前面加个延时函数,渡过这时间段

代码如下:

#include 

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,灯才会有反应,灯会从亮变灭,或者从灭变亮。

你可能感兴趣的:(单片机)