1.按键的特点
键盘是一组按键开关的集合,组成键盘的按键有触点式和非触点式两种。常用的键盘一般采用由机械触点构成的键盘开关,利用机械触点的接通与断开将电压信号输入到单片机的I/O端口。机械键盘在按键接触过程中通常会产生抖动,按键抖动时间的长短与开关的机械特性有关,一般在5~10ms,如图13-1所示。图中t1为按键抖动时间;t2为按键稳定接通时间,时间长短由按键操作人确定;t3为按键松键期;t4为按键断开期。
图13-1 键盘与按键开关信号电压波形
a)按键开关 b)按键开关信号电压波形
2.按键的识别
在图13-1中,当按键开关K1没有按下时,K1键的两个触点是断开的,这时P1.0输入为高电平;当K1键被按下时,K1键的两个触点是接通的,P1.0输入为低电平。通过对连接按键的I/O端口的电平检测,就能识别出K1键是否被按下。
3.按键抖动的消除方法
由于按键是机械触点,当机械触点闭合和断开时,会有抖动,这种抖动对操作人来说是感觉不到的,但对计算机来说,则是完全可以感应到的。为了准确地判断每次有效按键,对每次按键只做一次响应,就必须考虑消除抖动。(www.xing528.com)
常用的去抖动的方法有两种,即硬件去抖和软件去抖。
硬件去抖采用双稳态去抖和滤波电路去抖。双稳态去抖法使用两个与非门构成RS触发器电路实现按键去抖;滤波电路去抖法采用RC积分电路滤除干扰脉冲达到按键去抖的目的。硬件去抖电路如图13-2所示。
图13-2 硬件去抖电路
a)双稳态去抖 b)滤波电路去抖
单片机常用软件去抖法,即在第一次检测到有键按下时,不是立刻认定键的有效性,而是延时5~10ms或更长时间后再检测一次该键,如果该键仍有效(假如该键与P1.0连接,则P1.0=0),才确认为有效按键。这样就可以避开按键按下时的抖动时间,以免发生误判断。在第一次检测到按键释放后(P1.0=1)应再延时5~10ms,以消除后沿的抖动,然后再对键值处理。
不过,如果不对按键释放的后沿进行处理,通常也能满足要求。当然,实际应用中对按键的要求也千差万别,要根据不同的需要编写处理程序。以上是软件消除键抖动的原则,对矩阵键盘的识别去抖也同样如此。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。