一种独立式键盘扫描定位电路的制作方法

文档序号:10807108阅读:231来源:国知局
一种独立式键盘扫描定位电路的制作方法
【专利摘要】一种独立式键盘扫描定位电路,由独立式键盘、缓冲寄存器、状态码寄存器、编码器组成。所述电路经由时钟脉冲扫描,将对单键操作、组合键操作、键盘维持状态操作的定位,转换成同一二进制长度的有效状态码和无效状态码,经过编码器编码后输出与每一个有效状态码对应的有效键号或者是输出与所有无效状态码对应的无效键号;不同的单键操作、组合键操作、键盘维持状态操作仅体现在状态码的不同上;如果需要增减按键操作功能或者是调整按键操作功能,不需要修改键盘扫描电路结构,只需根据增减后的状态码与键号之间的对应关系更改编码器即可。所述实用新型电路不用编写和运行程序,工作可靠。
【专利说明】
一种独立式键盘扫描定位电路
技术领域
[0001] 本实用新型涉及一种键盘的扫描电路,尤其是一种独立式键盘扫描定位电路。
【背景技术】
[0002] 随着嵌入式技术的不断发展,当前各类电子产品普遍采用微控制器作为控制核 心,键盘作为主要的输入设备,得到了广泛的应用。
[0003] 目前的键盘扫描主要由微控制器所控制,需要通过运行微控制器中的程序来进 行,遇到干扰,造成程序飞跑,扫描程序将不能正常工作。
[0004] 申请号为CN201010153560.2的发明专利"一种矩阵键盘的快速扫描定位方法"采 用键盘中断触发的方式进入键盘的扫描定位过程,采用多次重复键盘扫描步骤的方法判断 按键是否有效,并对所获得的键值进行状态判断;如果多次采样状态相同,则处于稳定状 态,键值有效;如果多次采样状态不同,键值无效。单键操作或组合键操作需要单独判断,如 是单键操作,则进入单键处理模式;如是组合键操作,则进入组合键处理模式。该专利所述 方法解决了由于键盘自身的机械特性造成的键盘抖动而引起错键、连续触键等错误问题, 以及对组合键和重复按键的支持问题。但所述方法单键操作与组合键操作需要分别处理; 没有考虑键盘状态维持一段时间到后才执行有效操作的键盘操作功能;增减按键操作功能 或者是调整按键操作功能时,需要修改键盘扫描定位程序结构

【发明内容】

