一种键盘电路的制作方法

文档序号:6517145阅读:180来源:国知局
专利名称:一种键盘电路的制作方法
技术领域
本发明涉及电子、通信等设备中的一种键盘电路。
背景技术
在嵌入式单板设计中,经常要使用到键盘电路。现有技术中的典型键盘电路如图1所示。
从图1中可以看出,当KEY1至KEY8中的任一按键被按下时,例如当KEY1被按下时,二极管D1的负端变为低电平,此时二极管D1导通,与之连接的按键信号电路(图1下部的虚线框所示)所输出的按键信号KEY_PRESSED将由高电平变为低电平。当KEY1被释放后,二极管D1截止,按键信号KEY_PRESSED将恢复到高电平。因此,按键信号KEY_PRESSED可作为键盘中断请求信号INT_KEY,直接送到CPU。
从图1中可以看出,锁存器U1的11脚直接与电源VCC连接,也就是说,其输入使能端是被拉高的。锁存器U1内部的寄存器的内容为当前键值,当来自CPU的片选信号CS_KEY有效时(低电平),锁存器U1的输出打开,当前其锁存的当前键值被送到数据总线D
上。
在图1所示的电路中,键盘驱动程序可用查询方式或者外部硬件中断方式来获取按键情况。若驱动程序采用查询方式,由于程序不知道键盘何时按下,为了尽量不丢失按键信号,必须采用定时中断,即每隔一定时间去读取一次锁存器U1,并根据读得的键值进行判断、处理、更新键盘缓冲区。这样就存在一些问题(1)、容易丢失按键如果在两次定时中断发生之间有按键被快速按下,则该按键信息将被丢失;(2)、浪费CPU资源无论用户是否按键,定时中断都会频繁发生,因此比较浪费CPU资源;(3)、算法复杂。
若驱动程序采用外部硬件中断方式(即以图1中的按键信号KEY_PRESSED作为按键中断信号INT_KEY),虽可及时捕捉到按键,也能相对简化算法,但是依然存在以下问题(1)、算法依然相对复杂;(2)、占用了一个通道的外部中断,而在嵌入式设计中,中断资源是很紧缺的。
另外,采用以上的方法,都需要建立键盘缓冲区,这就需要考虑并发访问键盘缓冲区引起的冲突问题,使算法复杂化。

发明内容
针对现有技术的上述缺陷,本发明要解决现有键盘电路比较浪费系统资源,且算法比较复杂的问题。
为解决上述技术问题,本发明提供其中包括多个按键;每一个按键连接到锁存器的一个输入端,所述锁存器的输出使能端与中央处理器的片选信号输出端连接,所述锁存器的各个输出端用于输出当前锁存的键值;每一个按键还连接到按键信号电路的一个输入端,任一按键被按下时所述按键信号电路可输出一个按键信号;其中还包括与所述锁存器的输入使能端连接的输入使能控制电路;所述输入使能控制电路中包括一个可在下降沿或上升沿触发并输出短时脉冲信号的第一单稳态触发器,一个可在上升沿或下降沿触发并输出短时脉冲信号的第二单稳态触发器,以及一个或门输出电路;所述第一单稳态触发器的输入端与所述按键信号电路的输出端连接,所述第二单稳态触发器的输入端与所述中央处理器的片选信号输出端连接,所述第一、第二单稳态触发器的输出端分别连接到所述或门输出电路的两个输入端,所述或门输出电路的输出端与所述锁存器的输入使能端连接。
本发明中,以所述锁存器内部的寄存器作为一个字节的硬件键盘缓冲区,用于存储当前键值。
本发明中,所述按键信号电路在任一按键被按下时输出一个低电平按键信号;所述第一单稳态触发器在下降沿触发并输出高脉冲信号,所述第二单稳态触发器可以上升沿触发并输出高脉冲信号;所述锁存器的输入使能端为高电平有效,输出使能端则为低电平有效。
本发明中,所述或门输出电路中可包括正极与所述第一单稳态触发器的输出端连接的第一二极管,以及正极与所述第二单稳态触发器的输出端连接的第二二极管;所述第一、第二二极管的负极相互连接后经电阻接地,并连接到所述锁存器的输入使能端。
本发明中,所述或门输出电路中可包括一个传统或门电路,所述第一、第二单稳态触发器的输出端分别连接到该传统或门电路的输入端,所述传统或门电路的输出端连接到所述锁存器的输入使能端。
本发明在现有小键盘电路的基础上进行了适当的改进,增加了一个输入使能控制电路,并相应地改变了其中一些信号线的接法,通过输入使能控制电路并结合按键信号和片选信号来控制锁存器的输入使能端,使得改进后的键盘电路既能及时防止按键丢失,又能大大简化软件算法,并节省系统资源。


