单片机的按键开关抖动的产生原因,抖动的特点和如何消除抖动

如题所述

开关按钮在按下时,表面上只按了一下,但信号的传导并不是单纯的由1直接跳到0。这是由于机械触点断开/闭合时会有抖动,信号如图示会在HIGH和LOW之间抖动。这种抖动对人来说是感觉不到的,但对单片机来说,则是完全可以感应到的。
当按钮被按下时,你所期待的效果应该是:111111111000000000…,
而事与愿违,单片机读到的信号可能会是:111110110110000000…,
这中间连续的1和0过渡处,短暂的几个随机交错出现的01就是我们不期望产生的抖动,虽然我们只按了一下按钮,可能会被电路误读成按了好几下按钮,而给人的感觉就是有时候按钮会不灵。消抖的目的就是为了要除去信号在高低电位之间弹跳所造成的不正确输入,就是交错出现的01那段,一般抖动持续的时间是3-10毫秒。所以简单的去抖动操作,只要在这段抖动出现的时间跨度两端进行两次按钮状态检测即可:
假设放开按钮信号为1,按下为0,
那么当首次检测到按钮为0,过10ms再次检测,若依然为0,按钮按下有效;若为1,说明为抖动,去除。

更可靠,更灵敏的消抖做法为:
首次检测到按钮为0后,以后的3-5ms持续检测,若检测到信号一直为0,则按钮有效,若中间有一次不为0,时间清0,重新计时,直到连续3-5ms按钮信号一直为0,方为有效。(补充一下,持续检测的意思,并不是让你把全部的CPU时间全部花在这上面,否则这几ms时间内单片机相当于死机了,影响其它进程,而是间隔性地采样一下,比如5ms之内检测10次,10次全为0有效,其它时间CPU当然去处理别的事务)

至于按钮的连按和单按、双按,多按钮同时生效等更复杂的功能,可借助其它的标志位实现。
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-02-25
用延时函数可以消抖,也有用硬件消抖的。
第2个回答  推荐于2017-11-28
抖动产生因为机械固有的物理特性,在瞬间接触的时候会有力学的回弹,造成2-8毫秒内信号不稳定。

解决办法:软件延时去抖(其实是一种忽略)和硬件去抖

软件判断:开关闭合——延时——是否还是闭合?——如果是就判定打开,软件解决可以降低成本,但是有时候硬件劣化超出延时的范围会造成故障。

硬件解决:专用的去抖芯片或者自己组装一个双稳态消抖电路,就是两个与非门构成的RS触发器。本回答被网友采纳

单片机的按键开关抖动的产生原因,抖动的特点和如何消除抖动
消抖的目的就是为了要除去信号在高低电位之间弹跳所造成的不正确输入,就是交错出现的01那段,一般抖动持续的时间是3-10毫秒。所以简单的去抖动操作,只要在这段抖动出现的时间跨度两端进行两次按钮状态检测即可:假设放开按钮信号为1,按下为0,那么当首次检测到按钮为0,过10ms再次检测,若依然为0,按钮...

单片机软件中,为什么需要进行消抖处理?
在单片机软件中,进行消抖处理的原因在于按键开关的机械特性。按键所用的开关为机械弹性开关,其闭合与断开时,触点具有弹性作用。因此,按键在闭合瞬间不会立刻稳定接通,在断开瞬间也不马上断开,产生一连串抖动。单片机处理速度处于微秒级别,而按键抖动时间却在毫秒级。这使得单片机能感应到按键的抖动,如果...

单片机中什么是抖动
消抖可以采用:硬件消抖(线路并联滤波电容,成本增加),软件消抖(软件过滤掉短时间的触发电平,增加程序工作量),多数人采用软件消抖方式。

为什么有消除按键的机械抖动?消除按键抖动的方法有几种?
消除抖动的方法有硬件和软件两种方法。硬件方法常用RS触发器电路。软件方法是当检测出键闭合后执行一个10ms~20ms的延时程序,再一次检测键的状态,如仍保持闭合状态,则确认真正有键按下。单片机更多资料可以到吴鉴鹰吧学习,吴鉴鹰单片机开发板是学习单片机必备 ...

按键消抖的原理和方法
原理是防止按键输入被CPU误读多次,方法是RS触发器、电容器等。按键消抖是为了防止按键输入被CPU误读多次,其为在设计单片机按键输入时采取的一种必要手段。正常下的按键所用开关为机械弹性开关,当机械触点断开、闭合时,由于机械触点的弹性作用,一个按键开关在闭合时不会马上稳定地接通,在断开时也不会...

单片机按键去抖动有哪些方法
在按键上增加电容去除干扰,在按键上串一个电阻也可以解决静电或者是其他干扰对按键造成的干扰。软件去抖动也是一种非常常见的去抖动的方法,就是对按键进行多次的检测,每次检测都被按下,才认为按键被按下。软件去抖动要采用多次采集的方法,中间的间隔可以使用延时或者使用分时的思想来进行去抖动,一般的...

单片机 按键去抖啥意思???
单片机 按键去抖, 就是单片机的 按键 在正常操作中 在按压过程时 不能一下 完全接通,就是按压抖动,单片机在接收这种 信息时 会判断错误,所有要去掉这种抖动因素,去抖 有 硬件 去抖 就是在 按键与单片机连接的 IO 口 加 消抖电容 。还有 用 软件 去抖 就是 在单片机 接收按键 信息时 多次 ...

AT89C51单片机:简述在使用普通按键的时候,为什么要进行去抖动处理,怎 ...
从机械按键的结构来看,在机械按键接触的瞬间,会出现接触或者是没有接触的情况。在机械按键老化的时候,或者在其他干扰的情况下都会出现按键被误触发的情况。去除机械按键这种抖动的措施有硬件方法,还有软件方法,硬件方法就是在按键上增加电容去除干扰。在按键上串一个电阻也可以解决静电或者是其他干扰对...

如何消除按键抖动?
1、硬件消抖 在键数较少时可用硬件方法消除键抖动。硬件消抖的典型做法是:采用R-S触发器或RC积分电路。双稳态消抖 电路的工作过程如下:当按键未按下时,a=0,b=1,输出A=1,B=0。当按键按下时,按键的机械弹性作用使按键产生前沿抖动。当释放按键时,按键的机械弹性作用使按键产生后沿抖动。滤波...

按键的硬件消抖电路原理
按键消抖通常的按键所用开关为机械弹性开关,当机械触点断开、闭合时,由于机械触点的弹性作用,一个按键开关在闭合时不会马上稳定地接通,在断开时也不会一下子断开。因而在闭合及断开的瞬间均伴随有一连串的抖动,为了不产生这种现象而作的措施就是按键消抖。按键的抖动对于人类来说是感觉不到的,但对...

相似回答