访问电脑版页面

导航:老古开发网手机版其他

经验谈:键盘问题的一些软件处理方法

导读:
关键字:

  键盘是一组开关的组合,是常用的输入设备之一。

  对于键盘要解决的问题有:反弹跳问题、连击问题、复合键问题、串键问题。

  以下是解决这些问题的处理方法。

  (1)反弹跳问题。反弹跳问题就是通常所说的抖动问题,即按键在闭合与断开时会产生抖动。这时触点的逻辑电平是不稳定的,如不妥善处理,将会引起按键命令的错误执行或重复执行。目前,一般用软件延时的方法来避开抖动阶段。延时时间一般取10~20ms。在检出闭合后,执行一个延时子程序,让前沿弹跳消失后再检验键的闭合;在发现键松开后,也要执行一个延时子程序,待后沿弹跳消失后再检验下一次键的闭合。监控程序中,如果读键操作安排在主程序或键盘中断子程序中,该延时子程序便可直接插入读键过程中;如果读键过程安排在定时中断子程序中,就可省去专门的延时子程序,利用两次定时中断的时间间隔来完成去抖动。

  (2)连击问题。解决连击的关键是一次按键只让它响应一次,该键不释放就不执行第二次。为此要分别检测到按键按下的时刻和释放的时刻。图1和图2是解决连击问题的两种方法:图1是按键按下键盘就执行,执行完后再等待操作者释放按键,在未释放前不再执行指定功能,从而避免了一次按键重复执行的现象;图2是按键释放后再执行指定功能,同样可以避免连击,但这种结构给人一种反应迟钝的感觉,因此常采用图1所示方法。在一些智能仪表中,因设置的按键数目很少,没有数字键,这时只能采用加1(或减1)的方式来调整有关参数,但计算机的处理速度很快,需要对连击速度进行控制。连击对于调整键有用,但对于其它功能键则有害。因此,需要设计的键盘解释程序应能同时实现连击和防止连击。如果键盘解释程序安排在定时中断中,可采用图3所示方法来解决这一问题,即利用定时中断间隔作为时间单位来测量按键的持续时间。用“年龄”来比喻按键按下的时间,从按下时开始计算,持续时间每增加一个定时时间间隔,“年龄”就加1,直到释放时为止。再定义一个软件标志,用来表示某键指定的功能是否已经被执行过,如果已经被执行,则软件标志置1,表示“已响应”。每次定时中断发生后,并完成例行处理任务后就对键盘进行一次采样,获得当前的键码,并和上一次采样的键码进行比较:如果相同,则该键码的年龄加1;如果不同,说明键盘状态发生变化,这时就对年龄和响应标志初始化,并保存新键码。在对键码解释前,先检查响应标志,如果已经响应过了,而且该键码不允许连击时,则具有解释执行权;但在解释执行前先要检查它的年龄,当年龄小于某个数值时暂不解释执行,当年龄达到某一数值时则进行解释执行。这样触点抖动问题就可以顺利解决,因为触点抖动时间小于定时中断间隔,当年龄达到预定值时,抖动早已消失。对于允许连击的键码,其年龄要求为指定的连击间隔。例如,连击速度为4次/s,定时中断间隔为10ms,则年龄限制为25。通过年龄审查之后就可以解释执行了,解释执行后便设定已响应标志,阻止这个按键重复响应。这个标志对允许连击的按键无效,因此,还要将年龄值清零,使允许连击的按键不会马上得到响应,而必须使年龄再次增长到25才响应一次,从而达到控制连击速度的目的。综上所述,引入了年龄和已响应这两个辅助信息后,处理防抖动、防止连击、利用连击时,延时响应都可以方便地解决。


图1        图2


图3

  (3)复合键问题。使用复合键不但能减少按键数目,而且操作安全性好,对一些重要操作用复合键可以减少误碰键盘引起的差错。复合键是利用两个以上的按键同时按下所完成的功能,但实际情况中很难实现真正的“同时按下”,它们的时间差别可以长到50ms左右,这对计算机来说是足够长了,完全可能产生额外的动作。如果键盘解释程序安排在定时中断中,并引入年龄这个控制信息,可将最低年龄定义为5(50ms)。当复合键的某一个键先闭合时,只要提前时间小于50ms,则该键来不及增长到5就“夭折”了,这样不会引起额外动作。当键盘解释程序安排在后台主程序中时,可采取另一种方法,即定义一个或两个引导键,这些引导键单独按下时没有任何意义,而和其它键同时按下时才形成一个复合键。这种方式在操作时要求先按下引导键,再按下其它功能键。

  (4)串键问题。处理串键有三种技术方法:两键同时按下、N键同时按下和N键锁定。“两键同时按下”技术是当两个键同时按下时提供保护。一种方法是最后一个键按下时确定为有效按键;另一种方法是当第一个键未松开时,按第二键不产生选通信号。“N键同时按下”技术是N键同时按下时的保护技术。一种方法是不响应所有被按下的键,直至只剩下一个按下为止;另一种方法是将所有按下键的信息依次存入内部缓冲器。“N键锁定”技术是处理一个键,任何其它按下又松开的键不产生任何代码。通常是第一个被按下或松开的键产生代码。这种方法最简单也最常用。

来源:单片机与嵌入式系统应用   作者:河南安阳大学 刘爱琴 黄楠  2006/2/12 0:00:00
栏目: [ ]

相关阅读

安森美推出新的高功率图腾柱PFC控制器,满足具挑战的能效标准

动态功耗低至60μA/MHz!助力设备超长续航,首选国民技术低功耗MCU!