CN108847847A - 一种键盘状态变化脉冲产生方法 - Google Patents
一种键盘状态变化脉冲产生方法 Download PDFInfo
- Publication number
- CN108847847A CN108847847A CN201810591958.0A CN201810591958A CN108847847A CN 108847847 A CN108847847 A CN 108847847A CN 201810591958 A CN201810591958 A CN 201810591958A CN 108847847 A CN108847847 A CN 108847847A
- Authority
- CN
- China
- Prior art keywords
- state
- keyboard
- buffer
- key
- register
- 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
Links
- 230000008859 change Effects 0.000 title claims abstract description 48
- 238000004519 manufacturing process Methods 0.000 title claims abstract description 13
- 239000000872 buffer Substances 0.000 claims abstract description 126
- 238000005070 sampling Methods 0.000 claims description 54
- 239000011159 matrix material Substances 0.000 claims description 46
- 230000000630 rising effect Effects 0.000 claims description 16
- 230000001960 triggered effect Effects 0.000 claims description 10
- 210000001367 artery Anatomy 0.000 claims description 8
- 210000003462 vein Anatomy 0.000 claims description 8
- 238000004080 punching Methods 0.000 claims description 7
- 238000003860 storage Methods 0.000 claims description 6
- 230000003139 buffering effect Effects 0.000 claims description 5
- 229910002056 binary alloy Inorganic materials 0.000 claims description 2
- 238000000034 method Methods 0.000 abstract description 17
- 230000004048 modification Effects 0.000 abstract description 3
- 238000012986 modification Methods 0.000 abstract description 3
- 239000013256 coordination polymer Substances 0.000 description 52
- 230000006870 function Effects 0.000 description 13
- 238000012423 maintenance Methods 0.000 description 13
- 238000010586 diagram Methods 0.000 description 10
- 238000003825 pressing Methods 0.000 description 4
- 230000008569 process Effects 0.000 description 3
- 241001269238 Data Species 0.000 description 2
- 102100040856 Dual specificity protein kinase CLK3 Human genes 0.000 description 2
- 101000749304 Homo sapiens Dual specificity protein kinase CLK3 Proteins 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 102100040862 Dual specificity protein kinase CLK1 Human genes 0.000 description 1
- 102100040844 Dual specificity protein kinase CLK2 Human genes 0.000 description 1
- 102100040858 Dual specificity protein kinase CLK4 Human genes 0.000 description 1
- 101000749294 Homo sapiens Dual specificity protein kinase CLK1 Proteins 0.000 description 1
- 101000749291 Homo sapiens Dual specificity protein kinase CLK2 Proteins 0.000 description 1
- 101000749298 Homo sapiens Dual specificity protein kinase CLK4 Proteins 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000033228 biological regulation Effects 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000007688 edging Methods 0.000 description 1
- 230000005611 electricity Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000004807 localization Effects 0.000 description 1
- 230000007257 malfunction Effects 0.000 description 1
- 210000000352 storage cell Anatomy 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/02—Input arrangements using manually operated switches, e.g. using keyboards or dials
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/02—Input arrangements using manually operated switches, e.g. using keyboards or dials
- G06F3/023—Arrangements for converting discrete items of information into a coded form, e.g. arrangements for interpreting keyboard generated codes as alphanumeric codes, operand codes or instruction codes
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M11/00—Coding in connection with keyboards or like devices, i.e. coding of the position of operated keys
- H03M11/20—Dynamic coding, i.e. by key scanning
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Input From Keyboards Or The Like (AREA)
Abstract
一种键盘状态变化脉冲产生方法,判别键盘状态识别及编码电路输出的M位键号是否发生改变,当M位键号发生改变时,输出键盘状态变化脉冲。判别M位键号是否发生改变由M位延迟缓冲器和M个异或门实现,M位延迟缓冲器对M位键号分别进行信号延迟,M个异或门用于判别M位键号是否发生改变,M个异或门的输入分别为M位延迟缓冲器的输入、输出信号;由或门输出键盘状态变化脉冲;M个异或门的输出分别连接至或门的输入端。所述方法如果需要增减按键操作功能或者是调整按键操作功能,不需要修改电路结构,只需更改键盘状态识别及编码电路中编码器的编码内容即可,不用编写和运行程序,工作可靠。
Description
本发明专利申请为分案申请,原案申请号为201610004249.9,申请日为2016年1月5日,发明名称为矩阵式键盘状态识别及编码电路。
技术领域
本发明涉及一种键盘的扫描定位信号产生与输出方法,尤其是一种键盘状态变化脉冲产生方法。
背景技术
随着嵌入式技术的不断发展,当前各类电子产品普遍采用微控制器作为控制核心,键盘作为主要的输入设备,得到了广泛的应用。
目前的键盘扫描主要由微控制器所控制,需要通过运行微控制器中的程序来进行,遇到干扰,造成程序飞跑,扫描程序将不能正常工作。
申请号为CN201010153560.2的发明专利“一种矩阵键盘的快速扫描定位方法”采用键盘中断触发的方式进入键盘的扫描定位过程,采用多次重复键盘扫描步骤的方法判断按键是否有效,并对所获得的键值进行状态判断;如果多次采样状态相同,则处于稳定状态,键值有效;如果多次采样状态不同,键值无效。单键操作或组合键操作需要单独判断,如是单键操作,则进入单键处理模式;如是组合键操作,则进入组合键处理模式。该专利所述方法解决了由于键盘自身的机械特性造成的键盘抖动而引起错键、连续触键等错误问题,以及对组合键和重复按键的支持问题。但所述方法单键操作与组合键操作需要分别处理;没有考虑键盘状态维持一段时间到后才执行有效操作的键盘操作功能;增减按键操作功能或者是调整按键操作功能时,需要修改键盘扫描定位程序结构。有按键按下时,所述方法是将键盘键值放到队列中,等待应用程序读取,没有采用输出中断信号的方式。
发明内容
为了解决现有键盘扫描定位方法存在的上述技术问题,本发明提供了一种键盘状态变化脉冲产生方法,包括:键盘状态识别及编码电路输出M位键号;判别键盘状态识别及编码电路输出的M位键号是否发生改变;当M位键号发生改变时,输出键盘状态变化脉冲。
判别键盘状态识别及编码电路输出的M位键号是否发生改变由M位延迟缓冲器和M个异或门实现;M位延迟缓冲器对M位键号分别进行信号延迟,M个异或门用于判别M位键号是否发生改变,M个异或门的输入分别为M位延迟缓冲器的输入、输出信号。
由或门输出键盘状态变化脉冲;M个异或门的输出分别连接至或门的输入端。
所述延迟缓冲器为边沿触发器;所述边沿触发器的触发输入端均连接至时钟脉冲;所述延迟缓冲器在时钟脉冲的有效触发沿进行数据锁存。所述延迟缓冲器或者是均为RC电路。
或门、M位延迟缓冲器和M个异或门组成键盘状态变化脉冲产生单元,键盘状态变化脉冲产生单元输出键盘状态变化脉冲。
所述键盘状态识别及编码电路包括矩阵式键盘、第一缓冲寄存器、第二缓冲寄存器、编码器。所述矩阵式键盘共有X行、Y列,设有N位键盘状态信号输出端;所述N位键盘状态信号为电平信号;所述N=X+Y。
所述第一缓冲寄存器和第二缓冲寄存器均为N位二进制寄存器,第一缓冲寄存器的N位数据输入端连接至N位键盘状态信号输出端,第二缓冲寄存器的N位数据输入端连接至第一缓冲寄存器的N位数据输出端;所述编码器有2×N位编码输入端;所述2×N位编码输入端中的N位数据输入端连接至第一缓冲寄存器的N位数据输出端,另外N位数据输入端连接至第二缓冲寄存器的N位数据输出端;所述第一缓冲寄存器的接收脉冲输入端和第二缓冲寄存器的接收脉冲输入端均连接至时钟脉冲;所述矩阵式键盘由取样脉冲控制获取键盘状态信号。
所述矩阵式键盘由X行-Y列按键矩阵、行三态缓冲器、列三态缓冲器、行状态寄存器、列状态寄存器组成;所有按键矩阵的行线分别连接至行三态缓冲器的输出端,所有按键矩阵的列线分别连接至列三态缓冲器的输出端;行三态缓冲器和列三态缓冲器的所有输入端连接至低电平;所有按键矩阵的行线分别连接至行状态寄存器的输入端,所有按键矩阵的列线分别连接至列状态寄存器的输入端;所述行状态寄存器的输出端与列状态寄存器的输出端共同组成键盘状态信号输出端。
所述行三态缓冲器在取样脉冲的低电平使能有效时,要求列状态寄存器在取样脉冲的上升沿进行数据锁存、列三态缓冲器在取样脉冲的高电平使能有效、行状态寄存器在取样脉冲的下降沿进行数据锁存;或者是,行三态缓冲器在取样脉冲的高电平使能有效时,要求列状态寄存器在取样脉冲的下降沿进行数据锁存、列三态缓冲器在取样脉冲的低电平使能有效、行状态寄存器在取样脉冲的上升沿进行数据锁存。
所述第一缓冲寄存器和第二缓冲寄存器均在时钟脉冲的有效触发沿进行数据锁存;所述第一缓冲寄存器的N位数据输出端和第二缓冲寄存器的N位数据输出端共同输出2×N位的状态码;所述状态码由有效状态码和无效状态码组成;所述编码器输出的键号由有效键号和无效键号组成;所述有效状态码由有效键盘操作或状态产生,编码器输入每一个有效状态码时对应输出相应的有效键号;所述无效状态码由无效键盘操作或状态产生,编码器输入所有无效状态码时都对应输出无效键号,无效键号为所有有效键号之外的一个值。
所述时钟脉冲的上升沿为有效触发沿,或者是时钟脉冲的下降沿为有效触发沿。
所述编码器有M位键号输出端,M值的选择应满足2M大于等于有效键号与无效键号的数量之和。
所述的N位、2×N位、M位均指二进制位;所述时钟脉冲的周期为20~100ms;所述取样脉冲的周期不大于所述时钟脉冲的周期,其特例是所述取样脉冲为所述时钟脉冲。
所述时钟脉冲和取样脉冲由振荡器输出。
本发明的有益效果是:当键盘状态识别及编码电路输出的键号发生改变时,能够输出键盘状态变化脉冲,作为接收装置的中断请求信号。将对单键操作、组合键操作、键盘维持状态操作的定位,由时钟脉冲扫描转换成同一二进制长度的状态码,采用统一编码的方式进行处理,单键操作、组合键操作、键盘维持状态操作仅体现在状态码的不同上;如果需要增减按键操作功能或者是调整按键操作功能,不需要修改电路结构,只需根据增减后的状态码与键号之间的对应关系更改编码器的编码内容、即重新修改写入只读存储器的存储内容即可。所述方法没有使用单片机、ARM等微控制器,不用运行程序,工作可靠。
附图说明
图1是键盘状态识别及编码电路原理框图;
图2是本发明实施例的矩阵式键盘电路图;
图3是本发明实施例的扫描定位电路图;
图4是本发明实施例的键盘状态变化脉冲产生单元的电路图;
图5是本发明实施例的键盘有效操作的相关波形示意图。
具体实施方式
以下结合附图对本发明作进一步说明。
图1是键盘状态识别及编码电路原理框图,包括矩阵式键盘400、第一缓冲寄存器100、第二缓冲寄存器200、编码器300。图1还包括振荡器500。
振荡器500为多谐振荡器,设有CP时钟脉冲输出端和CK取样脉冲输出端,CP时钟脉冲的周期为20~100ms,CK取样脉冲的周期不大于CP时钟脉冲的周期。
图2是本发明实施例的矩阵式键盘400的电路图,共有2行、2列,共4个按键,由按键S1、按键S2、按键S3、按键S4和连接至电源+VCC的上拉电阻R1、上拉电阻R2、上拉电阻R3、上拉电阻R4,以及行三态缓冲器401、列三态缓冲器402、行状态寄存器403、列状态寄存器404组成。行三态缓冲器401的2个输出端Y1、Y2分别连接至2根行线,列三态缓冲器402的2个输出端Y3、Y4分别连接至2根列线;行三态缓冲器401和列三态缓冲器402的所有输入端X1~X4连接至低电平。
行状态寄存器403的2个输入端D41、D42分别连接至2根行线,列状态寄存器404的2个输入端D43、D44分别连接至2根列线;行状态寄存器403的2个输出端Q41、Q42输出行状态信号I1、I2,列状态寄存器404的2个输出端Q43、Q44输出列状态信号I3、I4;行状态寄存器403的2个输出端与列状态寄存器404的2个输出端共同组成4位键盘状态信号输出端,输出键盘状态信号I1、I2、I3、I4。
实施例中,行三态缓冲器401的使能输入EN1低电平有效,列三态缓冲器402的使能输入EN2高电平有效;EN1和EN2均连接至振荡器500的CK取样脉冲输出端。行状态寄存器403与列状态寄存器404的接收脉冲输入端CLK3、CLK4均连接至振荡器500的CK取样脉冲输出端,行状态寄存器403在CK取样脉冲的下降沿进行数据锁存,列状态寄存器404在CK取样脉冲的上升沿进行数据锁存。
当行三态缓冲器401和列三态缓冲器402使用同型号的三态缓冲器,例如,同时使用三态缓冲器74HC241时,74HC241的使能输入为高电平有效,因此,在CK取样脉冲输出端与行三态缓冲器401的使能输入端EN1之间,需要增加一个非门。同样地,当行状态寄存器403和列状态寄存器404使用同型号的数据寄存器,例如,行状态寄存器403和列状态寄存器404均使用双D触发器74HC74组成数据寄存器时,74HC74的触发输入为上升沿有效,因此,在CK取样脉冲输出端与行状态寄存器403的接收脉冲输入端CLK3之间,需要增加一个非门。
图1中的第一缓冲寄存器100、第二缓冲寄存器200、编码器300组成扫描编码电路,其实施例电路图如图3所示。矩阵式键盘的键盘状态信号为4位二进制码,因此,第一缓冲寄存器100、第二缓冲寄存器200均要求寄存4位二进制数据。第一缓冲寄存器100的4个数据输入端D10~D13连接至I1、I2、I3、I4;第二缓冲寄存器200的4个数据输入端D24~D27连接至第一缓冲寄存器100的4个输出端Q10~Q13;编码器300的8个输入端A0~A7中,4个连接至第一缓冲寄存器100的4个输出端Q10~Q13,另外4个连接至第二缓冲寄存器200的4个输出端Q24~Q27。编码器300输出经过扫描编码确定的4位二进制键号。
图3中,触发器101组成第一缓冲寄存器100、触发器201组成第二缓冲寄存器200。触发器101由4个边沿触发器组成,4个边沿触发器的触发输入端CLK1为第一缓冲寄存器100的接收脉冲输入端,均连接至振荡器500的CP时钟脉冲输出端;触发器201由4个边沿触发器组成,4个边沿触发器的触发输入端CLK2为第二缓冲寄存器200的接收脉冲输入端,均连接至振荡器500的CP时钟脉冲输出端。触发器101、触发器201优选由边沿触发的D触发器组成,例如,由双D触发器74HC74、4D触发器74HC175、8D触发器74HC273组成。图3实施例中,触发器101、触发器201选择上升沿触发的8D触发器74HC273,此时,要将图3中未画出的清零输入端连接至高电平,使74HC273的清零功能处于无效状态,只具有触发功能。触发器101和触发器201均只需要4D触发器,各自任意使用所选8D触发器74HC273中的4个D触发器即可。8D触发器74HC273的触发输入端连接至CP。
图3中,只读存储器301组成编码器300。只读存储器301的地址输入端A7~A0为编码器300的输入端,只读存储器301的数据输出端D3~D0为编码器300的编码输出端C3~C0。
键盘状态识别及编码电路工作原理如下:
图2中,矩阵式键盘的4个按键以2×2的矩阵形式排列,所有的行线与列线都通过上拉电阻接至电源+VCC。矩阵式键盘由CK取样脉冲控制,采用反转法获取键盘状态信号I4、I3、I2、I1。例如,没有键按下的键盘状态信号是1111,S1按下的键盘状态信号是1010,S1、S2同时按下的键盘状态信号是0010。键盘状态信号的4位二进制码称为键值。
CK取样脉冲控制对矩阵式键盘进行采样读取键值的方法是:在CK取样脉冲的低电平,通过行三态缓冲器401控制所有行线输出低电平,列三态缓冲器402输出高阻态开放列线;在CK取样脉冲的上升沿由列状态寄存器404采样读取列线状态作为键值的高2位;在CK取样脉冲的高电平,通过列三态缓冲器402控制所有列线输出低电平,行三态缓冲器401输出高阻态开放行线;在CK取样脉冲的下降沿由行状态寄存器403采样读取行线状态作为键值的低2位;上述过程周而复始,列状态寄存器404、行状态寄存器403输出的4位键值始终为矩阵式键盘的最新状态。
从CK取样脉冲控制对矩阵式键盘进行采样读取键值的方法可知,行三态缓冲器401在CK取样脉冲的低电平使能有效时,同时要求列状态寄存器404在CK取样脉冲的上升沿进行数据锁存、列三态缓冲器402在CK取样脉冲的高电平使能有效、行状态寄存器403在CK取样脉冲的下降沿进行数据锁存。反过来,如果行三态缓冲器401在CK取样脉冲的高电平使能有效时,同时要求列状态寄存器404在CK取样脉冲的下降沿进行数据锁存、列三态缓冲器402在CK取样脉冲的低电平使能有效、行状态寄存器403在CK取样脉冲的上升沿进行数据锁存。
在上述CK取样脉冲控制采样读取键值的过程中,行状态寄存器403、列状态寄存器404进行采样的时刻恰好是列三态缓冲器402与行三态缓冲器401进行状态反转的时刻,正常工作下的行状态寄存器403或列状态寄存器404能够正确采样。如果要求有一定时序上的裕量,则可以对连接至列三态缓冲器402与行三态缓冲器401的CK取样脉冲进行延迟,方法是令CK取样脉冲经过RC延迟电路再连接至行三态缓冲器401与列三态缓冲器402的EN1、EN2,延迟时间由RC延迟电路决定,确定RC延迟电路的延迟时间的原则是,延迟的CK取样脉冲相位不超过90°;或者是CK取样脉冲经过几个门电路的缓冲后再连接至行三态缓冲器401与列三态缓冲器402的EN1、EN2,此时的延迟时间为所述几个门电路的总时延时间。
第一缓冲寄存器100、第二缓冲寄存器200在CP时钟脉冲控制下,在CP的每一个周期的有效触发沿进行数据锁存。图3中,74HC273为上升沿触发有效,因此,CP时钟脉冲的有效触发沿为上升沿。
第一缓冲寄存器100的4位输出数据只经过一级缓冲,第二缓冲寄存器200的4位输出数据经过了二级缓冲。因此,在CP时钟脉冲的有效触发沿,第一缓冲寄存器100对应的4个数据输出端Q10~Q13锁存的数据为矩阵式键盘的当前状态,其4位数据称为现态键值;第二缓冲寄存器200对应的4个数据输出端Q24~Q27锁存的数据为矩阵式键盘的前一状态,其4位数据称为前态键值。4位现态键值和4位前态键值共同组成8位状态码。
所述的8位状态码用于识别矩阵式键盘的当前状态和操作状态。例如,本实施例中,无键按下的状态码是11111111;S1键单键按下操作的状态码是11111010;S1键单键按下且维持的状态码是10101010;S1键单键释放操作的状态码是10101111;S2键单键按下操作的状态码是11110110;S4键单键按下操作的状态码是11110101;S2+S1组合操作的S1按下操作,表示先按下S2后,在S2维持按下的状态再按下S1的操作,该操作的状态码是01100010。
编码器300用于将状态码转换为键号。实施例中,设有6个有效的键盘操作与状态,包括:
操作0:按键S1的单键按下操作,键号为0000;
操作1:按键S2的单键按下操作,键号为0001;
操作2:按键S3的单键按下操作,键号为0010;
操作3:按键S3单键按下后的维持状态,键号为0011;
操作4:按键S4单键按下后,再按下按键S2的组合键操作,键号为0100;
操作5:按键S1的单键释放操作,键号为0101。
根据上述规定得到的状态码和键号见编码表1:
表1编码表
键盘操作 | 状态码(地址) | 键号(存储数据) |
S1单键按下 | 11111010 | 0000 |
S2单键按下 | 11110110 | 0001 |
S3单键按下 | 11111001 | 0010 |
S3单键按下维持 | 10011001 | 0011 |
S4+S2组合操作 | 01010100 | 0100 |
S1单键释放 | 10101111 | 0101 |
其他操作或状态 | ******** | 1111 |
编码器300为组合逻辑电路,设计电路,满足表1的逻辑关系即可。
实施例的编码器300优选由只读存储器301组成。只读存储器301有8位地址,共28个4位二进制存储单元。6个有效的键盘操作与状态有6个有效状态码,对应6个有效的键号;将状态码作为只读存储器301的地址A7~A0,在与6个有效状态码相对应的存储单元中,将相应的键号作为存储数据写入。6个有效的键盘操作与状态之外产生的状态码为无效状态码,即表1中的其他操作或状态所产生的为无效状态码;在其他存储单元中,全部写入无效键号,无效键号为6个有效键号之外的一个值,实施例中,无效键号为1111。
只读存储器301一直工作在数据输出状态。当只读存储器301具有片选控制、数据输出缓冲控制功能时,应使其片选控制、数据输出缓冲控制处于有效状态。
实施例中的键号为4位二进制码。键号的二进制位数可以根据需要增加,或者减少,此时,只需选择与此相匹配的只读存储器301即可。设键号的二进制位数为M,M值的选择应满足2M大于等于有效键号与无效键号的数量之和。当矩阵式键盘有N位键盘状态信号输出时,只读存储器301需要有2×N位地址输入,M位数据输出。
如果需要增减按键操作功能或者是调整按键操作功能,只需根据需要修改表1,将修改后的内容重新写入只读存储器301的存储内容即可。
实施例中,当矩阵式键盘S1单键按下时,编码器300在S1单键按下后的CP时钟脉冲的有效触发沿开始,至下一个CP时钟脉冲的有效触发沿为止,编码输出端C3~C0输出键号0000;当矩阵式键盘S2单键按下时,编码器300在S2单键按下后的CP时钟脉冲的有效触发沿开始,至下一个CP时钟脉冲的有效触发沿为止,输出键号0001;当矩阵式键盘先按下S4后,再按下S2,编码器300在S2组合键按下后的CP时钟脉冲的有效触发沿开始,至下一个CP时钟脉冲的有效触发沿为止,输出键号0100;当矩阵式键盘S1单键释放时,编码器300在S1单键释放后的CP时钟脉冲的有效触发沿开始,至下一个CP时钟脉冲的有效触发沿为止,输出键号0101;因此可以看出,当识别的是矩阵式键盘的有效按键操作时,编码器300在该有效按键操作后的CP时钟脉冲的有效触发沿开始,至下一个CP时钟脉冲的有效触发沿为止,输出持续时间为一个CP时钟脉冲周期宽度的有效键号。
实施例中,当矩阵式键盘S3单键按下时,编码器300在S3单键按下后的CP时钟脉冲的有效触发沿开始,至下一个CP时钟脉冲的有效触发沿为止,输出键号0010;在接下来的CP时钟脉冲的有效触发沿开始,至S3单键按下维持状态结束后的下一个CP时钟脉冲的有效触发沿为止,编码器300输出键号0011;因此可以看出,当识别的是矩阵式键盘的维持状态时,编码器300输出有效键号的持续时间与该维持状态的持续时间相适应。
当键盘的状态或操作为表1中所述的6个有效的键盘操作与状态之外时,编码器300输出无效键号1111。无论是输出有效键号,还是输出无效键号,编码器300改变输出内容的时刻为CP时钟脉冲的有效触发沿;实施例中,编码器300改变输出内容的时刻为CP时钟脉冲的上升沿。
CP时钟脉冲的周期为矩阵式键盘的扫描周期。键盘扫描周期在20ms以上时,能够有效地避开了键盘按键抖动的影响;键盘扫描周期在100ms以下时,不至于遗漏键盘操作;因此,CP时钟脉冲的周期应该控制在20~100ms。
CK取样脉冲的周期要求不大于CP时钟脉冲的周期,这样,在CP时钟脉冲每个有效触发沿获取状态码时,能够保证列状态寄存器404、行状态寄存器403输出的4位键值始终为矩阵式键盘的最新状态。CK取样脉冲的特例是直接使用CP时钟脉冲作为CK取样脉冲。
实施例中,CP时钟脉冲、CK取样脉冲均由振荡器500产生并输出。CP时钟脉冲和CK取样脉冲也可以由其他电路或者装置提供。
图4是本发明实施例的键盘状态变化脉冲产生单元的电路图。当识别的是矩阵式键盘的有效按键操作时,编码器300在该有效按键操作后的CP时钟脉冲的有效触发沿开始,至下一个CP时钟脉冲的有效触发沿为止,输出持续时间为一个CP时钟脉冲周期宽度的有效键号。接收所述矩阵式键盘输出的装置,需要时刻查询矩阵式键盘的输出,获取键号。查询的周期间隔必须小于CP时钟脉冲的周期。
图4所示电路用于判断矩阵式键盘输出的键号是否发生改变,当矩阵式键盘输出的键号发生改变时,输出键盘状态变化脉冲,用于辅助矩阵式键盘的接收装置接收矩阵式键盘输出的键号,例如,将键盘状态变化脉冲作为接收装置的中断请求信号。
图4所示电路由延迟缓冲器601、异或门602、异或门603、异或门604、异或门605、或门606组成。延迟缓冲器601由只具有触发功能的4个边沿触发器组成,4个边沿触发器的触发输入端为延迟缓冲器601的接收脉冲输入端,均连接至振荡器500的CP时钟脉冲输出端;延迟缓冲器601在CP时钟脉冲的有效触发沿进行数据锁存。
延迟缓冲器601用于对编码器300的编码输出端的4位数据C3~C0分别进行延迟处理。延迟缓冲器601的4个数据输入端D63~D60连接至编码器300的编码输出端C3~C0,延迟缓冲器601的4个数据输出端Q63~Q60相应输出的数据是C31~C01;C31~C01经过延迟缓冲器601的一级缓冲后,其信号比C3~C0延迟一个CP时钟脉冲周期,图5所示为本发明实施例的键盘有效操作的相关波形示意图。设在CP时钟脉冲的T1区间,矩阵式键盘存在一次有效操作,实施例的有效操作包括:S1单键按下、S2单键按下、S3单键按下、S4+S2组合操作的S2按下、S1单键释放。在一次有效操作的下一个有效触发沿,即图5中CP时钟脉冲T1区间之后的上升沿,编码器300输出的编码C3~C0发生改变;在T2区间,编码器300输出一个周期的有效编码C3~C0;在T3、T4及之后区间,编码器300输出的编码C3~C0再一次改变且进入维持状态,该维持状态可能是例如S1单键按下后面的维持状态,输出无效键号,也可能是S3单键按下后面的维持状态,输出有效键号,直到下一次有效操作。
图5中的D6脉冲示意表示编码器300输出的编码C3~C0是处于维持状态,没有变化,还是发生改变,实际电路中不存在所述的D6脉冲。如图5所示,D6脉冲为低电平,示意表示编码器300输出的编码C3~C0是处于维持状态,没有变化;D6脉冲为高电平,示意表示编码器300输出一个周期的有效编码C3~C0。图5中的Q6反映的是C31~C01的变化情况,显然,Q6比D6延迟一个CP时钟脉冲周期。同样,实际电路中不存在所述的Q6脉冲。
图5中,编码器300输出的编码C3~C0是处于维持状态,没有变化,还是发生改变,实际是由4位延迟缓冲器601、异或门602、异或门603、异或门604、异或门605、或门606所组成的逻辑电路完成。4个异或门分别与编码器300编码输出端C3~C0中的1位相对应,输入分别为4位延迟缓冲器601的输入、输出信号。例如,异或门602的两个输入信号分别为C0和C01,C01比C0延迟一个CP时钟脉冲周期,因此,当C0发生变化时,异或门602输出1个CP时钟脉冲周期宽度的正脉冲;当C0为一个CP时钟脉冲周期宽度变化信号时,异或门602输出2个CP时钟脉冲周期宽度的正脉冲。异或门603、异或门604、异或门605分别判断C1~C3是否发生变化,原理与判断C0是否发生变化相同。异或门602、异或门603、异或门604、异或门605的输出端分别连接至或门606的输入端,或门606用于综合判断C0~C3是否发生变化,只要C0~C3发生变化,或门606即输出键盘状态变化脉冲F,该脉冲为正脉冲。
实施例中,延迟缓冲器601选择上升沿触发的8D触发器74HC273。
延迟缓冲器601还可以采用其他方案,例如,采用RC电路,利用4个RC电路分别对C0~C3进行延迟;如果RC电路的延迟时间小于一个CP时钟脉冲周期,则编码器300输出一个周期的有效编码C3~C0时,在输出有效编码C3~C0开始和输出有效编码C3~C0结束都产生一个键盘状态变化脉冲,键盘状态变化脉冲的宽度等于RC电路延迟时间;如果RC电路的延迟时间大于等于一个CP时钟脉冲周期,则编码器300输出一个周期的有效编码C3~C0时,在输出有效编码C3~C0开始时产生一个键盘状态变化脉冲,脉冲宽度大于等于2个CP时钟脉冲周期。要求RC电路的延迟时间不超过2个CP时钟脉冲周期,以免产生漏报。
所述的发明电路中,将对单键操作、组合键操作、键盘维持状态操作的定位,由CP脉冲扫描转换成同一二进制长度的状态码,采用统一编码的方式进行处理,单键操作、组合键操作、键盘维持状态操作仅体现在状态码的不同上;如果需要增减按键操作功能或者是调整按键操作功能,不需要修改键盘扫描电路结构,只需根据增减后的状态码表更新编码器300、即重新写入更新只读存储器301的存储内容即可。所述发明电路没有使用单片机、ARM等微控制器,不用运行程序,工作可靠。
Claims (10)
1.一种键盘状态变化脉冲产生方法,其特征在于:判别键盘状态识别及编码电路输出的M位键号是否发生改变;当M位键号发生改变时,输出键盘状态变化脉冲;所述位为二进制位。
2.根据权利要求1所述的键盘状态变化脉冲产生方法,其特征在于:判别键盘状态识别及编码电路输出的M位键号是否发生改变由M位延迟缓冲器和M个异或门实现;M位延迟缓冲器对M位键号分别进行信号延迟,M个异或门用于判别M位键号是否发生改变,M个异或门的输入分别为M位延迟缓冲器的输入、输出信号。
3.根据权利要求2所述的键盘状态变化脉冲产生方法,其特征在于:由或门输出键盘状态变化脉冲;M个异或门的输出分别连接至或门的输入端。
4.根据权利要求3所述的键盘状态变化脉冲产生方法,其特征在于:所述延迟缓冲器为边沿触发器;所述边沿触发器的触发输入端均连接至时钟脉冲;所述延迟缓冲器在时钟脉冲的有效触发沿进行数据锁存。
5.根据权利要求3所述的键盘状态变化脉冲产生方法,其特征在于:所述延迟缓冲器均为RC电路。
6.根据权利要求1-5中任一项所述的键盘状态变化脉冲产生方法,其特征在于:所述键盘状态识别及编码电路包括矩阵式键盘、第一缓冲寄存器、第二缓冲寄存器、编码器;
所述矩阵式键盘共有X行、Y列,设有N位键盘状态信号输出端;所述N位键盘状态信号为电平信号;所述N=X+Y;
所述第一缓冲寄存器和第二缓冲寄存器均为N位二进制寄存器,第一缓冲寄存器的N位数据输入端连接至N位键盘状态信号输出端,第二缓冲寄存器的N位数据输入端连接至第一缓冲寄存器的N位数据输出端;
所述编码器有2×N位编码输入端;所述2×N位编码输入端中的N位数据输入端连接至第一缓冲寄存器的N位数据输出端,另外N位数据输入端连接至第二缓冲寄存器的N位数据输出端;
所述第一缓冲寄存器的接收脉冲输入端和第二缓冲寄存器的接收脉冲输入端均连接至时钟脉冲;所述矩阵式键盘由取样脉冲控制获取键盘状态信号。
7.根据权利要求6所述的键盘状态变化脉冲产生方法,其特征在于:所述矩阵式键盘由X行-Y列按键矩阵、行三态缓冲器、列三态缓冲器、行状态寄存器、列状态寄存器组成;所有按键矩阵的行线分别连接至行三态缓冲器的输出端,所有按键矩阵的列线分别连接至列三态缓冲器的输出端;行三态缓冲器和列三态缓冲器的所有输入端连接至低电平;所有按键矩阵的行线分别连接至行状态寄存器的输入端,所有按键矩阵的列线分别连接至列状态寄存器的输入端;所述行状态寄存器的输出端与列状态寄存器的输出端共同组成N位键盘状态信号输出端。
8.根据权利要求7所述的键盘状态变化脉冲产生方法,其特征在于:所述行三态缓冲器在取样脉冲的低电平使能有效时,要求列状态寄存器在取样脉冲的上升沿进行数据锁存、列三态缓冲器在取样脉冲的高电平使能有效、行状态寄存器在取样脉冲的下降沿进行数据锁存;或者是,行三态缓冲器在取样脉冲的高电平使能有效时,要求列状态寄存器在取样脉冲的下降沿进行数据锁存、列三态缓冲器在取样脉冲的低电平使能有效、行状态寄存器在取样脉冲的上升沿进行数据锁存。
9.根据权利要求6所述的键盘状态变化脉冲产生方法,其特征在于:所述第一缓冲寄存器和第二缓冲寄存器均在时钟脉冲的有效触发沿进行数据锁存;所述第一缓冲寄存器的N位数据输出端和第二缓冲寄存器的N位数据输出端共同输出2×N位的状态码;所述状态码由有效状态码和无效状态码组成;所述编码器输出的键号由有效键号和无效键号组成;所述有效状态码由有效键盘操作或状态产生,编码器输入每一个有效状态码时对应输出相应的有效键号;所述无效状态码由无效键盘操作或状态产生,编码器输入所有无效状态码时都对应输出无效键号。
10.根据权利要求9所述的矩阵式键盘状态识别及编码电路,其特征在于:所述编码器有M位键号输出端,M值的选择应满足2M大于等于有效键号与无效键号的数量之和。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810591958.0A CN108847847B (zh) | 2016-01-05 | 2016-01-05 | 一种键盘状态变化脉冲产生方法 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610004249.9A CN105700698B (zh) | 2016-01-05 | 2016-01-05 | 矩阵式键盘状态识别及编码电路 |
CN201810591958.0A CN108847847B (zh) | 2016-01-05 | 2016-01-05 | 一种键盘状态变化脉冲产生方法 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610004249.9A Division CN105700698B (zh) | 2016-01-05 | 2016-01-05 | 矩阵式键盘状态识别及编码电路 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108847847A true CN108847847A (zh) | 2018-11-20 |
CN108847847B CN108847847B (zh) | 2022-03-18 |
Family
ID=56226913
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810591942.XA Active CN108919974B (zh) | 2016-01-05 | 2016-01-05 | 一种矩阵式键盘状态识别及编码方法 |
CN201810591958.0A Expired - Fee Related CN108847847B (zh) | 2016-01-05 | 2016-01-05 | 一种键盘状态变化脉冲产生方法 |
CN201610004249.9A Active CN105700698B (zh) | 2016-01-05 | 2016-01-05 | 矩阵式键盘状态识别及编码电路 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810591942.XA Active CN108919974B (zh) | 2016-01-05 | 2016-01-05 | 一种矩阵式键盘状态识别及编码方法 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610004249.9A Active CN105700698B (zh) | 2016-01-05 | 2016-01-05 | 矩阵式键盘状态识别及编码电路 |
Country Status (1)
Country | Link |
---|---|
CN (3) | CN108919974B (zh) |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0325884A2 (en) * | 1988-01-29 | 1989-08-02 | Lexmark International, Inc. | Keyboard arrangement with ghost key condition detection |
CN1049415A (zh) * | 1989-08-09 | 1991-02-20 | 东少青 | 通用电子计算机算盘接口装置 |
JPH08272506A (ja) * | 1995-03-29 | 1996-10-18 | Oki Electric Ind Co Ltd | キーボードランプ点滅制御システム |
US5925110A (en) * | 1997-01-07 | 1999-07-20 | Micron Electronics, Inc. | Low power keyboard with power supply switch that is activated by receiver output to power up and down keyboard components including microcontroller demodulator |
CN101593046A (zh) * | 2008-05-28 | 2009-12-02 | 中兴通讯股份有限公司 | 一种滚球的实现方法 |
JP2011171811A (ja) * | 2010-02-16 | 2011-09-01 | Fujitsu Toshiba Mobile Communications Ltd | キースキャン装置および電子機器 |
CN103257716A (zh) * | 2013-05-14 | 2013-08-21 | 湖南工业大学 | 一种低功耗键盘及其扫描定位方法 |
CN103279197A (zh) * | 2013-06-08 | 2013-09-04 | 湖南工业大学 | 一种键盘的扫描定位方法 |
CN103391103A (zh) * | 2012-05-08 | 2013-11-13 | 凌通科技股份有限公司 | 超低耗电唤醒电路装置 |
CN104184479A (zh) * | 2014-07-31 | 2014-12-03 | 山东神戎电子股份有限公司 | 一种可避免事件遗漏的按键去抖检测方法 |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB718696A (en) * | 1950-03-18 | 1954-11-17 | British Thomson Houston Co Ltd | Improvements in and relating to electric computers |
FR2575305B1 (fr) * | 1984-12-20 | 1987-02-13 | Peugeot | Dispositif de commande par touches |
CN1034650A (zh) * | 1988-01-19 | 1989-08-09 | Rca许可公司 | 键盘识别装置 |
CA2027103A1 (en) * | 1989-10-13 | 1991-04-14 | William A. Clough | Method and apparatus for displaying simulated keyboards on touch-sensitive displays |
GB2270178A (en) * | 1992-08-31 | 1994-03-02 | Chameleon Systems Ltd | Generic user configurable keyboard |
JP2004070695A (ja) * | 2002-08-07 | 2004-03-04 | Alps Electric Co Ltd | ワイヤレス装置のデータ送信方法 |
CN101001086B (zh) * | 2007-01-12 | 2010-05-26 | 宁波天安(集团)股份有限公司 | 基于布尔处理的键盘矩阵解读方法 |
CN101373416B (zh) * | 2007-08-23 | 2012-04-18 | 介面光电股份有限公司 | 一种电阻式触控面板控制器与判别并运算多点坐标的方法 |
US8058901B2 (en) * | 2008-09-19 | 2011-11-15 | Qualcomm Incorporated | Latch structure, frequency divider, and methods for operating same |
CN101943948B (zh) * | 2009-07-07 | 2012-11-14 | 扬智科技股份有限公司 | 键盘扫描装置及键盘扫描方法 |
CN102053712B (zh) * | 2009-11-02 | 2013-02-20 | 研祥智能科技股份有限公司 | 多键盘输入系统、输入设备、转接装置及控制方法 |
CN101840268B (zh) * | 2010-04-23 | 2012-02-15 | 中国电子科技集团公司第五十四研究所 | 一种矩阵键盘的快速扫描定位方法 |
CN202059394U (zh) * | 2011-05-09 | 2011-11-30 | 广州励丰声光科技有限公司 | 基于可编程器件的矩阵键盘扫描装置 |
CN203250171U (zh) * | 2013-05-14 | 2013-10-23 | 湖南工业大学 | 一种低功耗键盘 |
CN103226391B (zh) * | 2013-05-22 | 2015-12-23 | 湖南工业大学 | 一种独立式键盘的扫描定位方法 |
CN103631244A (zh) * | 2013-12-22 | 2014-03-12 | 贺义方 | 一种基于mcu和cpld的主从式键盘控制器 |
CN104536330A (zh) * | 2014-11-13 | 2015-04-22 | 河北工业大学 | 用于ssi接口绝对值编码器数据通信的装置 |
-
2016
- 2016-01-05 CN CN201810591942.XA patent/CN108919974B/zh active Active
- 2016-01-05 CN CN201810591958.0A patent/CN108847847B/zh not_active Expired - Fee Related
- 2016-01-05 CN CN201610004249.9A patent/CN105700698B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0325884A2 (en) * | 1988-01-29 | 1989-08-02 | Lexmark International, Inc. | Keyboard arrangement with ghost key condition detection |
CN1049415A (zh) * | 1989-08-09 | 1991-02-20 | 东少青 | 通用电子计算机算盘接口装置 |
JPH08272506A (ja) * | 1995-03-29 | 1996-10-18 | Oki Electric Ind Co Ltd | キーボードランプ点滅制御システム |
US5925110A (en) * | 1997-01-07 | 1999-07-20 | Micron Electronics, Inc. | Low power keyboard with power supply switch that is activated by receiver output to power up and down keyboard components including microcontroller demodulator |
CN101593046A (zh) * | 2008-05-28 | 2009-12-02 | 中兴通讯股份有限公司 | 一种滚球的实现方法 |
JP2011171811A (ja) * | 2010-02-16 | 2011-09-01 | Fujitsu Toshiba Mobile Communications Ltd | キースキャン装置および電子機器 |
CN103391103A (zh) * | 2012-05-08 | 2013-11-13 | 凌通科技股份有限公司 | 超低耗电唤醒电路装置 |
CN103257716A (zh) * | 2013-05-14 | 2013-08-21 | 湖南工业大学 | 一种低功耗键盘及其扫描定位方法 |
CN103279197A (zh) * | 2013-06-08 | 2013-09-04 | 湖南工业大学 | 一种键盘的扫描定位方法 |
CN104184479A (zh) * | 2014-07-31 | 2014-12-03 | 山东神戎电子股份有限公司 | 一种可避免事件遗漏的按键去抖检测方法 |
Non-Patent Citations (1)
Title |
---|
丁桂芝: "《ARM嵌入式系统应用开发基础》", 31 March 2013 * |
Also Published As
Publication number | Publication date |
---|---|
CN108847847B (zh) | 2022-03-18 |
CN108919974A (zh) | 2018-11-30 |
CN105700698B (zh) | 2018-07-24 |
CN105700698A (zh) | 2016-06-22 |
CN108919974B (zh) | 2023-01-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105468164B (zh) | 矩阵式键盘扫描及编码电路 | |
CN108519827B (zh) | 一种矩阵式键盘扫描方法 | |
CN105700698B (zh) | 矩阵式键盘状态识别及编码电路 | |
CN105703780B (zh) | 矩阵式键盘扫描定位电路 | |
CN205490496U (zh) | 一种矩阵式键盘操作识别及编码电路 | |
CN105677054B (zh) | 独立式键盘扫描定位电路 | |
CN108491091B (zh) | 一种独立式键盘状态识别及编码方法 | |
CN205320063U (zh) | 一种矩阵式键盘状态识别及编码电路 | |
CN205485933U (zh) | 一种矩阵式键盘扫描定位电路 | |
CN205318331U (zh) | 一种矩阵式键盘扫描及编码电路 | |
CN105700696B (zh) | 矩阵式键盘扫描编码电路 | |
CN205384582U (zh) | 一种矩阵式键盘扫描电路及编码电路 | |
CN105680874B (zh) | 矩阵式键盘扫描电路及扫描编码方法 | |
CN105680875B (zh) | 矩阵式键盘操作识别及编码电路 | |
CN105471439B (zh) | 独立式键盘扫描及编码电路 | |
CN205334379U (zh) | 一种独立式键盘状态识别及编码电路 | |
CN105700695B (zh) | 矩阵式键盘扫描电路及编码电路 | |
CN205490497U (zh) | 一种独立式键盘扫描定位电路 | |
CN205318332U (zh) | 一种独立式键盘操作识别及编码电路 | |
CN105677053A (zh) | 独立式键盘操作识别及编码电路 | |
CN105677051A (zh) | 独立式键盘扫描电路及编码电路 | |
CN205384581U (zh) | 一种独立式键盘扫描电路及编码电路 | |
CN205353947U (zh) | 一种独立式键盘扫描及编码电路 | |
CN105680873A (zh) | 独立式键盘扫描编码电路 | |
CN105700697A (zh) | 独立式键盘扫描电路及方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20220318 |
|
CF01 | Termination of patent right due to non-payment of annual fee |