标题: 单片机按键抬起有效 [打印本页]

作者: zhazhazhai    时间: 2018-6-2 22:14
标题: 单片机按键抬起有效

(1)按键抖动现象:按键按下都会发出一声响,虽然有的按键声音很轻微,但这都是金属导体碰撞产生的震动,这种现象称为键盘抖动如果不对键盘的抖动进行处理,按键会对系统电路或程序产生意外的干扰。
(2)消抖:利用延时程序防止键盘抖动,实现键盘输入按键按下产生的抖动现象持续的时间不会很久,因此在按键按下后,可延时一段时间跳过抖动,再对按键的状态检测,从而利用延时的方法也可以实现键盘输入。



单片机源码:
  1. #include<reg51.h>
  2. sbit key1=P1^4;                                          //key1接P1.4
  3. sbit LED0=P0^0;                                          //LED0接P0.0
  4. void delay(unsigned int x)                          //延时函数
  5. {
  6. while(x--);
  7. }
  8. void key(void)
  9. {
  10. if(key1==0)                                                  //如果按键按下
  11. {
  12. delay(300);                                                  //消抖
  13. while(key1==0);                                          //如果按键真的按下,等待按键抬起
  14. LED0=!LED0;                                                  //LED状态改变
  15. }
  16. }
  17. void main()
  18. {
  19. LED0=1;                                                          //初始状态LED亮
  20. while(1)
  21. key();
  22. }
复制代码







欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1