按键抬起有效



#include<reg51.h> sbit key1=P1^4; //key1接P1.4 sbit LED0=P0^0; //LED0接P0.0 void delay(unsigned int x) //延时函数 { while(x--); } void key(void) { if(key1==0) //如果按键按下 { delay(300); //消抖 while(key1==0); //如果按键真的按下,等待按键抬起 LED0=!LED0; //LED状态改变 } } void main() { LED0=1; //初始状态LED亮 while(1) key(); }



(1)按键抖动现象:按键按下都会发出一声响,虽然有的按键声音很轻微,但这都是金属导体碰撞产生的震动,这种现象称为键盘抖动如果不对键盘的抖动进行处理,按键会对系统电路或程序产生意外的干扰。

(
2)消抖:利用延时程序防止键盘抖动,实现键盘输入按键按下产生的抖动现象持续的时间不会很久,因此在按键按下后,可延时一段时间跳过抖动,再对按键的状态检测,从而利用延时的方法也可以实现键盘输入。
 
  
 
 

猜你喜欢

转载自www.cnblogs.com/zhai1997/p/9127134.html