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