打印
[ARM入门]

单片机按键为何需要消抖

[复制链接]
1092|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
按键消抖通常的按键所用开关为机械弹性开关,当机械触点断开、闭合时,由于机械触点的弹性作用,一个按键开关在闭合时不会马上稳定地接通,在断开时也不会一下子断开。
因而在闭合及断开的瞬间均伴随有一连串的抖动,为了不产生这种现象而作的措施就是按键消抖。
按键的抖动对于人类来说是感觉不到的,但对单片机来说,则是完全可以感应到的,而且还是一个很“漫长”的过程,因为单片机处理的速度在“微秒”级,而按键抖动的时间至少在“毫秒”级。
一次按键动作的电平波形如下图。存在抖动现象,其前后沿抖动时间一般在5ms~10ms之间。由于单片机运行速度非常快,经过A时刻的时候会检测到低电平判断按键被按下。
当到了B时刻的时候,单片机同样会检测到高电平,误以为松开按键,然后又到了C时刻检测到低电平,判断到按键被按下。周而复始,在5-10ms内可能会出现很多次按下的动作,每一次按键的动作判断的次数都不相同。

使用特权

评论回复

相关帖子

沙发
yangjiaxu| | 2023-6-30 14:07 | 只看该作者
不去抖的话,会有误判的风险啊,导致程序逻辑处理麻烦,而且会容易出现重复处理数据的现象

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

认证:苏州澜宭自动化科技嵌入式工程师
简介:本人从事磁编码器研发工作,负责开发2500线增量式磁编码器以及17位、23位绝对值式磁编码器,拥有多年嵌入式开发经验,精通STM32、GD32、N32等多种品牌单片机,熟练使用单片机各种外设。

481

主题

3796

帖子

47

粉丝