單片機原理第9章_第1頁
單片機原理第9章_第2頁
單片機原理第9章_第3頁
單片機原理第9章_第4頁
單片機原理第9章_第5頁
已閱讀5頁,還剩104頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第9章MCS-51單片機I/O接口技術存儲器擴展和I/O擴展均是接口技術研究的內容,而且在本質上是一樣的,但二者有較大的區(qū)別:前者完成的是計算機系統(tǒng)本身的擴展,而后者實現(xiàn)的是計算機系統(tǒng)和外部設備的連接,是計算機在測控系統(tǒng)中使用必須解決的問題;存儲器芯片內部一般有數(shù)千個單元,芯片有若干根地址線,而I/O設備一般只有少數(shù)幾個或者一個單元,只有一、兩根地址線甚至沒有專門的地址線,這種區(qū)別導致了存儲器擴展和I/O擴展時,地址線和譯碼信號的連接上有較大的不同。9.1I/O接口的功能和作用計算機系統(tǒng)I/O接口示意圖邏輯接口電氣接口控制系統(tǒng)中計算機和外圍設備進行數(shù)據(jù)交換時可能存在以下一個或多個問題速度不匹配時序不匹配數(shù)據(jù)格式不匹配信號類型不匹配接口應有的功能:通過地址譯碼實現(xiàn)對不同設備的選擇;設置數(shù)據(jù)的寄存、緩沖邏輯,解決CPU與外設之間的速度差異;進行數(shù)據(jù)格式的轉換,如串并相互轉換;協(xié)調CPU和外設在信號類型和電平的差異;協(xié)調數(shù)據(jù)讀寫時序;設置中斷和DMA控制邏輯等9.2用通用芯片擴展I/O口9.2.18155接口芯片及其應用

8155是由Intel公司開發(fā)的可編程并行接口芯片,內部包含256Byte靜態(tài)RAM兩個8位、一個6位的可編程I/O口一個14位定時/計數(shù)器具有地址鎖存器8155和MCS-51單片機同是Intel公司的產(chǎn)品,兼容性好,和單片機連接非常簡單,是單片機應用系統(tǒng)中很常用的接口芯片。8155/8156芯片引腳和內部邏輯框圖8155包含3大功能模塊:存儲器部分:256字節(jié)8位靜態(tài)RAM。并行I/O接口部分,共有3個并行口及相應控制寄存器:端口A,可編程8位I/O口,對應PA0~PA7端口B,可編程8位I/O口,對應PB0~PB7。端口C,可編程6位I/O口,對應PC0~PC5。命令寄存器。8位寄存器,只能寫入。狀態(tài)寄存器。8位寄存器,只能讀出。9.2.1.18155的結構及引腳介紹定時計數(shù)器部分:14位減法定時計數(shù)器。由低8位寄存器和高6位(高兩位為操作方式控制位)寄存器操作、控制8155引腳功能:AD0~AD7:地址數(shù)據(jù)復用總線。ALE:地址鎖存信號輸入線。IO/M:RAM/IO口選擇信號輸入。該引腳為低是,讀寫其內部RAM;為高時,操作I/O口。/CE:片選信號輸入。/RD、/WR:RAM/IO口讀寫控制信號輸入。

9.2.1.28155的RAM和I/O口編址8155片內有256字節(jié)RAM單元,在具體系統(tǒng)中的地址為××00H~××FFH,低8位地址由AD0~AD78根地址線編址,高8位地址由/CE和IO/M端信號共同決定,即/CE=0、IO/M=0時的高位地址線狀態(tài)決定了RAM單元的高8位地址。8155片內內寄存器

8155片內共有6個寄存器低位地址由AD0~AD2三根地址線編址,/CE=0、IO/M=1時的高位地址線狀態(tài)決定寄存器和I/O口的高8位地址。

9.2.1.38155的工作方式與基本操作

1)作片外256字節(jié)數(shù)據(jù)存儲器將8155的引腳置低可作片外數(shù)據(jù)存儲器使用,其地址高8位由片選線決定,低8位為00H~0FFH。2)作擴展I/O口使用8155作擴展I/O口使用時,IO/M引腳必須置高電平,PA、PB、PC口和命令寄存器的低位地址分別為01H、02H、03H和00H。(設地址無關位為0)。8155的A、B口可工作于基本I/O方式也可工作于選通方式,通過設置8155內部命令寄存器的相關位,可在兩種方式間切換?;綢/O方式

基本I/O方式為無條件傳送,不需要任何聯(lián)絡信號,8155的A、B、C三個口都可工作于基本I/O方式。選通I/O方式8155的A口和B口可工作于選通方式,這時C口作為A、B口的聯(lián)絡控制信號線,如果有剩余可作為輸出口線。9.2.1.48155命令/狀態(tài)字命令寄存器可寫入控制字,用以確定8155的工作方式;狀態(tài)寄存器可讀出,不同的位分別代表8155各個功能部件的當前工作狀態(tài)。這兩個寄存器共用一個地址,但在物理上是相互獨立的:對其寫入時作為命令寄存器,寫入的是命令;而對其讀出時,作為狀態(tài)寄存器,讀出的是當前I/O口和定時器的狀態(tài)。1)命令字

D3和D2位定義C口工作方式,具體含義為:D3D2=00,ALT1方式:即A、B口均為基本I/O方式,C口為輸入方式;D3D2=01,ALT2方式:即A、B口均為基本I/O方式,C口為輸出方式;D3D2=10,ALT3方式:即A口為選通I/O方式、B口為基本I/O方式,C口低3位作A口聯(lián)絡線、高3位為輸出方式;D3D2=11,ALT4方式:即A、B口均為選通I/O方式,C口低3位作A口聯(lián)絡線、高3位位作B口聯(lián)絡線。D7D6(TM2TM1)定時器運行控制位TM2TM1=00:維持原來狀態(tài)TM2TM1=01:停止計數(shù),準備讀取定時/計數(shù)值;TM2TM1=10:預停,基數(shù)寄存器減為0后停止計數(shù);TM2TM1=11:如果定時/計數(shù)器未工作,裝入計數(shù)初值后,立即開始計數(shù);如果定時/計數(shù)器正在計數(shù),則待計數(shù)器溢出后按新裝入的計數(shù)初值方式開始計數(shù)。2)狀態(tài)字狀態(tài)字是8155狀態(tài)寄存器的內容,只能讀出不能寫入,反映各個口及定時/計數(shù)器的當前工作狀態(tài)9.2.1.58155的定時器/計數(shù)器

定時器的計數(shù)基值和輸出方式由04H、05H口寄存器確定定時器/計數(shù)器的輸出波形由TH的M2和M1兩位確定9.2.1.68155與單片機接口方式

及應用舉例例:電路如圖所示,PA口為基本輸入方式,PB口為基本輸出方式,要求對PA口輸入的信號求反后,再從PB口輸出。試寫程序。8155I/O口地址分配:命令/狀態(tài)寄存器的地址:7F00HPA口的地址:7F01HPB口的地址:7F02HPC口的地址:7F03H命令字設定:TM2TM1(D7D6)=00…定時器無操作;IEB(D5)=0….禁止B口中斷;IEA(D4)=0….禁止A口中斷PC2PC1(D3D2)=00…A、B口基本I/O,C口輸入;PB(D1)=1…B口輸出;PA(D0)=0….A口輸入。控制字為00000010B,即02H MOV DPTR,#7F00H ;命令控制口地址 MOV A,#02H MOVX @DPTR,A ;設定命令控制字Loop:MOV DPTR,#7F01H ;PA口地址 MOVX A,@DPTR ;讀入PA口狀態(tài) CPL A ;取反 INC DPTR ;指向PB口 MOVX @DPTR,A ;從PB口輸出 SJMP Loop ;循環(huán)

9.2.28255接口芯片及其應用

8255是Intel公司開發(fā)的8位通用I/O接口芯片,內部具有3個8位I/O口,分別稱為PA口、PB口和PC口通過設置控制字,3個口可工作于基本I/O方式、選通I/O方式和雙向總線等3種方式3個口都可工作于I/O方式,另兩種方式,3個口情況有所不同8255內部結構A組數(shù)據(jù)總線緩沖器內部控制線內部數(shù)據(jù)線D0~D7A組控制端口AB組控制端口B端口C低4位讀寫控制邏輯PC0~PC3PB0~PB7PC4~PC7PA0~PA7端口C高4位B組A0A1RST9.2.2.18255結構1.輸入/輸出端口

