詳解鍵盤接口方式

鍵盤一般由若干個按鍵組合成開關矩陣,按照其接線方式的不同可分為兩種,一種是獨立式接法,一種是矩陣式接法。

獨立式按鍵結構

獨立式按鍵是指直接用I/O口線構成的單個按鍵電路。由於每個鍵都單獨佔用一根線,所以每根I/O口線上按鍵的工作狀態不會影響其他I/O口線的工作狀態。獨立式按鍵可直接由單片機的I/O口接入,也可由擴展I/O口接入。系統中若按鍵數量較少,而I/O線較多,可採用獨立式連接方式,硬件、軟件均簡單,容易實現,因此被廣泛應用於單片機系統中。獨立式鍵盤是由若干個機械觸點開關構成的,將其與單片機的I/O口線連起來,通過讀I/O口的電平狀態即可識別出相應的按鍵是否被按下。如圖8-1所示為獨立式按鍵的電路圖。

詳解鍵盤接口方式

圖8-1 獨立式按鍵的電路圖

如果按鍵不被按下,其端口就為高電平,如果相應的按鍵被按下,則端口變為低電平,在這種鍵盤的連接方法中,通常採用下拉電平接法,即各按鍵開關一端接低電平,另一端接單片機I/O口線,這是為了保證在按鍵斷開時,各I/O口線有確定的高電平。通常用來做鍵盤的按鍵有觸點式和非觸點式兩種,單片機中應用的一般是由機械觸點構成的觸點式微動開關,這種開關具有結構簡單、使用可靠的優點,但當按下按鍵或釋放按鍵時有一個特點,就是會產生抖動,這種抖動人是感覺不到的,但單片機完全可以感應到,因為單片機處理的速度是在微秒級的,而機械抖動的時間至少是毫秒級,對單片機而言這是一個很漫長的過程。

矩陣式鍵盤結構

所謂矩陣式鍵盤,即當鍵盤中按鍵數量較多時,為了減少I/O口線的佔用,通常將按鍵排列成矩陣形式,如圖8-2所示,在矩陣式鍵盤中,每條水平線和垂直線在交叉處不直接連通,而是通過一個按鍵連接,這樣做的好處是一個並行口可以構成4×4=16個按鍵,比直接將端口線用於鍵盤多出了一倍的按鍵,而且線數越多,區別越明顯,例如,再多加一條線就可以構成20鍵的鍵盤,而直接用端口線則只能多出一個鍵(9鍵),由此可見,在需要的按鍵數量比較多時,採用矩陣法連接鍵盤是非常合理的。

詳解鍵盤接口方式

圖8-2 矩陣式鍵盤結構

矩陣式結構的鍵盤比獨立式鍵盤複雜一些,識別也要複雜一些,圖8-2中列線通過電阻接電源,並將行線所接的單片機4個I/O口作為輸出端,而列線所接的I/O口則作為輸入端。這樣,當按鍵沒有被按下時,所有的輸出端都是高電平,代表無鍵按下,行線輸出是低電平,一旦有鍵按下,則輸入線就會被拉低,這樣通過讀入輸入線的狀態就可得知是否有鍵按下,具體的識別及編程方法如下所述。

確定矩陣式鍵盤上任何一個鍵被按下通常採用行掃描法或者行反轉法,行掃描法又稱為逐行或列掃描查詢法,是一種最常用的多按鍵識別方法,行反轉法不是經常使用,但是在某些特殊場合下也比較適合,在這裡僅以行掃描法為例介紹矩陣式鍵盤的工作原理,行反轉法不作詳細介紹,感興趣的讀者請自行查閱相關資料。行掃描法的具體任務如下:

(1)判斷鍵盤中有無鍵按下

如圖8-2所示,將全部行線X0~X3置低電平,然後檢測列線Y0~Y3的狀態,只要有一列的電平為低,則表示鍵盤中有鍵被按下,而且閉合的鍵位於低電平線與4根行線相交叉的4個按鍵之中,若所有列線均為高電平,則表示鍵盤中無鍵按下。

(2)判斷閉合鍵所在的位置

在確認有鍵按下後,即可進入確定具體閉合鍵的過程,其方法是依次將行線置為低電平(即在置某根行線為低電平時,其他線為高電平),當確定某根行線為低電平後,再逐行檢測各列線的電平狀態,若某列為低,則該列線與置為低電平的行線交叉處的按鍵就是閉合的按鍵。


分享到:


相關文章: