專注差異化嵌入式產(chǎn)品解決方案 給智能產(chǎn)品定制注入靈魂給予生命
提供開發(fā)工具、應(yīng)用測試 完善的開發(fā)代碼案例庫分享
從全面的產(chǎn)品導(dǎo)入到強大技術(shù)支援服務(wù) 全程貼心伴隨服務(wù),創(chuàng)造無限潛能!
點擊次數(shù):189次 更新時間:2017-12-23
作 者:北京航空航天大學(xué) 張雪峰 李榮源 袁海文
隨著微機系統(tǒng)應(yīng)用領(lǐng)域的擴大,操作人員與微機系統(tǒng)需要交流的信息越來越多,用來交流的手段和途徑也更為靈活多樣;而鍵盤輸入作為最常用的輸入設(shè)備仍有其不可替代的作用。因此,探討一些鍵盤的特殊結(jié)構(gòu),用盡可能少的輸入輸出端口實現(xiàn)較多數(shù)量的按鍵數(shù)仍具有重要的應(yīng)用價值。
有些特殊情況下,在組成一個最小的單片機系統(tǒng)的過程中,由于通用的I/O口有限,而又需要大量的按鍵輸入,這就要求一種新的鍵盤結(jié)構(gòu),即用盡量少的I/O口實現(xiàn)盡可能多的鍵盤輸入。
本文將從硬件和軟件兩個方面介紹一種用N+1個I/O口實現(xiàn)N×N矩陣式鍵盤的方法(為了與傳統(tǒng)鍵盤區(qū)分,以下簡稱新型鍵盤)。首先,對傳統(tǒng)鍵盤作一個簡單的介紹。
一、傳統(tǒng)鍵盤的介紹
鍵盤的結(jié)構(gòu)通常有兩種形式:線性鍵盤和矩陣鍵盤。在不同的場合下,這兩種鍵盤均得到了廣泛的應(yīng)用。
線性鍵盤由若干個獨立的按鍵組成,每個按鍵的一端與微機的一個I/O口相連。有多少個鍵就要有多少根連線與微機的I/O口相連,因此,只適用于按鍵少的場合。
矩陣鍵盤的按鍵按N行M列排列,每個按鍵占據(jù)行列的一個交點,需要的I/O口數(shù)目是N+M,容許的最大按鍵數(shù)是N×M。顯然,矩陣鍵盤可以減少與微機接口的連線數(shù),簡化結(jié)構(gòu),是一般微機常用的鍵盤結(jié)構(gòu)。根據(jù)矩陣鍵盤的識鍵和譯鍵方法的不同,矩陣鍵盤又可以分為非編碼鍵盤和編碼鍵盤兩種。
◇ 非編碼鍵盤
非編碼鍵盤主要用軟件的方法識鍵和譯鍵。根據(jù)掃描方法的不同,可以分為行掃描法、列掃描法和反轉(zhuǎn)法三種。
◇ 編碼鍵盤
編碼鍵盤主要用硬件來實現(xiàn)鍵的掃描和識別,通常使用8279專用接口芯片,在硬件上要求較高。
二、新型鍵盤的硬件和軟件實現(xiàn)原理
經(jīng)過分析,實際上用N+1個I/O口,輔以適當(dāng)?shù)慕涌陔娐?,是可以實現(xiàn)N×N個按鍵的?,F(xiàn)以6個端口實現(xiàn)5×5的按鍵為例來敘述。
1.硬件實現(xiàn)
圖1所示為用6個I/O口來實現(xiàn)25個按鍵的示意圖。具體的物理實現(xiàn)電路如圖2所示。
由圖1和圖2可見,硬件部分分為兩塊:一塊是普通鍵盤矩陣,另外一塊是中斷和接口電路,主要由相應(yīng)數(shù)目的二極管和電阻組成。具體對6個I/O口的情況,實現(xiàn)5×5的按鍵矩陣的中斷和接口電路(圖2)共需要10只二極管、12只電阻和1只三極管。10只二極管按其在電路中所起的作用可分為兩組:第一組包括D6、D7、D8、D9和D10,用于保證按鍵信息的單一流向;第二組包括D1、D2、D3、D4和D5,它們在電路上對NPN三極管的基極構(gòu)成"或"的邏輯關(guān)系,對單片機進行初始化。除了PORT6(其要求具有中斷功能)以外,其余
的I/O口均被置成高電平,這樣當(dāng)有鍵按下時,三極管的基極由低變高,三極管導(dǎo)通;集電極由高電平跳變成低電平,向單片機發(fā)出中斷信號,從而啟動鍵盤掃描程序。
2.軟件實現(xiàn)
按鍵的識別主要靠軟件來實現(xiàn),需要編寫鍵盤掃描程序。
(1)鍵盤掃描原理
為了更好地說明鍵盤掃描的過程,假設(shè)編號為S12的鍵(見圖2)被按下,掃描程序已經(jīng)啟動,掃描的具體過程如表1所列。
(2)鍵盤掃描程序的流程
在啟動鍵盤掃描程序以前首先要對CPU進行初始化(主要是對所使用的中斷進行初始化)。假設(shè)已經(jīng)有鍵按下,并引發(fā)了相應(yīng)的中斷服務(wù)程序(即鍵盤掃描程序),其流程圖如圖3所示。
結(jié)束語
◇ 在I/O口數(shù)量有限的情況下,用該方法可以實現(xiàn)盡可能多的按鍵輸入;
◇ 該方法還可以用于需要大量開關(guān)量測量的場合。