CN108388353A - 一种独立式键盘操作识别及编码方法 - Google Patents
一种独立式键盘操作识别及编码方法 Download PDFInfo
- Publication number
- CN108388353A CN108388353A CN201810346591.6A CN201810346591A CN108388353A CN 108388353 A CN108388353 A CN 108388353A CN 201810346591 A CN201810346591 A CN 201810346591A CN 108388353 A CN108388353 A CN 108388353A
- Authority
- CN
- China
- Prior art keywords
- pulse
- state
- keyboard
- latch
- key
- 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
- 238000000034 method Methods 0.000 title claims abstract description 26
- 230000006870 function Effects 0.000 claims abstract description 28
- 238000012423 maintenance Methods 0.000 claims description 14
- 210000001367 artery Anatomy 0.000 claims description 10
- 210000003462 vein Anatomy 0.000 claims description 10
- 238000004080 punching Methods 0.000 claims description 9
- 238000001208 nuclear magnetic resonance pulse sequence Methods 0.000 claims description 4
- 238000006073 displacement reaction Methods 0.000 claims description 3
- 229910002056 binary alloy Inorganic materials 0.000 claims description 2
- 230000007423 decrease Effects 0.000 abstract description 8
- 239000000872 buffer Substances 0.000 description 15
- 238000010586 diagram Methods 0.000 description 13
- 238000003860 storage Methods 0.000 description 11
- 238000009826 distribution Methods 0.000 description 7
- 230000000630 rising effect Effects 0.000 description 6
- 230000001960 triggered effect Effects 0.000 description 5
- 238000003825 pressing Methods 0.000 description 4
- 102220201076 rs201475876 Human genes 0.000 description 4
- 230000000737 periodic effect Effects 0.000 description 3
- 239000013256 coordination polymer Substances 0.000 description 2
- 238000007688 edging Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 239000000203 mixture Substances 0.000 description 2
- 102220091149 rs145688699 Human genes 0.000 description 2
- 102220295519 rs779762640 Human genes 0.000 description 2
- 102220086336 rs864622288 Human genes 0.000 description 2
- 241001269238 Data Species 0.000 description 1
- 102100040862 Dual specificity protein kinase CLK1 Human genes 0.000 description 1
- 102100040844 Dual specificity protein kinase CLK2 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
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000033228 biological regulation Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000005611 electricity Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000004807 localization Effects 0.000 description 1
- 230000007257 malfunction Effects 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000002035 prolonged effect Effects 0.000 description 1
- 210000000352 storage cell Anatomy 0.000 description 1
- 238000003079 width control Methods 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
-
- 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
一种独立式键盘操作识别及编码方法,包括有N个按键的独立式键盘输出N位键盘状态信号;按照扫描脉冲对N位键盘状态信号进行数据锁存得到现态键值,锁存脉冲对现态键值与前态键值进行状态锁存得到2×N位的状态码,N个移位脉冲对现态键值进行移位得到前态键值的顺序,周而复始;对状态码进行编码并输出键号,由包括独立式键盘、第一移位寄存器、第二移位寄存器、状态码寄存器、编码器的电路实现。如果需要增减按键操作功能或者是调整按键操作功能,不需要修改电路结构,只需根据增减后的状态码与键号之间的对应关系更改编码器的内容即可。所述方法不用编写和运行程序,工作可靠。
Description
本发明专利申请为分案申请,原案申请号为201610003686.9,申请日为2016年1月5日,发明名称为独立式键盘操作识别及编码电路。
技术领域
本发明涉及一种键盘的扫描定位方法,尤其是一种独立式键盘操作识别及编码方法。
背景技术
随着嵌入式技术的不断发展,当前各类电子产品普遍采用微控制器作为控制核心,键盘作为主要的输入设备,得到了广泛的应用。
目前的键盘扫描主要由微控制器所控制,需要通过运行微控制器中的程序来进行,遇到干扰,造成程序飞跑,扫描程序将不能正常工作。
申请号为CN201010153560.2的发明专利“一种矩阵键盘的快速扫描定位方法”采用键盘中断触发的方式进入键盘的扫描定位过程,采用多次重复键盘扫描步骤的方法判断按键是否有效,并对所获得的键值进行状态判断;如果多次采样状态相同,则处于稳定状态,键值有效;如果多次采样状态不同,键值无效。单键操作或组合键操作需要单独判断,如是单键操作,则进入单键处理模式;如是组合键操作,则进入组合键处理模式。该专利所述方法解决了由于键盘自身的机械特性造成的键盘抖动而引起错键、连续触键等错误问题,以及对组合键和重复按键的支持问题。但所述方法单键操作与组合键操作需要分别处理;没有考虑键盘状态维持一段时间到后才执行有效操作的键盘操作功能;增减按键操作功能或者是调整按键操作功能时,需要修改键盘扫描定位程序结构。
发明内容
为了解决现有键盘扫描定位方法存在的上述技术问题,本发明提供了一种独立式键盘操作识别及编码方法,包括有N个按键的独立式键盘输出N位键盘状态信号;按照扫描脉冲对N位键盘状态信号进行数据锁存(即进行数据预置)得到现态键值,锁存脉冲对现态键值与前态键值进行状态锁存得到2×N位的状态码,N个移位脉冲对现态键值进行移位得到前态键值的顺序,周而复始进行相应的操作;对状态码进行编码并输出键号。所述N位键盘状态信号为电平信号。
所述扫描脉冲、移位脉冲和锁存脉冲的时序满足以下要求:在一个周期中,扫描脉冲有1个脉冲,移位脉冲有N个脉冲,锁存脉冲有1个脉冲;所述扫描脉冲、移位脉冲和锁存脉冲按照1个扫描脉冲、1个锁存脉冲、N个移位脉冲的顺序周而复始。所述扫描脉冲和锁存脉冲的周期为20~100ms。
所述扫描脉冲、移位脉冲和锁存脉冲由振荡器、计数器、脉冲分配器组成的电路产生;振荡器输出的时钟脉冲送至计数器进行计数,计数器的输出送至脉冲分配器的输入,脉冲分配器输出扫描脉冲、移位脉冲和锁存脉冲。
所述脉冲分配器采用ROM存储器实现;ROM存储器的地址输入连接至计数器的输出,ROM存储器的3位数据输出端分别输出扫描脉冲、移位脉冲和锁存脉冲。
所述状态码由有效状态码和无效状态码组成,用于识别独立式键盘的当前状态和操作状态;所述键号由有效键号和无效键号组成;所述有效状态码由有效键盘操作或状态产生,对应输出相应的有效键号;所述无效状态码由无效键盘操作或状态产生,对应输出无效键号;所述键号为M位,M值的选择应满足2M大于等于有效键号与无效键号的数量之和。
所述有效键盘操作包括单键按下操作、单键释放操作、单键按下维持操作、组合键操作;所述组合键操作是指单键按下后,再按下其他按键的操作;所述无效键盘操作为有效键盘操作之外的操作。
所述对状态码进行编码并输出键号由编码器实现。进一步地,所述编码器为只读存储器;通过修改只读存储器的存储内容增减按键操作功能或者是调整按键操作功能。
所述扫描脉冲对N位键盘状态信号进行数据锁存得到现态键值,以及N个移位脉冲对现态键值进行移位得到前态键值由第一移位寄存器、第二移位寄存器实现。所述第一移位寄存器具有N位并行输入、N位并行输出和串行输出功能;所述第二移位寄存器具有串行输入、N位并行输出功能。所述第一移位寄存器的N位并行输入端连接至N位键盘状态信号输出端;第二移位寄存器的串行输入端连接至第一移位寄存器的串行输出端;第一移位寄存器、第二移位寄存器的移位脉冲输入端均连接至移位脉冲,第一移位寄存器的预置脉冲输入端连接至扫描脉冲。
所述锁存脉冲对现态键值与前态键值进行状态锁存得到2×N位的状态码由状态码寄存器实现。所述状态码寄存器为2×N位二进制寄存器;状态码寄存器中的N位数据输入端连接至第一移位寄存器的N位并行输出端,另外N位数据输入端连接至第二移位寄存器的N位并行输出端;所述状态码寄存器的接收脉冲输入端连接至锁存脉冲。
所述第一移位寄存器、第二移位寄存器的移位脉冲边沿有效;所述状态码寄存器的接收脉冲边沿有效。所述第一移位寄存器的预置脉冲边沿有效。或者是,所述第一移位寄存器、第二移位寄存器的移位脉冲边沿有效;所述状态码寄存器的接收脉冲边沿有效;所述第一移位寄存器的预置脉冲高电平有效时,所述扫描脉冲为正脉冲;所述第一移位寄存器的预置脉冲低电平有效时,所述扫描脉冲为负脉冲。
所述N位键盘状态信号与N个按键之间满足一一对应关系。所述的N位、2×N位、M位均指二进制位数据。
所述独立式键盘操作识别及编码方法由独立式键盘操作识别及编码电路实现,独立式键盘操作识别及编码电路包括独立式键盘、第一移位寄存器、第二移位寄存器、状态码寄存器、编码器。
进一步地,所述独立式键盘操作识别及编码电路还包括键盘状态变化脉冲产生单元,用于判断独立式键盘输出的键号是否发生改变,当独立式键盘输出的键号发生改变时,输出键盘状态变化脉冲。
所述键盘状态变化脉冲产生单元由或门、M位延迟缓冲器和M个异或门组成;M位延迟缓冲器用于对独立式键盘输出的M位键号分别进行信号延迟;M个异或门的输入分别为M位延迟缓冲器的输入、输出信号;M个异或门的输出分别连接至或门的输入端;或门的输出端输出键盘状态变化脉冲。
本发明的有益效果是:将对单键操作、组合键操作、键盘维持状态操作的定位,由满足特定时序要求的扫描脉冲、移位脉冲、锁存脉冲控制转换成同一二进制长度的状态码,采用统一编码的方式进行处理,单键操作、组合键操作、键盘维持状态操作仅体现在状态码的不同上;如果需要增减按键操作功能或者是调整按键操作功能,不需要修改电路结构,只需根据增减后的状态码与键号之间的对应关系更改编码器的编码内容、即重新修改写入只读存储器的存储内容即可。所述方法没有使用单片机、ARM等微控制器,不用运行程序,工作可靠。
附图说明
图1是独立式键盘操作识别及编码电路原理框图;
图2是本发明实施例的独立式键盘电路图;
图3是本发明实施例的扫描定位电路图;
图4是本发明实施例的第一移位寄存器电路图;
图5是本发明实施例的脉冲时序图;
图6是本发明实施例的脉冲电路原理图;
图7是本发明实施例的键盘状态变化脉冲产生单元的电路图;
图8是本发明实施例的键盘有效操作的相关波形示意图。
具体实施方式
以下结合附图对本发明作进一步说明。
图1是独立式键盘操作识别及编码电路原理框图,由独立式键盘400、第一移位寄存器100、第二移位寄存器200、状态码寄存器500、编码器300组成。
图2是本发明实施例的独立式键盘400的电路图,共有4个按键,由按键S1、按键S2、按键S3、按键S4和连接至电源+VCC的上拉电阻R1、上拉电阻R2、上拉电阻R3、上拉电阻R4组成。独立式键盘400的4个输出端分别一一对应输出按键S1、按键S2、按键S3、按键S4的状态信号I1、I2、I3、I4,按键按下时,相应输出端的状态信号为低电平;按键未按下时,相应输出端的状态信号为高电平。
图1中的第一移位寄存器100、第二移位寄存器200、状态码寄存器500、编码器300组成扫描定位电路,其实施例电路图如图3所示。实施例独立式键盘电路输出的状态信号有4位,因此,第一移位寄存器100、第二移位寄存器200都为4位二进制移位寄存器,其中,第一移位寄存器100具有并行输入、并行输出和串行输出功能,第二移位寄存器200具有串行输入、并行输出功能;第一移位寄存器100的4个并行输入端L0~L3依次连接至I1、I2、I3、I4,第二移位寄存器200的串行输入端D2连接至第一移位寄存器100的串行输出端Q13。第一移位寄存器100、第二移位寄存器200的移位脉冲输入端CLK1、CLK2均连接至移位脉冲CP2,第一移位寄存器100的预置脉冲输入端CLK0连接至扫描脉冲CP1。
状态码寄存器500要求寄存8位二进制数据,其8位数据输入端D57~D50中的4位连接至第一移位寄存器100的并行输出端Q13~Q10,另外4位连接至第二移位寄存器200的并行输出端Q23~Q20;实施例中,D57~D54连接至Q23~Q20,D53~D50连接至Q13~Q10。状态码寄存器500的接收脉冲输入端CLK5连接至锁存脉冲CP3。
编码器300的8个输入端A7~A0连接至状态码寄存器500的8个数据输出端Q57~Q50。编码器300输出经过扫描定位确定的4位二进制键号。
图3实施例中,第二移位寄存器200可以选择由各种中规模集成移位寄存器组成,或者由边沿触发器组成;由边沿触发器组成第二移位寄存器200时,优选由边沿触发的D触发器组成。状态码寄存器500由边沿触发器组成,优选由边沿触发的D触发器组成,例如,由双D触发器74HC74、4D触发器74HC175、8D触发器74HC273组成。
图4是本发明实施例的第一移位寄存器100的电路图,由4个置位、复位功能均低电平有效的D触发器101~104、8个与非门105~112组成。实施例中,D触发器101~104选择双D触发器74HC74,其触发脉冲上升沿有效。扫描脉冲CP1通过8个与非门105~112控制D触发器101~104的置位、复位功能。以D触发器101为例,扫描脉冲CP1为低电平时,与非门105、与非门106输出高电平,D触发器101的置位、复位功能无效;扫描脉冲CP1为高电平且L0=0时,与非门105的输出为与非门106的输出为L0,即D触发器101的置位功能无效、复位功能有效,使Q10=0;扫描脉冲CP1为高电平且L0=1时,与非门105的输出为与非门106的输出为L0,即D触发器101的置位功能有效、复位功能无效,使Q10=1。D触发器102~104的工作原理与D触发器101一样,当扫描脉冲CP1为高电平时,Q10=L0,Q11=L1,Q12=L2,Q13=L3;当扫描脉冲CP1为低电平时,由于D触发器101~104的触发脉冲输入端CLK10、CLK11、CLK12、CLK13均连接至CP2,因此,在每个移位脉冲CP2的上升沿,第一移位寄存器100移一次位,即Q13=Q12,Q12=Q11,Q11=Q10,Q10=0。
图3实施例中,编码器300为只读存储器。只读存储器的地址输入端A7~A0为编码器300的输入端,只读存储器的数据输出端D3~D0为编码器300的编码输出端C3~C0。
独立式键盘操作识别及编码方法原理如下:
扫描定位电路在扫描脉冲CP1、移位脉冲CP2、锁存脉冲CP3的控制下工作,相关的脉冲时序图如图5所示。
实施例中CP1、CP2、CP3的时序满足以下要求:在一个周期中,CP1有1个脉冲,CP2有4个脉冲,CP3有1个脉冲;各脉冲按照1个CP1脉冲、1个CP3脉冲、4个CP2脉冲的顺序周而复始。
满足时序要求的CP1、CP2、CP3脉冲可以由各种脉冲分配器产生,图6是本发明实施例的脉冲电路原理图,由振荡器801、计数器802、脉冲分配器803组成。图5中的时钟脉冲CP由振荡器产生,CP送至计数器802进行计数,计数器802为12进制计数器,其结果P的12个状态(数值)依次为P0→P11,如图5所示。实施例中的脉冲分配器803采用ROM存储器实现,在此称为脉冲分配ROM存储器。脉冲分配ROM存储器的地址输入连接至计数器802的计数输出,脉冲分配ROM存储器的3位数据输出端分别输出为CP1脉冲、CP2脉冲、CP3脉冲。脉冲分配ROM存储器的写入内容见表1。
表1中的ROM存储器地址,即计数器输出至少为4位二进制码。一般情况下,计数器802如果采用二进制加法规则,则P0~P11顺序对应4位二进制码0000~1011,即ROM存储器地址范围为0000~1011,地址0000~1011的存储内容为表1中P0~P11对应的内容。
脉冲分配ROM存储器需要3位数据输出。设脉冲分配ROM存储器的地址输入有R位,当独立式键盘有N位键盘状态信号输出时,R的选择需要满足2R大于等于2×(N+2)。
振荡器801为多谐振荡器。CP1扫描脉冲、CP3锁存脉冲的周期均为20~100ms。CP1、CP2、CP3也可以由独立式键盘操作识别及编码电路之外的电路或者装置提供。
表1脉冲分配ROM存储器数据表
第一移位寄存器100在扫描脉冲CP1的控制下,对独立式键盘400输出的状态信号I1、I2、I3、I4进行数据锁存,此时第一移位寄存器100的输出称为现态键值;第二移位寄存器200在上一周期经由4个CP2脉冲的控制,将上一周期扫描脉冲CP1锁存至第一移位寄存器100的输出移位到第二移位寄存器200输出端,因此,此时第二移位寄存器200的输出称为前态键值。
扫描脉冲CP1之后的锁存脉冲CP3将第一移位寄存器100输出的现态键值、第二移位寄存器200输出的前态键值锁存在状态码寄存器500的输出端,状态码寄存器500的输出同样为前态键值与现态键值。
第一移位寄存器100、第二移位寄存器200的移位脉冲均边沿有效,因此,CP2可以是正脉冲,也可以是负脉冲;状态码寄存器500的接收脉冲边沿有效,因此,CP3可以是正脉冲,也可以是负脉冲。第一移位寄存器100的预置脉冲为边沿有效时,扫描脉冲CP1可以是正脉冲,也可以是负脉冲。第一移位寄存器100的预置脉冲为高电平有效时,要求扫描脉冲CP1为正脉冲;第一移位寄存器100的预置脉冲为低电平有效时,要求扫描脉冲CP1为负脉冲;实施例中,第一移位寄存器100的预置脉冲为高电平有效,所以,扫描脉冲CP1采用正脉冲。
实施例中,状态码寄存器500数据输出端输出的4位现态键值和4位前态键值共同组成8位状态码。所述的8位状态码用于识别独立式键盘的当前状态和操作状态。例如,本实施例中,无键按下的状态码是11111111;S1键单键按下操作的状态码是11111110;S1键单键按下且维持的状态码是11101110;S1键单键释放操作的状态码是11101111;S2键单键按下操作的状态码是11111101;S4键单键按下操作的状态码是11110111;S2+S1组合操作的S1按下操作,表示先按下S2后,在S2维持按下的状态再按下S1的操作,该操作的状态码是11011100。
编码器300用于将状态码转换为键号。实施例中,设有7个有效的键盘操作与状态,包括:
操作0:按键S1的单键按下操作,键号为0000;
操作1:按键S2的单键按下操作,键号为0001;
操作2:按键S3的单键按下操作,键号为0010;
操作3:按键S3单键按下后的维持状态,键号为0011;
操作4:按键S4单键按下后,再按下按键S1的组合键操作,键号为0100;
操作5:按键S4单键按下后,再按下按键S2的组合键操作,键号为0101;
操作6:按键S1的单键释放操作,键号为0110。
根据上述规定得到的状态码和键号见编码表2:
表2编码表
键盘操作 | 状态码(地址) | 键号(存储数据) |
S1单键按下 | 11111110 | 0000 |
S2单键按下 | 11111101 | 0001 |
S3单键按下 | 11111011 | 0010 |
S3单键按下维持 | 10111011 | 0011 |
S4+S1组合操作 | 01110110 | 0100 |
S4+S2组合操作 | 01110101 | 0101 |
S1单键释放 | 11101111 | 0110 |
其他操作或状态 | ******** | 1111 |
编码器300为组合逻辑电路,设计的电路满足表2的逻辑关系即可。
实施例的编码器300优选由只读存储器组成。所选只读存储器有8位地址,共28个4位二进制存储单元。7个有效的键盘操作与状态有7个有效状态码,对应7个有效的键号;将状态码作为只读存储器的地址A7~A0,在与7个有效状态码相对应的存储单元中,将相应的键号作为存储数据写入。7个有效的键盘操作与状态之外产生的状态码为无效状态码,即表2中的其他操作或状态所产生的为无效状态码;在其他存储单元中,全部写入无效键号,无效键号为7个有效键号之外的一个值,实施例中,无效键号为1111。
只读存储器一直工作在数据输出状态。当只读存储器具有片选控制、数据输出缓冲控制功能时,应使其片选控制、数据输出缓冲控制处于有效状态。
实施例中的键号为4位二进制码。键号的二进制位数可以根据需要增加,或者减少,此时,只需选择与此相匹配的只读存储器即可。设键号的二进制位数为M,M值的选择应满足2M大于等于有效键号与无效键号的数量之和。当独立式键盘有N位键盘状态信号输出时,只读存储器需要有2×N位地址输入,M位数据输出。
如果需要增减按键操作功能或者是调整按键操作功能,只需根据需要修改表2,将修改后的内容重新写入只读存储器的存储内容即可。
将状态码寄存器500进行数据锁存的时刻的锁存脉冲CP3的边沿称为状态锁存沿,实施例中为CP3的上升沿。实施例中,当独立式键盘S1单键按下时,编码器300在S1单键按下,经过CP1、CP3两级锁存后,从CP3的状态锁存沿开始,至下一个CP3的状态锁存沿为止,编码输出端C3~C0输出键号0000;当独立式键盘S2单键按下时,编码器300在S2单键按下,经过CP1、CP3两级锁存后,从CP3的状态锁存沿开始,至下一个CP3的状态锁存沿为止,输出键号0001;当独立式键盘先按下S4后,再按下S1,编码器300在S1组合键按下,经过CP1、CP3两级锁存后,从CP3的状态锁存沿开始,至下一个CP3的状态锁存沿为止,输出键号0100;当独立式键盘先按下S4后,再按下S2,编码器300在S2组合键按下,经过CP1、CP3两级锁存后,从CP3的状态锁存沿开始,至下一个CP3的状态锁存沿为止,输出键号0101;当独立式键盘S1单键释放时,编码器300在S1单键释放,经过CP1、CP3两级锁存后,从CP3的状态锁存沿开始,至下一个CP3的状态锁存沿为止,输出键号0110;因此可以看出,当识别的是独立式键盘的有效按键操作时,编码器300在该有效按键操作后的CP3的状态锁存沿开始,至下一个CP3的状态锁存沿为止,输出持续时间为一个CP3周期宽度的有效键号。
实施例中,当独立式键盘S3单键按下时,编码器300在S3单键按下,经过CP1、CP3两级锁存后,从CP3的状态锁存沿开始,至下一个CP3的状态锁存沿为止,输出键号0010;在接下来的CP3的状态锁存沿开始,至S3单键按下维持状态结束,经过CP1、CP3两级锁存后的CP3状态锁存沿为止,编码器300输出键号0011;因此可以看出,当识别的是独立式键盘的维持状态时,编码器300输出有效键号的持续时间与该维持状态的持续时间相适应。
当键盘的状态或操作为表2中所述的7个有效的键盘操作与状态之外时,编码器300输出无效键号1111。无论是输出有效键号,还是输出无效键号,编码器300改变输出内容的时刻为CP3的状态锁存沿;实施例中,编码器300改变输出内容的时刻为CP3的上升沿。
CP3的周期为独立式键盘的扫描周期。键盘扫描周期在20ms以上时,能够有效地避开键盘按键抖动的影响;键盘扫描周期在100ms以下时,不至于遗漏键盘操作;因此,CP3的周期应该控制在20~100ms。
图7是本发明实施例的键盘状态变化脉冲产生单元的电路图。当识别的是独立式键盘的有效按键操作时,编码器300在该有效按键操作后的CP3的状态锁存沿开始,至下一个CP3的状态锁存沿为止,输出持续时间为一个CP3周期宽度的有效键号。接收所述独立式键盘输出的装置,需要时刻查询独立式键盘的输出,获取键号。查询的周期间隔必须小于CP3的周期。
图7所示电路用于判断独立式键盘输出的键号是否发生改变,当独立式键盘输出的键号发生改变时,输出键盘状态变化脉冲,用于辅助独立式键盘的接收装置接收独立式键盘输出的键号,例如,将键盘状态变化脉冲作为接收装置的中断请求信号。
图7所示电路由延迟缓冲器601、异或门602、异或门603、异或门604、异或门605、或门606组成。延迟缓冲器601由只具有触发功能的4个边沿触发器组成,4个边沿触发器的触发输入端为延迟缓冲器601的接收脉冲输入端,均连接至CP3;延迟缓冲器601在CP3的状态锁存沿进行数据锁存。
延迟缓冲器601用于对编码器300的编码输出端的4位数据C3~C0分别进行延迟处理。延迟缓冲器601的4个数据输入端D63~D60连接至编码器300的编码输出端C3~C0,延迟缓冲器601的4个数据输出端Q63~Q60相应输出的数据是C31~C01;C31~C01经过延迟缓冲器601的一级缓冲后,其信号比C3~C0延迟一个CP3脉冲周期,图8所示为本发明实施例的键盘有效操作的相关波形示意图。设在CP3脉冲的T1区间,独立式键盘存在一次有效操作,实施例的有效操作包括:S1单键按下、S2单键按下、S3单键按下、S4+S1组合操作的S1按下、S4+S2组合操作的S2按下、S1单键释放。在一次有效操作的下一个状态锁存沿,即图8中CP3脉冲T1区间之后的上升沿,编码器300输出的编码C3~C0发生改变;在T2区间,编码器300输出一个CP3脉冲周期的有效编码C3~C0;在T3、T4及之后区间,编码器300输出的编码C3~C0再一次改变且进入维持状态,该维持状态可能是例如S1单键按下后面的维持状态,输出无效键号,也可能是S3单键按下后面的维持状态,输出有效键号,直到下一次有效操作。
图8中的D6脉冲示意表示编码器300输出的编码C3~C0是处于维持状态,没有变化,还是发生改变,实际电路中不存在所述的D6脉冲。如图8所示,D6脉冲为低电平,示意表示编码器300输出的编码C3~C0是处于维持状态,没有变化;D6脉冲为高电平,示意表示编码器300输出一个周期的有效编码C3~C0。图8中的Q6反映的是C31~C01的变化情况,显然,Q6比D6延迟一个CP3脉冲周期。同样,实际电路中不存在所述的Q6脉冲。
图8中,编码器300输出的编码C3~C0是处于维持状态,没有变化,还是发生改变,实际是由4位延迟缓冲器601、异或门602、异或门603、异或门604、异或门605、或门606所组成的逻辑电路完成。4个异或门分别与编码器300编码输出端C3~C0中的1位相对应,输入分别为4位延迟缓冲器601的输入、输出信号。例如,异或门602的两个输入信号分别为C0和C01,C01比C0延迟一个CP3脉冲周期,因此,当C0发生变化时,异或门602输出1个CP3脉冲周期宽度的正脉冲;当C0为一个CP3脉冲周期宽度变化信号时,异或门602输出2个CP3脉冲周期宽度的正脉冲。异或门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电路的延迟时间小于一个CP3脉冲周期,则编码器300输出一个周期的有效编码C3~C0时,在输出有效编码C3~C0开始和输出有效编码C3~C0结束都产生一个键盘状态变化脉冲,键盘状态变化脉冲的宽度等于RC电路延迟时间;如果RC电路的延迟时间大于等于一个CP3脉冲周期,则编码器300输出一个周期的有效编码C3~C0时,在输出有效编码C3~C0开始时产生一个键盘状态变化脉冲,该脉冲宽度大于等于2个CP3脉冲周期。要求RC电路的延迟时间不超过2个CP3脉冲周期,以免产生漏报。
所述的发明电路中,将对单键操作、组合键操作、键盘维持状态操作的定位,由满足特定时序要求的3个脉冲控制转换成同一二进制长度的状态码,采用统一编码的方式进行处理,单键操作、组合键操作、键盘维持状态操作仅体现在状态码的不同上;如果需要增减按键操作功能或者是调整按键操作功能,不需要修改键盘扫描电路结构,只需根据增减后的状态码表更新编码器300、即重新写入更新只读存储器的存储内容即可。所述发明电路没有使用单片机、ARM等微控制器,不用运行程序,工作可靠。
Claims (10)
1.一种独立式键盘操作识别及编码方法,其特征在于:包括有N个按键的独立式键盘输出N位键盘状态信号;按照扫描脉冲对N位键盘状态信号进行数据锁存得到现态键值,锁存脉冲对现态键值与前态键值进行状态锁存得到2×N位的状态码,N个移位脉冲对现态键值进行移位得到前态键值的顺序,周而复始;对状态码进行编码并输出键号;所述位为二进制位。
2.根据权利要求1所述的独立式键盘操作识别及编码方法,其特征在于,所述扫描脉冲、移位脉冲和锁存脉冲的时序满足以下要求:在一个周期中,扫描脉冲有1个脉冲,移位脉冲有N个脉冲,锁存脉冲有1个脉冲;所述扫描脉冲、移位脉冲和锁存脉冲按照1个扫描脉冲、1个锁存脉冲、N个移位脉冲的顺序周而复始。
3.根据权利要求2所述的独立式键盘操作识别及编码方法,其特征在于,所述扫描脉冲、移位脉冲和锁存脉冲由振荡器、计数器、脉冲分配器组成的电路产生;振荡器输出的时钟脉冲送至计数器进行计数,计数器的输出送至脉冲分配器的输入,脉冲分配器输出扫描脉冲、移位脉冲和锁存脉冲。
4.根据权利要求1所述的独立式键盘操作识别及编码方法,其特征在于:所述状态码由有效状态码和无效状态码组成,用于识别独立式键盘的当前状态和操作状态;所述键号由有效键号和无效键号组成;所述有效状态码由有效键盘操作或状态产生,对应输出相应的有效键号;所述无效状态码由无效键盘操作或状态产生,对应输出无效键号。
5.根据权利要求4所述的独立式键盘操作识别及编码方法,其特征在于:所述有效键盘操作包括单键按下操作、单键释放操作、单键按下维持操作、组合键操作;所述组合键操作是指单键按下后,再按下其他按键的操作;所述无效键盘操作为有效键盘操作之外的操作。
6.根据权利要求4所述的独立式键盘操作识别及编码方法,其特征在于:所述对状态码进行编码并输出键号由编码器实现。
7.根据权利要求4所述的独立式键盘操作识别及编码方法,其特征在于:所述键号为M位,M值的选择应满足2M大于等于有效键号与无效键号的数量之和。
8.根据权利要求1-7中任一项所述的独立式键盘操作识别及编码方法,其特征在于:所述扫描脉冲对N位键盘状态信号进行数据锁存得到现态键值,以及N个移位脉冲对现态键值进行移位得到前态键值由第一移位寄存器、第二移位寄存器实现。
9.根据权利要求8所述的独立式键盘操作识别及编码方法,其特征在于:所述第一移位寄存器具有N位并行输入、N位并行输出和串行输出功能;所述第二移位寄存器具有串行输入、N位并行输出功能;
所述第一移位寄存器的N位并行输入端连接至N位键盘状态信号输出端;第二移位寄存器的串行输入端连接至第一移位寄存器的串行输出端;第一移位寄存器、第二移位寄存器的移位脉冲输入端均连接至移位脉冲,第一移位寄存器的预置脉冲输入端连接至扫描脉冲。
10.根据权利要求1-7中任一项所述的独立式键盘操作识别及编码方法,其特征在于:所述锁存脉冲对现态键值与前态键值进行状态锁存得到2×N位的状态码由状态码寄存器实现;
所述状态码寄存器为2×N位二进制寄存器;状态码寄存器中的N位数据输入端连接至第一移位寄存器的N位并行输出端,另外N位数据输入端连接至第二移位寄存器的N位并行输出端;所述状态码寄存器的接收脉冲输入端连接至锁存脉冲。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810346591.6A CN108388353B (zh) | 2016-01-05 | 2016-01-05 | 一种独立式键盘操作识别及编码方法 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610003686.9A CN105677053B (zh) | 2016-01-05 | 2016-01-05 | 独立式键盘操作识别及编码电路 |
CN201810346591.6A CN108388353B (zh) | 2016-01-05 | 2016-01-05 | 一种独立式键盘操作识别及编码方法 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610003686.9A Division CN105677053B (zh) | 2016-01-05 | 2016-01-05 | 独立式键盘操作识别及编码电路 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108388353A true CN108388353A (zh) | 2018-08-10 |
CN108388353B CN108388353B (zh) | 2021-03-16 |
Family
ID=56298864
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810346591.6A Expired - Fee Related CN108388353B (zh) | 2016-01-05 | 2016-01-05 | 一种独立式键盘操作识别及编码方法 |
CN201610003686.9A Active CN105677053B (zh) | 2016-01-05 | 2016-01-05 | 独立式键盘操作识别及编码电路 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610003686.9A Active CN105677053B (zh) | 2016-01-05 | 2016-01-05 | 独立式键盘操作识别及编码电路 |
Country Status (1)
Country | Link |
---|---|
CN (2) | CN108388353B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110703352A (zh) * | 2017-11-16 | 2020-01-17 | 湖南工业大学 | 自动生产线产品计数信号产生电路 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4291385A (en) * | 1973-12-17 | 1981-09-22 | Hewlett-Packard Company | Calculator having merged key codes |
JPS61262913A (ja) * | 1985-05-17 | 1986-11-20 | Fujitsu Ltd | キ−ボ−ド同時打鍵シフト処理方式 |
CN1359052A (zh) * | 2001-07-11 | 2002-07-17 | 威盛电子股份有限公司 | 用于笔记型计算机的键盘指令读取装置 |
CN1412650A (zh) * | 2002-11-20 | 2003-04-23 | 威盛电子股份有限公司 | 通用串行总线接口的键盘控制电路 |
CN101436854A (zh) * | 2007-11-15 | 2009-05-20 | 宝利通公司 | 双触点键盘装置 |
CN103226391A (zh) * | 2013-05-22 | 2013-07-31 | 湖南工业大学 | 一种独立式键盘的扫描定位方法 |
CN103279197A (zh) * | 2013-06-08 | 2013-09-04 | 湖南工业大学 | 一种键盘的扫描定位方法 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2575305B1 (fr) * | 1984-12-20 | 1987-02-13 | Peugeot | Dispositif de commande par touches |
CN101510127B (zh) * | 2009-03-30 | 2012-10-17 | 无锡中星微电子有限公司 | 一种实现键盘模块复合键功能的方法、装置和芯片 |
CN101943948B (zh) * | 2009-07-07 | 2012-11-14 | 扬智科技股份有限公司 | 键盘扫描装置及键盘扫描方法 |
CN101840268B (zh) * | 2010-04-23 | 2012-02-15 | 中国电子科技集团公司第五十四研究所 | 一种矩阵键盘的快速扫描定位方法 |
CN103631244A (zh) * | 2013-12-22 | 2014-03-12 | 贺义方 | 一种基于mcu和cpld的主从式键盘控制器 |
-
2016
- 2016-01-05 CN CN201810346591.6A patent/CN108388353B/zh not_active Expired - Fee Related
- 2016-01-05 CN CN201610003686.9A patent/CN105677053B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4291385A (en) * | 1973-12-17 | 1981-09-22 | Hewlett-Packard Company | Calculator having merged key codes |
JPS61262913A (ja) * | 1985-05-17 | 1986-11-20 | Fujitsu Ltd | キ−ボ−ド同時打鍵シフト処理方式 |
CN1359052A (zh) * | 2001-07-11 | 2002-07-17 | 威盛电子股份有限公司 | 用于笔记型计算机的键盘指令读取装置 |
CN1412650A (zh) * | 2002-11-20 | 2003-04-23 | 威盛电子股份有限公司 | 通用串行总线接口的键盘控制电路 |
CN101436854A (zh) * | 2007-11-15 | 2009-05-20 | 宝利通公司 | 双触点键盘装置 |
CN103226391A (zh) * | 2013-05-22 | 2013-07-31 | 湖南工业大学 | 一种独立式键盘的扫描定位方法 |
CN103279197A (zh) * | 2013-06-08 | 2013-09-04 | 湖南工业大学 | 一种键盘的扫描定位方法 |
Non-Patent Citations (2)
Title |
---|
NIAN-SHIONG TAN: "A new design method for encoding and decoding circuits", 《IEEE》 * |
赵晓林: "单片机中非编码键盘的编码设计", 《兰州教育学院学报》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110703352A (zh) * | 2017-11-16 | 2020-01-17 | 湖南工业大学 | 自动生产线产品计数信号产生电路 |
CN110703352B (zh) * | 2017-11-16 | 2021-05-25 | 湖南工业大学 | 自动生产线产品计数信号产生电路 |
Also Published As
Publication number | Publication date |
---|---|
CN105677053B (zh) | 2018-05-25 |
CN105677053A (zh) | 2016-06-15 |
CN108388353B (zh) | 2021-03-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105677053B (zh) | 独立式键盘操作识别及编码电路 | |
CN105677055B (zh) | 矩阵式键盘扫描电路及方法 | |
CN105468164B (zh) | 矩阵式键盘扫描及编码电路 | |
CN105680873B (zh) | 独立式键盘扫描编码电路 | |
CN105677051B (zh) | 独立式键盘扫描电路及编码电路 | |
CN105700697B (zh) | 独立式键盘扫描电路及方法 | |
CN105677052B (zh) | 独立式键盘状态识别及编码电路 | |
CN105677054B (zh) | 独立式键盘扫描定位电路 | |
CN105677050B (zh) | 独立式键盘扫描电路及扫描编码方法 | |
CN205490496U (zh) | 一种矩阵式键盘操作识别及编码电路 | |
CN105680875B (zh) | 矩阵式键盘操作识别及编码电路 | |
CN105700695B (zh) | 矩阵式键盘扫描电路及编码电路 | |
CN205318332U (zh) | 一种独立式键盘操作识别及编码电路 | |
CN105471439B (zh) | 独立式键盘扫描及编码电路 | |
CN105700696B (zh) | 矩阵式键盘扫描编码电路 | |
CN105680874B (zh) | 矩阵式键盘扫描电路及扫描编码方法 | |
CN205384581U (zh) | 一种独立式键盘扫描电路及编码电路 | |
CN205490497U (zh) | 一种独立式键盘扫描定位电路 | |
CN105700698B (zh) | 矩阵式键盘状态识别及编码电路 | |
CN205334379U (zh) | 一种独立式键盘状态识别及编码电路 | |
CN205384582U (zh) | 一种矩阵式键盘扫描电路及编码电路 | |
CN105703780B (zh) | 矩阵式键盘扫描定位电路 | |
CN205353947U (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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20210316 |