您当前的位置:五五电子网电子知识电工技术电工文摘采用布尔处理的键盘矩阵解读方法分析 正文
采用布尔处理的键盘矩阵解读方法分析

采用布尔处理的键盘矩阵解读方法分析

点击数:7307 次   录入时间:03-04 11:59:32   整理:http://www.55dianzi.com   电工文摘

  因为输出口线为行线,与输入口线为列线的交叉点是唯一的,故确定了输出哪一端口与输入哪一端口,也就确定了具体哪一个键(i号键)按下了,就能赋予该键相应的解释处理。整个过程中,没必要区别哪个是数字键、哪个是功能键。每一个键的解读都是等价的,是数字键就直接赋予其相应的数值处理,是功能键就直接赋予其具体的功能解释。

2.9  置位键解读标志位

  为保证键每闭合一次MCU只作一次处理,每一次键解读后都将置键解读标志位为逻辑1。对于键解读标志位的置位,可以在每一个键解释处理完毕后进行,也可在消抖动延时后就进行一次总置。不管键有多少个,键解读标志位用的却是同一个。

  其实,引入了键解读标志位,不只是控制键每闭合一次MCU只作一次处理,还可对那些持久按着的键有控地进行多次处理(如用于对一些数据递进、或递减的连续设置等)。

3  原理综述

  本文提出基于布尔处理的键盘矩阵解读方法。其原理如下:

  在键盘矩阵扫描时,首先检查有否键按动。若无键按动,则清零一次键解读标志位就返回;若有键按下,则再查询键解读标志位是逻辑0还是逻辑1。如果是逻辑1,表明本次按键已解读过,可直接从键扫描处理程序中返回;如果是逻辑0,说明本次按键尚未解读过,则启用消抖动延时。经消抖动延时后即查询键盘矩阵输入口线的各端口是否有拉低。若一个端口也没被拉低,则说明本次按键无效,那可能是某种干扰引起的“抖动”,立即从键扫描处理程序中返回;若查询到其中之一端口的电平被拉低了,则表明本次按键盘是有效的,将跳转查询与之相交的那个扫描有效输出口线,进而确定具体是哪一个键按下,并跳转赋予其相应的解释处理。解释处理后,置键解读标志位为逻辑1再返回,即完成一次键盘矩阵的扫描解读。

  不管键盘矩阵有多少个键,其扫描确定一个具体键所需位查询的总次数S不会大于行数x与列数y之和;但也不少于2次,即2≤S≤x+y。如上述的6×5矩阵,最多所需位查询总次数S=5+6=11。当第30号键按下,查询到最后一列Pn.4端口电平被拉低,继而跳转查询到有效扫描输出是最后一行Pm.5端口;但至少所需位查询总次数S=1+1=2。当1号键按下,先查询到第1列Pn.0端口电平被拉低,继而跳转查询到有效扫描输出是第1行Pm.0端口。

结语

  运用布尔位操作处理进行键盘矩阵的解读,可适用于所有基于MCU的智能化仪器仪表中键盘矩阵的解读。运用布尔位操作方式,改变了传统的用数据字节处理方式。扫描解读过程中,没有键值计算,没有键对应的特征值返回,同时也省去了求键值时以辅助保存原值的行值、列值缓冲寄存器等,有的只是位的操作查询。构成键盘矩阵的输入口线可以是连续的,也可以是不连续的。在电路设计布线时,哪一个端口方便就用哪个端口作键盘矩阵输入线。换言之,输入口线可随意分散在不同P口中,这种灵活、便捷的方式是传统的用键值处理的方式所不及的;同时也改变了传统的为了保证键每闭合一次MCU只作一次处理,需等待键释放后才对其进行键解释处理的做法。整个键盘矩阵的扫描显得简捷、高效,键盘矩阵的解读更为明快、准确。

上一页  [1] [2] 


本文关键字:键盘  布尔  电工文摘电工技术 - 电工文摘

《采用布尔处理的键盘矩阵解读方法分析》相关文章>>>