PA口:具有數(shù)據(jù)輸出鎖存/緩沖和數(shù)據(jù)輸入鎖存功能的8位并行口。PB口:具有數(shù)據(jù)輸出鎖存/緩沖和數(shù)據(jù)輸入緩沖功能的8位并行口。PC口:具有數(shù)據(jù)輸出鎖存/緩沖和數(shù)據(jù)輸入緩沖功能的8位并行口。通常情況下,PA口和PB口作為數(shù)據(jù)輸入/輸出口,而PC口作為控制/聯(lián)絡端口使用。2.工作方式控制

8255內部有兩個工作方式控制電路A組控制電路,B組控制電路,兩個控制電路共用一個控制命令寄存器。A組由PA口和PC口的上半部分(PC7~PC4)組成,由A組控制電路控制;B組由PB口和PC口的下半部分(PC3~PC0)組成,由B組控制電路控制。3數(shù)據(jù)總線緩沖器數(shù)據(jù)總線緩沖器是一個8位3態(tài)緩沖器,實現(xiàn)8255與系統(tǒng)數(shù)據(jù)線的緩沖和隔離。一般情況下,8255內部數(shù)據(jù)總線通過該緩沖器與系統(tǒng)數(shù)據(jù)總線相連。

4.讀/寫控制邏輯電路

功能:根據(jù)CPU發(fā)來有關控制信號選擇內部寄存器完成與CPU之間的數(shù)據(jù)交換,RESET信號實現(xiàn)對8255內部寄存器單元的復位。

9.2.2.28255的工作方式1.方式0-基本輸入/輸出PA、PB和PC都可工作于方式0,該方式下,3個口的每一位都可以獨立地設置為輸入口或輸出口,CPU可以采用無條件讀寫方式或查詢方式與8255交換數(shù)據(jù)?;据斎?輸出方式下工作時,8255將輸出的數(shù)據(jù)鎖存于相應端口,輸入數(shù)據(jù)不鎖存。2.方式1-選通輸入/輸出三個端口分成A、B兩組,A組由PA口和PC口的高4位組成;B組由PB口和PC口的低4位組成。PA、PB兩個口用于傳輸數(shù)據(jù),而PC分別作為PA口和PB口與CPU以及PA口和PB口與外設之間的聯(lián)絡信號。

3.方式2-雙向選通輸入/輸出只有PA口可以工作于方式2,需要5根PC口線(PC3~PC7)作為控制聯(lián)絡線。方式2與方式1的區(qū)別在于:方式1是單向的,而PA口工作于方式2時,既可輸入數(shù)據(jù)也可輸出數(shù)據(jù),且輸入和輸出均帶有鎖存。PA口工作于方式2時需要5根控制聯(lián)絡線,由于PC口不能再提供5根信號線供PB口使用,因而PB口不能工作于方式2。

選通方式下,PC口控制聯(lián)絡信號定義9.2.2.38255的控制字

8255有兩個控制字,一個用來選擇IO端口的工作方式,稱為工作方式控制字;另一個用來控制PC口的每一位,稱為PC口位控制字。兩個控制字共用一個內部寄存器地址,即A1A0=11,控制字最高位作為標識位,用于區(qū)分不同的控制字:當D7=1時,寫入的是工作方式控制字;當D7=0時,對PC口位控制字進行操作。1.工作方式控制字

2.PC口位控制字

例:89C51通過8255與微型打印機相連。單片機通過查詢方式向打印機發(fā)送數(shù)據(jù)。要求編寫打印子程序,需打印的字節(jié)數(shù)存R7,需打印的數(shù)據(jù)在片內數(shù)據(jù)存儲區(qū),首址存于R1。

控制字設置PC0連接輸入信號BUSY,PC3~PC0為輸入PC7連接/STB,PC7~PC4為輸出PA口為打印數(shù)據(jù)輸出口,PB口未用,故8255A的控制字為:10000001B=81H??诘刂反_定:8255片選端由單片機最高位地址線P2.7控制,因此,如果將無關位視為“1”,8255各寄存器地址是:PA口:7FFCHPB口:7FFDHPC口:7FFEH控制口:7FFFH打印程序

MOV DPTR,#7FFFH ;控制口地址

MOVA,#81H ;控制字

MOVX @DPTR,A ;寫入控制字NEXT:MOVDPTR,#7FFEH ;PC口地址

MOV A,#80H ;使PC7為高電平

