关于单片机按键的抖动bob手机版网页体育与消抖
在单片机的程序中,如果涉及到键,一般会看到几行注释& ldquo摇一摇& rdquo的代码 比如下面这段:if((KeyV|0xc3)==0xff){//不加键按回车键0;} mDelay(10);//延迟,键抖KeyV = P3;If((KeyV|0xc3)==0xff){//不加键按bob手机版网页体育return 0;}关于它的作用和用途,有以下几种解释:按键时,电平会发生变化,通常是由高电平变为低电平,这个过程不是瞬间完成的。按键后,电平会在一段不稳定的时间内变化。 一般来说,我们的程序会读取这种级别变化,并采取相应的措施。 但由于机械按键的限制,当系统受到外力而引起抖动或其他动作时,也可能引起系统内部的电平变化(通常这种变化持续的时间很短)。这种现象叫做按键。抖动& rdquo 这种& ldquo抖动& rdquo显然,这不是我们所期望发生的。一旦程序中没有对其进行特殊处理,这种隐患很可能导致系统执行我们不希望发生的动作。 可能会导致悲剧。 避免按键抖动& rdquo操作叫做& ldquo摇一摇& rdquo 目前单片机的防抖主要分为软件防抖和硬件防抖 其中,软件抖动增加了软件资源,但不增加硬件成本;相反,硬件喋喋不休 目前广泛使用软件消除抖动。 软件防抖的具体操作思路是:当检测到按键被按下时,不会立即进行相关操作,而是经过一定的时间延迟(一般为50ms),然后再次检测按键是否被按下。如果此时按键仍被按下,则确定该按键确实被按下(因为无论是异常情况引起的bob手机版网页体育抖动,还是正常情况下按键被按下引起的电平变化,下一个电平都是稳定的)。 事实上,上述的软件消抖方法并没有在真正的软件中广泛使用,只是在实践中使用。 在实际应用中,在可能出现抖动的时间段内,会等间隔监测几次按键状态(当前状态),电流稳定几次(可以是连续五次)后才确定按键被按下。 松开键时,进行同样的操作。 这样,就不会有误差了。比如延时按下键松开卡,就会错过。 硬件抖振的思想是利用相关手段去除初始的不稳定电平变化,只输出后期的稳定电平。 具体有两种实现方式:方法一:在琴键上串联一个10K上拉电阻,然后在琴键上并联一个去抖电容,消除琴键的机械抖动。 电容的计算方法如下:根据机械按键的触点抖动频率确定电容值。一般机械按键抖动频率在100Hz左右,按键闭合抖动时接触时间在毫秒级别。根据电容的放电时间,t = 0.7×t;& radicRCR=10K,c = 0.1 & muf,电容充放电时间约20ms,比抖动时间长,可以滤除抖动。 通常,电容c为0.01μF ~ 1 & muf .方法二:按键数量较少时,可采用硬件方法消除按键抖动。 下图所示的RS触发器是一种常见的硬件去抖bob手机版网页体育。 两张照片& ldquo而不是& rdquo该门构成了RS触发器。 不按键时,输出为1;按键时,输出为0。此时利用按键的机械特性,使按键因弹性抖动而瞬间断开(抖动跳离B),按键不回到原来的状态A,双稳态电路的状态不变,输出保持在0,不会产生抖动波形。 也就是说,即使B点的电压波形是抖动的,经过双稳态电路后,其输出也是正常的矩形波。 通过分析RS触发器的工作过程,可以很容易地验证这一点。
bob手机版网页体育
在线预约
TOP