專利名稱:一種鍵盤電路的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及電子、通信等設(shè)備中的一種鍵盤電路。
背景技術(shù):
在嵌入式單板設(shè)計(jì)中,經(jīng)常要使用到鍵盤電路。現(xiàn)有技術(shù)中的典型鍵盤電路如圖1所示。
從圖1中可以看出,當(dāng)KEY1至KEY8中的任一按鍵被按下時(shí),例如當(dāng)KEY1被按下時(shí),二極管D1的負(fù)端變?yōu)榈碗娖?,此時(shí)二極管D1導(dǎo)通,與之連接的按鍵信號(hào)電路(圖1下部的虛線框所示)所輸出的按鍵信號(hào)KEY_PRESSED將由高電平變?yōu)榈碗娖健.?dāng)KEY1被釋放后,二極管D1截止,按鍵信號(hào)KEY_PRESSED將恢復(fù)到高電平。因此,按鍵信號(hào)KEY_PRESSED可作為鍵盤中斷請(qǐng)求信號(hào)INT_KEY,直接送到CPU。
從圖1中可以看出,鎖存器U1的11腳直接與電源VCC連接,也就是說(shuō),其輸入使能端是被拉高的。鎖存器U1內(nèi)部的寄存器的內(nèi)容為當(dāng)前鍵值,當(dāng)來(lái)自CPU的片選信號(hào)CS_KEY有效時(shí)(低電平),鎖存器U1的輸出打開(kāi),當(dāng)前其鎖存的當(dāng)前鍵值被送到數(shù)據(jù)總線D
上。
在圖1所示的電路中,鍵盤驅(qū)動(dòng)程序可用查詢方式或者外部硬件中斷方式來(lái)獲取按鍵情況。若驅(qū)動(dòng)程序采用查詢方式,由于程序不知道鍵盤何時(shí)按下,為了盡量不丟失按鍵信號(hào),必須采用定時(shí)中斷,即每隔一定時(shí)間去讀取一次鎖存器U1,并根據(jù)讀得的鍵值進(jìn)行判斷、處理、更新鍵盤緩沖區(qū)。這樣就存在一些問(wèn)題(1)、容易丟失按鍵如果在兩次定時(shí)中斷發(fā)生之間有按鍵被快速按下,則該按鍵信息將被丟失;(2)、浪費(fèi)CPU資源無(wú)論用戶是否按鍵,定時(shí)中斷都會(huì)頻繁發(fā)生,因此比較浪費(fèi)CPU資源;(3)、算法復(fù)雜。
若驅(qū)動(dòng)程序采用外部硬件中斷方式(即以圖1中的按鍵信號(hào)KEY_PRESSED作為按鍵中斷信號(hào)INT_KEY),雖可及時(shí)捕捉到按鍵,也能相對(duì)簡(jiǎn)化算法,但是依然存在以下問(wèn)題(1)、算法依然相對(duì)復(fù)雜;(2)、占用了一個(gè)通道的外部中斷,而在嵌入式設(shè)計(jì)中,中斷資源是很緊缺的。
另外,采用以上的方法,都需要建立鍵盤緩沖區(qū),這就需要考慮并發(fā)訪問(wèn)鍵盤緩沖區(qū)引起的沖突問(wèn)題,使算法復(fù)雜化。
發(fā)明內(nèi)容
針對(duì)現(xiàn)有技術(shù)的上述缺陷,本發(fā)明要解決現(xiàn)有鍵盤電路比較浪費(fèi)系統(tǒng)資源,且算法比較復(fù)雜的問(wèn)題。
為解決上述技術(shù)問(wèn)題,本發(fā)明提供其中包括多個(gè)按鍵;每一個(gè)按鍵連接到鎖存器的一個(gè)輸入端,所述鎖存器的輸出使能端與中央處理器的片選信號(hào)輸出端連接,所述鎖存器的各個(gè)輸出端用于輸出當(dāng)前鎖存的鍵值;每一個(gè)按鍵還連接到按鍵信號(hào)電路的一個(gè)輸入端,任一按鍵被按下時(shí)所述按鍵信號(hào)電路可輸出一個(gè)按鍵信號(hào);其中還包括與所述鎖存器的輸入使能端連接的輸入使能控制電路;所述輸入使能控制電路中包括一個(gè)可在下降沿或上升沿觸發(fā)并輸出短時(shí)脈沖信號(hào)的第一單穩(wěn)態(tài)觸發(fā)器,一個(gè)可在上升沿或下降沿觸發(fā)并輸出短時(shí)脈沖信號(hào)的第二單穩(wěn)態(tài)觸發(fā)器,以及一個(gè)或門輸出電路;所述第一單穩(wěn)態(tài)觸發(fā)器的輸入端與所述按鍵信號(hào)電路的輸出端連接,所述第二單穩(wěn)態(tài)觸發(fā)器的輸入端與所述中央處理器的片選信號(hào)輸出端連接,所述第一、第二單穩(wěn)態(tài)觸發(fā)器的輸出端分別連接到所述或門輸出電路的兩個(gè)輸入端,所述或門輸出電路的輸出端與所述鎖存器的輸入使能端連接。
本發(fā)明中,以所述鎖存器內(nèi)部的寄存器作為一個(gè)字節(jié)的硬件鍵盤緩沖區(qū),用于存儲(chǔ)當(dāng)前鍵值。
本發(fā)明中,所述按鍵信號(hào)電路在任一按鍵被按下時(shí)輸出一個(gè)低電平按鍵信號(hào);所述第一單穩(wěn)態(tài)觸發(fā)器在下降沿觸發(fā)并輸出高脈沖信號(hào),所述第二單穩(wěn)態(tài)觸發(fā)器可以上升沿觸發(fā)并輸出高脈沖信號(hào);所述鎖存器的輸入使能端為高電平有效,輸出使能端則為低電平有效。
本發(fā)明中,所述或門輸出電路中可包括正極與所述第一單穩(wěn)態(tài)觸發(fā)器的輸出端連接的第一二極管,以及正極與所述第二單穩(wěn)態(tài)觸發(fā)器的輸出端連接的第二二極管;所述第一、第二二極管的負(fù)極相互連接后經(jīng)電阻接地,并連接到所述鎖存器的輸入使能端。
本發(fā)明中,所述或門輸出電路中可包括一個(gè)傳統(tǒng)或門電路,所述第一、第二單穩(wěn)態(tài)觸發(fā)器的輸出端分別連接到該傳統(tǒng)或門電路的輸入端,所述傳統(tǒng)或門電路的輸出端連接到所述鎖存器的輸入使能端。
本發(fā)明在現(xiàn)有小鍵盤電路的基礎(chǔ)上進(jìn)行了適當(dāng)?shù)母倪M(jìn),增加了一個(gè)輸入使能控制電路,并相應(yīng)地改變了其中一些信號(hào)線的接法,通過(guò)輸入使能控制電路并結(jié)合按鍵信號(hào)和片選信號(hào)來(lái)控制鎖存器的輸入使能端,使得改進(jìn)后的鍵盤電路既能及時(shí)防止按鍵丟失,又能大大簡(jiǎn)化軟件算法,并節(jié)省系統(tǒng)資源。
下面將結(jié)合附圖及實(shí)施例對(duì)本發(fā)明作進(jìn)一步說(shuō)明,附圖中圖1是現(xiàn)有技術(shù)中的一個(gè)典型鍵盤電路;圖2是本發(fā)明一個(gè)優(yōu)選實(shí)施例中的鍵盤電路的基本鍵盤電路;圖3是與圖2配合的輸入使能控制電路;圖4是圖2和圖3所示電路的工作波形示意圖。
具體實(shí)施例方式
本發(fā)明一個(gè)優(yōu)選實(shí)施例的鍵盤電路中,包含圖2所示的基本鍵盤電路和圖3所示的輸入使能控制電路。本實(shí)施例中,鎖存器U1采用的是型號(hào)為74HC373的芯片;第一、第二單穩(wěn)態(tài)觸發(fā)器U2A、U2B采用的都是型號(hào)為74HC123的芯片,但兩者的接法有所不同。
圖2所示的基本鍵盤電路與圖1所示的典型小鍵盤電路基本相同,兩者的不同之處在于(1)鎖存器U1的輸入使能端(11腳)不是直接被拉高,而是受圖3所示的輸入使能控制電路所控制;(2)按鍵信號(hào)KEY_PRESSED不再作為CPU外部中斷請(qǐng)求信號(hào)直接送到CPU,而是送給圖3所示的輸入使能控制電路。
從圖3中可以看出,第一單穩(wěn)態(tài)觸發(fā)器U2A的A輸入端與所述按鍵信號(hào)KEY_PRESSED連接,B輸入端則與電源VCC連接;第二單穩(wěn)態(tài)觸發(fā)器U2B的A輸入端接地,B輸入端由與CPU的片選信號(hào)CS_KEY連接;其中的二極管D9、D10和下拉電阻R11組成一個(gè)或門性質(zhì)的或門輸出電路,任一個(gè)輸入為高電平時(shí),其輸出則為高電平;U2A、U2B的輸出端Q分別經(jīng)二極管D10、D9的正極輸入,然后從負(fù)極輸出到鎖存器U1的輸入使能端(11腳),兩個(gè)二極管D10、D9的負(fù)極還經(jīng)電阻R11接地。
本實(shí)施例中,當(dāng)某一按鍵被按下時(shí),按鍵信號(hào)KEY_PRESSED將由高電平變?yōu)榈碗娖?,該信?hào)的下降沿會(huì)觸發(fā)U2A輸出一個(gè)高脈沖信號(hào)到鎖存器U1的第11腳,使鎖存器U1的輸入使能端有效,此時(shí),鎖存器U1會(huì)將當(dāng)前被按下的那一個(gè)按鍵的鍵值鎖存到U1內(nèi)部寄存器中。當(dāng)按鍵被釋放后,U1內(nèi)部鎖存的鍵值保持不變。
可見(jiàn),只有在按鍵信號(hào)KEY_PRESSED的下降沿和片選信號(hào)CS_KEY的上升沿,輸入使能控制電路才會(huì)觸發(fā)輸出高脈沖信號(hào),從而使鎖存器U1的輸入使能端有效,在其他時(shí)候,輸入使能端無(wú)效。
當(dāng)驅(qū)動(dòng)程序需讀取鍵值時(shí),會(huì)輸出一個(gè)低脈沖片選信號(hào)CS_KEY,它作為鎖存器的輸出使能信號(hào)連接到U1的第1腳,在低電平期間,鎖存器U1的輸出D
打開(kāi),當(dāng)前鎖存的鍵值可被送到數(shù)據(jù)線上。當(dāng)CS_KEY信號(hào)的上升沿到來(lái)時(shí),U2B(型號(hào)為74HC123的芯片)被觸發(fā)而輸出一個(gè)高脈沖信號(hào)到G_HC373,此時(shí)會(huì)再次鎖存當(dāng)前鍵值,如果此時(shí)按鍵已被釋放,則相當(dāng)于將緩沖區(qū)自動(dòng)清零;如按鍵沒(méi)有釋放,則重新讀取的鍵值與之前的鍵值相同,相當(dāng)于緩沖區(qū)中依然保留以前的值。本實(shí)施例,鎖存鍵值和更新緩沖區(qū)的速度很快,當(dāng)按下按鍵時(shí),鍵值會(huì)在很短的時(shí)間內(nèi)自動(dòng)鎖存到緩沖區(qū)中,不會(huì)丟按鍵。
圖2、圖3所示電路的工作波形如圖4所示。圖4中U1_REG
為鎖存器U1內(nèi)部寄存器,也就是一個(gè)字節(jié)的鍵盤緩沖區(qū)。
從圖4中可以看出,如果某一按鍵被按下的時(shí)間較短,按下按鍵時(shí),按鍵信號(hào)電路會(huì)輸出一個(gè)低電平按鍵信號(hào)KEY_PRESSED(即INT_KEY);在按鍵信號(hào)INT_KEY的下降沿,U2A被觸發(fā)而輸出一個(gè)短時(shí)高脈沖信號(hào)(即圖4中G_HC373的第一個(gè)脈沖);與此同時(shí),U1會(huì)鎖存當(dāng)前鍵值;當(dāng)該按鍵被釋放時(shí),按鍵中斷信號(hào)INT_KEY恢復(fù)為高電平,已鎖存的鍵值可保持不變,除非又有另一按鍵被按下;當(dāng)CPU傳來(lái)片選信號(hào)CS_KEY時(shí),在其下降沿,U1會(huì)輸出當(dāng)前鎖存的鍵值,在片選信號(hào)CS_KEY的上升沿,U2B被觸發(fā)而輸出一個(gè)短時(shí)高脈沖信號(hào)(對(duì)應(yīng)于圖4中G_HC373的第二個(gè)脈沖),因此時(shí)沒(méi)有任何按鍵被按下,所以可將鎖存器U1清零。
從圖4中可以看出,當(dāng)某一按鍵被按下的時(shí)間較長(zhǎng)時(shí),在按下時(shí)引起的按鍵中斷信號(hào)INT_KEY的下降沿,U2A會(huì)輸出一個(gè)短時(shí)高脈沖信號(hào)(對(duì)應(yīng)于圖4中G_HC373的第三個(gè)脈沖);在第一次讀取時(shí)的片選信號(hào)CS_KEY((對(duì)應(yīng)于圖4中CS_KEY的第二個(gè)脈沖)的上升沿,U2B會(huì)輸出一個(gè)短時(shí)高脈沖信號(hào)(對(duì)應(yīng)于圖4中G_HC373的第二個(gè)脈沖),將重新鎖存當(dāng)前值,因此時(shí)按鍵未被釋放,所以鎖存的鍵值會(huì)保持來(lái)變,只有當(dāng)沒(méi)有任何按鍵被按下時(shí),在片選信號(hào)CS_KEY的上升沿才會(huì)將鎖存器U1清零。
在圖1所示的典型鍵盤電路中,為了防止按鍵丟失,必須軟件建立一個(gè)緩沖區(qū)存放鍵值,使用軟件緩沖區(qū),就必須考慮并發(fā)訪問(wèn)沖突問(wèn)題,使得軟件算法復(fù)雜化。而本實(shí)施例中,用鎖存器U1內(nèi)部的寄存器作為一個(gè)字節(jié)的硬件鍵盤緩沖區(qū),當(dāng)某一按鍵被按下時(shí),按鍵控制電路將產(chǎn)生一個(gè)很短的高脈沖信號(hào)作為鎖存器的輸入使能信號(hào),從而將當(dāng)前鍵值自動(dòng)鎖存到U1中。軟件不需要做任何干預(yù),也不會(huì)丟按鍵,更不用考慮并發(fā)訪問(wèn)緩沖區(qū)引起的沖突問(wèn)題。
本發(fā)明并不限于上述實(shí)施例,例如,可將圖2中各個(gè)按鍵KEY1至KEY-8的右端改為接電源VCC,電阻R1至R8的上端改為接地,二極管D1至D8改為反向連接并經(jīng)電阻R9接地;此時(shí),按下某一按鍵,按鍵信號(hào)KEY_PRESSED將由低電平變?yōu)楦唠娖?,釋放后則恢復(fù)為低電平。相應(yīng)地,第一單穩(wěn)態(tài)觸發(fā)器U2A的接法應(yīng)與圖3中U2B的接法類似,即將按鍵信號(hào)KEY_PRESSED輸入到B端,其A端則接地。
此外,還可在圖2鍵盤電路中加入防抖動(dòng)電路。另外,還可將圖3中所示的兩個(gè)二極管D9、D10和電阻R11替換為一個(gè)傳統(tǒng)或門電路,第一、第二單穩(wěn)態(tài)觸發(fā)器U2A、U2B的輸出端分別連接到該傳統(tǒng)或門電路的兩個(gè)輸入端,該傳統(tǒng)或門電路的輸出端則連接到鎖存器U1的輸入使能端。
權(quán)利要求
1.一種鍵盤電路,其中包括多個(gè)按鍵;每一個(gè)按鍵連接到鎖存器的一個(gè)輸入端,所述鎖存器的輸出使能端與中央處理器的片選信號(hào)輸出端連接,所述鎖存器的各個(gè)輸出端用于輸出當(dāng)前鎖存的鍵值;每一個(gè)按鍵還連接到按鍵信號(hào)電路的一個(gè)輸入端,任一按鍵被按下時(shí)所述按鍵信號(hào)電路可輸出一個(gè)按鍵信號(hào);其特征在于,還包括與所述鎖存器的輸入使能端連接的輸入使能控制電路;所述輸入使能控制電路中包括一個(gè)可在下降沿或上升沿觸發(fā)并輸出短時(shí)脈沖信號(hào)的第一單穩(wěn)態(tài)觸發(fā)器,一個(gè)可在上升沿或下降沿觸發(fā)并輸出短時(shí)脈沖信號(hào)的第二單穩(wěn)態(tài)觸發(fā)器,以及一個(gè)或門輸出電路;所述第一單穩(wěn)態(tài)觸發(fā)器的輸入端與所述按鍵信號(hào)電路的輸出端連接,所述第二單穩(wěn)態(tài)觸發(fā)器的輸入端與所述中央處理器的片選信號(hào)輸出端連接,所述第一、第二單穩(wěn)態(tài)觸發(fā)器的輸出端分別連接到所述或門輸出電路的輸入端,所述或門輸出電路的輸出端與所述鎖存器的輸入使能端連接。
2.根據(jù)權(quán)利要求1所述的鍵盤電路,其特征在于,其中以所述鎖存器內(nèi)部的寄存器作為一個(gè)字節(jié)的硬件鍵盤緩沖區(qū),用于存儲(chǔ)當(dāng)前鍵值。
3.根據(jù)權(quán)利要求1所述的鍵盤電路,其特征在于,所述按鍵信號(hào)電路在任一按鍵被按下時(shí)輸出一個(gè)低電平按鍵信號(hào);所述第一單穩(wěn)態(tài)觸發(fā)器在下降沿觸發(fā)并輸出高脈沖信號(hào),所述第二單穩(wěn)態(tài)觸發(fā)器可以上升沿觸發(fā)并輸出高脈沖信號(hào);所述鎖存器的輸入使能端為高電平有效,輸出使能端則為低電平有效。
4.根據(jù)權(quán)利要求3所述的鍵盤電路,其特征在于,所述或門輸出電路中,包括正極與所述第一單穩(wěn)態(tài)觸發(fā)器的輸出端連接的第一二極管,以及正極與所述第二單穩(wěn)態(tài)觸發(fā)器的輸出端連接的第二二極管;所述第一、第二二極管的負(fù)極相互連接后經(jīng)電阻接地,并連接到所述鎖存器的輸入使能端。
5.根據(jù)權(quán)利要求3所述的鍵盤電路,其特征在于,所述或門輸出電路中包括一個(gè)傳統(tǒng)或門電路,所述第一、第二單穩(wěn)態(tài)觸發(fā)器的輸出端分別連接到該傳統(tǒng)或門電路的輸入端,所述傳統(tǒng)或門電路的輸出端連接到所述鎖存器的輸入使能端。
全文摘要
本發(fā)明涉及一種鍵盤電路,為解決現(xiàn)有鍵盤電路比較浪費(fèi)系統(tǒng)資源且算法比較復(fù)雜的問(wèn)題,本發(fā)明在現(xiàn)有鍵盤電路的基礎(chǔ)上增設(shè)了輸入使能控制電路,其中包括可觸發(fā)并輸出短時(shí)脈沖信號(hào)的第一、第二單穩(wěn)態(tài)觸發(fā)器;第一單穩(wěn)態(tài)觸發(fā)器的輸入端與按鍵信號(hào)電路的輸出端連接,第二單穩(wěn)態(tài)觸發(fā)器的輸入端與中央處理器的片選信號(hào)輸出端連接,第一、第二單穩(wěn)態(tài)觸發(fā)器的輸出端分別連接到一個(gè)或門輸出電路的兩個(gè)輸入端,所述或門輸出電路的輸出端與所述鎖存器的輸入使能端連接。本發(fā)明通過(guò)輸入使能控制電路并結(jié)合按鍵信號(hào)和片選信號(hào)來(lái)控制鎖存器的輸入使能端,使得改進(jìn)后的鍵盤電路既能及時(shí)防止按鍵丟失,又能大大簡(jiǎn)化軟件算法,并節(jié)省系統(tǒng)資源。
文檔編號(hào)G06F3/02GK1815416SQ20051000925
公開(kāi)日2006年8月9日 申請(qǐng)日期2005年2月1日 優(yōu)先權(quán)日2005年2月1日
發(fā)明者嚴(yán)慧勇, 李熹, 劉萬(wàn)強(qiáng) 申請(qǐng)人:艾默生網(wǎng)絡(luò)能源系統(tǒng)有限公司