<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于PIC單片機(jī)的4×4行列式鍵盤工作原理簡(jiǎn)介

          基于PIC單片機(jī)的4×4行列式鍵盤工作原理簡(jiǎn)介

          作者: 時(shí)間:2012-09-13 來源:網(wǎng)絡(luò) 收藏

          的4×4:

          本文引用地址:http://www.ex-cimer.com/article/170872.htm

          (1)系統(tǒng)

            的接法比獨(dú)立式鍵盤的接法復(fù)雜,編程實(shí)現(xiàn)上也會(huì)比較復(fù)雜。但是,在占用相同的I/O端口的情況下,式鍵盤的接法會(huì)比獨(dú)立式接法允許的按鍵數(shù)量多,其圖如圖1所示。

            圖1 4×4行列式鍵盤的原理圖

            實(shí)際的工程中,可能會(huì)使用16C5X這種通用的可編程的鍵盤、顯示接口器件,使用16C5X單片器件就能夠完成鍵盤輸入和顯示控制兩種功能。

            行列式鍵盤的方式是先用列線發(fā)送掃描字,然后讀取行線的狀態(tài),查看是否有按鍵按下。鍵盤部分提供一種掃描的方式,可以和具有64個(gè)按鍵的矩陣鍵盤相連接,能對(duì)鍵盤不斷掃描、自動(dòng)消抖、自動(dòng)識(shí)別按下的鍵,并給出編碼,能對(duì)雙鍵或n個(gè)鍵同時(shí)按下的情況實(shí)行保護(hù)。

            在顯示部分,它可以為發(fā)光二極管、熒光管及其他顯示器提供按掃描方式工作的顯示接口,而且為顯示器提供多路復(fù)用信號(hào),可以顯示多達(dá)16位的字符或數(shù)字。

            鍵盤中有無按鍵按下是由列線送入全掃描字、行線讀入行線狀態(tài)來判斷的,其方法是將列線的所有I/O線均置成低電平,然后將行線電平狀態(tài)讀入累加器A中,如果有鍵按下,總會(huì)有一根行線被拉至低電平,從而使行輸入不全為1。

            鍵盤中哪一個(gè)鍵按下可由列線逐列置低電平后,檢查行輸入狀態(tài)來判斷,其方法是依次給列線送低電平,然后檢查所有行線狀態(tài),如果全為1,則所按下的鍵不在此列,如果不全為1,則所按下的鍵必在此列,而且是在與0電平線相交的交點(diǎn)上的那個(gè)鍵。

           ?。?)鍵盤掃描法

            掃描法是在判定有鍵按下后逐列果行(或列)的狀態(tài)出現(xiàn)非全1狀態(tài),如果(或列)的狀態(tài)出現(xiàn)非全1狀態(tài),這時(shí)0狀態(tài)的行、列交點(diǎn)的鍵就是所按下的鍵。

            掃描法的特點(diǎn)是逐行(或逐列)掃描查詢,這時(shí)相應(yīng)行(或列)應(yīng)有上拉電阻接高電平。行列式鍵盤掃描程序就是采用掃描法來確定哪個(gè)鍵按下的,圖1中行線上拉電阻接+5V,列線逐列掃描。

           ?、僦鹦校ɑ蛄校呙璨樵兎?。

            確定矩陣式鍵盤上哪個(gè)鍵被按下時(shí)運(yùn)用掃描法,又稱為逐行(或列)掃描查詢法,是一種最常用的按鍵識(shí)別方法,過程如下。

            · 判斷鍵盤中有無鍵按下,將全部行線Y0~Y3置低電平,然后檢測(cè)列線的狀態(tài)。只要有一列的電平為低,則表示鍵盤中有鍵被按下,而且閉合的鍵位于低電平線與4根行線相交叉的4個(gè)按鍵之中。若所有列線均為高電平,則鍵盤中無鍵按下。

            · 判斷閉合鍵所在的位置,在確認(rèn)有鍵按下后,即可進(jìn)入確定具體閉合鍵的過程。其方法是:依次將行線置為低電平,即在置某根行線為低電平時(shí),其他線為高電平,在確定某根行線位置為低電平后,再逐行檢測(cè)各列線的電平狀態(tài),若某列為低,則該列線與置為低電平的行線交叉處的按鈕就是閉合的按鍵。

           ?、诜崔D(zhuǎn)法。

            掃描法要逐列(行)掃描查詢,當(dāng)按下的鍵在最后行(列),要經(jīng)過多次掃描才能獲得鍵值/鍵號(hào)。而反轉(zhuǎn)法只要經(jīng)過兩個(gè)步驟就可獲得鍵值,原理如圖2所示。

            圖2 線反轉(zhuǎn)法原理

            圖中硬件采用中斷方式工作,用一個(gè)8位I/O口構(gòu)成4×4鍵盤。假定圖中虛線為所按下的鍵,其反轉(zhuǎn)法的步驟如下。

            · 將D3~D0設(shè)為列輸入線,D7~D4設(shè)為行輸出線,并使I/O輸出信號(hào)D7~D4為0000。若有鍵按下,與門的輸出端變?yōu)榈碗娖?,向CPU申請(qǐng)中斷,表示鍵盤中有鍵按下。與此同時(shí),D3~D0的數(shù)據(jù)輸入到內(nèi)存中的某一單元中,其中0位對(duì)應(yīng)的是被按下鍵的列位置。

            · 將第一步中的傳送方向反轉(zhuǎn)過來,即將D7~D4設(shè)為輸入線,D3~D0設(shè)為輸出線。使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拼接起來就是按下鍵的鍵值。

          結(jié)論:?jiǎn)纹瑱C(jī)應(yīng)用系統(tǒng)中,任何I/O口或擴(kuò)展I/O口均可構(gòu)成行列式鍵盤。由于帶有行列式鍵盤的應(yīng)用系統(tǒng)中通常都有顯示器,為節(jié)省I/O口線,往往把顯示器電路與行列式鍵盤做在一個(gè)接口電路中。

          DIY機(jī)械鍵盤相關(guān)社區(qū):機(jī)械鍵盤DIY




          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();