发明名称 基于布尔处理的键盘矩阵解读方法
摘要 本发明涉及基于布尔处理的键盘矩阵解读方法,整个键盘矩阵的扫描解读过程都能归结为系列的布尔“位”的操作,解读过程包括如下步骤:定义各标志位;键盘矩阵输出线扫描;查询有无键按下;查询键解读标志位;消抖动延时;查询相对应那个输入端口电平有变化;查询相对应那个输入端口输出扫描电平;相对应那个键作具体的解释处理;置位键解读标志位。本发明提供具有“位”操作查询的、输入口线能随意分散布置、解读更为明快准确及结构更为新颖的键盘矩阵扫描解读模式;使整个键盘矩阵的扫描显得简捷高效;键盘矩阵的解读更为明快准确。改变了传统的为了保证键每闭合一次MCU只作一次处理,需等待键释放后才对其进行键解释处理的弊病。
申请公布号 CN101001086A 申请公布日期 2007.07.18
申请号 CN200710066693.4 申请日期 2007.01.12
申请人 宁波天安(集团)股份有限公司 发明人 张春峰
分类号 H03M11/20(2006.01);H03M11/00(2006.01);G06F3/023(2006.01) 主分类号 H03M11/20(2006.01)
代理机构 宁波市天晟知识产权代理有限公司 代理人 张文忠
主权项 1、基于布尔处理的键盘矩阵解读方法,其特征是:整个键盘矩阵的扫描解读过程都能归结为系列的布尔“位”的操作,解读过程包括如下步骤:步骤一是定义各标志位,充分利用现行MCU单片机内部能进行位操作的RAM资源,在源程序的头文件中,运用伪指令来定义系统中所牵涉的各标志位;步骤二是键盘矩阵输出线扫描,通过逐个改变输出行线端口的电平来实现的,任何时候有效扫描输出端口只有一个;步骤三是查询有无键按下,有无键按下能通过对整个键盘扫描输入口实时状况的查询来确定,有键按下了,键盘扫描输入端口也就相应有所改变了;若无键按下时,则清键解读标志位为逻辑“0”;步骤四是查询键解读标志位;检查有键按下后首先查询键解读标志位处于逻辑“0”还是逻辑“1”状态,以助控制键每闭合一次,MCU只作一次处理;步骤五是消抖动延时;进行消抖动延时是用来消除“干扰抖动”借以判别是否确有一次键按下,避免因抖动而引起误动作;消抖动延时的具体进行能调备用的消抖动延时程序;也能借助对系统大循环次数的计数、或动用MCU内部定时器的中断来实现消抖动延时。步骤六是查询相对应那个输入端口电平有变化;对扫描输入口线,依次逐个查询相对应那个输入端口的电平有变化,即被“拉低”,以进一步查询与该口线交叉相关的那个输出口线;步骤七是查询相对应那个输入端口输出扫描电平;由于键按下时,交叉点行列所对应的端口都是唯一的,因此,在查到某个输入端口被拉为低电平的前提下,只要依次逐个查询是那个端口输出扫描电平就能确定按下的具体是那一个键了;步骤八是相对应那个键作具体的解释处理;一旦由输出口线为行线、与输入口线为列线的交叉确定了是那一个键按下,则对该键赋予其相应的解释处理;步骤九是置位键解读标志位;一次按键解读完毕后,为了保证键每闭合一次MCU只作一次处理,将置键解读标志位为逻辑″1″。
地址 315709浙江省宁波市象山天安路1118号宁波天安(集团)股份有限公司