MOVX@DPTR,A ;向/STB輸出高電平,送數(shù)結束

MOVXA,@DPTR ;讀入打印機狀態(tài)WAIT:JB ACC.0,WAIT ;若PC0(BUSY)=1,打印機忙,等待

MOV DPTR,#7FFCH ;BUSY=0,指向PA口 MOV A,@R1 ;取打印數(shù)據(jù)

MOVX@DPTR,A ;輸出數(shù)據(jù)

MOV DPTR,#7FFEH ;指向PC口 MOV A,#00H MOVX@DPTR,A ;置低,通知打印機數(shù)據(jù)送出 LCALLDELAY ;延時,保持信號為低一段時間

INC R1 ;指向下一打印數(shù)據(jù)

DJNZ R7,NEXT ;判斷打印是否結束

SJMP$9.2.38279接口芯片及其應用8279是可編程鍵盤/顯示器接口芯片,它具有鍵盤輸入和顯示器輸出兩種功能。鍵盤輸入時,與按鍵或傳感器組成的矩陣相連,自動掃描,接收輸入信息,具有按鍵消抖功能,并能對多鍵同時按下提供保護。顯示輸出時,它有一個16×8位顯示RAM,其內容自動掃描輸出,可由8或16位LED數(shù)碼管顯示。8279的內部結構和工作原理1.8279的引腳和功能D0~D7:雙向三態(tài)數(shù)據(jù)總線。A0:數(shù)據(jù)選擇輸入端:A0=1時,CPU寫入數(shù)據(jù)為命令字,讀出數(shù)據(jù)為狀態(tài)字;A0=0時,CPU讀、寫均為數(shù)據(jù)。/CS:片選輸入端,低電平有效/RD、/WR:讀、寫信號輸入端,低電平有效。SL0~SL3:掃描輸出端,掃描鍵盤和顯示器。可編程為編碼(4中選1)或譯碼輸出(16選1)。RL0~RL7:反饋線,鍵盤或傳感器的列信號輸入端。SHIFT:移位信號輸入端,高電平有效。鍵盤數(shù)據(jù)的D6位,通常作上、下檔功能鍵。在傳感器和選通方式中,SHIFT無效。CNTL/STB:控制/選通輸入端,高電平有效。在鍵盤工作方式時,是鍵盤數(shù)據(jù)的D7位,通常用作控制鍵。在選通輸入方式時,它的上升沿可把來自RL0~RL7的數(shù)據(jù)存入FIFO/傳感器RAM中。在傳感器方式時,該引腳無效。OUTA0~OUTA3:A組顯示信號輸出端。OUTB0~OUTB3:B組顯示信號輸出端。IRQ:中斷請求輸出端,高電平有效。/BD:顯示熄滅輸出端,低電平有效。它在數(shù)字切換顯示或使用熄滅命令時關顯示。CLK:系統(tǒng)時鐘輸入端。RESET:系統(tǒng)復位輸入端,高電平有效。復位狀態(tài)為:16個字符顯示;編碼掃描鍵盤;雙鍵鎖定;外部時鐘分頻系數(shù)=31。2.內部結構及功能模塊1)I/O控制及數(shù)據(jù)緩沖器模塊數(shù)據(jù)緩沖器是雙向緩沖器,連接內外總線,用于傳送CPU和8279之間的命令或數(shù)據(jù),對應的引腳為數(shù)據(jù)總線D0D7。I/O控制線是CPU對8279進行控制的信號輸入線,對應的引腳為數(shù)據(jù)選擇線A0、片選線/CS、讀/寫信號線/RD和/WR。2)控制與定時寄存器及定時控制模塊控制與定時寄存器用來寄存鍵盤及顯示工作方式控制字,及其它操作方式控制字。這些寄存器接收并鎖存各種命令,再通過譯碼電路產(chǎn)生相應的信號,從而完成相應的控制功能。與其對應的引腳為時鐘輸入端CLK,復位端RESET。定時控制電路包括若干個基本計數(shù)器組成,其中,第一個計數(shù)器可編程,取值N=231,該值作為分頻系數(shù),對外部時鐘CLK進行分頻得到內部所需的100KHz時鐘,為鍵盤提供適當?shù)膾呙桀l率和顯示掃描時間。與其相關的引腳是顯示熄滅控制端。3)掃描計數(shù)器模塊掃描計數(shù)器模塊由鍵盤和顯示器共用,提供鍵盤和顯示器的掃描信號,相關引腳是掃描線SL0~SL3。掃描計數(shù)器有兩種工作方式:編碼工作方式:計數(shù)器作二進制計數(shù),4位計數(shù)狀態(tài)從掃描線SL0~SL3輸出,經(jīng)外部譯碼器譯碼后,可為鍵盤和顯示器提供16個掃描信號;譯碼工作方式:掃描計數(shù)器的最低兩位被譯碼后,從SL0~SL3輸出,提供了4選1的掃描譯碼。4)反饋緩沖器、鍵盤去抖及控制模塊在鍵盤工作方式中,反饋線作為行列式鍵盤的列輸入線,由反饋緩沖器緩沖并鎖存,8279以此判別是否有鍵按下。當某一鍵閉合時,消抖電路被置位,延時10ms后,再檢查該鍵是否仍處在閉合狀態(tài)延時后,如果按鍵不再是按下狀態(tài),則作為抖動信號不予處理;如是仍然閉合,則將該鍵的地址和附加的換檔、控制鍵狀態(tài)一起形成鍵盤數(shù)據(jù)送入8279內部的FIFO存儲器。5)FIFO/傳感器及其狀態(tài)寄存器模塊FIFO/傳感器RAM是一雙功能8×8RAM,相關引腳是中斷請求線IRQ:在鍵盤選通工作方式時,它是FIFO存儲器,輸入輸出遵循先入先出的原則。此時,F(xiàn)IFO狀態(tài)寄存器用來存放FIFO的工作狀態(tài)。當FIFO存儲器中有數(shù)據(jù)(有鍵按下)時,狀態(tài)邏輯將產(chǎn)生IRQ=1信號,向CPU申請中斷。傳感器矩陣方式中,存放傳感器矩陣中的每個傳感器狀態(tài),若檢索出傳感器的變化,IRQ信號輸出高電平,向CPU申請中斷。6)顯示RAM和顯示寄存器模塊顯示RAM存儲要顯示數(shù)據(jù),容量為16×8位。在顯示過程中,存儲的數(shù)據(jù)輪流從顯示寄存器輸出。顯示寄存器分為A組:OUTA0OUTA3和B組OUTB0OUTB3。它們既可輸出數(shù)據(jù),也可組成一個8位(A組為高4位,B組為低4位)的字。與該模塊相關的引腳是數(shù)據(jù)顯示線OUTA0OUTA3和OUTB0OUTB3。顯示地址寄存器用來寄存CPU讀/寫顯示RAM的地址,它可以由命令設定,也可以設置成每次讀出或寫入后自動遞增。3.8279的工作方式8279的工作方式由CPU對8279寫入命令字設定或改變。CPU與8279之間進行數(shù)據(jù)傳輸時,當?shù)臀坏刂肪€A0為“1”時,CPU對8279寫入的數(shù)據(jù)為命令字,讀出的數(shù)據(jù)為狀態(tài)字;A0為“0”時,CPU讀/寫8279內部數(shù)據(jù)。1)鍵盤的工作方式鍵盤工作方式包括雙鍵互鎖和N鍵巡回兩種方式:雙鍵互鎖:如果有兩個或兩個以上鍵同時按下,只識別最后一個釋放的鍵,并把該鍵鍵值送入FIFO/傳感器RAM中。N鍵巡回:若有多個鍵同時按下時,按按鍵先后順序依次將鍵值送入FIFO/傳感器RAM中。2)顯示器工作方式通過對鍵盤/顯示方式命令字和寫顯示RAM命令字的設置,顯示數(shù)據(jù)寫入顯示緩沖器時可置為左端送入和右端送入兩種方式。左端送入為依次填入方式,右端送入為移位方式。4.8279的命令格式和命令字1)鍵盤/顯示方式命令字D7D6D5為000,是方式設置命令特征位。DD(D4D3):設定顯示方式:00:8個字符顯示,左邊輸入01:16個字符顯示,左邊輸入10:8個字符顯示,右邊輸入11:16個字符顯示,右邊輸入KKK:設定8種鍵盤/顯示工作方式:000:編碼掃描鍵盤,雙鍵鎖定001:譯碼掃描鍵盤,雙鍵鎖定010:編碼掃描鍵盤,N鍵巡回011:譯碼掃描鍵盤,N鍵巡回100:編碼掃描傳感器矩陣101:譯碼掃描傳感器矩陣110:選通輸入,編碼顯示掃描111:選通輸入,譯碼顯示掃描2)時鐘編程命令D7D6D5為001,是時鐘編程命令特征位PPPPP:設定對CLK輸入端輸入的外部時鐘信號進行分頻的分頻系數(shù)N,用以產(chǎn)生100KHz的內部時鐘,N的取值為2~31。若CLK輸入的時鐘頻率為2MHz,則需要設置N=20,即PPPPP=10100B。3)讀FIFO/傳感器RAM命令D7D6D5為010,讀FIFO/傳感器RAM命令特征位AI(D4)為自動加1標志。AI=0時,讀完傳感器RAM的數(shù)據(jù)后地址不變;AI=1時,讀完傳感器RAM的數(shù)據(jù)后地址自動加1

