




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、第9章 MCS51單片機(jī)I/O接口技術(shù)v存儲器擴(kuò)展和I/O擴(kuò)展均是接口技術(shù)研究的內(nèi)容,而且在本質(zhì)上是一樣的,但二者有較大的區(qū)別:v前者完成的是計(jì)算機(jī)系統(tǒng)本身的擴(kuò)展,而后者實(shí)現(xiàn)的是計(jì)算機(jī)系統(tǒng)和外部設(shè)備的連接,是計(jì)算機(jī)在測控系統(tǒng)中使用必須解決的問題;v存儲器芯片內(nèi)部一般有數(shù)千個(gè)單元,芯片有若干根地址線,而I/O設(shè)備一般只有少數(shù)幾個(gè)或者一個(gè)單元,只有一、兩根地址線甚至沒有專門的地址線,這種區(qū)別導(dǎo)致了存儲器擴(kuò)展和I/O擴(kuò)展時(shí),地址線和譯碼信號的連接上有較大的不同。 9.1 I/O接口的功能和作用計(jì)算機(jī)系統(tǒng)IO接口示意圖邏輯接口電氣接口v控制系統(tǒng)中計(jì)算機(jī)和外圍設(shè)備進(jìn)行數(shù)據(jù)交換時(shí)可能存在以下一個(gè)或多個(gè)問題
2、速度不匹配時(shí)序不匹配數(shù)據(jù)格式不匹配信號類型不匹配v接口應(yīng)有的功能: 通過地址譯碼實(shí)現(xiàn)對不同設(shè)備的選擇; 設(shè)置數(shù)據(jù)的寄存、緩沖邏輯,解決CPU與外設(shè)之間的速度差異;進(jìn)行數(shù)據(jù)格式的轉(zhuǎn)換,如串并相互轉(zhuǎn)換; 協(xié)調(diào)CPU和外設(shè)在信號類型和電平的差異; 協(xié)調(diào)數(shù)據(jù)讀寫時(shí)序; 設(shè)置中斷和DMA控制邏輯等9.2 用通用芯片擴(kuò)展I/O口9.2.1 8155接口芯片及其應(yīng)用 v8155是由Intel公司開發(fā)的可編程并行接口芯片,內(nèi)部包含256Byte靜態(tài)RAM兩個(gè)8位、一個(gè)6位的可編程I/O口一個(gè)14位定時(shí)/計(jì)數(shù)器具有地址鎖存器v8155和MCS51單片機(jī)同是Intel公司的產(chǎn)品,兼容性好,和單片機(jī)連接非常簡單,是
3、單片機(jī)應(yīng)用系統(tǒng)中很常用的接口芯片。8155/8156芯片引腳和內(nèi)部邏輯框圖8155包含3大功能模塊:v存儲器部分:256字節(jié)8位靜態(tài)RAM。v并行I/O接口部分,共有3個(gè)并行口及相應(yīng)控制寄存器:端口A,可編程8位I/O口,對應(yīng)PA0PA7端口B,可編程8位I/O口,對應(yīng)PB0PB7。端口C,可編程6位I/O口,對應(yīng)PC0PC5。命令寄存器。8位寄存器,只能寫入。狀態(tài)寄存器。8位寄存器,只能讀出。9.2.1.1 8155的結(jié)構(gòu)及引腳介紹 v定時(shí)計(jì)數(shù)器部分:14位減法定時(shí)計(jì)數(shù)器。v由低8位寄存器和高6位(高兩位為操作方式控制位)寄存器操作、控制 8155引腳功能:vAD0AD7:地址數(shù)據(jù)復(fù)用總線。
4、vALE:地址鎖存信號輸入線。vIO/M:RAM/IO口選擇信號輸入。該引腳為低是,讀寫其內(nèi)部RAM;為高時(shí),操作I/O口。v/CE :片選信號輸入。v/RD、/WR:RAM/IO口讀寫控制信號輸入。 9.2.1.2 8155的RAM和I/O口編址 v8155片內(nèi)有256字節(jié)RAM單元,在具體系統(tǒng)中的地址為00HFFH,低8位地址由AD0AD7 8根地址線編址,高8位地址由/CE和IO/M端信號共同決定,即/CE 0、 IO/M 0時(shí)的高位地址線狀態(tài)決定了RAM單元的高8位地址。8155片內(nèi)內(nèi)寄存器 v8155片內(nèi)共有6個(gè)寄存器低位地址由AD0AD2三根地址線編址,/CE0、IO/M1時(shí)的高位
5、地址線狀態(tài)決定寄存器和I/O口的高8位地址。 9.2.1.3 8155的工作方式與基本操作 1)作片外256字節(jié)數(shù)據(jù)存儲器v將8155的引腳置低可作片外數(shù)據(jù)存儲器使用,其地址高8位由片選線決定,低8位為00H0FFH。2)作擴(kuò)展I/O口使用v8155作擴(kuò)展I/O口使用時(shí), IO/M引腳必須置高電平,vPA、PB、PC口和命令寄存器的低位地址分別為01H、02H、03H和00H。(設(shè)地址無關(guān)位為0)。v8155的A、B口可工作于基本I/O方式也可工作于選通方式,通過設(shè)置8155內(nèi)部命令寄存器的相關(guān)位,可在兩種方式間切換?;?I/O 方式 v基本I/O方式為無條件傳送,不需要任何聯(lián)絡(luò)信號,815
6、5的A、B、C三個(gè)口都可工作于基本 I/O 方式。選通I/O方式v8155的A口和B口可工作于選通方式,這時(shí)C口作為A、B口的聯(lián)絡(luò)控制信號線,如果有剩余可作為輸出口線。9.2.1.4 8155命令/狀態(tài)字 v命令寄存器可寫入控制字,用以確定8155的工作方式;v狀態(tài)寄存器可讀出,不同的位分別代表8155各個(gè)功能部件的當(dāng)前工作狀態(tài)。v這兩個(gè)寄存器共用一個(gè)地址,但在物理上是相互獨(dú)立的:對其寫入時(shí)作為命令寄存器,寫入的是命令;而對其讀出時(shí),作為狀態(tài)寄存器,讀出的是當(dāng)前I/O口和定時(shí)器的狀態(tài)。1)命令字 vD3和D2位定義C口工作方式,具體含義為:D3D200,ALT1方式:即A、B口均為基本I/O方
7、式,C口為輸入方式;D3D201,ALT2方式:即A、B口均為基本I/O方式,C口為輸出方式;D3D210,ALT3方式:即A口為選通I/O方式、B口為基本I/O方式,C口低3位作A口聯(lián)絡(luò)線、高3位為輸出方式;D3D211,ALT4方式:即A、B口均為選通I/O方式,C口低3位作A口聯(lián)絡(luò)線、高3位位作B口聯(lián)絡(luò)線。D7D6(TM2TM1)定時(shí)器運(yùn)行控制位 vTM2TM100:維持原來狀態(tài)v TM2TM101:停止計(jì)數(shù),準(zhǔn)備讀取定時(shí)/計(jì)數(shù)值;vTM2TM110:預(yù)停,基數(shù)寄存器減為0后停止計(jì)數(shù);vTM2TM111:如果定時(shí)/計(jì)數(shù)器未工作,裝入計(jì)數(shù)初值后,立即開始計(jì)數(shù);如果定時(shí)/計(jì)數(shù)器正在計(jì)數(shù),則待
8、計(jì)數(shù)器溢出后按新裝入的計(jì)數(shù)初值方式開始計(jì)數(shù)。2)狀態(tài)字 v狀態(tài)字是8155狀態(tài)寄存器的內(nèi)容,只能讀出不能寫入,反映各個(gè)口及定時(shí)/計(jì)數(shù)器的當(dāng)前工作狀態(tài)9.2.1.5 8155的定時(shí)器/計(jì)數(shù)器 v定時(shí)器的計(jì)數(shù)基值和輸出方式由04H、05H口寄存器確定v定時(shí)器/計(jì)數(shù)器的輸出波形由TH的M2和M1兩位確定9.2.1.6 8155與單片機(jī)接口方式 及應(yīng)用舉例 例:電路如圖所示,PA口為基本輸入方式,PB口為基本輸出方式,要求對PA口輸入的信號求反后,再從PB口輸出。試寫程序。 v8155 I/O口地址分配:命令/狀態(tài)寄存器的地址: 7F00HPA口的地址:7F01HPB口的地址:7F02HPC口的地址:
9、7F03H v命令字設(shè)定:TM2TM1(D7D6)00定時(shí)器無操作;IEB(D5)0.禁止B口中斷;IEA(D4)0.禁止A口中斷PC2PC1(D3D2)00A、B口基本I/O,C口輸入;PB(D1)1B口輸出;PA(D0)0. A口輸入??刂谱譃?0000010B,即02H MOVDPTR,#7F00H;命令控制口地址MOVA,#02H MOVXDPTR, A;設(shè)定命令控制字Loop:MOVDPTR,#7F01H;PA口地址MOVXA,DPTR;讀入PA口狀態(tài)CPLA;取反INCDPTR;指向PB口MOVXDPTR, A;從PB口輸出SJMPLoop;循環(huán) 9.2.2 8255接口芯片及其應(yīng)
10、用 v8255是Intel公司開發(fā)的8位通用I/O接口芯片,內(nèi)部具有3個(gè)8位I/O口,分別稱為PA口、PB口和PC口v通過設(shè)置控制字,3個(gè)口可工作于基本I/O方式、選通I/O方式和雙向總線等3種方式v3個(gè)口都可工作于I/O方式,另兩種方式,3個(gè)口情況有所不同 8255內(nèi)部結(jié)構(gòu)A組數(shù)據(jù)總線緩沖器內(nèi)部控制線內(nèi)部數(shù)據(jù)線D0D7A組控制端口AB組控制端口B端口C低4位讀寫控制邏輯PC0PC3PB0PB7PC4PC7PA0PA7端口C高4位B組A0A1RSTP2.4P2.3P2.2P2.1PSENP2.0P0.7P0.6P0.5P0.4P0.3P0.2P0.1P0.0單片機(jī)EAALE&ENBOE
11、PGM CE PSEN CS WRRD G CE1 CE2 INT0INT1 INT IO/M EAD7D6D5D4Q7Q6Q5Q4D3D2D1D0Q3Q2Q1Q0GOE74373P2.4P2.3P2.2P2.1PSENP2.0P0.7P0.6P0.5P0.4P0.3P0.2P0.1P0.0單片機(jī)EAALE&ENBOEPGM CE PSEN CS WRRD G CE1 CE2INT0INT1INT IO/M EAD7D6D5D4Q7Q6Q5Q4D3D2D1D0Q3Q2Q1Q0GOE74373P2.4P2.3P2.2P2.1PSENP2.0P0.7P0.6P0.5P0.4P0.3P0.2
12、P0.1P0.0單片機(jī)EAALE&ENBOEPGM CE PSEN CS WRRD G CE1 CE2 INT0INT1 INT IO/M EAD7D6D5D4Q7Q6Q5Q4D3D2D1D0Q3Q2Q1Q0GOE743739.2.2.1 8255結(jié)構(gòu)1.輸入/輸出端口 PA口:具有數(shù)據(jù)輸出鎖存/緩沖和數(shù)據(jù)輸入鎖存功能的8位并行口。PB口:具有數(shù)據(jù)輸出鎖存/緩沖和數(shù)據(jù)輸入緩沖功能的8位并行口。PC口:具有數(shù)據(jù)輸出鎖存/緩沖和數(shù)據(jù)輸入緩沖功能的8位并行口。v通常情況下,PA口和PB口作為數(shù)據(jù)輸入/輸出口,而PC口作為控制/聯(lián)絡(luò)端口使用。2.工作方式控制 v8255內(nèi)部有兩個(gè)工作方式控制電
13、路A組控制電路,B組控制電路,兩個(gè)控制電路共用一個(gè)控制命令寄存器。vA組由PA口和PC口的上半部分(PC7PC4)組成,由A組控制電路控制;vB組由PB口和PC口的下半部分(PC3PC0)組成,由B組控制電路控制。3 數(shù)據(jù)總線緩沖器v數(shù)據(jù)總線緩沖器是一個(gè)8位3態(tài)緩沖器,實(shí)現(xiàn)8255與系統(tǒng)數(shù)據(jù)線的緩沖和隔離。v一般情況下,8255內(nèi)部數(shù)據(jù)總線通過該緩沖器與系統(tǒng)數(shù)據(jù)總線相連。 4.讀/寫控制邏輯電路 v功能:根據(jù)CPU發(fā)來有關(guān)控制信號選擇內(nèi)部寄存器v完成與CPU之間的數(shù)據(jù)交換,vRESET信號實(shí)現(xiàn)對8255內(nèi)部寄存器單元的復(fù)位。 9.2.2.2 8255的工作方式 1. 方式0基本輸入/輸出 vP
14、A、PB和PC都可工作于方式0,該方式下,3個(gè)口的每一位都可以獨(dú)立地設(shè)置為輸入口或輸出口,CPU可以采用無條件讀寫方式或查詢方式與8255交換數(shù)據(jù)。v基本輸入/輸出方式下工作時(shí),8255將輸出的數(shù)據(jù)鎖存于相應(yīng)端口,輸入數(shù)據(jù)不鎖存。2. 方式1選通輸入/輸出v三個(gè)端口分成A、B兩組,A組由PA口和PC口的高4位組成;B組由PB口和PC口的低4位組成。vPA、PB兩個(gè)口用于傳輸數(shù)據(jù),而PC分別作為PA口和PB口與CPU以及PA口和PB口與外設(shè)之間的聯(lián)絡(luò)信號。 3.方式2雙向選通輸入/輸出v只有PA口可以工作于方式2,需要5根PC口線(PC3PC7)作為控制聯(lián)絡(luò)線。v方式2與方式1的區(qū)別在于:方式1
15、是單向的,而PA口工作于方式2時(shí),既可輸入數(shù)據(jù)也可輸出數(shù)據(jù),且輸入和輸出均帶有鎖存。vPA口工作于方式2時(shí)需要5根控制聯(lián)絡(luò)線,由于PC口不能再提供5根信號線供PB口使用,因而PB口不能工作于方式2。 選通方式下,PC口控制聯(lián)絡(luò)信號定義9.2.2.3 8255的控制字 v8255有兩個(gè)控制字,一個(gè)用來選擇IO端口的工作方式,稱為工作方式控制字;v另一個(gè)用來控制PC口的每一位,稱為PC口位控制字。v兩個(gè)控制字共用一個(gè)內(nèi)部寄存器地址,即A1A011,控制字最高位作為標(biāo)識位,用于區(qū)分不同的控制字:當(dāng)D71時(shí),寫入的是工作方式控制字;當(dāng)D70時(shí),對PC口位控制字進(jìn)行操作。1.工作方式控制字 2. PC口
16、位控制字 例:89C51通過8255與微型打印機(jī)相連。單片機(jī)通過查詢方式向打印機(jī)發(fā)送數(shù)據(jù)。要求編寫打印子程序,需打印的字節(jié)數(shù)存R7,需打印的數(shù)據(jù)在片內(nèi)數(shù)據(jù)存儲區(qū),首址存于R1。 v控制字設(shè)置PC0連接輸入信號BUSY,PC3 PC0為輸入PC7連接/STB,PC7 PC4為輸出PA口為打印數(shù)據(jù)輸出口,PB口未用,故 8255A的控制字為:1 0 0 0 0 0 0 1B = 81H。v口地址確定:8255片選端由單片機(jī)最高位地址線P2.7控制,因此,如果將無關(guān)位視為“1”,8255各寄存器地址是:PA口:7FFCHPB口:7FFDHPC口:7FFEH控制口:7FFFH打印程序 MOV DPTR
17、,#7FFFH;控制口地址 MOV A,#81H;控制字 MOVX DPTR,A ;寫入控制字NEXT:MOV DPTR,#7FFEH ;PC口地址 MOV A,#80H ;使PC7為高電平 MOVX DPTR,A ;向/STB輸出高電平,送數(shù)結(jié)束 MOVX A,DPTR;讀入打印機(jī)狀態(tài)WAIT:JB ACC.0,WAIT ;若PC0(BUSY)= 1,打印機(jī)忙,等待MOVDPTR,#7FFCH ;BUSY=0,指向PA口MOV A,R1 ;取打印數(shù)據(jù)MOVX DPTR,A ;輸出數(shù)據(jù)MOV DPTR,#7FFEH;指向PC口MOV A,#00HMOVX DPTR,A ;置低,通知打印機(jī)數(shù)據(jù)送
18、出LCALL DELAY ;延時(shí),保持信號為低一段時(shí)間INC R1;指向下一打印數(shù)據(jù)DJNZ R7,NEXT ;判斷打印是否結(jié)束SJMP $9.2.3 8279接口芯片及其應(yīng)用v8279是可編程鍵盤/顯示器接口芯片,它具有鍵盤輸入和顯示器輸出兩種功能。v鍵盤輸入時(shí),與按鍵或傳感器組成的矩陣相連,自動掃描,接收輸入信息,具有按鍵消抖功能,并能對多鍵同時(shí)按下提供保護(hù)。v顯示輸出時(shí),它有一個(gè)168位顯示RAM,其內(nèi)容自動掃描輸出,可由8或16 位LED數(shù)碼管顯示。8279的內(nèi)部結(jié)構(gòu)和工作原理8 2 7 9IR QD0 D7R DW RC SA0R E S E TC L KR L0 R L7S H I
19、F TC N T L /S T BS L0 S L3O U T A0O U T A3O U T B0O U T B3B D8計(jì) 算 機(jī)接 口按 鍵 數(shù) 據(jù)顯 示 數(shù) 據(jù)4448掃 描 線1. 8279的引腳和功能vD0D7:雙向三態(tài)數(shù)據(jù)總線。vA0:數(shù)據(jù)選擇輸入端:A0=1時(shí),CPU寫入數(shù)據(jù)為命令字,讀出數(shù)據(jù)為狀態(tài)字;A0=0時(shí),CPU讀、寫均為數(shù)據(jù)。v/CS:片選輸入端,低電平有效 v/RD、/WR:讀、寫信號輸入端,低電平有效。vSL0SL3:掃描輸出端,掃描鍵盤和顯示器??删幊虨榫幋a(4中選1)或譯碼輸出(16選1)。vRL0RL7:反饋線,鍵盤或傳感器的列信號輸入端。vSHIFT:移位
20、信號輸入端,高電平有效。鍵盤數(shù)據(jù)的D6位,通常作上、下檔功能鍵。在傳感器和選通方式中,SHIFT無效。vCNTL/STB:控制/選通輸入端,高電平有效。在鍵盤工作方式時(shí),是鍵盤數(shù)據(jù)的D7位,通常用作控制鍵。在選通輸入方式時(shí),它的上升沿可把來自RL0RL7的數(shù)據(jù)存入FIFO/傳感器RAM中。在傳感器方式時(shí),該引腳無效。vOUTA0OUTA3:A組顯示信號輸出端。vOUTB0OUTB3:B組顯示信號輸出端。vIRQ:中斷請求輸出端,高電平有效。v/BD:顯示熄滅輸出端,低電平有效。它在數(shù)字切換顯示或使用熄滅命令時(shí)關(guān)顯示。vCLK:系統(tǒng)時(shí)鐘輸入端。vRESET:系統(tǒng)復(fù)位輸入端,高電平有效。復(fù)位狀態(tài)為
21、:16個(gè)字符顯示;編碼掃描鍵盤;雙鍵鎖定;外部時(shí)鐘分頻系數(shù)31。2. 內(nèi)部結(jié)構(gòu)及功能模塊數(shù)據(jù)緩沖器定時(shí)與控制寄存器定時(shí)控制邏輯I/O控制 FIFO/傳感器RAM狀態(tài)寄存器RDWRCSA0168位顯示RAM顯示地址寄存器顯示寄存器88 FIFO/傳感器RAM鍵盤消抖與控制掃描計(jì)數(shù)器反饋48SHIFT CNTL/STBRL0RL7SL0SL38BDOUTA0OUTA3,OUTB0OUTB3IRQD0D7CLK RESET內(nèi)部總線1)I/O控制及數(shù)據(jù)緩沖器模塊v數(shù)據(jù)緩沖器是雙向緩沖器,連接內(nèi)外總線,用于傳送CPU和8279之間的命令或數(shù)據(jù),對應(yīng)的引腳為數(shù)據(jù)總線D0D7。vI/O控制線是CPU對827
22、9進(jìn)行控制的信號輸入線,對應(yīng)的引腳為數(shù)據(jù)選擇線A0、片選線/CS 、讀/寫信號線/RD和/WR。2)控制與定時(shí)寄存器及定時(shí)控制模塊v控制與定時(shí)寄存器用來寄存鍵盤及顯示工作方式控制字,及其它操作方式控制字。這些寄存器接收并鎖存各種命令,再通過譯碼電路產(chǎn)生相應(yīng)的信號,從而完成相應(yīng)的控制功能。與其對應(yīng)的引腳為時(shí)鐘輸入端CLK,復(fù)位端RESET。v定時(shí)控制電路包括若干個(gè)基本計(jì)數(shù)器組成,其中,第一個(gè)計(jì)數(shù)器可編程,取值N= 231,該值作為分頻系數(shù),對外部時(shí)鐘CLK進(jìn)行分頻得到內(nèi)部所需的100KHz時(shí)鐘,為鍵盤提供適當(dāng)?shù)膾呙桀l率和顯示掃描時(shí)間。與其相關(guān)的引腳是顯示熄滅控制端。3)掃描計(jì)數(shù)器模塊v掃描計(jì)數(shù)器
23、模塊由鍵盤和顯示器共用,提供鍵盤和顯示器的掃描信號,相關(guān)引腳是掃描線SL0SL3。掃描計(jì)數(shù)器有兩種工作方式:編碼工作方式:計(jì)數(shù)器作二進(jìn)制計(jì)數(shù),4位計(jì)數(shù)狀態(tài)從掃描線SL0SL3輸出,經(jīng)外部譯碼器譯碼后,可為鍵盤和顯示器提供16個(gè)掃描信號;譯碼工作方式:掃描計(jì)數(shù)器的最低兩位被譯碼后,從SL0SL3輸出,提供了4選1的掃描譯碼。4)反饋緩沖器、鍵盤去抖及控制模塊v在鍵盤工作方式中,反饋線作為行列式鍵盤的列輸入線,由反饋緩沖器緩沖并鎖存,8279以此判別是否有鍵按下。v當(dāng)某一鍵閉合時(shí),消抖電路被置位,延時(shí)10ms后,再檢查該鍵是否仍處在閉合狀態(tài)v延時(shí)后,如果按鍵不再是按下狀態(tài),則作為抖動信號不予處理;
24、如是仍然閉合,則將該鍵的地址和附加的換檔、控制鍵狀態(tài)一起形成鍵盤數(shù)據(jù)送入8279內(nèi)部的FIFO存儲器。5)FIFO/傳感器及其狀態(tài)寄存器模塊 vFIFO/傳感器RAM是一雙功能88 RAM,相關(guān)引腳是中斷請求線IRQ:在鍵盤選通工作方式時(shí),它是FIFO存儲器,輸入輸出遵循先入先出的原則。此時(shí),F(xiàn)IFO狀態(tài)寄存器用來存放FIFO的工作狀態(tài)。當(dāng)FIFO存儲器中有數(shù)據(jù)(有鍵按下)時(shí),狀態(tài)邏輯將產(chǎn)生IRQ=1信號,向CPU申請中斷。傳感器矩陣方式中,存放傳感器矩陣中的每個(gè)傳感器狀態(tài),若檢索出傳感器的變化,IRQ信號輸出高電平,向CPU申請中斷。6)顯示RAM和顯示寄存器模塊v顯示RAM存儲要顯示數(shù)據(jù),
25、容量為168位。在顯示過程中,存儲的數(shù)據(jù)輪流從顯示寄存器輸出。v顯示寄存器分為A組:OUTA0OUTA3和B組OUTB0OUTB3。它們既可輸出數(shù)據(jù),也可組成一個(gè)8位(A組為高4位,B組為低4位)的字。v與該模塊相關(guān)的引腳是數(shù)據(jù)顯示線OUTA0OUTA3和OUTB0OUTB3。v顯示地址寄存器用來寄存CPU讀/寫顯示RAM的地址,它可以由命令設(shè)定,也可以設(shè)置成每次讀出或?qū)懭牒笞詣舆f增。3. 8279的工作方式v8279的工作方式由CPU對8279寫入命令字設(shè)定或改變。vCPU與8279之間進(jìn)行數(shù)據(jù)傳輸時(shí),當(dāng)?shù)臀坏刂肪€A0為“1”時(shí),CPU對8279寫入的數(shù)據(jù)為命令字,讀出的數(shù)據(jù)為狀態(tài)字;vA0
26、為“0”時(shí),CPU讀/寫8279內(nèi)部數(shù)據(jù)。 1)鍵盤的工作方式v鍵盤工作方式包括雙鍵互鎖和N鍵巡回兩種方式:雙鍵互鎖:如果有兩個(gè)或兩個(gè)以上鍵同時(shí)按下,只識別最后一個(gè)釋放的鍵,并把該鍵鍵值送入FIFO/傳感器RAM中。N鍵巡回:若有多個(gè)鍵同時(shí)按下時(shí),按按鍵先后順序依次將鍵值送入FIFO/傳感器RAM中。2)顯示器工作方式v通過對鍵盤/顯示方式命令字和寫顯示RAM命令字的設(shè)置,顯示數(shù)據(jù)寫入顯示緩沖器時(shí)可置為左端送入和右端送入兩種方式。v左端送入為依次填入方式,右端送入為移位方式。4. 8279的命令格式和命令字1)鍵盤/顯示方式命令字vD7D6D5為000,是方式設(shè)置命令特征位。DD(D4D3):
27、設(shè)定顯示方式:00:8個(gè)字符顯示,左邊輸入01:16個(gè)字符顯示,左邊輸入10:8個(gè)字符顯示,右邊輸入 11:16個(gè)字符顯示,右邊輸入KKK:設(shè)定8種鍵盤/顯示工作方式:000:編碼掃描鍵盤,雙鍵鎖定001:譯碼掃描鍵盤,雙鍵鎖定010:編碼掃描鍵盤,N鍵巡回 011:譯碼掃描鍵盤,N鍵巡回100:編碼掃描傳感器矩陣 101:譯碼掃描傳感器矩陣110:選通輸入,編碼顯示掃描 111:選通輸入,譯碼顯示掃描2)時(shí)鐘編程命令vD7D6D5為001,是時(shí)鐘編程命令特征位vPPPPP:設(shè)定對CLK輸入端輸入的外部時(shí)鐘信號進(jìn)行分頻的分頻系數(shù)N,用以產(chǎn)生100KHz的內(nèi)部時(shí)鐘,N的取值為231。v若CLK輸
28、入的時(shí)鐘頻率為2MHz,則需要設(shè)置N=20,即PPPPP=10100B。3)讀FIFO/傳感器RAM命令 vD7D6D5為010,讀FIFO/傳感器RAM命令特征位vAI(D4)為自動加1標(biāo)志。AI=0時(shí),讀完傳感器RAM的數(shù)據(jù)后地址不變;AI=1時(shí),讀完傳感器RAM的數(shù)據(jù)后地址自動加1 vAAA為FIFO/傳感器RAM地址。v鍵掃描方式時(shí),讀取數(shù)據(jù)按先進(jìn)先出的原則讀出,與AI、AAA無關(guān) 4)讀顯示RAM命令 vD7D6D5為011,讀顯示RAM命令特征位vAI(D4)自動加1標(biāo)志,AI=1時(shí),每次讀數(shù)據(jù)后地址自動加1。vAAAA(D3D2D1D0):將要讀的顯示RAM中的存儲單元地址。 0
29、115)寫顯示RAM命令 vD7D6D5為100,寫顯示RAM命令特征位 vAI(D4)自動加1標(biāo)志,AI=1時(shí),每次寫數(shù)據(jù)后地址自動加1。vAAAA(D3D2D1D0)為將要寫入的顯示RAM中的存儲單元地址。 6)顯示禁止寫入/消隱命令 vD7D6D5為101,顯示禁止寫入/熄滅命令的特征位。vIWA、IWB(D3D2):A、B組顯示RAM寫入屏蔽位。當(dāng)IWA=1時(shí),A組顯示RAM禁止寫入,從CPU寫入顯示器RAM數(shù)據(jù)不影響A組顯示器的顯示IWB的用法與IWA相同,可屏蔽B組顯示器。vBLA、BLB(D1D0)為A、B組的消隱設(shè)置位。為“1”時(shí)關(guān)閉對應(yīng)組的顯示;為“0”時(shí)恢復(fù)顯示。 101I
30、WAIWB BLABLB7)清除命令 vD7D6D5為110,是清除命令的特征位。vCDCDCD(D4D3D2)設(shè)定清除顯示RAM的方式 vCF(D1)用于清除FIFO存儲器,CF=1清除FIFO狀態(tài),并使中斷輸出線復(fù)位;同時(shí),傳感器RAM的讀出地址也被置0。vCA(D0)為總清除特征位,兼有CD和CF兩位的功能。CA=1時(shí),清除顯示器和FIFO的狀態(tài)。 110CDCDCFCACD8)結(jié)束中斷結(jié)束中斷/出錯方式設(shè)置命令出錯方式設(shè)置命令 vD7D6D5為111,結(jié)束中斷/出錯方式設(shè)置命令特征位。vE(D4)為1時(shí),N鍵巡回工作方式可工作在特殊出錯方式(多個(gè)鍵同時(shí)按下);對傳感器工作方式,此命令使
31、IRQ變低,結(jié)束中斷,并允許對RAM進(jìn)一步寫入。111E7. 應(yīng)用實(shí)例9.3 用74/54系列芯片擴(kuò)展I/O口 v可用74/54系列中小規(guī)模芯片進(jìn)行簡單I/O擴(kuò)展,優(yōu)點(diǎn):體積、功耗小,成本低v74/54系列芯片沒有專門的片選端,一般將地址信號和讀寫信號組合到一起,直接控制其讀寫,以這種方式給它分配硬件地址。v一般用74273、74373等鎖存器芯片擴(kuò)展單片機(jī)的輸出接口輸出鎖存 v一般使用74244或74245等具有隔離緩沖功能的芯片擴(kuò)展輸入接口輸入緩沖用鎖存器和緩沖器擴(kuò)展單片機(jī)I/O接口 9.4 常用外圍設(shè)備接口技術(shù) v鍵盤和顯示器卻是絕大多數(shù)系統(tǒng)共有的外圍設(shè)備,接口方法基本是通用和類似的,v
32、本節(jié)介紹這兩種設(shè)備和單片機(jī)的常用接口方法。 v通過學(xué)習(xí)鍵盤和顯示器的接口方法,理解接口電路設(shè)計(jì)的一般原則和規(guī)律。9.4.1 鍵盤接口技術(shù) 9.4.1.1 鍵盤工作原理v按鍵本質(zhì)上是一個(gè)開關(guān),通過接通或斷開一個(gè)回路,使電路出現(xiàn)通和斷兩種狀態(tài),即“開關(guān)”狀態(tài),v計(jì)算機(jī)通過識別電路的通斷(判斷輸入電平的高/低或1/0狀態(tài))來判斷按鍵是否按下,從而進(jìn)行相應(yīng)的處理。1.編碼鍵盤與非編碼鍵盤 v編碼鍵盤用硬件來實(shí)現(xiàn)對鍵的識別,有鍵按下時(shí),能夠由硬件邏輯自動提供與鍵對應(yīng)的編碼,此外,一般還具有去抖動和多鍵保護(hù)等相關(guān)功能;v非編碼鍵盤只簡單地提供按鍵的行列矩陣,由軟件實(shí)現(xiàn)鍵的定義與識別。v編碼鍵盤使用方便,但
33、需要較多的硬件,價(jià)格較貴,v非編碼鍵盤經(jīng)濟(jì)實(shí)用,單片機(jī)系統(tǒng)普遍采用這種鍵盤接口方式 2.按鍵抖動及消除 v觸點(diǎn)式開關(guān)按鍵一般靠彈簧彈起復(fù)位,按鍵在按下和放開時(shí)有機(jī)械振動,會出現(xiàn)雖然只按了一次鍵,但按鍵觸點(diǎn)接通/斷開多次的情況,這稱為鍵抖動。v抖動時(shí)間的長短與開關(guān)的機(jī)械特性有關(guān),一般為510ms,v計(jì)算機(jī)在識別按鍵時(shí)必須消除抖動的影響,否則會出現(xiàn)人工按一次鍵而計(jì)算機(jī)處理多次的問題。v消除抖動可以用硬件或軟件的方法完成。 硬件去抖 軟件消除v在檢測到有按鍵按下時(shí),延時(shí)10ms左右(具體時(shí)間根據(jù)使用的按鍵調(diào)整),再次檢測該鍵是否仍保持閉合狀態(tài),若仍保持閉合,則確認(rèn)該鍵按下。v在檢測到按鍵釋放后,也采
34、用相同的步驟進(jìn)行二次確認(rèn),從而消除抖動的影響。 9.4.1.2 獨(dú)立式鍵盤 v獨(dú)立式鍵盤的特點(diǎn)是每個(gè)按鍵獨(dú)占一根I/O線,每個(gè)按鍵的工作不會影響其它I/O口線的狀態(tài)。v按鍵電路配置靈活,軟件結(jié)構(gòu)簡單,但按鍵較多時(shí),需占用較多的I/O口,如果系統(tǒng)的I/O設(shè)備較多,不宜采用這種方式。v獨(dú)立式按鍵的軟件一般采用查詢式結(jié)構(gòu)。先逐位查詢每根I/O口線的輸入狀態(tài),如某一根I/O口線輸入為低電平(與硬件接法有關(guān)),則可確認(rèn)該I/O口線所對應(yīng)的按鍵已按下,去除抖動后如仍然是按下的,則轉(zhuǎn)向該鍵的功能處理程序 P 1.0P 1.1P 1.2P 1.3P 1.4P 1.5P 1.6P 1.789C 51+ 5 V按
35、鍵檢測、處理子程序 KEY:MOVA,P1;讀入I/O口狀態(tài) CPLA;反相 JZXEND;無鍵按下,返回XD: MOVR0,A;暫存按鍵狀態(tài) LCALL DELAY;延時(shí)10ms。去抖 MOVA,P1;再次讀入按鍵狀態(tài) CPLA JZXEND;無鍵按下,返回 CJNEA,R0,XEND;和前次按鍵不同,抖動,返回JBACC.0,KEY0;0號鍵按下,轉(zhuǎn)0號鍵處理程序JBACC.1,KEY1JBACC.7,KEY7KEY0:;0號鍵處理程序,略SJMPXEND;處理完畢,返回KEY7:XEND:RET 9.4.1.3 行列式鍵盤行列式鍵盤 v行列式鍵盤(也稱矩陣式)由行線和列線組成,按鍵位于行
36、、列線的交叉點(diǎn)上 v行列式鍵盤較獨(dú)立式鍵盤節(jié)省的I/O口線v行列式鍵盤的按鍵識別方法比獨(dú)立式鍵盤要復(fù)雜一些,常用的方法有掃描法線反轉(zhuǎn)法一. 行列式鍵盤按鍵掃描識別法 行列式鍵盤掃描流程三. 鍵盤的掃描工作方式 v 編程掃描方式 v 定時(shí)掃描方式 v 中斷掃描方式 中 斷 入 口有 鍵 按 下 ?去 抖 標(biāo) 志 1 ?處 理 標(biāo) 志 1 ?處 理 標(biāo) 志 1識 別 按 鍵保 存 鍵 號返 回去 抖 標(biāo) 志 0處 理 標(biāo) 志 0去 抖 標(biāo) 志 1NYNYYN中斷式鍵盤v無鍵按下時(shí),CPU不掃描鍵盤,而有鍵按下時(shí),通過相應(yīng)電路產(chǎn)生中斷請求,CPU響應(yīng)中斷,執(zhí)行鍵盤掃描程序,識別按鍵 v該方式節(jié)約CPU時(shí)間 四.鍵真值和鍵盤編碼 v無論采用什么方式檢測鍵狀態(tài),最終都需要確定出按下的鍵的“代號”,以便后續(xù)程序執(zhí)行該
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年福建武夷山三茶集團(tuán)有限公司下屬子公司(第一批次)招聘考試筆試試題(含答案)
- 【銅川】2025年陜西銅川市事業(yè)單位招聘高層次人才13人(第三批)筆試歷年典型考題及考點(diǎn)剖析附帶答案詳解
- 小學(xué)憫農(nóng)教學(xué)課件
- 文庫發(fā)布:的說課課件
- 收納職業(yè)課件教學(xué)
- 《鳥鳴澗》教學(xué)課件
- 教學(xué)課件改稿怎么寫好
- 語文片段教學(xué)課件
- DB33T 1126-2016 城市軌道交通巖土工程勘察規(guī)范
- 【成都】2025年成都市科學(xué)技術(shù)協(xié)會所屬1家事業(yè)單位招聘工作人員2人筆試歷年典型考題及考點(diǎn)剖析附帶答案詳解
- 應(yīng)收賬款信用風(fēng)險(xiǎn)的識別、評估與防控機(jī)制研究
- 鍍鋅板知識課件
- 豬場退股協(xié)議書范本
- 熱管散熱技術(shù)在數(shù)據(jù)中心應(yīng)用-全面剖析
- 垃圾分類房建設(shè)合同協(xié)議
- 別墅土建改造合同標(biāo)準(zhǔn)文本
- 天臺保安考試題及答案
- 租賃傭金協(xié)議書范本
- 離婚協(xié)議模板
- 血友病患兒的護(hù)理
- 電力安全事故隱患排查
評論
0/150
提交評論