CN101001086A - 基于布尔处理的键盘矩阵解读方法 - Google Patents

基于布尔处理的键盘矩阵解读方法 Download PDF

Info

Publication number
CN101001086A
CN101001086A CN 200710066693 CN200710066693A CN101001086A CN 101001086 A CN101001086 A CN 101001086A CN 200710066693 CN200710066693 CN 200710066693 CN 200710066693 A CN200710066693 A CN 200710066693A CN 101001086 A CN101001086 A CN 101001086A
Authority
CN
China
Prior art keywords
key
port
keyboard matrix
line
input port
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN 200710066693
Other languages
English (en)
Other versions
CN101001086B (zh
Inventor
张春峰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
TIANAN (GROUP) CO Ltd NINGBO CITY
Original Assignee
TIANAN (GROUP) CO Ltd NINGBO CITY
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by TIANAN (GROUP) CO Ltd NINGBO CITY filed Critical TIANAN (GROUP) CO Ltd NINGBO CITY
Priority to CN200710066693A priority Critical patent/CN101001086B/zh
Publication of CN101001086A publication Critical patent/CN101001086A/zh
Application granted granted Critical
Publication of CN101001086B publication Critical patent/CN101001086B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Input From Keyboards Or The Like (AREA)

Abstract

本发明涉及基于布尔处理的键盘矩阵解读方法,整个键盘矩阵的扫描解读过程都能归结为系列的布尔“位”的操作,解读过程包括如下步骤:定义各标志位;键盘矩阵输出线扫描;查询有无键按下;查询键解读标志位;消抖动延时;查询相对应那个输入端口电平有变化;查询相对应那个输入端口输出扫描电平;相对应那个键作具体的解释处理;置位键解读标志位。本发明提供具有“位”操作查询的、输入口线能随意分散布置、解读更为明快准确及结构更为新颖的键盘矩阵扫描解读模式;使整个键盘矩阵的扫描显得简捷高效;键盘矩阵的解读更为明快准确。改变了传统的为了保证键每闭合一次MCU只作一次处理,需等待键释放后才对其进行键解释处理的弊病。

Description

基于布尔处理的键盘矩阵解读方法
技术领域
本发明涉及一种键盘扫描解读的方法,尤其涉及基于布尔处理的键盘矩阵扫描解读方法,用于MCU单片机。
背景技术
传统的各种电子专业的教课书上、以及可查阅的文献资料中,有关MCU单片机运作键盘矩阵的扫描解读大都是通过逐行逐列扫描、键值计算、诸对应键特征量返回、查表等数据处理的方式来进行扫描解读的,为此还得设定在求键值时以辅助保存原值的行值、列值缓冲寄存器等;有的为了保证键每闭合一次MCU只作一次处理,往往会在程序运行中等闭合键释放且消抖动延时后才对其进行键解释处理;这样键盘的扫描解读颇占CPU时间,同时降低了CPU的工作效力。
发明内容
本发明所要解决的技术问题是针对上述现有技术现状而提供具有“位”操作查询的、输入口线能随意分散布置、解读更为明快准确及结构新颖的基于布尔处理的键盘矩阵解读方法。其改变现有键盘矩阵扫描解读的方式,构建一个新颖的键盘矩阵扫描解读模式;使整个键盘矩阵的扫描显得简捷高效;键盘矩阵的解读更为明快准确。
本发明解决上述技术问题所采用的技术方案为:基于布尔处理的键盘矩阵解读方法,其中:整个键盘矩阵的扫描解读过程都能归结为系列的布尔“位”的操作,解读过程包括如下步骤:
步骤一是定义各标志位,充分利用现行MCU单片机内部能进行位操作的RAM资源,在源程序的头文件中,运用伪指令来定义系统中所牵涉的各标志位;
步骤二是键盘矩阵输出线扫描,通过逐个改变输出行线端口的电平来实现的,任何时候有效扫描输出端口只有一个。
步骤三是查询有无键按下,有无键按下能通过对整个键盘扫描输入口实时状况的查询来确定,有键按下了,键盘扫描输入端口状况也就相应有所改变了;若无键按下时,则清键解读标志位为逻辑“0”;
步骤四是查询键解读标志位;检查有键按下后首先查询键解读标志位处于逻辑“0”还是逻辑“1”状态,以助控制键每闭合一次,MCU只作一次处理。
步骤五是消抖动延时;进行消抖动延时是用来消除“干扰抖动”借以判别是否确有一次键按下,避免因抖动而引起误动作;消抖动延时的具体进行能调备用的消抖动延时程序;也能通过借助对系统大循环次数的计数、或动用MCU内部定时器的中断来实现消抖动延时。
步骤六是查询相对应那个输入端口电平有变化;对扫描输入口线,依次逐个查询相对应那个输入端口的电平有变化,即被“拉低”,以进一步查询与该口线交叉相关的那个输出口线;
步骤七是查询相对应那个输入端口输出扫描电平;由于键按下时,交叉点行列所对应的端口都是唯一的,因此,在查到某个输入端口被拉为低电平的前提下,只要依次逐个查询是那个端口输出扫描电平就能确定按下的具体是那一个键了;
步骤八是相对应那个键作具体的解释处理;一旦由输出口线为行线、与输入口线为列线的交叉确定了是那一个键按下,则对该键赋予其相应的解释处理;
步骤九是置位键解读标志位;一次按键解读完毕后,为了保证键每闭合一次MCU只作一次处理,将置键解读标志位为逻辑″1″。
优化的技术措施还包括:
上述的键盘矩阵输出线扫描与所配置的数码显示电路中的数码显示的位扫描程序合二为一,该键盘矩阵输出线扫描的扫描程序纳入到系统扫描显示的大循环中。
上述的输入端口集中在同一个Pn口的,其中,n=0、1、2、……;能用对整个Pn口的字节数据的判别来确定键有否按动,也能运用依次对Pn口的几个端口Pn.y进行“位”的查询来确定有否键按动,其中,y=0、1、2、……。
上述的输入端口零乱分散于P0口、P2口、……Pn口等不同的P口上,仅能通过依次地对输入各端口的“位”状态变化的查询,来确定有否键按动了对若检查到有键按下就转入到键盘矩阵扫描解读程序,若没有键按下时,则清键解读标志位为逻辑“0”,为下次按键解读作好准备。
上述的键解读标志位处于逻辑“0”,本次按键尚未解读过,经消抖动延时后需进一步对键盘矩阵的输出、输入口线进行查询来确定是那一个键,并作相应处理;所述的键解读标志位处于逻辑“1”,则表明本次按键已解读过了,则能直接从键扫描处理程序中“返回”;以保证键每闭合一次,MCU只作一次处理。
上述的消抖动延时步骤设置有一个消抖动延时标志位及一个消抖动辅助位,觉察有键按下、查询键解读标志位为“0”时就“置位”消抖动延时标志位及其辅助位调备用的消抖动延时程序或借助对系统大循环次数的计数、或动用MCU内部定时器的中断来实现消抖动延时。
上述的消抖动延时后输入端口的Pn.y几个端口的其中任一端口电平被拉低了,则表明本次按键是有效的,将跳转至查询与该口线交叉相关的那个输出口线。
上述的交叉点行列对应的输出端口Pm.x与输入端口Pn.y是由按键连接“交叉”的;当键按下时那一个输入端口的电平被拉低确定后,则跳转到查询Pm.x的那个端口输出有效的扫描电平,进而确定具体那一个键按下;其中,m=0、1、2、……,x=0、1、2、……;所述的输入端口中每一Pn.y口都与输出端口pm.x每个口有关联,而每一Pn.y口线与Pm.x的各口线中任一口线相交都揭出一个键号。
上述的键盘矩阵输出线扫描确定一个具体键所需“位”查询的总次数(s)至多为行数(x)与列数(y)之和,并至少为2次;即2≤S≤x+y。
上述的行数x为5,列数y为6的6×5矩阵,所需“位”查询总次数S=5+6=11;第30号键按下,查询到最后一列Pn.4端口电平被拉低,继而跳转查询到有效扫描输出是最后一行Pm.5端口;至少所需“位”查询总次数S=1+1=2;当1号键按下,先查询到第一列Pn.0端口电平被拉低,继而跳转查询到有效扫描输出是第一行Pm.0端口。
本发明在于运用布尔处理技术对键盘矩阵进行扫描解读;即运用布尔“位”操作方式改变了传统的用数据“字节”处理方式;扫描解读过程中,没有键值计算、没有键对应的特征值返回,同时也省去了求键值时以辅助保存原值的行值、列值缓冲寄存器,有的只是“位”的操作查询;构成键盘矩阵的输入口线可以是连续的,也可以是不连续的——在电路设计布线时那一个端口方便就用那个端口作键盘矩阵输入线,换言之就是输入口线可随意分散在不同P口中——这种灵活便捷是传统的用键值处理的方式所不能企及的;同时也改变了传统的为了保证键每闭合一次MCU只作一次处理,需等待键释放后才对其进行键解释处理的弊病。
附图说明
图1是本发明的键盘矩阵扫描解读程序流程简图;
图2是本发明的键盘矩阵电路结构图;
图3是本发明的带数码显示驱动的键盘矩阵电路结构图;
图4是本发明的键盘矩阵扫描过程倒树形结构图;
图5是本发明的键盘矩阵扫描程序跳转结构图。
具体实施方式
以下结合附图并以6×5键盘矩阵解读方法实施例对本发明作进一步详细描述。
基于布尔处理的键盘矩阵解读方法,其流程如图1所示,键盘的解读步骤包括如下:
1、定义各标志位步骤;系统中所牵涉的各标志位是运用伪指令来定义的,于此利用了现行MCU单片机内部能进行位操作的RAM资源;由于伪指令所揭出的定义只是写在源程序的头文件里的,是不会产生可执行目标代码的,因而对标志位定义的“操作”在图1的键盘矩阵扫描解读程序流程简图中就不必标述了;
2、键盘矩阵输出线扫描步骤;输出线扫描过程是通过逐个改变输出行线端口的电平来实现的,如图2所示,输入口线平常所有端口都处于高电平状态;输出口线是逐个循环的输出低电平,也就是保持任何时候只有一个口线输出低电平;通过键的按下接通,才有可能拉低相对应输入口线的端口电平。
如果系统中配置有数码显示电路,如图3所示,输入口线平常所有端口都处于高电平状态;输出口线是逐个循环的输出高电平,通过反相组件后保持任何时候只有一个口线输出低电平;通过键的按下接通,拉低相对应输入口线的端口电平;反相组件与键的联接端上并联有数码显示器的“位”选线;那么键盘输出线扫描能与数码显示的位扫描程序合二为一了,这样能省却单独的键盘输出线扫描,且把该扫描程序纳入到系统扫描显示的大循环中。
3、查询有无键按下步骤;有无键按下能通过对整个键盘扫描输入口状况的查询来确定,有键按下了,键盘扫描输入端口也就相应有所改变了;如果输入端口如图2所示,是集中在同一个Pn口的,其中,n=0、1、2、……,那么可以用对整个Pn口的字节数据的判别来确定键有否按动,也能运用依次对Pn口的几个端口Pn.y进行位的查询来确定有否键按动,其中,y=0、1、2、3、4。
如果输入口不是集中的,因为了设计布线的方便而零乱分散于P0口、P2口、……Pn口等不同的P口上,只能通过依次地对输入各端口的位状态变化的查询来确定有否键按动了,若检查到有键按下就转入到键盘矩阵扫描解读程序。
若没有键按下时,则清键解读标志位为逻辑0,为下次按键解读作好准备。其实,查询有无键按下的程序也能纳入到系统的大循环中去进行。
4、判断键解读标志步骤查询键解读标志位;检查有键按下后首先查询键解读标志位的状态是处于逻辑0还是逻辑1;若是逻辑0说明本次按键尚未解读过,经消抖动延时后需进一步对键盘矩阵的输出、输入口线进行查询来确定是那一个键,并作相应处理;
若键解读标志位是逻辑1,则表明本次按键已解读过了,没必要浪费CPU时间,能直接从键扫描处理程序中返回;这就实现了键每闭合一次,MCU只作一次处理的效果。改变了传统的为了保证键每闭合一次,MCU只作一次处理,程序中需等待键释放后才对其进行解释处理的弊病。
5、判断消抖动延时步骤消抖动延时;当觉察有键按下、查询键解读标志位为0时就置位消抖动延时标志位及其辅助位进入消抖动延时处理;消抖动延时的具体进行能调备用的消抖动延时程序;也能借助对系统大循环次数的计数、或动用MCU内部定时器的中断来实现消抖动延时,这样就不必设置专门的延时程序而占用CPU的时间了;消抖动延时结束时清零消抖动延时标志位及其辅助位。
6、查询那个输入口线有变步骤查询相对应那个输入端口电平有变化;平常所有输入端口都处于高电平,经消抖动延时后立马查询键盘矩阵各输入口线的电平是否有被拉低,若一个端口也没被拉低说明本次按健无效(可能是某种干扰引起的抖动),于是直接返回。
若依次查询如图2中作为输入的Pn.y(Pn.0、Pn.1y、Pn.2、Pn.3、Pn.4)五个端口的其中某个端口电平被拉低了,则表明本次按键是有效的,将跳转至查询与该口线交叉相关的那个输出口线。
7、扫描那个输出口线步骤查询相对应那个输入端口输出扫描电平;如图2这样的键盘矩阵的电路结构中,输出端口Pm.x与输入端口Pn.y是直接由键连接交叉的。当键按下时那一个输入端口的电平被拉低确定后,则跳转到查询Pm.x(Pm.0、Pm.1、Pm.2、Pm.3、Pm.4、Pm.5)六个端口中是那个端口输出低电平,进而确定具体那一个键按下,跳转至几号键进行解释处理;任何时候扫描输出低电平的端口是独一的,也只有行扫描输出低电平的那个Pm.x口,才会将列输入Pn.y口的电平拉低,这时,键按下有效交叉的行、列相应端口都处于低电平。
若运用典型的51系列的指令去写汇编程序来解读矩阵的具体键时,则有
Key_scan:    JNB Pn.y,Key_matrix_j;当输入端口Pn.y(y=0、1、2、3、4)
              …                    ;被拉低,则跳转至Key_matrix_j(j=y)
              …
              LJMP      Return:       若端口Pn.y一个也没被拉低,则返回
Key_matrix_j:JNB Pm.x,Key_gloze_i ; 当知晓Pn.y的某个端口被拉低,则再
…                  ;查询Pm.x(x=0、1、2、3、4、5)的
…                  ;那个端口扫描输出低电平来确定具体是
…                  ;i号按键,则跳转至Key_gloze_i
…                  ;(i=1、2、3、……、29、30)以对i号键
…                  ;作相应的解释处理
              LJMP   Return
Key_gloze_1: …              ;1号键解释处理
              LJMP   Return
Key_gloze_2: …              ;2号键解释处理
              LJMP   Return
Key_gloze_3: …              ;3号键解释处理
              LJMP   Return
Key_gloze_29:…              ;29号键解释处理
              LJMP   Return
Key_gloze_30:…              ;30号键解释处理
Return:      RET             ;键盘矩阵扫描解读返回
以上指令汇编语言所述的键盘矩阵扫描解读过程,可借助图4来较形象化的解释:
由图4可见,每一Pn.y(y=0、1、2、3、4)口都与Pm.x(x=0、1、2、3、4、5)的六个口有关联,而每一Pn.y口线与Pm.x的六个口线中任一口线相交都揭出一个键(i号);结合以上程序譬如,若输入端口Pn.0被拉低,且是端口Pm.1有效扫描输出低电平,则有(JNB Pn.0,Key_matrix_0)指令跳转至Key_matrix_0,继而查询输出端口(JNBPm.1,Key_gloze_6)跳转至Key_gloze_6,也就是先查询到Pn.0被拉低跳转至Key_matrix_0→再查询到Pm.1扫描输出低电平跳转至Key_gloze_6→揭出是6号键按下并赋予其相应的解释处理;同理,若输入端口Pn.3被拉低,且是端口Pm.5有效扫描输出低电平,则有(JNB Pn.3,Key_matrix_3)指令跳转至Key_matrix_3,继而查询输出端口(JNB Pm.5,Key_gloze_29)跳转至Key_gloze_29,也就是先查询到Pn.3被拉低跳转至Key_matrix_3→再查询到Pm.5扫描输出低电平跳转至Key_gloze_29→揭出是29号键按下并赋予其相应的解释处理,依次类推。
如果键盘矩阵的电路结构如图3所示,其扫描输出端口Pm.x不是直接与输入端口Pn.y交叉的,而是经过用于数码显示位驱动的反相组件后再与入端口Pn.y交叉的。为此,其扫描输出有效端口不是低电平了,而是输出高电平经反相组件后再成为低电平,通过按键同样将与之交叉的输入端口线拉低。所以,在查询输入端口时与图2所示的是相同的,而在查询扫描输出有效端口时与图2的就有所不同了。
图2所示电路结构查询的是那个端口扫描输出低电平,有:JNB Pm.x,Key_gloze_i;图3所示电路结构查询的却是那个端口扫描输出高电平,则:JB Pm.x,Key_gloze_i;譬如图4可知,若输入端口Pn.2被拉低,且是端口Pm.3有效扫描输出高电平,则有先查询到Pn.2被拉低→再查询到Pm.3扫描输出高电平→揭出是18号键按下并赋予其相应的解释处理;同理,若输入端口Pn.4被拉低,且是端口Pm.2有效扫描输出高电平,则有先查询到Pn.4被拉低→再查询到Pm.2扫描输出高电平→揭出是15号键按下并赋予其相应的解释处理,依次类推;具体的程序跳转如图5所示,可见其过程都是位的查询跳转。
8、执行各对应键具体处理步骤;因为输出口线为行线,与输入口线为列线的交叉点是唯一的,故而确定了输出那一端口与输入那一端口也就确定了具体那一个键(i号键)按下了,就能赋予该键相应的解释处理。本实施例中没必要区别那个是数字键、那个是功能键,在这儿,每一个键的解读都是等价的,是数字键就直接赋予其相应的数值处理,是功能键就直接赋予其具体的功能解释。
9、置位键解读标志位步骤进行置键解读标志位;为了保证键每闭合一次MCU只作一次处理,每一次键解读后都将置键解读标志位为逻辑1;对于键解读标志位的置位,可以在每一个键解释处理完毕后进行,也可在消抖动延时后就进行一次总置便可以了;不管键有多少个,键解读标志位用的却是同一个。
其实,引入了键解读标志位,不只是控制键每闭合一次MCU只作一次处理,还可对持久按着的键有控地进行多次处理(如用于对一些数据递进、或递减的连续设置等);只要有控地给定每时间间隔清零一次键解读标志位就可以了,而这时间间隔也可通过对系统大循环次数的计数、或启动MCU内部定时器的中断来实现。
本发明提出基于布尔处理的键盘矩阵解读方法,在键盘矩阵扫描时首先检查有否键按动,若无键按动时清零一次键解读标志位再返回;若有键按下时查询键解读标志位是逻辑=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号键按下,先查询到第一列Pn.0端口电平被拉低,继而跳转查询到有效扫描输出是第一行Pm.0端口;
本发明优点在于:运用布尔位操作处理进行键盘矩阵的解读,可适用于所有基于MCU单片机运作的智能化仪器仪表中键盘矩阵的解读;运用布尔位操作方式,改变了传统的用数据字节处理方式;扫描解读过程中,没有键值计算、没有键对应的特征值返回,同时也省去了求键值时以辅助保存原值的行值、列值缓冲寄存器等,有的只是位的操作查询;构成键盘矩阵的输入口线可以是连续的,也可以是不连续的,在电路设计布线时那一个端口方便就用那个端口作键盘矩阵输入线,换言之就是输入口线可随意分散在不同P口中,这种灵活便捷是传统的用键值处理的方式所不能及的;同时也改变了传统的为了保证键每闭合一次MCU只作一次处理,需等待键释放后才对其进行键解释处理的弊病。
虽然本发明已通过参考优选的实施例进行了图示和描述,但是,本专业普通技术人员应当了解,在权利要求书的范围内,可作形式和细节上的各种各样变化。

Claims (10)

1、基于布尔处理的键盘矩阵解读方法,其特征是:整个键盘矩阵的扫描解读过程都能归结为系列的布尔“位”的操作,解读过程包括如下步骤:
步骤一是定义各标志位,充分利用现行MCU单片机内部能进行位操作的RAM资源,在源程序的头文件中,运用伪指令来定义系统中所牵涉的各标志位;
步骤二是键盘矩阵输出线扫描,通过逐个改变输出行线端口的电平来实现的,任何时候有效扫描输出端口只有一个;
步骤三是查询有无键按下,有无键按下能通过对整个键盘扫描输入口实时状况的查询来确定,有键按下了,键盘扫描输入端口也就相应有所改变了;若无键按下时,则清键解读标志位为逻辑“0”;
步骤四是查询键解读标志位;检查有键按下后首先查询键解读标志位处于逻辑“0”还是逻辑“1”状态,以助控制键每闭合一次,MCU只作一次处理;
步骤五是消抖动延时;进行消抖动延时是用来消除“干扰抖动”借以判别是否确有一次键按下,避免因抖动而引起误动作;消抖动延时的具体进行能调备用的消抖动延时程序;也能借助对系统大循环次数的计数、或动用MCU内部定时器的中断来实现消抖动延时。
步骤六是查询相对应那个输入端口电平有变化;对扫描输入口线,依次逐个查询相对应那个输入端口的电平有变化,即被“拉低”,以进一步查询与该口线交叉相关的那个输出口线;
步骤七是查询相对应那个输入端口输出扫描电平;由于键按下时,交叉点行列所对应的端口都是唯一的,因此,在查到某个输入端口被拉为低电平的前提下,只要依次逐个查询是那个端口输出扫描电平就能确定按下的具体是那一个键了;
步骤八是相对应那个键作具体的解释处理;一旦由输出口线为行线、与输入口线为列线的交叉确定了是那一个键按下,则对该键赋予其相应的解释处理;
步骤九是置位键解读标志位;一次按键解读完毕后,为了保证键每闭合一次MCU只作一次处理,将置键解读标志位为逻辑″1″。
2、根据权利要求1所述的基于布尔处理的键盘矩阵解读方法,其特征是:所述的键盘矩阵输出线扫描与所配置的数码显示电路中的数码显示的位扫描程序合二为一,该键盘矩阵输出线扫描的扫描程序纳入到系统扫描显示的大循环中。
3、根据权利要求1或2所述的基于布尔处理的键盘矩阵解读方法,其特征是:所述的输入端口集中在同一个Pn口的,其中,n=0、1、2、……,能用对整个Pn口的字节数据的判别来确定键有否按动,也能运用依次对Pn口的几个端口Pn.y进行“位”的查询来确定有否键按动,其中,y=0、1、2、……。
4、根据权利要求1或2所述的基于布尔处理的键盘矩阵解读方法,其特征是:所述的输入端口零乱分散于P0口、P2口、……Pn口等不同的P口上,仅能通过依次地对输入各端口的“位”状态变化的查询,来确定有否键按动了对若检查到有键按下就转入到键盘矩阵扫描解读程序,若没有键按下时,则清键解读标志位为逻辑“0”,为下次按键解读作好准备。
5、根据权利要求1所述的基于布尔处理的键盘矩阵解读方法,其特征是:所述的键解读标志位处于逻辑“0”,本次按键尚未解读过,经消抖动延时后需进一步对键盘矩阵的输出、输入口线进行查询来确定是那一个键,并作相应处理;所述的键解读标志位处于逻辑“1”,则表明本次按键已解读过了,则直接从键扫描处理程序中“返回”;以实现所述的键每闭合一次,MCU只作一次处理。
6、根据权利要求1所述的基于布尔处理的键盘矩阵解读方法,其特征是:所述的消抖动延时步骤设置有一个消抖动延时标志位及一个消抖动辅助位,觉察有键按下、查询键解读标志位为“0”时就“置位”消抖动延时标志位及其辅助位的借助对系统大循环次数的计数、或动用MCU内部定时器的中断来实现消抖动延时。
7、根据权利要求3所述的基于布尔处理的键盘矩阵解读方法,其特征是:所述的输入端口的Pn.y几个端口的其中任一端口电平被拉低了,则表明本次按键是有效的,将跳转至查询与该口线交叉相关的那个输出口线。
8、根据权利要求3所述的基于布尔处理的键盘矩阵解读方法,其特征是:所述的交叉点行列对应的输出端口Pm.x与输入端口Pn.y是由按键连接“交叉”的;当键按下时那一个输入端口的电平被拉低确定后,则跳转到查询Pm.x的那个端口输出有效的扫描电平,进而确定具体那一个键按下;其中,m=0、1、2、……,x=0、1、2、……;所述的输入端口中每一Pn.y口都与输出端口Pm.x每个口有关联,而每一Pn.y口线与Pm.x的各口线中任一口线相交都揭出一个键号。
9、根据权利要求8所述的基于布尔处理的键盘矩阵解读方法,其特征是:所述的键盘矩阵输出线扫描确定一个具体键所需“位”查询的总次数(s)至多为行数(x)与列数(y)之和,并至少为2次;即2≤S≤x+y。
10、根据权利要求9所述的基于布尔处理的键盘矩阵解读方法,其特征是:所述的行数x为5,列数y为6的6×5矩阵,所需“位”查询总次数S=5+6=11;第30号键按下,查询到最后一列Pn.4端口电平被拉低,继而跳转查询到有效扫描输出是最后一行Pm.5端口;至少所需“位”查询总次数S=1+1=2;当1号键按下,先查询到第一列Pn.0端口电平被拉低,继而跳转查询到有效扫描输出是第一行Pm.0端口。
CN200710066693A 2007-01-12 2007-01-12 基于布尔处理的键盘矩阵解读方法 Expired - Fee Related CN101001086B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN200710066693A CN101001086B (zh) 2007-01-12 2007-01-12 基于布尔处理的键盘矩阵解读方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN200710066693A CN101001086B (zh) 2007-01-12 2007-01-12 基于布尔处理的键盘矩阵解读方法

Publications (2)

Publication Number Publication Date
CN101001086A true CN101001086A (zh) 2007-07-18
CN101001086B CN101001086B (zh) 2010-05-26

Family

ID=38692925

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200710066693A Expired - Fee Related CN101001086B (zh) 2007-01-12 2007-01-12 基于布尔处理的键盘矩阵解读方法

Country Status (1)

Country Link
CN (1) CN101001086B (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101958717A (zh) * 2010-09-29 2011-01-26 惠州Tcl移动通信有限公司 一种按键扫描的方法及按键扫描装置
CN102050363A (zh) * 2010-12-22 2011-05-11 重庆伊士顿电梯有限责任公司 高楼层电梯控制主令板及控制方法
CN102722120A (zh) * 2012-06-05 2012-10-10 中国电子科技集团公司第四十一研究所 一种超低功耗的仪器用键盘控制器
CN101710949B (zh) * 2009-12-04 2013-12-18 深圳创维数字技术股份有限公司 带键盘的数字电视接收机
CN105141297A (zh) * 2015-09-10 2015-12-09 深圳市霍尔芯电子有限公司 定时控制芯片、及其控制方法和电池充电电路
CN107301726A (zh) * 2017-07-03 2017-10-27 惠州市天泽盈丰物联网科技股份有限公司 智能卡数据采集终端、按键扫描系统及方法
CN108829284A (zh) * 2018-05-31 2018-11-16 浙江工业大学 一种基于嵌入式系统的多元数据采集系统
CN108919974A (zh) * 2016-01-05 2018-11-30 湖南工业大学 一种矩阵式键盘状态识别及编码方法

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104331170B (zh) * 2014-10-30 2017-12-01 北京海兰盈华科技有限公司 实现矩阵键盘中组合按键的方法及装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1126016C (zh) * 2000-12-08 2003-10-29 深圳市中兴通讯股份有限公司 利用可编程器件进行键盘扫描的装置
CN1323342C (zh) * 2004-08-20 2007-06-27 王宝库 一种计算机键盘的控制方法

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101710949B (zh) * 2009-12-04 2013-12-18 深圳创维数字技术股份有限公司 带键盘的数字电视接收机
CN101958717A (zh) * 2010-09-29 2011-01-26 惠州Tcl移动通信有限公司 一种按键扫描的方法及按键扫描装置
CN101958717B (zh) * 2010-09-29 2013-04-03 惠州Tcl移动通信有限公司 一种按键扫描的方法及按键扫描装置
CN102050363A (zh) * 2010-12-22 2011-05-11 重庆伊士顿电梯有限责任公司 高楼层电梯控制主令板及控制方法
CN102050363B (zh) * 2010-12-22 2013-08-28 重庆伊士顿电梯有限责任公司 高楼层电梯控制主令板及控制方法
CN102722120A (zh) * 2012-06-05 2012-10-10 中国电子科技集团公司第四十一研究所 一种超低功耗的仪器用键盘控制器
CN105141297A (zh) * 2015-09-10 2015-12-09 深圳市霍尔芯电子有限公司 定时控制芯片、及其控制方法和电池充电电路
CN108919974A (zh) * 2016-01-05 2018-11-30 湖南工业大学 一种矩阵式键盘状态识别及编码方法
CN107301726A (zh) * 2017-07-03 2017-10-27 惠州市天泽盈丰物联网科技股份有限公司 智能卡数据采集终端、按键扫描系统及方法
CN108829284A (zh) * 2018-05-31 2018-11-16 浙江工业大学 一种基于嵌入式系统的多元数据采集系统

Also Published As

Publication number Publication date
CN101001086B (zh) 2010-05-26

Similar Documents

Publication Publication Date Title
CN101001086B (zh) 基于布尔处理的键盘矩阵解读方法
KR100638703B1 (ko) 데이터 프로세싱 시스템용 셀룰러 엔진
US6920551B1 (en) Configurable processor system
CN1137425C (zh) 动态电源管理环境的数据路径时钟偏移管理
JP3528922B2 (ja) アレイ型プロセッサ、データ処理システム
CN102176241A (zh) 使用统一着色器的图形处理结构
CN1290003C (zh) 使处理器与协处理器接口的方法和设备
EP0135127A2 (en) Personal computer interface
EP1293891A3 (en) Arithmetic processor
EP1267257A3 (en) Conditional execution per data path slice
CN102598061A (zh) 具有多个着色器引擎的处理单元
US6167508A (en) Register scoreboard logic with register read availability signal to reduce instruction issue arbitration latency
WO1998028681A1 (en) Method and apparatus for performing concurrent write operations to a single-write-input register file and an accumulator register
CA2027572A1 (en) Controller for direct memory access
EP0094493B1 (en) Print buffering scheme for a key to print operation
EP0982655A2 (en) Data processing unit and method for executing instructions of variable lengths
US20080107339A1 (en) Image processing apparatus with simd-type microprocessor to perform labeling
DE19735349B4 (de) Vektorprozessor und Verfahren zu dessen Betrieb
CN101441761B (zh) 图形处理器单元管线中的条件执行位
JPH0546413A (ja) マイクロプロセツサ
CN101401088A (zh) 具有高速pe间数据再配置功能的处理器阵列系统
US5872964A (en) Comparison operating unit and graphic operating system
CN112470136A (zh) 直接存储器存取控制器
US7107478B2 (en) Data processing system having a Cartesian Controller
JP3119618B2 (ja) データ処理装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20100526

Termination date: 20130112

CF01 Termination of patent right due to non-payment of annual fee