AAA為FIFO/傳感器RAM地址。鍵掃描方式時,讀取數(shù)據(jù)按先進先出的原則讀出,與AI、AAA無關4)讀顯示RAM命令D7D6D5為011,讀顯示RAM命令特征位AI(D4)自動加1標志,AI=1時,每次讀數(shù)據(jù)后地址自動加1。AAAA(D3D2D1D0):將要讀的顯示RAM中的存儲單元地址。

0115)寫顯示RAM命令D7D6D5為100,寫顯示RAM命令特征位

AI(D4)自動加1標志,AI=1時,每次寫數(shù)據(jù)后地址自動加1。AAAA(D3D2D1D0)為將要寫入的顯示RAM中的存儲單元地址。

6)顯示禁止寫入/消隱命令D7D6D5為101,顯示禁止寫入/熄滅命令的特征位。IWA、IWB(D3D2):A、B組顯示RAM寫入屏蔽位。當IWA=1時,A組顯示RAM禁止寫入,從CPU寫入顯示器RAM數(shù)據(jù)不影響A組顯示器的顯示IWB的用法與IWA相同,可屏蔽B組顯示器。BLA、BLB(D1D0)為A、B組的消隱設置位。為“1”時關閉對應組的顯示;為“0”時恢復顯示。101IWAIWBBLABLB×7)清除命令

