找回密码
 注册
关于网站域名变更的通知
查看: 185|回复: 2
打印 上一主题 下一主题

学51单片机-按键的扫描检测与消抖

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2022-9-26 10:00 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
本帖最后由 Terran 于 2022-9-26 16:50 编辑
( Q/ n! Y. k0 Q8 D( d: x* ?
1 j6 q/ _: u) e0 f: |2 P 触发按键,简称按键,是电路设计中常用的器件之一。种类很多,有贴片式的,有直插式的,有四条腿的,也有两条腿的。一般根据需求,进行高低、大小的选择。
(采购图)
0 T- A1 j2 R2 X/ ^
     如图所示,样式非常多。记得我第一次去中发买按键的时候,老板问我要什么样的,我也不知道,就说常用的就行。老板嘿嘿一笑,知道我是新人,就拿了几款常见的给我选。
     现在自然不会这么笨,一般来说,选择的参数也就这么几项,尺寸、高度、封装方式。例如我想买一种按键,我就直接问老板:6*6*5,四脚贴片的按键有木有?
     6*6是什么意思?占地面积,单位是毫米,就是说长和宽都是6mm的。
     5是高度,按键整体高度,单位是毫米。要求精细的,会说明按键座的高度和按键头的高度。
     国产按键最上面的那个按键头一般都是硬塑料的,韩国、日本还有台湾的按键,有很多是硅胶的头,按的时候手感挺不错的,不过价格也略贵。
     什么样的按键是好的按键?我跟一个卖了十多年货的老板聊过这个问题,抛开用料问题,就说触发的效果,只要买的时候按一下那个按键,听它那个声音,声音越清脆、越响,效果越好,当然了,价格越贵。
     接下来说应用电路,如下图所示,这是常见的应用电路:
     检测方式有两种,一种是扫描检测,另一种是中断检测。这次先说第一种,什么是扫描检测?
     就是单片机每隔一段时间,就去检测一下IO口的状态,未触发的时候,该引脚是高电平,触发的时候是低电平。
     有人会有疑问,这种方式会不会有遗漏?基本不会,因为单片机以微秒甚至纳秒的级别运行指令,而触发一次按键至少需要几十毫秒,汽车电子里面用到的触发按键,它的触发时间到了100毫秒。只要扫描次数足够,基本不会有遗漏。
     什么是消抖?检测出键闭合后执行一个延时程序,5ms~10ms的延时,让前沿抖动消失后再一次检测键的状态,如果仍保持闭合状态电平,则确认为真正有键按下。当检测到按键释放后,也要给5ms~10ms的延时,待后沿抖动消失后才能转入该键的处理程序。
     为什么要消抖?因为按键按下或者抬起时,电平会有剧烈的抖动,这些抖动会对按键的状态判断造成干扰。因此要消抖。
     这次的程序用按键触发LED,每次按下的时候,LED的状态进行翻转。
     好了,废话少说,上程序
2 d. [% R. K) f# j8 a. k- R; G# I

# _( p% n! D& _" ~& D* }( {# P

该用户从未签到

2#
发表于 2022-9-26 11:30 | 只看该作者
按键旁边,就加上一个电容,就可以了。硬件防抖,最好了

该用户从未签到

3#
发表于 2022-9-26 15:24 | 只看该作者
软件消抖,用一个延时程序,进行5ms~10ms的延时,比硬件消抖,少使用一些元器件,降低了成本。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-6-5 11:51 , Processed in 0.078125 second(s), 26 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

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