<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > AS-Interface總線(xiàn)技術(shù)在數控機床中的應用

AS-Interface總線(xiàn)技術(shù)在數控機床中的應用

作者: 時(shí)間:2016-09-12 來(lái)源:網(wǎng)絡(luò ) 收藏

(1)單片機系統鍵盤(pán)原理

本文引用地址:http://dyxdggzs.com/article/201609/303941.htm

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

1.jpg

圖1 4×4行列式鍵盤(pán)的原理圖

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

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

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

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

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

(2)單片機鍵盤(pán)掃描法

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

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

①逐行(或列)掃描查詢(xún)法。

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

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

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

②反轉法。

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

2.jpg

圖2 線(xiàn)反轉法原理

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

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

· 將第一步中的傳送方向反轉過(guò)來(lái),即將D7~D4設為輸入線(xiàn),D3~D0設為輸出線(xiàn)。使I/O口輸出數據為N單元中的數(即D3~D0為按下鍵的列位置),然后讀入I/O口數據,并送入內存N+1單元中存放,該數據的D7~D4位中0電平對應的位是按下鍵的行位置。最后,將N單元中的D3~D0與N+1單元中的D7~D4拼接起來(lái)就是按下鍵的鍵值。

單片機應用系統中,任何I/O口或擴展I/O口均可構成行列式鍵盤(pán)。典型的鍵盤(pán)接口有通用I/O擴展口、串行LO擴展口和專(zhuān)用鍵盤(pán)芯片構成的行列式鍵盤(pán)。由于帶有行列式鍵盤(pán)的應用系統中通常都有顯示器,為節省I/O口線(xiàn),往往把顯示器電路與行列式鍵盤(pán)做在一個(gè)接口電路中。



評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>