D7D6D5為110,是清除命令的特征位。CDCDCD(D4D3D2)設定清除顯示RAM的方式

CF(D1)用于清除FIFO存儲器,CF=1清除FIFO狀態(tài),并使中斷輸出線復位;同時,傳感器RAM的讀出地址也被置0。CA(D0)為總清除特征位,兼有CD和CF兩位的功能。CA=1時,清除顯示器和FIFO的狀態(tài)。

110CDCDCFCACD8)結束中斷/出錯方式設置命令D7D6D5為111,結束中斷/出錯方式設置命令特征位。E(D4)為1時,N鍵巡回工作方式可工作在特殊出錯方式(多個鍵同時按下);對傳感器工作方式,此命令使IRQ變低,結束中斷,并允許對RAM進一步寫入。111××××E7.應用實例9.3用74/54系列芯片擴展I/O口可用74/54系列中小規(guī)模芯片進行簡單I/O擴展,優(yōu)點:體積、功耗小,成本低74/54系列芯片沒有專門的片選端,一般將地址信號和讀寫信號組合到一起,直接控制其讀寫,以這種方式給它分配硬件地址。一般用74273、74373等鎖存器芯片擴展單片機的輸出接口——輸出鎖存

一般使用74244或74245等具有隔離緩沖功能的芯片擴展輸入接口——輸入緩沖用鎖存器和緩沖器擴展單片機I/O接口

9.4常用外圍設備接口技術鍵盤和顯示器卻是絕大多數(shù)系統(tǒng)共有的外圍設備,接口方法基本是通用和類似的,本節(jié)介紹這兩種設備和單片機的常用接口方法。

