找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3361|回复: 0
打印 上一主题 下一主题
收起左侧

单片机按键抬起有效

[复制链接]
跳转到指定楼层
楼主

(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. }
复制代码


评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表