下面将结合附图及实施例对本发明作进一步说明,附图中图1是现有技术中的一个典型键盘电路;图2是本发明一个优选实施例中的键盘电路的基本键盘电路;图3是与图2配合的输入使能控制电路;图4是图2和图3所示电路的工作波形示意图。
具体实施例方式
本发明一个优选实施例的键盘电路中,包含图2所示的基本键盘电路和图3所示的输入使能控制电路。本实施例中,锁存器U1采用的是型号为74HC373的芯片;第一、第二单稳态触发器U2A、U2B采用的都是型号为74HC123的芯片,但两者的接法有所不同。
图2所示的基本键盘电路与图1所示的典型小键盘电路基本相同,两者的不同之处在于(1)锁存器U1的输入使能端(11脚)不是直接被拉高,而是受图3所示的输入使能控制电路所控制;(2)按键信号KEY_PRESSED不再作为CPU外部中断请求信号直接送到CPU,而是送给图3所示的输入使能控制电路。
从图3中可以看出,第一单稳态触发器U2A的A输入端与所述按键信号KEY_PRESSED连接,B输入端则与电源VCC连接;第二单稳态触发器U2B的A输入端接地,B输入端由与CPU的片选信号CS_KEY连接;其中的二极管D9、D10和下拉电阻R11组成一个或门性质的或门输出电路,任一个输入为高电平时,其输出则为高电平;U2A、U2B的输出端Q分别经二极管D10、D9的正极输入,然后从负极输出到锁存器U1的输入使能端(11脚),两个二极管D10、D9的负极还经电阻R11接地。
本实施例中,当某一按键被按下时,按键信号KEY_PRESSED将由高电平变为低电平,该信号的下降沿会触发U2A输出一个高脉冲信号到锁存器U1的第11脚,使锁存器U1的输入使能端有效,此时,锁存器U1会将当前被按下的那一个按键的键值锁存到U1内部寄存器中。当按键被释放后,U1内部锁存的键值保持不变。
可见,只有在按键信号KEY_PRESSED的下降沿和片选信号CS_KEY的上升沿,输入使能控制电路才会触发输出高脉冲信号,从而使锁存器U1的输入使能端有效,在其他时候,输入使能端无效。
当驱动程序需读取键值时,会输出一个低脉冲片选信号CS_KEY,它作为锁存器的输出使能信号连接到U1的第1脚,在低电平期间,锁存器U1的输出D
打开,当前锁存的键值可被送到数据线上。当CS_KEY信号的上升沿到来时,U2B(型号为74HC123的芯片)被触发而输出一个高脉冲信号到G_HC373,此时会再次锁存当前键值,如果此时按键已被释放,则相当于将缓冲区自动清零;如按键没有释放,则重新读取的键值与之前的键值相同,相当于缓冲区中依然保留以前的值。本实施例,锁存键值和更新缓冲区的速度很快,当按下按键时,键值会在很短的时间内自动锁存到缓冲区中,不会丢按键。
图2、图3所示电路的工作波形如图4所示。图4中U1_REG
为锁存器U1内部寄存器,也就是一个字节的键盘缓冲区。
从图4中可以看出,如果某一按键被按下的时间较短,按下按键时,按键信号电路会输出一个低电平按键信号KEY_PRESSED(即INT_KEY);在按键信号INT_KEY的下降沿,U2A被触发而输出一个短时高脉冲信号(即图4中G_HC373的第一个脉冲);与此同时,U1会锁存当前键值;当该按键被释放时,按键中断信号INT_KEY恢复为高电平,已锁存的键值可保持不变,除非又有另一按键被按下;当CPU传来片选信号CS_KEY时,在其下降沿,U1会输出当前锁存的键值,在片选信号CS_KEY的上升沿,U2B被触发而输出一个短时高脉冲信号(对应于图4中G_HC373的第二个脉冲),因此时没有任何按键被按下,所以可将锁存器U1清零。
从图4中可以看出,当某一按键被按下的时间较长时,在按下时引起的按键中断信号INT_KEY的下降沿,U2A会输出一个短时高脉冲信号(对应于图4中G_HC373的第三个脉冲);在第一次读取时的片选信号CS_KEY((对应于图4中CS_KEY的第二个脉冲)的上升沿,U2B会输出一个短时高脉冲信号(对应于图4中G_HC373的第二个脉冲),将重新锁存当前值,因此时按键未被释放,所以锁存的键值会保持来变,只有当没有任何按键被按下时,在片选信号CS_KEY的上升沿才会将锁存器U1清零。
在图1所示的典型键盘电路中,为了防止按键丢失,必须软件建立一个缓冲区存放键值,使用软件缓冲区,就必须考虑并发访问冲突问题,使得软件算法复杂化。而本实施例中,用锁存器U1内部的寄存器作为一个字节的硬件键盘缓冲区,当某一按键被按下时,按键控制电路将产生一个很短的高脉冲信号作为锁存器的输入使能信号,从而将当前键值自动锁存到U1中。软件不需要做任何干预,也不会丢按键,更不用考虑并发访问缓冲区引起的冲突问题。
本发明并不限于上述实施例,例如,可将图2中各个按键KEY1至KEY-8的右端改为接电源VCC,电阻R1至R8的上端改为接地,二极管D1至D8改为反向连接并经电阻R9接地;此时,按下某一按键,按键信号KEY_PRESSED将由低电平变为高电平,释放后则恢复为低电平。相应地,第一单稳态触发器U2A的接法应与图3中U2B的接法类似,即将按键信号KEY_PRESSED输入到B端,其A端则接地。
此外,还可在图2键盘电路中加入防抖动电路。另外,还可将图3中所示的两个二极管D9、D10和电阻R11替换为一个传统或门电路,第一、第二单稳态触发器U2A、U2B的输出端分别连接到该传统或门电路的两个输入端,该传统或门电路的输出端则连接到锁存器U1的输入使能端。
权利要求
1.一种键盘电路,其中包括多个按键;每一个按键连接到锁存器的一个输入端,所述锁存器的输出使能端与中央处理器的片选信号输出端连接,所述锁存器的各个输出端用于输出当前锁存的键值;每一个按键还连接到按键信号电路的一个输入端,任一按键被按下时所述按键信号电路可输出一个按键信号;其特征在于,还包括与所述锁存器的输入使能端连接的输入使能控制电路;所述输入使能控制电路中包括一个可在下降沿或上升沿触发并输出短时脉冲信号的第一单稳态触发器,一个可在上升沿或下降沿触发并输出短时脉冲信号的第二单稳态触发器,以及一个或门输出电路;所述第一单稳态触发器的输入端与所述按键信号电路的输出端连接,所述第二单稳态触发器的输入端与所述中央处理器的片选信号输出端连接,所述第一、第二单稳态触发器的输出端分别连接到所述或门输出电路的输入端,所述或门输出电路的输出端与所述锁存器的输入使能端连接。
2.根据权利要求1所述的键盘电路,其特征在于,其中以所述锁存器内部的寄存器作为一个字节的硬件键盘缓冲区,用于存储当前键值。
3.根据权利要求1所述的键盘电路,其特征在于,所述按键信号电路在任一按键被按下时输出一个低电平按键信号;所述第一单稳态触发器在下降沿触发并输出高脉冲信号,所述第二单稳态触发器可以上升沿触发并输出高脉冲信号;所述锁存器的输入使能端为高电平有效,输出使能端则为低电平有效。
4.根据权利要求3所述的键盘电路,其特征在于,所述或门输出电路中,包括正极与所述第一单稳态触发器的输出端连接的第一二极管,以及正极与所述第二单稳态触发器的输出端连接的第二二极管;所述第一、第二二极管的负极相互连接后经电阻接地,并连接到所述锁存器的输入使能端。
5.根据权利要求3所述的键盘电路,其特征在于,所述或门输出电路中包括一个传统或门电路,所述第一、第二单稳态触发器的输出端分别连接到该传统或门电路的输入端,所述传统或门电路的输出端连接到所述锁存器的输入使能端。
全文摘要
本发明涉及一种键盘电路,为解决现有键盘电路比较浪费系统资源且算法比较复杂的问题,本发明在现有键盘电路的基础上增设了输入使能控制电路,其中包括可触发并输出短时脉冲信号的第一、第二单稳态触发器;第一单稳态触发器的输入端与按键信号电路的输出端连接,第二单稳态触发器的输入端与中央处理器的片选信号输出端连接,第一、第二单稳态触发器的输出端分别连接到一个或门输出电路的两个输入端,所述或门输出电路的输出端与所述锁存器的输入使能端连接。本发明通过输入使能控制电路并结合按键信号和片选信号来控制锁存器的输入使能端,使得改进后的键盘电路既能及时防止按键丢失,又能大大简化软件算法,并节省系统资源。
文档编号G06F3/02GK1815416SQ20051000925
公开日2006年8月9日 申请日期2005年2月1日 优先权日2005年2月1日
发明者严慧勇, 李熹, 刘万强 申请人:艾默生网络能源系统有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1