文档介绍:2016新编关于按键抖动
通常的按键所用开关为机械弹性开关,当机械触点断开、闭合时,由于机械触点的弹性作用,一个按键开关在闭合时不会马上稳定地接通,在断开时也不会一下子断开。因而在闭合及断开的瞬间均伴随有一连串的抖动,为了不产生这种现象而作的措施就是按键消抖。
抖动时间
抖动时间的长短由按键的机械特性决定,一般为5ms,10ms。这是一个很重要的时间参数,在很多场合都要用到。
点击查看图片
按键
按键稳定闭合时间的长短则是由操作人员的按键动作决定的,一般为零点几秒至数秒。键抖动会引起一次按键被误读多次。为确保CPU对键的一次闭合仅作一次处理,必须去除键抖动。在键闭合稳定时读取键的状态,并且必须判别到键释放稳定后再作处理。
方法
消抖是为了避免在按键按下或是抬起时电平剧烈抖动带来的影响。按键的消抖,可用硬件或软件两种方法。
硬件消抖
在键数较少时可用硬件方法消除键抖动。下图所示的RS触发器为常用的硬件去抖。 点击查看图片
图
图中两个“与非”门构成一个RS触发器。当按键未按下时,输出为0;当键按下时,输出为1。此时即使用按键的机械性能,使按键因弹性抖动而产生瞬时断开(抖动跳开B),中要按键不返回原始状态A,双稳态电路的状态不改变,输出保持为0,不会产生抖动的波形。也就是说,即使B点的电压波形是抖动的,但经双稳态电路之后,其输出为正规的矩形波。这一点通过分析RS触发器的工作过程很容易得到验证。
软件消抖
如果按键较多,常用软件方法去抖,即检测出键闭合后执行一个延时程序,5ms,10ms的延时,让前沿抖动消失后再一次检测键的状态,如果仍保持闭合状态电平,则确认为真正有键按下。当检测到按键释放后,也要给5ms,10ms的延时,待后沿抖动消失后才能转入该键的处理程序。
一般来说,软件消抖的方法是不断检测按键值,直到按键值稳定。实现方法:假设未按键时输入1,按键后输入为0,抖动时不定。可以做以下检测:检测到按键输入为0之后,延时5ms,10ms,再次检测,如果按键还为0,那么就认为有按键输入。延时的5ms,10ms恰好避开了抖动期。
其他相关
Verilog HDL语言实现按键消抖
assign key_done = (dout1 | dout2 | dout3); //按键消抖输出
always @(posedge count[17])
begin
dout1 <= key_in;
dout2 <= dout1;
dout3 <= dout2;
end
always @(negedge key_done[0])
begin
keyen = ~keyen; //将琴键开关转换为乒乓开关
end
程序中所用的方法是不断检测按键值。每当Count[17]上升沿到来,就进行检测输入信号。其中dout1,dout2,dout3分别为当前、上个Count[17]上升沿、上上个Count[17]上升沿输入数值。正常情况下为1,假如连续三次为0,三个信号作或运算,使得key_done信号为0,出现下降沿,这样就认为是有按键。
---------------------------------------------------------------范文最新推荐------------------------------------------------------
电力安全月工作总结 [电力安全月工作总结]电力安全月工作总结 2011年3月1日至3月31日为我公司的安全生产月,**变电站围绕;夯实基储提高素质、树立标杆、争创一流;的主题,开展了丰富多彩、形式多样的具体行动:通过看板形式宣传安全第一、预防为主的方针,通过48+4的学习机会,进行安全生产大讨论,通过安全活动进行查找本站的隐患的活动,电力安全月工作总结。形成了;人人学会安全,层层尽责保证安全;的
良好氛围,使我站的安全生产工作又上了一个新的台阶。
本站安全生产月活动具体工作如下:
,大家坐在一起讨论活动的主题、学习实施纲要、讨论各个实施阶段的活动安排。,汲取事故教训,,并对本站的安全管理、记录报表、规章制度、培训工作、事故隐患每个值班员都谈了自己的看法和建议,对站内管理每个人都倾注了最大的热情,,安全月的必要开展对变电站各项工作的
促进,尤其对值班员安全意识、主人翁精神的影响最为深刻。
。在安全生产整顿周活动的基础上,结合秋季安全大检查,进一步查摆了本站安全生产的隐患,特别是各种规章制度的建立、健