通過學習鍵盤和顯示器的接口方法,理解接口電路設計的一般原則和規(guī)律。9.4.1鍵盤接口技術9.4.1.1鍵盤工作原理按鍵本質上是一個開關,通過接通或斷開一個回路,使電路出現(xiàn)通和斷兩種狀態(tài),即“開關”狀態(tài),計算機通過識別電路的通斷(判斷輸入電平的高/低或1/0狀態(tài))來判斷按鍵是否按下,從而進行相應的處理。1.編碼鍵盤與非編碼鍵盤編碼鍵盤用硬件來實現(xiàn)對鍵的識別,有鍵按下時,能夠由硬件邏輯自動提供與鍵對應的編碼,此外,一般還具有去抖動和多鍵保護等相關功能;非編碼鍵盤只簡單地提供按鍵的行列矩陣,由軟件實現(xiàn)鍵的定義與識別。編碼鍵盤使用方便,但需要較多的硬件,價格較貴,非編碼鍵盤經(jīng)濟實用,單片機系統(tǒng)普遍采用這種鍵盤接口方式

2.按鍵抖動及消除觸點式開關按鍵一般靠彈簧彈起復位,按鍵在按下和放開時有機械振動,會出現(xiàn)雖然只按了一次鍵,但按鍵觸點接通/斷開多次的情況,這稱為鍵抖動。抖動時間的長短與開關的機械特性有關,一般為510ms,計算機在識別按鍵時必須消除抖動的影響,否則會出現(xiàn)人工按一次鍵而計算機處理多次的問題。消除抖動可以用硬件或軟件的方法完成。

硬件去抖

軟件消除在檢測到有按鍵按下時,延時10ms左右(具體時間根據(jù)使用的按鍵調整),再次檢測該鍵是否仍保持閉合狀態(tài),若仍保持閉合,則確認該鍵按下。在檢測到按鍵釋放后,也采用相同的步驟進行二次確認,從而消除抖動的影響。

9.4.1.2獨立式鍵盤獨立式鍵盤的特點是每個按鍵獨占一根I/O線,每個按鍵的工作不會影響其它I/O口線的狀態(tài)。按鍵電路配置靈活,軟件結構簡單,但按鍵較多時,需占用較多的I/O口,如果系統(tǒng)的I/O設備較多,不宜采用這種方式。獨立式按鍵的軟件一般采用查詢式結構。先逐位查詢每根I/O口線的輸入狀態(tài),如某一根I/O口線輸入為低電平(與硬件接法有關),則可確認該I/O口線所對應的按鍵已按下,去除抖動后如仍然是按下的,則轉向該鍵的功能處理程序

按鍵檢測、處理子程序

KEY:MOV A,P1 ;讀入I/O口狀態(tài) CPL A ;反相JZ XEND ;無鍵按下,返回XD:MOV R0,A ;暫存按鍵狀態(tài) LCALL DELAY ;延時10ms。去抖 MOV A,P1 ;再次讀入按鍵狀態(tài)CPL A JZ XEND ;無鍵按下,返回

CJNE A,R0,XEND ;和前次按鍵不同,抖動,返回 JB ACC.0,KEY0 ;0號鍵按下,轉0號鍵處理程序 JB ACC.1,KEY1 ┆ JB ACC.7,KEY7KEY0: …… ;0號鍵處理程序,略 SJMP XEND ;處理完畢,返回 ┆KEY7: ……XEND:RET

9.4.1.3行列式鍵盤

行列式鍵盤(也稱矩陣式)由行線和列線組成,按鍵位于行、列線的交叉點上

行列式鍵盤較獨立式鍵盤節(jié)省的I/O口線行列式鍵盤的按鍵識別方法比獨立式鍵盤要復雜一些,常用的方法有掃描法線反轉法一.行列式鍵盤按鍵掃描識別法

行列式鍵

盤掃描流程三.鍵盤的掃描工作方式

編程掃描方式定時掃描方式中斷掃描方式中斷式鍵盤無鍵按下時,CPU不掃描鍵盤,而有鍵按下時,通過相應電路產(chǎn)生中斷請求,CPU響應中斷,執(zhí)行鍵盤掃描程序,識別按鍵

該方式節(jié)約CPU時間

四.鍵真值和鍵盤編碼

無論采用什么方式檢測鍵狀態(tài),最終都需要確定出按下的鍵的“代號”,以便后續(xù)程序執(zhí)行該按鍵的功能。鍵的“代號”可用鍵真值或鍵的編碼表示

對于行列式鍵盤,按鍵的位置由行號和列號唯一確定,因此可將按鍵對應的行、列的二進制編碼合成一個字節(jié)來代表該鍵,這就是鍵真值

對于圖9-2

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論