




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第 六 章 I/O接口和8255A6.1 I/O接口6.28255A的工作原理6.38255A的應(yīng)用學(xué)習(xí)目的通過(guò)對(duì)本章的學(xué)習(xí),您應(yīng)該能夠達(dá)到下列要求: 端口的功能、種類、編址方式 CPU與外設(shè)交換數(shù)據(jù) 查詢式傳送軟硬件設(shè)計(jì) 總線的概念、分類,PC總線 重點(diǎn)與難點(diǎn)輸入緩沖、輸出鎖存的概念CPU與外設(shè)交換數(shù)據(jù)的方式查詢方式 6-1 I/O接口一、I/O接口的功能1、采用I/O接口的必要性計(jì)算機(jī)目的是進(jìn)行信息處理,需要輸入原始信息并輸出運(yùn)算結(jié)果,需要輸入/輸出外部設(shè)備。外設(shè)種類多:機(jī)械、電子、電動(dòng)等,信息格式、內(nèi)容多種多樣。速度不匹配:高速硬盤,低速打印機(jī),鍵盤。信號(hào)電平不匹配:CPU為TTL電平,
2、外設(shè)有DC24V繼電器、AC220V接觸器等。信號(hào)格式不匹配:CPU為8/16位并行總線,外設(shè)有串行、并行、數(shù)字信號(hào)、模擬信號(hào)。時(shí)序不匹配:外設(shè)有自己的操作邏輯,不同于CPU2、接口的功能設(shè)置數(shù)據(jù)緩沖以解決速度不匹配:在CPU與外設(shè)之間設(shè)置緩沖區(qū),發(fā)送方可把數(shù)據(jù)存放在緩沖區(qū)中,接收方再?gòu)木彌_區(qū)中讀取數(shù)據(jù)。CPU與外設(shè)交換數(shù)據(jù)不必總是聯(lián)合進(jìn)行,增加靈活性。設(shè)置電平轉(zhuǎn)換電路:實(shí)現(xiàn)TTL電平與外設(shè)信號(hào)電平之間的轉(zhuǎn)換,例如RS-232設(shè)置信息轉(zhuǎn)換邏輯以滿足對(duì)各自格式的要求:例如A/D轉(zhuǎn)換器、D/A轉(zhuǎn)換器、總線控制器設(shè)置時(shí)序控制電路來(lái)同步CPU和外設(shè)的工作:設(shè)計(jì)握手信號(hào)(準(zhǔn)備好、出錯(cuò))提供地址譯碼電路:
3、多個(gè)外設(shè)、多個(gè)端口的區(qū)分。二、簡(jiǎn)單的輸入輸出接口芯片1、緩沖器74LS244和74LS245輸入緩沖的概念:考慮CPU從1#、2#、3#三個(gè)外設(shè)讀取數(shù)據(jù)。1#2#3#CPU總線當(dāng)CPU讀取1#的數(shù)據(jù)時(shí),要求2#、3#不能影響總線上的數(shù)值,即要求2#、3#與總線之間處于高阻狀態(tài),同時(shí)1#的數(shù)據(jù)要正確傳送到總線上。CPU與輸入外設(shè)之間的三態(tài)門就是輸入緩沖器,其輸入是專用的,但輸出是共用的。(1)74LS244雙4單向緩沖器,輸入端為1A11A4、2A12A4,輸出端為1Y11Y4、2Y12Y4。兩個(gè)使能控制引腳1G、2G,1G=01Y=1A,1G=11Y與1A之間為高阻態(tài)。2G=02Y=2A,2G
4、=12Y與2A之間為高阻態(tài)。(2)74LS245(類似Intel 8286)8位雙向緩沖器,輸入/輸出端為A1A8、B1B8。一個(gè)使能控制引腳G,G=0A1A8=B1B8,G=1A1A8與B1B8之間為高阻態(tài)。一個(gè)傳送方向控制引腳DIRDIR=1AB,DIR=0AB2、鎖存器74LS373輸出鎖存的概念:1#2#3#CPU總線(公用)1#專用2#專用3#專用當(dāng)CPU寫數(shù)據(jù)到1#時(shí),要求不能影響2#、3#的專用信號(hào)數(shù)值,即要求2#、3#能保持原來(lái)的數(shù)值,這就要求接口具有鎖存功能。從接口角度看,鎖存器用于一個(gè)公用輸入信號(hào)多個(gè)專用輸出信號(hào)的情況下。OEGDO0111(直通狀態(tài),O = D)0100(
5、直通狀態(tài), O = D)00X鎖存值,G下降沿對(duì)應(yīng)的D值1XX與內(nèi)部線路間為高阻態(tài)2、鎖存器74LS373具有三態(tài)功能的8D鎖存器,輸入端為1D8D,輸出端為1O8O。一個(gè)輸出使能控制引腳OE一個(gè)輸入控制引腳G(數(shù)據(jù)打入線)三、 I/O端口及其編址方式1.I/O端口I/O端口是外設(shè)接口電路中CPU訪問的寄存器。CPU通過(guò)對(duì)端口的訪問來(lái)實(shí)現(xiàn)對(duì)外設(shè)的訪問。根據(jù)所存內(nèi)容不同,接口電路包含以下幾種端口:數(shù)據(jù)端口:存放外設(shè)與CPU之間要交換的數(shù)據(jù),通常為1個(gè)字節(jié)或1個(gè)字。狀態(tài)端口:存放外設(shè)的當(dāng)前狀態(tài),通常有準(zhǔn)備好、出錯(cuò)、忙等。命令端口:也叫控制端口,存放CPU對(duì)接口電路的行為邏輯的控制信息,通常有方式控
6、制字、操作控制字。每個(gè)端口存儲(chǔ)一個(gè)字節(jié)數(shù)據(jù),地址相鄰的兩個(gè)字節(jié)端口可以組成一個(gè)字端口,低地址存放地字節(jié),高地址存放高字節(jié)。端口的訪問用輸入輸出指令I(lǐng)NAL,portINAX,port OUTport,ALOUTport,AX INAL,DXINAX,DXOUTDX,ALOUTDX,AX訪問外設(shè)的IN/OUT指令與訪問存儲(chǔ)器的MOV指令硬件的區(qū)別在于:M/IO(對(duì)8086)、IO/M(對(duì)8088)。2.I/O端口編址方式CPU通過(guò)地址信息區(qū)分不同的端口,接口電路中要有地址譯碼功能。CPU有兩種處理端口地址的方法:統(tǒng)一編址、獨(dú)立編址。存儲(chǔ)器映象編址:把每個(gè)I/O端口當(dāng)作一個(gè)存儲(chǔ)器單元,并與存儲(chǔ)單元
7、統(tǒng)一編址。所有訪問存儲(chǔ)器的指令都可訪問I/O端口。地址譯碼電路簡(jiǎn)單,占用存儲(chǔ)器地址空間。例如:MC6800,51系列單片機(jī)。I/O獨(dú)立編址:把所有I/O端口組成I/O端口空間,與存儲(chǔ)器空間相互獨(dú)立。用獨(dú)立的I/O指令訪問I/O端口。地址譯碼電路復(fù)雜,不占用存儲(chǔ)器地址空間。例如:INTEL 8088/8086在 8088/8086 系統(tǒng)中,I/O端口空間使用低16位地址信號(hào)A0A15,總共64kB,而存儲(chǔ)器空間使用20位地址信號(hào),總共1MB。8086使用M/IO(8088用IO/M)控制信號(hào)來(lái)區(qū)分I/O端口空間與存儲(chǔ)器空間。四、 CPU與外設(shè)間的數(shù)據(jù)傳輸方式1.程序控制方式CPU與外設(shè)接之間的數(shù)
8、據(jù)交換完全在程序控制下實(shí)現(xiàn),包括無(wú)條件傳送和條件傳送兩種方式。(1)無(wú)條件傳送:CPU直接用 IN 指令從外設(shè)讀取數(shù)據(jù),直接用 OUT 指令向外設(shè)發(fā)送數(shù)據(jù)。要求外設(shè)總是已經(jīng)準(zhǔn)備好數(shù)據(jù),總是準(zhǔn)備好接收數(shù)據(jù)。用于簡(jiǎn)單的外設(shè),如顯示、按鍵。按鍵、開關(guān)輸入接口1Y1 1A11Y2 1A22Y4 2A41G 2GD0D1D7M/IO CS RD+5VK1K2K8INAL,port1G = 2G = 0K1K8ALINM/IO=0,RD=0Port地址譯碼后CS=074LS244最小模式下的總線寫操作ALESTB把地址信息A0A19從復(fù)用總線上提取出來(lái)加以保持八段碼輸出接口1D 1Q2D 2Q 8D 8Q
9、 CLKD0D1D7M/IO CS WRL1L2L8OUTport,ALAL L1L8OUTM/IO=0,RD=0Port地址譯碼后CS=0CLK = 74LS273DATA SEGMENT;顯示段碼表SEGTABDB 3FH,06H,5BH,4FHDB 66H,6DH,7DH,07HDB 7FH,6FH,77H,7CH,DB 39H,5EH,79H,71HBUFDB6 DUP (?)DATA ENDS;端口號(hào)SEG_PORTEQU0640HDIG_PORTEQU0600HDISPLAY:PUSHAXMOV SI, 05 ; 指針初值MOV AH, 0DFH; 位碼初值DSPLP1 :MOVA
10、L, BUFSIMOV BX, OFFSET SEGTABXLATMOVDX, SEG_PORT ;送段碼OUTDX, ALMOVDX, DIG_PORT ;送位碼MOVAL, AHOUTDX, ALCALLDELAY;DEC SIRORAH, 1;顯示下一位JCDSPLP1POPAXRET ; 每位都顯示過(guò)(2)條件傳送(查詢傳送)一般而言,CPU應(yīng)該在外設(shè)準(zhǔn)備好數(shù)據(jù)以后才讀取數(shù)據(jù),應(yīng)該在外設(shè)準(zhǔn)備好接收數(shù)據(jù)以后才發(fā)送數(shù)據(jù)。傳送數(shù)據(jù)前,CPU應(yīng)該查詢外設(shè)的當(dāng)前狀態(tài),等到外設(shè)準(zhǔn)備好以后才開始傳送。除數(shù)據(jù)端口以外,接口電路還需要另有一個(gè)狀態(tài)端口以存放外設(shè)的當(dāng)前狀態(tài),CPU線先讀取該端口以判斷外設(shè)是
11、否準(zhǔn)備好。輸入時(shí),數(shù)據(jù)準(zhǔn)備好信號(hào)由外設(shè)置位,由CPU讀數(shù)據(jù)操作復(fù)位。輸出時(shí),忙信號(hào)由CPU寫操作置位,由外設(shè)復(fù)位。輸入設(shè)備輸入鎖存器輸入緩沖器RD QC+5V地址譯碼RDM/IOCS2CS1A15A0D0READY查詢式輸入接口電路D7D0STB查詢式輸入程序流程圖初始化讀入狀態(tài)準(zhǔn)備好?讀入數(shù)據(jù)A數(shù)據(jù)緩沖區(qū)完畢?結(jié)束NN查詢式輸入程序清單MOVBX,0;地址指針MOVCX,COUNT_1;要輸入的字節(jié)數(shù)READ_S1:INAL,STATUS_P;讀狀態(tài)端口TESTAL,01H;查詢準(zhǔn)備好信號(hào)JZREAD_S1;沒有好,循環(huán)等待INAL,DATA_P;準(zhǔn)備好,讀取數(shù)據(jù)MOVBUF1BX,AL;數(shù)
12、據(jù)存入緩沖區(qū)INCBX;修改指針,指向下一個(gè)字節(jié)LOOPREAD_S1;未傳送完畢,繼續(xù)傳送;傳送完畢,執(zhí)行后續(xù)指令輸入設(shè)備8位鎖存器8位緩沖器D R QC+5V地址譯碼RDRDM/IOCS2CS1A15A0D0READY查詢式輸入工作流程D7D0選通信號(hào)外設(shè)準(zhǔn)備好發(fā)選通信號(hào)正脈沖,使數(shù)據(jù)進(jìn)入鎖存器;D觸發(fā)器反轉(zhuǎn)Q=D=1。IN AL,DATA_P 使得M/IO=0、CS2=0、RD= 0、緩沖器打開,數(shù)據(jù)進(jìn)入AL中,同時(shí)R=0清除D觸發(fā)器, READY=Q =0IN AL,STATUS_P 使得M/IO=0、CS1=0、RD=0、三態(tài)門打開,READY=1進(jìn)入AL中的D0。輸出設(shè)備輸出鎖存器
13、 CR DQ+5V地址譯碼RDWRM/IOCS2CS1A15A0D1Busy查詢式輸出接口電路D7D0ACKOBFCPU與外設(shè)間的DMA傳輸方式(1)、DMA方式的提出在程序控制方式下,外設(shè)與內(nèi)存之間的數(shù)據(jù)交換要通過(guò)累加器中轉(zhuǎn),至少需要一條IN/OUT指令與一條MOV指令,還有修改指針、計(jì)數(shù)器的指令,不可能快速傳遞。在大多數(shù)系統(tǒng)中,硬件操作速度遠(yuǎn)高于指令執(zhí)行時(shí)間,若不經(jīng)過(guò)CPU中轉(zhuǎn),在內(nèi)存與外設(shè)之間直接傳送數(shù)據(jù),則可獲得很高的傳送速度,稱為直接存儲(chǔ)器存取方式。DMA方式常用于與高速外設(shè)之間一次傳送大量數(shù)據(jù)的場(chǎng)合,如磁盤操作,需要DMA控制器才實(shí)現(xiàn)。地址總線數(shù)據(jù)總線控制總線HOLD HLDA(2
14、) DMA工作原理存儲(chǔ)器外設(shè)地址總線數(shù)據(jù)總線控制總線控制總線HRQ HLDADREQ DACKCPU外設(shè)通過(guò)DREQ向DMAC請(qǐng)求DMA操作,DMAC據(jù)此向CPU發(fā)出HREQ信號(hào)。CPU收到HOLD信號(hào),執(zhí)行完當(dāng)前指令,進(jìn)入總線響應(yīng)周期,釋放總線使CPU內(nèi)部與三總線之間處于高阻狀態(tài),并給出總線保持應(yīng)答HLDA。DMAC收到HLDA以后,接管總線撤銷其內(nèi)部電路與三總線的高阻狀態(tài),向存儲(chǔ)器輸出地址信息,確定傳送數(shù)據(jù)單元,發(fā)DACK到外設(shè)。外設(shè)收到DACK后,即準(zhǔn)備好收發(fā)數(shù)據(jù)。DMAC控制數(shù)據(jù)傳送過(guò)程。傳送完畢,DMAC撤銷HREQ,CPU接管總線,撤銷HLDA,DMAC再撤銷DACK,結(jié)束。(2)
15、 DMA工作原理五、 PC機(jī) I/O 端口地址分配0000001F0020003F0040005F0060007F0080009F00A000BF008001FF32字節(jié)320字節(jié)32字節(jié)32字節(jié)32字節(jié)32字節(jié)32字節(jié)0000000F8237A5 DMA控制器002000218259A 中斷控制器004000438253A5 定時(shí)/計(jì)數(shù)器006000638255A5 并行接口芯片00800083DMA 頁(yè)面寄存器00A000BFNMI 屏蔽寄存器02000200020F游戲控制口02100217擴(kuò)展部件021802F7未用02F802FF異步通信卡(第二個(gè))0320032F硬盤適配器0330
16、0377并行打印機(jī)未用0300031F實(shí)驗(yàn)卡0380038F039003AF03B003BF03C003CF03D003DF03E003EF03F003F703F803FF03FF0378037FSPLC通信未用單色顯示器 / 打印機(jī)未用未用彩色/ 圖形顯示卡軟盤適配器異步通信卡(第一個(gè))6.2 可編程并行接口8255A 8255A是INTER系列的并行接口芯片。它是可編程的,可以通過(guò)軟件來(lái)設(shè)置芯片的工作方式。CPU接口外設(shè)一、8255A的結(jié)構(gòu)和功能1數(shù)據(jù)端口A、B、C8255A內(nèi)部包含3個(gè)8位的輸入輸出端口A、B和C,用于與外設(shè)交換數(shù)據(jù)或進(jìn)行通信聯(lián)絡(luò)。端口A包含一個(gè)8位的數(shù)據(jù)輸入鎖存器和一個(gè)
17、8位的數(shù)據(jù)輸出鎖存器緩沖器,因此A口作輸入、輸出可以同時(shí)鎖存數(shù)據(jù)。端口B包含一個(gè)8位的數(shù)據(jù)輸入輸出鎖存器和一個(gè)8位的數(shù)據(jù)輸入緩沖器,輸出數(shù)據(jù)可以鎖存,輸入數(shù)據(jù)也可鎖存,但輸入/輸出不能同時(shí)鎖存。端口C包含一個(gè)8位的數(shù)據(jù)輸入緩沖器和一個(gè)8位的數(shù)據(jù)輸出鎖存器,無(wú)輸入鎖存功能,當(dāng)它被分成兩個(gè)4位端口時(shí),每個(gè)端口有一個(gè)4位的輸出鎖存器。2、A組和B組控制邏輯8255A的端口A和端口C的高4位(PC7PC4)由A組控制邏輯管理,端口B和端口C的低4位(PC3PC0)由B組控制邏輯管理。這兩組控制電路都從讀/寫控制邏輯接受命令信號(hào),從內(nèi)部數(shù)據(jù)總線接收控制字,然后向各有關(guān)端口發(fā)出相應(yīng)的控制命令,控制每個(gè)端口
18、的工作方式。還可以根據(jù)CPU的命令字對(duì)端口C的每一位按位進(jìn)行置位或復(fù)位。3、數(shù)據(jù)總線緩沖器雙向三態(tài)的8位緩沖器,用作8255A和系統(tǒng)數(shù)據(jù)總線之間的接口。當(dāng)片選信號(hào) CS=0 時(shí),通過(guò)這個(gè)緩沖器和與之相連的8位數(shù)據(jù)總線D7D0,從CPU接收的數(shù)據(jù)或控制字,向CPU傳送外設(shè)的數(shù)據(jù)或狀態(tài)信息。當(dāng)片選信號(hào) CS=1 時(shí),數(shù)據(jù)總線緩沖器與外部總線D7D0之間為高阻狀態(tài),即電氣隔離狀態(tài);RESET:復(fù)位信號(hào),低電平有效。D7D0 :和數(shù)據(jù)線相連。CS:芯片選擇信號(hào),低電平有效。RD:芯片讀出信號(hào),低電平有效。WR:芯片寫入信號(hào),低電平有效。A1、A0:端口選擇信號(hào)。A1A0=00,選中端口A;A1A0=0
19、1,選中端口B;A1A0=10,選中端口C;A1A0=11,選中控制端口;4、讀寫控制信號(hào)A1A0操 作00001端口A數(shù)據(jù)總線00101端口B數(shù)據(jù)總線01001端口C數(shù)據(jù)總線01101非法狀態(tài)00010數(shù)據(jù)總線端口A00110數(shù)據(jù)總線端口B01010數(shù)據(jù)總線端口C01110數(shù)據(jù)總線控制字寄存器0XX11數(shù)據(jù)總線高阻態(tài)1XXXX二、 8255A的控制字8255A控制字分為兩類。 芯片各端口的方式選擇控制字,它可以使8255A的3個(gè)數(shù)據(jù)端口工作在不同的工作方式。 C端口置位/復(fù)位控制字,它可以使C端口中的任何一條口線進(jìn)行置位或復(fù)位,而不影響其他各位的狀態(tài)。0 D7 D6 D5 D4 D3 D2
20、D1 D01=置10=置0端口C置1/0控制字0 0 0 PC00 0 1 PC10 1 0 PC20 1 1 PC31 0 0 PC41 0 1 PC51 1 0 PC61 1 1 PC7端口C置1/0控制字例1:設(shè)A端口工作方式0,輸出, B端口工作于方式0,輸入。 方式選擇控制字: 1 0 0 0 1/0 0 1 1/0 =10000010=82H 方式選擇A口方式0A口輸出C口高位不用B口方式0B口輸入C口低位不用例2:設(shè)8255A的控制口地址為00EEH,要求對(duì)端口C的PC7置1,則控制字00001111B=0FH,要求對(duì)端口C的PC3置0,控制字為00000110B=06H。下面的
21、程序可以實(shí)現(xiàn)上述要求: MOV AL , 0FH ;對(duì)PC7置1的控制字 MOV DX , 00EEH ;控制口地址送DX OUT DX , AL ;對(duì)PC7置1操作 MOV AL , 06H ;對(duì)PC3置0的控制字 OUT DX , AL ;對(duì)PC3進(jìn)行置0的操作三、8255A的工作方式和C口狀態(tài)字1.方式0-基本輸入輸出方式適用于不需要用應(yīng)答信號(hào)的簡(jiǎn)單輸入輸出場(chǎng)合。在這種方式下,A口和B口可作為8位的端口,C口的高4位和低4位可作為兩個(gè)4位的端口。這4個(gè)端口中的任何一個(gè)可作輸入或者輸出,從而構(gòu)成16種不同的輸入輸出組態(tài)。在實(shí)際應(yīng)用時(shí),C口的兩半部分也可以合在一起,構(gòu)成一個(gè)8位的端口。這樣8
22、255A可構(gòu)成3個(gè)8位的端口,或兩個(gè)8位、兩個(gè)4位的端口。 CPU與這些端口交換數(shù)據(jù)時(shí),可以直接用輸入指令從指定端口讀取數(shù)據(jù),或用輸出指令將數(shù)據(jù)寫入指定的端口。由于輸入不能鎖存,在用IN指令讀取數(shù)據(jù)時(shí),所得到的數(shù)據(jù)是信號(hào)有效時(shí)端口線上的狀態(tài)。在輸出方式下,用OUT指令把CPU的數(shù)據(jù)寫入端口時(shí),信號(hào)把數(shù)據(jù)鎖存到該端口的輸出鎖存器中,輸出口線上的數(shù)據(jù)會(huì)一直保持不變,直到再次改變鎖存器的值為止。 2方式1選通的輸入輸出方式A口和B口均可工作于輸人或輸出方式,這兩個(gè)8位數(shù)據(jù)口的輸入、輸出數(shù)據(jù)都能鎖存。 C口被定義為A口、B口的聯(lián)絡(luò)信號(hào),PC0PC2作端口B的狀態(tài)和控制線,PC3PC7作端口A的狀態(tài)和控
23、制線,用于提高數(shù)據(jù)交換性能。方式1下輸入、輸出的操作時(shí)序與引腳定義不同。 在采用中斷方式進(jìn)行輸入/輸出的場(chǎng)合,如果外部設(shè)備能為8255A提供選通信號(hào)或著數(shù)據(jù)接收應(yīng)答信號(hào),則通常使用8255A的端口工作方式1的情況。 1)方式1輸入 STB( Strobe)選通信號(hào),低電平有效,它是由外設(shè)送給8255A的。當(dāng)該信號(hào)有效時(shí),8255A將外部設(shè)備通過(guò)端口數(shù)據(jù)線PA7PA0或PB7PB0輸入的數(shù)據(jù)送到對(duì)應(yīng)端口的輸入鎖存器中。 IBF( Input Buffer Full ):輸入緩沖器滿信號(hào),高電平有效,8255A輸出給外設(shè)的應(yīng)答,要求外設(shè)不能再送數(shù)據(jù)。 INTR(Interrupt Request)
24、:中斷請(qǐng)求信號(hào),高電平有效,8255A輸出給CPU的中斷請(qǐng)求信號(hào)。只有當(dāng)STB、IBF和INTE三者都高時(shí),INTR才能被置為高電平。 INTE(Interrupt Enable):中斷允許信號(hào),為1時(shí),使端口處于中斷允許狀態(tài),而為0時(shí),使端口處于中斷屏蔽狀態(tài)。沒有外部引出腳。用軟件才能使這兩個(gè)觸發(fā)器置或清0。INTE_A由C口按位操作控制字通過(guò)對(duì)PC4位的置位/復(fù)位來(lái)控制,INTE_B通過(guò)PC2位控制。例:MOVAL,0000 1001BOUTCTRL_PORT,AL;INTEA1 RDPA7PA0INTE APC4PC5PC3PC6.PC7I OINTRAIBFASTBA來(lái)自外設(shè)的選同信號(hào)
25、輸入端去外設(shè)的輸入緩沖區(qū)滿信號(hào)送往8259A的中斷請(qǐng)求信號(hào)中斷允許信號(hào),INTE由置位STB(PC4)操作置“1”A口方式1輸入有關(guān)信號(hào)的規(guī)定10111/0 D7 D6 D5 D4 D3 D2 D1 D0方式1PC7.PC61=輸入0=輸出端口A輸入111 D7 D6 D5 D4 D3 D2 D1 D0端口B輸入方式1 RDINTE BPC2PC1PC0PB7PB0STBBIBFBINTRBB口方式1輸入有關(guān)信號(hào)的規(guī)定選通信號(hào)輸入端,來(lái)自外設(shè)輸入緩沖區(qū)滿信號(hào),送往外設(shè)送往8259A的中斷請(qǐng)求信號(hào)中斷允許信號(hào),INTE由置位/復(fù)位STB(PC2)操作置1/0方式1輸入選通輸入時(shí)序方式 1 輸入
26、C 口狀態(tài)字在方式1下,CPU用輸入指令對(duì)C口進(jìn)行讀操作得到C口狀態(tài)字,其中存有端口C的握手信號(hào)的狀態(tài)。B組方式1輸入狀態(tài)字為:A組方式1輸入狀態(tài)字為:2)方式1輸出 OBF(Output Buffer Full)輸出緩沖器滿信號(hào),低電平有效,輸出。當(dāng)它為低電平時(shí),表示CPU已將數(shù)據(jù)寫到8255A的指定輸出端口,即數(shù)據(jù)已被輸出鎖存器鎖存,并出現(xiàn)在端口數(shù)據(jù)線PA7PA0或PB7PB0上,通知外設(shè)可將數(shù)據(jù)取走。 ACK(Acknowledge):外設(shè)的應(yīng)答信號(hào),低電平有效,由外設(shè)送給8255A。當(dāng)它為低電平時(shí),表示CPU輸出到8255A的A口或B口的數(shù)據(jù)已被外設(shè)接受。 INTR(Interrupt
27、 Request):中斷請(qǐng)求信號(hào),高電平有效,8255A輸出給CPU的中斷請(qǐng)求信號(hào)。只有當(dāng)ACK、OBF和INTE三者都高時(shí),INTR才能被置為高電平。 INTE(Interrupt Enable):中斷允許信號(hào),為1時(shí),使端口處于中斷允許狀態(tài),而為0時(shí),使端口處于中斷屏蔽狀態(tài)。沒有外部引出腳。用軟件才能使這兩個(gè)觸發(fā)器置或清0。INTE_A由C口按位操作控制字通過(guò)對(duì) PC6 位的置位/復(fù)位來(lái)控制,INTE_B通過(guò) PC2 位控制。 10101/0 D7 D6 D5 D4 D3 D2 D1 D0方式1PC4.PC51=輸入0=輸出端口A輸出A口方式1輸出有關(guān)信號(hào)的規(guī)定WRPA7PA0INTE A
28、PC3PC6PC7PC4.PC5I OINTRAOBFAACKA輸出緩沖區(qū)滿信號(hào),去外設(shè)外設(shè)響應(yīng)信號(hào),來(lái)自外設(shè)中斷請(qǐng)求信號(hào)中斷允許信號(hào),INTE由PC6(ACKA)置“1”,INTR有效110 D7 D6 D5 D4 D3 D2 D1 D0端口B輸出方式1WRINTE BPC0PC2PC1PC7PC0ACKBOBFBINTRB中斷允許信號(hào),INTE由ACKB(PC2)置“1”,INTR有效輸出緩沖區(qū)滿信號(hào),高電平有效外設(shè)響應(yīng)信號(hào),是外設(shè)送給8255A的中斷請(qǐng)求信號(hào)B口方式1輸出有關(guān)信號(hào)的規(guī)定方式1輸出選通輸出時(shí)序方式 1 輸出 C 口狀態(tài)字在方式1下,CPU用輸入指令對(duì)C口進(jìn)行讀操作得到C口狀
29、態(tài)字,其中存有端口C的握手信號(hào)的狀態(tài)。B組方式1輸出狀態(tài)字為:A組方式1輸出狀態(tài)字為:只有A口可以工作于這種方式,此時(shí)B口仍可工作在方式0或方式1;在方式2下,通過(guò)8位端口線PA7PA0,CPU既可以把數(shù)據(jù)傳送到外設(shè),又可以接收外設(shè)送過(guò)來(lái)的數(shù)據(jù),而且輸入和輸出數(shù)據(jù)均能鎖存; 在方式2時(shí),端口C的高5位(PC3PC7)用作A口的聯(lián)絡(luò)控制信號(hào);方式2看成是A口方式1輸出和方式1輸入的結(jié)合,但輸出操作時(shí)與方式1輸出有區(qū)別。3、方式2雙向傳輸方式 D7 D6 D5 D4 D3 D2 D1 D011端口A方式B組方式0=方式01=方式1PC2PC01=輸入0=輸出端口B1=輸入0=輸出方式2的方式控制字
30、PC2PC0PC4PC5PC6PC7PC3 INTE1 INTE2I O IBFA STBA ACKA OBFA INTRAWRRDPA7 PA0方式2的控制信號(hào)輸出緩沖區(qū)滿信號(hào)外設(shè)收到數(shù)據(jù),發(fā)響應(yīng)信號(hào)外設(shè)準(zhǔn)備好數(shù)據(jù),發(fā)選通信號(hào)8255A收到數(shù)據(jù),向外設(shè)發(fā)輸入緩沖區(qū)滿信號(hào)方式2時(shí)序方式2狀態(tài)字 注:方式2下,輸入、輸出都可能通過(guò)同一個(gè)INTR向CPU提出中斷請(qǐng)求,因此在檢測(cè)到INTR有效時(shí),應(yīng)該通過(guò)查詢OBF、IBF狀態(tài)位,以判斷是輸出中斷還是輸入中斷。例:方式0、方式1輸入假設(shè)8255A的A、B、C、控制端口地址分別為70H、71H、72H、73H, PA7PA0分別與PB7PB0對(duì)應(yīng)連接,
31、PC4與PC0連接,PC3、PC5都懸空。問:執(zhí)行以下程序段,緩沖區(qū)BUF的三個(gè)字節(jié)內(nèi)容?把第二條指令中的立即數(shù)改為10011000B,緩沖區(qū)BUF的三個(gè)字節(jié)內(nèi)容?START:MOVBX,0000HMOVAL,10111000B; OUT73H,ALMOVAL,01HOUT73H,AL ;PC0=1MOVAL,00HOUT73H,AL ;STB=0MOVAL,88HOUT71H,AL;INAL,70HMOVBUFFERBX,ALINCBXMOVAL,01HOUT73H,AL ;STB = 01INAL,70H ;MOVBUFFERBX,ALINCBXMOVAL,77HOUT71H,AL;INA
32、L,70H;MOVBUFFERBX,AL(一) 如何檢測(cè)是否有鍵按下?把所有行線都輸出低電平;當(dāng)所有按鍵都沒有按下時(shí),所有列線都不與行線連接,而是通過(guò)上拉電阻直接掛在+5V,這時(shí)讀取列線只能得到高電平,PA3PA0=1111。如果至少有一個(gè)鍵按下,則PA3PA0中至少有一個(gè)是0。把行線全定為低電平,再比較列線是否都是高電平,就可知是否有鍵按下。(二)按鍵掃描碼當(dāng)有鍵按下時(shí),采用逐行檢查的方法來(lái)確定按下的按鍵。檢查第r行時(shí),只把該行線設(shè)為低電平,其余行線都是高電平,然后讀取列線的狀態(tài)。如果列線都是高電平,則該行上的按鍵都沒有被按下;如果第c條列線等于低電平,則可確定第r行、第c列交叉處的按鍵被按
33、下。并稱此時(shí)的行線、列線狀態(tài)為行碼、列碼,把行碼放在前,列碼放在后,形成按鍵掃描碼,它表示按鍵的行列位置。例如,按鍵“9”在第3行、第2列,其掃描碼為1101 1011=DBH。這種依次按行檢查的方法稱為行掃描法。(三)鍵值按鍵掃描碼表示了按鍵在矩陣中的位置,并不表明按鍵功能含義。例如,按鍵“7”,它的掃描碼為BEH,其功能卻是數(shù)字“7”,稱其鍵值為“7”。在矩陣鍵盤中,按鍵的掃描碼是唯一確定的,但每個(gè)按鍵的鍵值可能有不同的定義。為了便于實(shí)現(xiàn)從掃描碼到鍵值的轉(zhuǎn)換,根據(jù)鍵值從小到大的順序,依次存放按鍵的掃描碼,形成按鍵掃描碼表。獲得按鍵掃描碼后,把它與表中的數(shù)據(jù)依次比較,相等時(shí)對(duì)應(yīng)的順序號(hào)就是該鍵的鍵值。(四)按鍵的抖動(dòng)與處理由于機(jī)械觸點(diǎn)的彈性作用,按鍵開關(guān)在閉合及斷開的瞬間均伴隨有一連串的抖動(dòng),抖動(dòng)時(shí)間的長(zhǎng)短由按鍵的機(jī)械彈性決定,一般510ms;抖動(dòng)表現(xiàn)為電平高低多次變化,可能使1次按鍵操作誤認(rèn)為多次操作;在檢測(cè)到有鍵
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 鉗工多選題試題及答案
- 電商運(yùn)營(yíng)中農(nóng)業(yè)產(chǎn)品展示的技巧試題及答案
- 車工考試題及答案
- 針對(duì)重點(diǎn)2025年土木工程師考試應(yīng)試技巧分享試題及答案
- 高速國(guó)企考試試題及答案
- 適應(yīng)力培養(yǎng)幼兒園數(shù)學(xué)試題及答案
- 醫(yī)學(xué)信息工程與課件
- 贛縣幼師面試題及答案
- 糖尿病腎病試題及答案
- 傳媒前臺(tái)合同樣本
- 福建省廈門市2025屆高中畢業(yè)班高三5月第四次質(zhì)量檢測(cè)物理試卷(廈門四檢)
- 【2025二輪復(fù)習(xí)】讀后續(xù)寫專題
- 運(yùn)動(dòng)健康產(chǎn)業(yè)的市場(chǎng)分析與前景
- 商品房門窗加工合同協(xié)議
- 四年級(jí)下冊(cè)數(shù)學(xué)口算練習(xí)題
- 《超重康復(fù)之道》課件
- 建筑圖紙識(shí)圖培訓(xùn)
- 飛行員勞動(dòng)合同模板及條款
- 第中西藝術(shù)時(shí)空對(duì)話 課件 2024-2025學(xué)年嶺南美版(2024) 初中美術(shù)七年級(jí)下冊(cè)
- 高氧潛水考試題及答案
- 2025年二級(jí)建造師之二建礦業(yè)工程實(shí)務(wù)通關(guān)考試題庫(kù)帶答案解析
評(píng)論
0/150
提交評(píng)論