[0005] 为了解决现有键盘扫描定位方法存在的上述技术问题,本实用新型提供了一种独 立式键盘扫描定位电路,由独立式键盘、缓冲寄存器、状态码寄存器、编码器组成。
[0006] 所述独立式键盘共有N个按键,设有N位键盘状态信号输出端;所述N位键盘状态信 号为电平信号。
[0007] 所述缓冲寄存器为N位二进制寄存器;缓冲寄存器的N位数据输入端连接至N位键 盘状态信号输出端。
[0008] 所述状态码寄存器为2 XN位二进制寄存器;状态码寄存器的2 XN位数据输入端中 的N位连接至N位键盘状态信号输出端,另外N位连接至缓冲寄存器的N位数据输出端。
[0009] 所述编码器有2 XN位编码输入端,所述2 XN位编码输入端连接至状态码寄存器的 2 X N位数据输出端;所述编码器有M位键号输出端。
[0010]所述缓冲寄存器的接收脉冲输入端和状态码寄存器的接收脉冲输入端均连接至 时钟脉冲。
[0011] 所述缓冲寄存器和状态码寄存器在时钟脉冲的上升沿同时进行数据锁存,或者在 时钟脉冲的下降沿同时进行数据锁存。
[0012] 所述状态码寄存器2XN位数据输出端输出2XN位的状态码;所述状态码由有效状 态码和无效状态码组成;所述编码器输出的键号由有效键号和无效键号组成;所述有效状 态码由有效键盘操作或状态产生,编码器输入每一个有效状态码时对应输出相应的有效键 号;所述无效状态码由无效键盘操作或状态产生,编码器输入所有无效状态码时都对应输 出无效键号。
[0013] 所述编码器有M位键号输出端,M值的选择应满足2?大于等于有效键号与无效键号 的数量之和。
[0014] 所述N位键盘状态信号与N个按键之间满足一一对应关系。
[0015] 所述时钟脉冲的周期为20~100ms;所述一种独立式键盘扫描定位电路还包括振 荡器;所述振荡器输出时钟脉冲。
[0016] 所述一种独立式键盘扫描定位电路还包括键盘状态变化脉冲产生单元,用于判断 独立式键盘输出的键号是否发生改变,当独立式键盘输出的键号发生改变时,输出键盘状 态变化脉冲。
[0017] 所述键盘状态变化脉冲产生单元由M位延迟缓冲器、M个异或门和或门组成;M位延 迟缓冲器用于对独立式键盘输出的M位键号分别进行信号延迟;M个异或门的输入分别为M 位延迟缓冲器的输入、输出信号;M个异或门的输出分别连接至或门的输入端;或门的输出 端输出键盘状态变化脉冲。
[0018] 所述的N位、2 X N位、M位均指二进制位数据。
[0019] 本实用新型的有益效果是:将对单键操作、组合键操作、键盘维持状态操作的定 位,由时钟脉冲扫描转换成同一二进制长度的状态码,采用统一编码的方式进行处理,单键 操作、组合键操作、键盘维持状态操作仅体现在状态码的不同上;如果需要增减按键操作功 能或者是调整按键操作功能,不需要修改键盘扫描电路结构,只需根据增减后的状态码与 键号之间的对应关系更改编码器、即重新写入只读存储器的存储内容即可。所述实用新型 电路没有使用单片机、ARM等微控制器,不用运行程序,工作可靠。
【附图说明】
[0020] 图1是独立式键盘扫描定位电路原理框图;
[0021 ]图2是本实用新型实施例的独立式键盘电路图;
[0022] 图3是本实用新型实施例的扫描定位电路图;
[0023] 图4是本实用新型实施例的键盘状态变化脉冲产生单元的电路图;
[0024] 图5是本实用新型实施例的键盘有效操作的相关波形示意图。
【具体实施方式】
[0025] 以下结合附图对本实用新型作进一步说明。
[0026]图1是独立式键盘扫描定位电路原理框图,由独立式键盘400、缓冲寄存器100、状 态码寄存器200、编码器300、振荡器500组成。
[0027]图2是本实用新型实施例的独立式键盘400的电路图,共有4个按键,由按键Sl、按 键S2、按键S3、按键S4和连接至电源+VCC的上拉电阻RU上拉电阻R2、上拉电阻R3、上拉电阻 R4组成。独立式键盘400的4个输出端分别一一对应输出按键Sl、按键S2、按键S3、按键S4的 状态信号11、12、13、14,按键按下时,相应输出端的状态信号为低电平;按键未按下时,相应 输出端的状态信号为高电平。
[0028]图1中的缓冲寄存器100、状态码寄存器200、编码器300组成扫描定位电路,其实施 例电路图如图3所示。独立式键盘电路有4个按键,因此,缓冲寄存器100要求寄存4位二进制 数据,状态码寄存器200要求寄存8位二进制数据。缓冲寄存器100的4个数据输入端连接至 II、12、13、14;状态码寄存器200的8个数据输入端中,4个数据输入端连接至II、12、13、14, 另外4个数据输入端连接至缓冲寄存器100的4个输出端;编码器300的8个输入端连接至状 态码寄存器200的8个输出端。编码器300输出经过扫描定位确定的4位二进制键号。
[0029]图3中,触发器101组成缓冲寄存器100、触发器201组成状态码寄存器200。触发器 101由4个边沿触发器组成,4个边沿触发器的触发输入端为缓冲寄存器100的接收脉冲输入 端,均连接至振荡器500的CP时钟脉冲输出端;触发器201由8个边沿触发器组成,8个边沿触 发器的触发输入端为状态码寄存器200的接收脉冲输入端,均连接至振荡器500的CP时钟脉 冲输出端。触发器101、触发器201优选由边沿触发的D触发器组成,例如,由双D触发器 74HC74、4D触发器74HC175组成。图3实施例中,触发器101、触发器201均选择上升沿触发的 8D触发器74HC273,此时,要将图3中未画出的清零输入端连接至高电平,使74HC273的清零 功能处于无效状态,只具有触发功能;触发器101只需要4D触发器,任意使用所选8D触发器 74HC273中的4个D触发器即可。两个8D触发器74HC273的触发输入端CLK1、CLK2均连接至CP。
[0030] 图3中,只读存储器301组成编码器300。只读存储器301的地址输入端A7~AO为编 码器300的输入端,只读存储器301的数据输出端D3~DO为编码器300的编码输出端C3~C0。
[0031] 实施例未画出振荡器500的电路,振荡器500为多谐振荡器,输出周期为20~IOOms 的矩形波,该矩形波为图3中的CP时钟脉冲。CP时钟脉冲也可以由一种独立式键盘扫描定位 电路之外的电路或者装置提供。
[0032]独立式键盘扫描定位电路的工作原理如下:
[0033]缓冲寄存器100、状态码寄存器200在CP时钟脉冲控制下,在CP的每一个周期的有 效触发沿进行数据锁存。图3中,74HC273为上升沿触发有效,因此,CP时钟脉冲的有效触发 沿为上升沿。
[0034] 状态码寄存器200的8个数据输入端中的4个数据输入端D20~D23直接连接至独立 式键盘输出的状态信号11、12、13、14,另外4个数据输入端D24~D27连接至缓冲寄存器100 的数据输出端QlO~Q13,缓冲寄存器100的4个数据输入端DlO~D13直接连接至独立式键盘 输出的状态信号II、12、13、14,因此,在CP时钟脉冲的有效触发沿,状态码寄存器200的8个 数据输出端中,与直接连接至独立式键盘输出的状态信号Π 、12、13、14相对应的4个数据输 出端Q20~Q23锁存的数据为独立式键盘的当前状态,其4位数据称为现态键值;与连接至缓 冲寄存器100的数据输出端相对应的4个数据输出端Q24~Q27锁存的数据为独立式键盘的 前一状态,其4位数据称为前态键值。状态码寄存器200数据输出端输出的4位现态键值和4 位前态键值共同组成8位状态码。
[0035]所述的8位状态码用于识别独立式键盘的当前状态和操作状态。例如,本实施例 中,无键按下的状态码是11111111; Sl键单键按下操作的状态码是11111110; Sl键单键按下 且维持的状态码是11101110; Sl键单键释放操作的状态码是11101111; S2键单键按下操作 的状态码是11111101 ;S4键单键按下操作的状态码是11110111 ;S2+S1组合操作的Sl按下操 作,表示先按下S2后,在S2维持按下的状态再按下Sl的操作,该操作的状态码是11011100。 [0036]编码器300用于将状态码转换为键号。实施例中,设有7个有效的键盘操作与状态, 包括:
[0037]操作0:按键SI的单键按下操作,键号为0000;
[0038]操作1:按键S2的单键按下操作,键号为0001;
[0039] 操作2:按键S3的单键按下操作,键号为0010;
[0040] 操作3:按键S3单键按下后的维持状态,键号为0011;
[00411操作4:按键S4单键按下后,再按下按键Sl的组合键操作,键号为0100;
[0042]操作5:按键S4单键按下后,再按下按键S2的组合键操作,键号为0101;
[0043]操作6:按键Sl的单键释放操作,键号为0110。
[0044] 根据上述规定得到的状态码和键号见编码表1:
[0045] 表1编码表
[0047]编码器300为组合逻辑电路,设计电路,满足表1的逻辑关系即可。
[0048]实施例的编码器300优选由只读存储器301组成。只读存储器301有8位地址,共28 个4位二进制存储单元。7个有效的键盘操作与状态有7个有效状态码,对应7个有效的键号; 将状态码作为只读存储器301的地址A7~AO,在与7个有效状态码相对应的存储单元中,将 相应的键号作为存储数据写入。7个有效的键盘操作与状态之外产生的状态码为无效状态 码,即表1中的其他操作或状态所产生的为无效状态码;在其他存储单元中,全部写入无效 键号,无效键号为7个有效键号之外的一个值,实施例中,无效键号为1111。
[0049]只读存储器301-直工作在数据输出状态。当只读存储器301具有片选控制、数据 输出缓冲控制功能时,应使其片选控制、数据输出缓冲控制处于有效状态。
[0050] 实施例中的键号为4位二进制码。键号的二进制位数可以根据需要增加,或者减 少,此时,只需选择与此相匹配的只读存储器301即可。设键号的二进制位数为M,M值的选择 应满足2 M大于等于有效键号与无效键号的数量之和。当独立式键盘有N位键盘状态信号输 出时,只读存储器301需要有2 X N位地址输入,M位数据输出。
[0051] 如果需要增减按键操作功能或者是调整按键操作功能,只需根据需要修改表1,将 修改后的内容重新写入只读存储器301的存储内容即可。
[0052]实施例中,当独立式键盘Sl单键按下时,编码器300在Sl单键按下后的CP时钟脉冲 的有效触发沿开始,至下一个CP时钟脉冲的有效触发沿为止,编码输出端C3~CO输出键号 〇〇〇〇;当独立式键盘S2单键按下时,编码器300在S2单键按下后的CP时钟脉冲的有效触发沿 开始,至下一个CP时钟脉冲的有效触发沿为止,输出键号0001;当独立式键盘先按下S4后, 再按下Sl,编码器300在Sl组合键按下后的CP时钟脉冲的有效触发沿开始,至下一个CP时钟 脉冲的有效触发沿为止,输出键号0100;当独立式键盘SI单键释放时,编码器300在SI单键 释放后的CP时钟脉冲的有效触发沿开始,至下一个CP时钟脉冲的有效触发沿为止,输出键 号0110;因此可以看出,当识别的是独立式键盘的有效按键操作时,编码器300在该有效按 键操作后的CP时钟脉冲的有效触发沿开始,至下一个CP时钟脉冲的有效触发沿为止,输出 持续时间为一个CP时钟脉冲周期宽度的有效键号。
[0053]实施例中,当独立式键盘S3单键按下时,编码器300在S3单键按下后的CP时钟脉冲 的有效触发沿开始,至下一个CP时钟脉冲的有效触发沿为止,输出键号0010;在接下来的CP 时钟脉冲的有效触发沿开始,至S3单键按下维持状态结束后的下一个CP时钟脉冲的有效触 发沿为止,编码器300输出键号0011;因此可以看出,当识别的是独立式键盘的维持状态时, 编码器300输出有效键号的持续时间与该维持状态的持续时间相适应。
[0054]当键盘的状态或操作为表1中所述的7个有效的键盘操作与状态之外时,编码器 300输出无效键号111 1。无论是输出有效键号,还是输出无效键号,编码器300改变输出内容 的时刻为CP时钟脉冲的有效触发沿;实施例中,编码器300改变输出内容的时刻为CP时钟脉 冲的上升沿。
[0055] CP时钟脉冲的周期为独立式键盘的扫描周期。键盘扫描周期在20ms以上时,能够 有效地避开了键盘按键抖动的影响;键盘扫描周期在IOOms以下时,不至于遗漏键盘操作; 因此,CP时钟脉冲的周期应该控制在20~IOOms。
[0056]图4是本实用新型实施例的键盘状态变化脉冲产生单元的电路图。当识别的是独 立式键盘的有效按键操作时,编码器300在该有效按键操作后的CP时钟脉冲的有效触发沿 开始,至下一个CP时钟脉冲的有效触发沿为止,输出持续时间为一个CP时钟脉冲周期宽度 的有效键号。接收所述独立式键盘输出的装置,需要时刻查询独立式键盘的输出,获取键 号。查询的周期间隔必须小于CP时钟脉冲的周期。
[0057]图4所示电路用于判断独立式键盘输出的键号是否发生改变,当独立式键盘输出 的键号发生改变时,输出键盘状态变化脉冲,用于辅助独立式键盘的接收装置接收独立式 键盘输出的键号,例如,将键盘状态变化脉冲作为接收装置的中断请求信号。
[0058]图4所示电路由延迟缓冲器601、异或门602、异或门603、异或门604、异或门605、或 门606组成。延迟缓冲器601由只具有触发功能的4个边沿触发器组成,4个边沿触发器的触 发输入端为延迟缓冲器601的接收脉冲输入端,均连接至振荡器500的CP时钟脉冲输出端; 延迟缓冲器601在CP时钟脉冲的有效触发沿进行数据锁存。
[0059] 延迟缓冲器601用于对编码器300的编码输出端的4位数据C3~CO分别进行延迟处 理。延迟缓冲器601的4个数据输入端D63~D60连接至编码器300的编码输出端C3~C0,延迟 缓冲器601的4个数据输出端Q63~Q60相应输出的数据是C31~C01;C31~COl经过延迟缓冲 器601的一级缓冲后,其信号比C3~CO延迟一个CP时钟脉冲周期,图5所示为本实用新型实 施例的键盘有效操作的相关波形示意图。设在CP时钟脉冲的Tl区间,独立式键盘存在一次 有效操作,实施例的有效操作包括:Sl单键按下、S2单键按下、S3单键按下、S4+S1组合操作 的Sl按下、S4+S2组合操作的S2按下、Sl单键释放。在一次有效操作的下一个有效触发沿,即 图5中CP时钟脉冲Tl区间之后的上升沿,编码器300输出的编码C3~CO发生改变;在T2区间, 编码器300输出一个周期的有效编码C3~CO;在T3、T4及之后区间,编码器300输出的编码C3 ~CO再一次改变且进入维持状态,该维持状态可能是例如Sl单键按下后面的维持状态,输 出无效键号,也可能是S3单键按下后面的维持状态,输出有效键号,直到下一次有效操作。 [0060]图5中的D6脉冲示意表示编码器300输出的编码C3~CO是处于维持状态,没有变 化,还是发生改变,实际电路中不存在所述的D6脉冲。如图5所示,D6脉冲为低电平,示意表 示编码器300输出的编码C3~CO是处于维持状态,没有变化;D6脉冲为高电平,示意表示编 码器300输出一个周期的有效编码C3~⑶。图5中的Q6反映的是C31~CO 1的变化情况,显然, Q6比D6延迟一个CP时钟脉冲周期。同样,实际电路中不存在所述的Q6脉冲。
[0061 ]图5中,编码器300输出的编码C3~CO是处于维持状态,没有变化,还是发生改变, 实际是由4位延迟缓冲器601、异或门602、异或门603、异或门604、异或门605、或门606所组 成的逻辑电路完成。4个异或门分别与编码器300编码输出端C3~CO中的1位相对应,输入分 别为4位延迟缓冲器601的输入、输出信号。例如,异或门602的两个输入信号分别为CO和 COl,C01比CO延迟一个CP时钟脉冲周期,因此,当CO发生变化时,异或门602输出1个CP时钟 脉冲周期宽度的正脉冲;当CO为一个CP时钟脉冲周期宽度变化信号时,异或门602输出2个 CP时钟脉冲周期宽度的正脉冲。异或门603、异或门604、异或门605分别判断Cl~C3是否发 生变化,原理与判断CO是否发生变化相同。异或门602、异或门603、异或门604、异或门605的 输出端分别连接至或门606的输入端,或门606用于综合判断CO~C3是否发生变化,只要CO ~C3发生变化,或门606即输出键盘状态变化脉冲F,该脉冲为正脉冲。
[0062] 实施例中,延迟缓冲器601选择上升沿触发的8D触发器74HC273。实施例中,编码器 300输出的是4位二进制键号,因此,延迟缓冲器601只需要4个D触发器。由于延迟缓冲器601 中的4个D触发器和触发器101中的4个D触发器的触发输入端均连接至振荡器500的CP时钟 脉冲输出端,因此,延迟缓冲器601与触发器101可共用一个8D触发器74HC273。
[0063] 延迟缓冲器601还可以采用其他方案,例如,采用RC电路,利用4个RC电路分别对CO ~C3进行延迟;如果RC电路的延迟时间小于一个CP时钟脉冲周期,则编码器300输出一个周 期的有效编码C3~CO时,在输出有效编码C3~CO开始和输出有效编码C3~CO结束都产生一 个键盘状态变化脉冲,键盘状态变化脉冲的宽度等于RC电路延迟时间;如果RC电路的延迟 时间大于等于一个CP时钟脉冲周期,则编码器300输出一个周期的有效编码C3~CO时,在输 出有效编码C3~CO开始时产生一个键盘状态变化脉冲,脉冲宽度大于等于2个CP时钟脉冲 周期。要求RC电路的延迟时间不超过2个CP时钟脉冲周期,以免产生漏报。
[0064]所述的实用新型电路中,将对单键操作、组合键操作、键盘维持状态操作的定位, 由CP脉冲扫描转换成同一二进制长度的状态码,采用统一编码的方式进行处理,单键操作、 组合键操作、键盘维持状态操作仅体现在状态码的不同上;如果需要增减按键操作功能或 者是调整按键操作功能,不需要修改键盘扫描电路结构,只需根据增减后的状态码表更新 编码器300、即重新写入更新只读存储器301的存储内容即可。所述实用新型电路没有使用 单片机、ARM等微控制器,不用运行程序,工作可靠。
【主权项】
1. 一种独立式键盘扫描定位电路,其特征在于,由独立式键盘、缓冲寄存器、状态码寄 存器、编码器组成; 所述独立式键盘共有N个按键,设有N位键盘状态信号输出端输出电平信号; 所述缓冲寄存器为N位二进制寄存器;缓冲寄存器的N位数据输入端连接至N位键盘状 态信号输出端; 所述状态码寄存器为2 X N位二进制寄存器;状态码寄存器的2 X N位数据输入端中的N 位连接至N位键盘状态信号输出端,另外N位连接至缓冲寄存器的N位数据输出端; 所述编码器有2 X N位编码输入端,所述2 X N位编码输入端连接至状态码寄存器的2 X N 位数据输出端;所述编码器有M位键号输出端; 所述缓冲寄存器的接收脉冲输入端和状态码寄存器的接收脉冲输入端均连接至时钟 脉冲。2. 根据权利要求1所述的一种独立式键盘扫描定位电路,其特征在于:所述缓冲寄存器 和状态码寄存器由边沿触发的D触发器组成;所述编码器为只读存储器。3. 根据权利要求1所述的一种独立式键盘扫描定位电路,其特征在于:所述状态码寄存 器2 XN位数据输出端输出2 XN位的状态码;所述状态码由有效状态码和无效状态码组成; 所述编码器输出的键号由有效键号和无效键号组成;所述有效状态码由有效键盘操作或状 态产生,编码器输入每一个有效状态码时对应输出相应的有效键号;所述无效状态码由无 效键盘操作或状态产生,编码器输入所有无效状态码时都对应输出无效键号。4. 根据权利要求1所述的一种独立式键盘扫描定位电路,其特征在于:还包括键盘状态 变化脉冲产生单元。5. 根据权利要求4所述的一种独立式键盘扫描定位电路,其特征在于:所述键盘状态变 化脉冲产生单元由M位延迟缓冲器、M个异或门和或门组成;M位延迟缓冲器用于对独立式键 盘输出的M位键号分别进行信号延迟;M个异或门的输入分别为M位延迟缓冲器的输入和输 出信号;M个异或门的输出分别连接至或门的输入端;或门的输出端输出键盘状态变化脉 冲。6. 根据权利要求1所述的一种独立式键盘扫描定位电路,其特征在于:还包括振荡器; 所述振荡器输出时钟脉冲。
【文档编号】H03M11/20GK205490497SQ201620006238
【公开日】2016年8月17日
【申请日】2016年1月5日
【发明人】周维龙, 凌云, 肖伸平, 文定都, 唐文妍
【申请人】湖南工业大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1