PIC單片機(jī)人機(jī)接口4×4行列式鍵盤(pán)的工作原理
①逐行(或列)掃描查詢(xún)法。
確定矩陣式鍵盤(pán)上哪個(gè)鍵被按下時(shí)運(yùn)用掃描法,又稱(chēng)為逐行(或列)掃描查詢(xún)法,是一種最常用的按鍵識(shí)別方法,過(guò)程如下。
· 判斷鍵盤(pán)中有無(wú)鍵按下,將全部行線(xiàn)Y0~Y3置低電平,然后檢測(cè)列線(xiàn)的狀態(tài)。只要有一列的電平為低,則表示鍵盤(pán)中有鍵被按下,而且閉合的鍵位于低電平線(xiàn)與4根行線(xiàn)相交叉的4個(gè)按鍵之中。若所有列線(xiàn)均為高電平,則鍵盤(pán)中無(wú)鍵按下。
· 判斷閉合鍵所在的位置,在確認(rèn)有鍵按下后,即可進(jìn)入確定具體閉合鍵的過(guò)程。其方法是:依次將行線(xiàn)置為低電平,即在置某根行線(xiàn)為低電平時(shí),其他線(xiàn)為高電平,在確定某根行線(xiàn)位置為低電平后,再逐行檢測(cè)各列線(xiàn)的電平狀態(tài),若某列為低,則該列線(xiàn)與置為低電平的行線(xiàn)交叉處的按鈕就是閉合的按鍵。
②反轉(zhuǎn)法。
掃描法要逐列(行)掃描查詢(xún),當(dāng)按下的鍵在最后行(列),要經(jīng)過(guò)多次掃描才能獲得鍵值/鍵號(hào)。而反轉(zhuǎn)法只要經(jīng)過(guò)兩個(gè)步驟就可獲得鍵值,原理如圖2所示。
圖中硬件采用中斷方式工作,用一個(gè)8位I/O口構(gòu)成4×4鍵盤(pán)。假定圖中虛線(xiàn)為所按下的鍵,其反轉(zhuǎn)法的步驟如下。
· 將D3~D0設(shè)為列輸入線(xiàn),D7~D4設(shè)為行輸出線(xiàn),并使I/O輸出信號(hào)D7~D4為0000。若有鍵按下,與門(mén)的輸出端變?yōu)榈碗娖剑駽PU申請(qǐng)中斷,表示鍵盤(pán)中有鍵按下。與此同時(shí),D3~D0的數(shù)據(jù)輸入到內(nèi)存中的某一單元中,其中0位對(duì)應(yīng)的是被按下鍵的列位置。
· 將第一步中的傳送方向反轉(zhuǎn)過(guò)來(lái),即將D7~D4設(shè)為輸入線(xiàn),D3~D0設(shè)為輸出線(xiàn)。使I/O口輸出數(shù)據(jù)為N單元中的數(shù)(即D3~D0為按下鍵的列位置),然后讀入I/O口數(shù)據(jù),并送入內(nèi)存N+1單元中存放,該數(shù)據(jù)的D7~D4位中0電平對(duì)應(yīng)的位是按下鍵的行位置。最后,將N單元中的D3~D0與N+1單元中的D7~D4拼接起來(lái)就是按下鍵的鍵值。
單片機(jī)應(yīng)用系統(tǒng)中,任何I/O口或擴(kuò)展I/O口均可構(gòu)成行列式鍵盤(pán)。典型的鍵盤(pán)接口有通用I/O擴(kuò)展口、串行LO擴(kuò)展口和專(zhuān)用鍵盤(pán)芯片構(gòu)成的行列式鍵盤(pán)。由于帶有行列式鍵盤(pán)的應(yīng)用系統(tǒng)中通常都有顯示器,為節(jié)省I/O口線(xiàn),往往把顯示器電路與行列式鍵盤(pán)做在一個(gè)接口電路中。
評(píng)論