




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、微型計(jì)算機(jī)原理與應(yīng)用 -輸入輸出和接口技術(shù)第八章 輸入輸出和接口技術(shù)本章教學(xué)目的通過輸入輸出接口是計(jì)算機(jī)的重要組成部分,通過I/O接口控制方式的學(xué)習(xí),使學(xué)生初步了解主機(jī)與外設(shè)的主要通信方式及其特點(diǎn),通過并行接口8255A的學(xué)習(xí)和實(shí)踐,使學(xué)生接觸具體的接口形式,從而進(jìn)一步加深對(duì)接口知識(shí)的理解。一、什么是I/O接口(電路)?o是外設(shè)與CPU間連接的橋梁;CPU與外設(shè)之間信息交換的通道。9.1.1 I/O接口基本概念-接口的功能外設(shè)各種各樣,工作原理、驅(qū)動(dòng)方式、信息格式、以及工作速度方面彼此差別很大o常用外設(shè):常用外設(shè):o硬盤、顯示器、存儲(chǔ)器o工業(yè)控制中的模擬設(shè)備、A/D、D/A轉(zhuǎn)換器o輸入、輸出設(shè)
2、備:打印機(jī);鍵盤、鼠標(biāo);繪圖儀主板上串行接口的插頭與插座主板上串行接口的插頭與插座9 9針插座針插座9 9針插頭針插頭2525針插座、插頭針插座、插頭二、I/O接口電路的主要功能 -協(xié)助CPU對(duì)外部設(shè)備進(jìn)行管理數(shù)據(jù)加工數(shù)據(jù)加工(1)進(jìn)行)進(jìn)行I/O地址譯碼:地址譯碼:找到找到CPU選定的選定的I/O設(shè)備。設(shè)備。-8259 (2 2)協(xié)調(diào)外設(shè)與)協(xié)調(diào)外設(shè)與CPUCPU工作速度的差異工作速度的差異:作為數(shù)據(jù)中轉(zhuǎn)站。輸出接口有鎖存環(huán)節(jié)(外設(shè)慢),輸入接口有緩沖環(huán)節(jié)(暫時(shí)寄存器)(3)信息聯(lián)絡(luò):)信息聯(lián)絡(luò):CPU和和I/O設(shè)備進(jìn)行聯(lián)絡(luò)的通訊員。設(shè)備進(jìn)行聯(lián)絡(luò)的通訊員。 CPU想讀或?qū)懲庠O(shè)時(shí),外設(shè)是否準(zhǔn)備
3、好了,要給CPU發(fā)個(gè)信號(hào),這個(gè)功能由接口來完成; 外設(shè)向CPU發(fā)出中斷申請(qǐng),通過接口代為辦理;計(jì)算機(jī)的CPU與一個(gè)I/O設(shè)備進(jìn)行信息交換時(shí),要傳遞三種信息:C PUI/O設(shè) 備數(shù) 據(jù) 信 息狀 態(tài) 信 息控 制 信 息圖6-1 CPU與I/O接口間傳遞的信息三、I/O接口的內(nèi)部結(jié)構(gòu)接口芯片內(nèi)部必須有相應(yīng)的寄存器-端口 o命令寄存器存放控制命令,用來設(shè)定接口功能、工作方式。o狀態(tài)寄存器保存外設(shè)當(dāng)前狀態(tài),以供CPU讀取。o數(shù)據(jù)輸入/輸出寄存器暫存輸入/輸出的數(shù)據(jù)9.1.29.1.2接口控制原理 一、數(shù)據(jù)傳送方式o并行傳送:數(shù)據(jù)在多條傳輸線上同時(shí)傳送。 以1字節(jié)的數(shù)據(jù)為例,通過8條(+2)并行傳輸線
4、同時(shí)傳送。o串行傳送:數(shù)據(jù)在1(+2)條傳輸線上,一位一位地按順序分時(shí)傳送。以1字節(jié)為例,數(shù)據(jù)要通過一條傳輸線分8次由低位到高位按順序一位一位地傳送。源目的T80 1 1 0 1 0 1 0源01101010目的011010100D7D一條地線一條地線+ +一條數(shù)據(jù)準(zhǔn)備好狀態(tài)一條數(shù)據(jù)準(zhǔn)備好狀態(tài)線(應(yīng)答線)線(應(yīng)答線)移位寄存器移位寄存器距離:距離:并行近距離傳送(通常小于30米) 串行遠(yuǎn)距離傳送(幾米數(shù)千公里)速度:速度:二者的傳送速率與距離成反比,但在短距離內(nèi)并行快得多。 9.1.2接口控制原理二、傳送控制方式- CPU與外設(shè)間的數(shù)據(jù)傳送方式CPU與外設(shè)的工作速度不一致,如何使兩者高效、可靠
5、地進(jìn)行數(shù)據(jù)傳送,是本節(jié)討論的問題。1、查詢方式(CPU與外設(shè)不同步工作): 傳送前,先查詢外設(shè)狀態(tài),準(zhǔn)備好才傳送,否則CPU處于等待狀態(tài)。查詢傳送方式,編程流程查詢傳送方式,編程流程:NY從狀態(tài)端口讀入狀態(tài)信息從狀態(tài)端口讀入狀態(tài)信息從數(shù)據(jù)端口傳送一個(gè)數(shù)據(jù)從數(shù)據(jù)端口傳送一個(gè)數(shù)據(jù)外設(shè)準(zhǔn)備好否?外設(shè)準(zhǔn)備好否?外設(shè)處于被動(dòng)狀態(tài)外設(shè)處于被動(dòng)狀態(tài)實(shí)現(xiàn)方法實(shí)現(xiàn)方法: 在與外設(shè)進(jìn)行傳送數(shù)據(jù)前,CPU先查詢外設(shè)狀態(tài), “你準(zhǔn)備好沒有?” 當(dāng)外設(shè)準(zhǔn)備好后,才執(zhí)行I/O指令,實(shí)現(xiàn)數(shù)據(jù)傳送特點(diǎn):特點(diǎn):1. CPU通過不斷查詢外設(shè)狀態(tài),實(shí)現(xiàn)與外設(shè)的速度匹配2. CPU的工作效率低對(duì)外設(shè)的要求:應(yīng)提供設(shè)備狀態(tài)信息 對(duì)接口
6、的要求:需要提供狀態(tài)端口跳轉(zhuǎn)跳轉(zhuǎn)就像從卡上提錢需要查詢請(qǐng)示就像從卡上提錢需要查詢請(qǐng)示2、無條件傳送方式實(shí)現(xiàn)方法如發(fā)光二極管的亮滅、電機(jī)的啟停這類外部設(shè)備可以隨時(shí)接受數(shù)據(jù),向這類外設(shè)可以直接傳送數(shù)據(jù),如A/D轉(zhuǎn)換器,沒處理一個(gè)數(shù)據(jù)的時(shí)間是固定的,可以間隔固定的時(shí)間來送數(shù)據(jù)以上這兩種情況CPU不必查詢外設(shè)工作狀態(tài)在程序中直接用I/O指令,完成與外設(shè)的數(shù)據(jù)傳送。跳轉(zhuǎn)跳轉(zhuǎn)想想郵信或郵遞貨物想想郵信或郵遞貨物想想我們發(fā)的想想我們發(fā)的QQQQ信息信息例例 1 無條件輸入接口(參看教材圖無條件輸入接口(參看教材圖6-8)接口電路,即硬件上保證:只在CPU執(zhí)行從200H端口輸入數(shù)據(jù)時(shí), 三態(tài)門處于工作狀態(tài),使
7、輸入設(shè)備的數(shù)據(jù)送上總線側(cè),而CPU執(zhí)行其它指令時(shí), 三態(tài)門均處于高阻狀態(tài), 使輸入設(shè)備的數(shù)據(jù)線與總線側(cè)斷開三三 態(tài)態(tài)緩沖器緩沖器輸入輸入設(shè)備設(shè)備數(shù)據(jù)數(shù)據(jù) 線線IOR地址地址譯碼譯碼地址線地址線 200H000D7 D0A15A0與與非非PC總總線線無條件輸入編程無條件輸入編程: 從端口從端口200H讀入讀入100個(gè)字節(jié)到內(nèi)存緩沖區(qū)個(gè)字節(jié)到內(nèi)存緩沖區(qū)buffer中。中。、 MOV AX, SEG buffer MOV DS, AX ;取緩沖區(qū)取緩沖區(qū) LEA DI, buffer ;首地址首地址 MOV CX, 100H ;傳送個(gè)數(shù)傳送個(gè)數(shù) MOV DX, 200H ;端口地址端口地址 next
8、: ;延時(shí)等待延時(shí)等待 IN AL, DX ;讀入數(shù)據(jù)讀入數(shù)據(jù) CALL delay MOV DI, AL ;送緩沖區(qū)送緩沖區(qū) INC DI ;修改指針修改指針 LOOP next 、;延時(shí)子程延時(shí)子程delay PROC PUSH CX MOV CX, 80Hcc: LOOP cc POP CX RETdelay ENDP3 3、中斷傳送方式、中斷傳送方式 實(shí)現(xiàn)方法: 1. 當(dāng)外設(shè)準(zhǔn)備好,向CPU發(fā)出中斷請(qǐng)求 2. CPU在滿足響應(yīng)中斷的條件下,發(fā)出中斷響應(yīng)信號(hào); 3. CPU暫停當(dāng)前的程序,轉(zhuǎn) 去執(zhí)行中斷服務(wù)程序, 完成與外設(shè)的數(shù)據(jù)傳送; 4. CPU從中斷服務(wù)程序返回,繼續(xù)執(zhí)行被中斷的程
9、序就像學(xué)生上課發(fā)言要舉手一樣就像學(xué)生上課發(fā)言要舉手一樣中斷服務(wù)程序中斷服務(wù)程序發(fā)申請(qǐng)發(fā)申請(qǐng)中斷服務(wù)程序中斷服務(wù)程序發(fā)申請(qǐng)發(fā)申請(qǐng)中斷方式下中斷方式下CPU執(zhí)行程序流程執(zhí)行程序流程外外設(shè)設(shè)4 4、 DMADMA傳輸方式傳輸方式(Direct Memory Access)(Direct Memory Access)o前面三種I/O方式都需要CPU作為中介: 外設(shè) CPU 內(nèi)存外設(shè)與內(nèi)存之間的數(shù)據(jù)傳送是通過CPU執(zhí)行程序來完成的(PIO方式);I/O接口和存儲(chǔ)器的讀寫控制信號(hào)、地址信號(hào)都是由CPU發(fā)出的(總線由CPU控制)。o 缺點(diǎn):程序的執(zhí)行速度限定了傳送的最大速度(約為幾十KB/秒)解決:DMA傳
10、輸外設(shè)外設(shè) 內(nèi)存內(nèi)存DMADMA傳送方傳送方式:式:DMA 傳送方式過程傳送方式過程CPUDMAC內(nèi)存內(nèi)存外設(shè)外設(shè)總線總線響應(yīng)響應(yīng)總線總線請(qǐng)求請(qǐng)求 1. 由專用接口芯片DMA控制器 (稱DMAC) 控制傳送過程,2. 當(dāng)外設(shè)需傳送數(shù)據(jù)時(shí),通過 DMAC向CPU發(fā)出總線請(qǐng)求;3. CPU發(fā)出總線響應(yīng)信號(hào),釋放總線;4. DMAC接管總線,控制外設(shè)、內(nèi)存之間直接數(shù)據(jù)傳送DMA傳送原理示意圖 系統(tǒng)總線系統(tǒng)總線CPUDMAC存儲(chǔ)器存儲(chǔ)器外設(shè)接口外設(shè)接口AENIOWMEMWMEMRIORMEMWMEMRIOWIORAENHOLDHLDADRQDACKAENIOWIORMEMWMEMR 外設(shè)發(fā)出DMA請(qǐng)求
11、 DMAC向CPU申請(qǐng)總線 CPU完成當(dāng)前總線周期后響應(yīng),并釋放總線控制權(quán) DMAC得到總線控制權(quán),并發(fā)出DMA響應(yīng)信號(hào) 由DMAC發(fā)出各種控制信號(hào),控制外設(shè)與存儲(chǔ)器之間的數(shù)據(jù)傳送 數(shù)據(jù)傳送完后,DMAC撤銷HOLD信號(hào) CPU釋放HLDA信號(hào),并重新控制總線DMA傳送方式的特點(diǎn) 1. 外設(shè)和內(nèi)存之間,直接進(jìn)行數(shù)據(jù)傳送,不通過CPU, 傳送效率高。 適用于在內(nèi)存與高速外設(shè)、或兩個(gè)高速外設(shè)之間進(jìn)行大批量數(shù)據(jù)傳送。 2. 電路結(jié)構(gòu)復(fù)雜,硬件開銷較大。o 對(duì)I/O設(shè)備進(jìn)行操作須經(jīng)過兩個(gè)步驟:o 尋找I/O接口芯片(片選)o 尋找該芯片中的和外設(shè)對(duì)應(yīng)的寄存器-端口9.2、I/O指令和I/O地址譯碼 n
12、I/O端口端口:外設(shè)通過接口和系統(tǒng)連接如圖6-2所示。接口中的寄存器叫做端口。每一個(gè)端口有端口地址。n一個(gè)接口芯片中的可能有多個(gè)端口,計(jì)算機(jī)中為每一個(gè)端口都賦予一個(gè)惟一編號(hào)稱為端口地址(或端口號(hào))。一、什么是I/O端口是接口中可供是接口中可供CPUCPU訪問的寄存器訪問的寄存器不同的信息用不同的端口不同的信息用不同的端口不同的端口有不同的地址不同的端口有不同的地址數(shù)據(jù)端口數(shù)據(jù)端口:保存外設(shè)給CPU和CPU發(fā)往外設(shè)的數(shù)據(jù)狀態(tài)端口狀態(tài)端口:保存外設(shè)或接口電路的狀態(tài)。CPU通過對(duì)狀態(tài)端口的訪問和測(cè)試可以知道外設(shè)或接口的當(dāng)前狀態(tài);控制端口控制端口:保存CPU給外設(shè)或接口電路的命令端口按傳送的信息不同分
13、為三類端口按傳送的信息不同分為三類 o1. 映像I/O尋址(統(tǒng)一編址)n把外設(shè)接口與內(nèi)存統(tǒng)一進(jìn)行編址。各占據(jù)統(tǒng)一地址空間的不同部分。n優(yōu)點(diǎn)o指令統(tǒng)一,靈活;o訪問控制信號(hào)統(tǒng)一,使用同一組的地址/控制信號(hào)。 n缺點(diǎn)o內(nèi)存可用地址空間減小0地址空間(共1MB)內(nèi)存地址(960KB)I/O地址(64KB)FFFFFHEFFFFHF0000H二、端口尋址方式 o2. 獨(dú)立編址n外設(shè)地址空間和內(nèi)存地址空間相互獨(dú)立相互獨(dú)立。n優(yōu)點(diǎn):內(nèi)存地址空間不受I/O編址的影響n缺點(diǎn):I/O指令功能較弱,使用不同的讀寫控制信號(hào)00000H內(nèi)存地址空間內(nèi)存空間(1MB)I/O空間(64KB)FFFFHFFFFFHI/O地
14、址空間0000H o8088/8086 CPU的I/O編址方式n采用I/O獨(dú)立編址方式與存儲(chǔ)器共用地址線) 地址線上的地址信號(hào)用地址線上的地址信號(hào)用 來區(qū)分來區(qū)分 時(shí)為時(shí)為I/O地址地址nI/O操作只使用20根地址線中的16根: A15 A0 可尋址的I/O端口數(shù)為64K(65536)個(gè) I/O地址范圍為0FFFFHnIBM PC只使用了只使用了1024個(gè)個(gè)I/O地址(03FFH)IO/M=1IO/MIO/M=1IO/M9.3簡(jiǎn)單的數(shù)據(jù)輸入輸出接口電路在簡(jiǎn)單的電路中,常常使用三態(tài)緩沖器、三態(tài)寄存器、輸出寄存器作為CPU與外設(shè)間的數(shù)據(jù)輸入輸出接口電路,我們稱作簡(jiǎn)單的輸入輸出接口電路。 接口電路的
15、基本結(jié)構(gòu)數(shù)據(jù)線數(shù)據(jù)線控制線控制線狀態(tài)線狀態(tài)線DBCBAB數(shù)據(jù)輸入寄存器數(shù)據(jù)輸入寄存器(or 三態(tài)門)三態(tài)門)數(shù)據(jù)輸出寄存器數(shù)據(jù)輸出寄存器(鎖存器)(鎖存器)狀態(tài)寄存器狀態(tài)寄存器(or 三態(tài)門)三態(tài)門)命令寄存器命令寄存器譯碼譯碼電路電路控制控制邏輯邏輯接接外外設(shè)設(shè)接接主主機(jī)機(jī)1、三態(tài)門作為輸入接口MOV DX,83FCHIN AL,DXAND AL,0FFHJZ NEXT1JMP NEXT2譯碼器83FCH83FFH地址可以認(rèn)為設(shè)計(jì)地址可以認(rèn)為設(shè)計(jì)執(zhí)行執(zhí)行IN指令時(shí)處理器發(fā)出讀信號(hào)指令時(shí)處理器發(fā)出讀信號(hào)IOR#,與地址信號(hào)相或產(chǎn)生負(fù)脈沖加到輸出允許端與地址信號(hào)相或產(chǎn)生負(fù)脈沖加到輸出允許端E1#
16、和和E2#,這樣輸入端的數(shù),這樣輸入端的數(shù)據(jù)通過數(shù)據(jù)線據(jù)通過數(shù)據(jù)線D0-D7送至送至CPU中的中的AL數(shù)據(jù)輸入三態(tài)緩沖器數(shù)據(jù)輸入三態(tài)緩沖器2、輸出寄存器74LS273作為輸出接口74LS27374LS273:8 8輸入輸入D D觸發(fā)器觸發(fā)器用OUT指令執(zhí)行輸出操作:執(zhí)行OUT指令時(shí)微處理器發(fā)出IOW#寫信號(hào),和端口地址相或產(chǎn)生負(fù)脈沖加到CP引腳,CP引腳在上升沿之后,將D0-D7端出現(xiàn)的數(shù)據(jù)寫入該觸發(fā)器寄存。74LS138 G74LS138 G端接高電平;端接高電平;G2AG2A、G2BG2B接低電平接低電平74LS27374LS273:8 8輸入輸入D D觸發(fā)器觸發(fā)器n用74LS273作為輸
17、出接口,把數(shù)據(jù)送到7段數(shù)碼管o74LS273的地址假設(shè)為F0Hn用74LS244作為輸入口,讀入開關(guān)K0K3的狀態(tài)o74LS244的地址假設(shè)為F1Hn當(dāng)開關(guān)的狀態(tài)分別為00001111時(shí),在7段數(shù)碼管上對(duì)應(yīng)顯示0F實(shí)例:根據(jù)開關(guān)狀態(tài)在實(shí)例:根據(jù)開關(guān)狀態(tài)在7 7段數(shù)碼管上顯示數(shù)字或符號(hào)段數(shù)碼管上顯示數(shù)字或符號(hào)3、簡(jiǎn)單接口的應(yīng)用舉例O1 I1O2 I2O3 I3O4 I4#E1 K0K3+5VGG2AG2BCBA1174LS244D0 Q0 | Q1D7 Q2 Q3 Q4CP Q5 Q6 Q7 abcdefgDP74068個(gè)個(gè)反相器反相器74LS273Rx81174LS138D0D7IOW#IOR
18、#Y0Y1F0H = 0000 0000 1111 0000F1H = 0000 0000 1111 0001&1A7A4A15A8A3A2A1A0D0D1D2D3譯碼電路譯碼電路地址由設(shè)計(jì)者通過地址由設(shè)計(jì)者通過電路來設(shè)定!電路來設(shè)定!符號(hào)形狀7段碼.gfedcba符號(hào)形狀7段碼.gfedcba000111111801111111100000110901100111201011011A01110111301001111B01111100401100110C00111001501101101D01011110601111101E01111001700000111F01110001相應(yīng)程序
19、段如下:相應(yīng)程序段如下:Seg7DB3FH,06H,5BH,4FH,66H,6DH,7DH,07HDB7FH,67H,77H,7CH,39H,5EH,79H,71HLEABX, Seg7;取;取7段碼表基地址段碼表基地址MOVAH, 0GO:MOVDX, 0F1H;開關(guān)接口的地址為;開關(guān)接口的地址為F1HINAL, DX;讀入開關(guān)狀態(tài);讀入開關(guān)狀態(tài)ANDAL, 0FH;保留低;保留低4位位(只有四個(gè)開關(guān)只有四個(gè)開關(guān))MOVSI, AX;作為;作為7段碼表的表內(nèi)位移量段碼表的表內(nèi)位移量MOVAL, BX+SI ;?。蝗?段碼段碼MOVDX, 0F0H;7段數(shù)碼管接口的地址為段數(shù)碼管接口的地址為F
20、0HOUTDX, ALJMPGO微型計(jì)算機(jī)原理與應(yīng)用 -可編程并行接口8255可編程并行通信接口芯片可編程并行通信接口芯片8255A概述概述 8255A是Intel86系列微處理機(jī)的配套并行接口芯片,它可為它可為8686系列系列CPUCPU與外部設(shè)備之間提供并行輸入與外部設(shè)備之間提供并行輸入/ /輸出的通道輸出的通道。由于它是可編程的,可以通過軟件來設(shè)置芯片的工作方式,可編程的,可以通過軟件來設(shè)置芯片的工作方式,所以,用8255A連接外部設(shè)備時(shí),通常不用再附加外部電路,給使用者帶來很大方便。CPUCPU和外設(shè)交換數(shù)據(jù)的管理芯片和外設(shè)交換數(shù)據(jù)的管理芯片IntelIntel公司出品的公司出品的C
21、C5A5A含3個(gè)獨(dú)立的8位并行輸入/輸出端口,各端口均具有數(shù)據(jù)的控制和鎖存能力??赏ㄟ^編程設(shè)置各端口的工作方式和數(shù)據(jù)傳送方向(入/出/雙向)??刂谱旨拇嫫骺刂谱旨拇嫫饕弧?255A芯片內(nèi)部結(jié)構(gòu)及其引腳功能數(shù)據(jù)數(shù)據(jù)總線總線緩沖器緩沖器內(nèi)部控制線內(nèi)部控制線內(nèi)部數(shù)據(jù)線內(nèi)部數(shù)據(jù)線D0D7A組組控制控制A組組端口端口AA組組端口端口C上部上部B組組控制控制B組組端口端口BB組組端口端口C下部下部讀寫讀寫控制控制邏輯邏輯PC0PC3PB0PB7PC4PC7PA0PA7RDWRA0A1CSRESETC C1、三個(gè)8位數(shù)據(jù)端口A,B,C (3個(gè)8位寄存器);1)PA、PB、PC口三個(gè)8位輸入輸出的數(shù)據(jù)端口2)
22、PC口有第二種用途:;在“方式字”的控制下,PC口可以分成兩個(gè)4位的端口,分別配合A、B口使用,用作聯(lián)絡(luò)線端口提供控制或狀態(tài)信息提供控制或狀態(tài)信息2. 控制字端口(寄存器)o可接收來CPU通過數(shù)據(jù)總線(D7D0)送來的控制字,從而決定各個(gè)端口的工作方式。通過A、B組控制器來實(shí)現(xiàn)各種操作。3. 數(shù)據(jù)總線緩沖存儲(chǔ)器o它是8255A與8086CPU之間的數(shù)據(jù)接口,是CPU和8255之間交換信息的必由之路。oCPU執(zhí)行輸出指令時(shí),可將控制字或數(shù)據(jù)通過數(shù)據(jù)總線緩沖存儲(chǔ)器傳送給8255A。CPU執(zhí)行輸入指令時(shí),8255A可將狀態(tài)信息或數(shù)據(jù)通過總線緩沖存儲(chǔ)器向CPU輸入。oCS(chip select)片選
23、信號(hào)。o由由CPU輸入輸入,低電平有效。由他啟動(dòng)8255,使其處于工作狀態(tài),完成和CPU之o間的通信。由地址線A15-A2經(jīng)譯碼選中。(2) RD,WR讀、寫控制信號(hào)。由由CPU輸入輸入,RD有效,他控制8255A送出數(shù)據(jù)或狀態(tài)信息向CPU 。WR有效,他控制CPU將命令信號(hào)或數(shù)據(jù)寫入8255A。(3) RESET復(fù)位信號(hào)。由CPU輸入。RESET有效時(shí),清除8255A中所有控制字寄存器內(nèi)容,并將各端口置成輸入方式。4 控制命令8255中有三個(gè)輸入輸出端口,另外還有一個(gè)控制端口(控制字寄存器),共有四個(gè)端口,A1和A0端口選擇信號(hào)。當(dāng)A1A000,選擇端口A;當(dāng)A1A001,選擇端口B;當(dāng)A1
24、A010,選擇端口C;當(dāng)A1A011,選擇控制字寄存器。5、端口尋址線A0、A1-片內(nèi)端口地址線二、8255與系統(tǒng)的連接示意圖D0D7WRRDA1A0CSDBIOWIORA1A0譯碼器譯碼器8255A口口B口口C口口D0D7外外 設(shè)設(shè)A15A2系統(tǒng)系統(tǒng)總線總線三、8255工作方式及控制字方式0:基本輸入/輸出方式(A、B、C口)方式1:選通工作方式(A、B口)方式2:雙向傳送方式(僅A口)某端口工作于哪一種方式,可通過軟件編程來指定。即某端口工作于哪一種方式,可通過軟件編程來指定。即向向82558255(控制字寄存器)寫入方式控制字來決定其工作方(控制字寄存器)寫入方式控制字來決定其工作方式,
25、見下頁(yè)。式,見下頁(yè)。PA0PA0 PA7PA7PC7PC7 PC4PC4PC3PC3 PC0PC0PB7PB7 PB0PB0地址總線地址總線數(shù)據(jù)總線數(shù)據(jù)總線控制總線控制總線* *RDRD* *WRWRB BC CA AD7D7 D0D08255A8255AA A0 0A A1 1* *CSCS方式方式0 0PB7PB7 P PB0B0方式方式2 2PA0PA0 PA7PA7IOIO控制控制雙向雙向B BA AC CIOIOIOIOPB7PB7 PB0PB0方式方式1 1PA0PA0 PA7PA7控制或控制或控制或控制或B BA AC C 方式選擇控制字方式選擇控制字 確定3個(gè)端口的工作方式;
26、C C口置位口置位/ /復(fù)位控制字復(fù)位控制字 確定C口某一位的初始狀態(tài),或用于設(shè)置INTE位。8255A的工作方式由CPU對(duì)8255A(控制字寄存器)寫入控制命令字來設(shè)定,這個(gè)過程稱為“初始化初始化”??刂谱挚刂谱?255A的初始化方式選擇控制字D7 D6 D5 D4 D3 D2 D1 D0C口低位選擇,口低位選擇,1入入0出出B口口I/O選擇,選擇,1入入0出出B口方式選擇,口方式選擇,0=方式方式0 1=方式方式1B組組C口高位選擇,口高位選擇,1入入0出出A口口I/O選擇,選擇,1入入0出出A口方式選擇口方式選擇00=方式方式0 01=方式方式1 1X=方式方式2D7=1,方式控制字標(biāo)志
27、,方式控制字標(biāo)志A組組1 1、控制字的結(jié)構(gòu)、控制字的結(jié)構(gòu)8255A的初始化C口置位/復(fù)位控制字D7 D6 D5 D4 D3 D2 D1 D0置位置位/ /復(fù)位選擇復(fù)位選擇1=1=置位,置位,0=0=復(fù)位復(fù)位D7=0D7=0為置位為置位/ /復(fù)復(fù)位控制字標(biāo)志位控制字標(biāo)志D3 D2 D1 位選擇位選擇 0 0 0 PC0 0 0 1 PC1 0 1 0 PC2 0 1 1 PC3 1 0 0 PC4 1 0 1 PC5 1 1 0 PC6 1 1 1 PC7無效無效2、如何寫入控制字o MOV DX,8255A控制端口地址控制端口地址 MOV AL,86H ;1 0 0 0 0 1 1 0 OUT
28、 DX,AL方式控制字方式控制字【例1】 某系統(tǒng)要求使用8255A的A口方式0輸入,B口方式0輸出,C口高4位方式0輸出,C口低4位方式0輸入。o則控制字為: 10010001B 即91Ho初始化程序?yàn)椋?MOV AL, 91H OUT CTRL_PORT,ALo【例2】 A口方式2,要求發(fā)兩個(gè)中斷允許,即PC4和PC6均需置位。B口方式1要求使PC2置位來開放中斷。初始化程序可補(bǔ)充完整如下。MOV AL,0C4HOUT CTRL_PORT,AL ;設(shè)置工作方式MOV AL,09HOUT CTRL_PORT,AL ;PC4置位,A口輸入允許中斷MOV AL,ODHOUT CTRL_PORT,A
29、L ;PC6置位,A口輸出允許中斷MOV AL, 05HOUT CTRL_PORT,AL ;PC2置位;B口輸出允許中斷一個(gè)控制字、三個(gè)一個(gè)控制字、三個(gè)C C口復(fù)位置位控制字口復(fù)位置位控制字【例【例3】在8086系統(tǒng)中,采用8255完成并行通信,8255口地址為200H206H(8255的A1、A0和8086的A2、A1相連),將A組和B組設(shè)置成方式0,A口、B口為輸入,C口為輸出。請(qǐng)寫出8255的A、B、C、控制口地址,8255芯片的工作方式控制字及其初始化程序。解:控制字:10010010B(92H)oA口的地址為200HoB口的地址為202H oC口的地址為204Ho控制口地址為206H
30、 初始化程序MOV DX,206HMOV AL ,92HOUT DX ,AL 3、工作方式-工作方式0o8255相當(dāng)于三個(gè)獨(dú)立的8位簡(jiǎn)單接口。o各端口既可設(shè)置為輸入口,也可設(shè)置為輸出口,但不能同時(shí)實(shí)現(xiàn)輸入及輸出。oC端口即可以是一個(gè)8位的簡(jiǎn)單接口,也可以分為兩個(gè)獨(dú)立的4位端口。o設(shè)置為輸出口時(shí)有鎖存能力,設(shè)置為輸入口時(shí)無鎖存能力。o屬于無條件傳輸方式屬于無條件傳輸方式IN AL,PORT ;PORT是端口號(hào) 輸入輸入輸入緩沖器譯碼器數(shù)據(jù)數(shù)據(jù)DBDBABAB外設(shè)8nIO/MRD外設(shè)將數(shù)據(jù)送到外設(shè)將數(shù)據(jù)送到82558255輸入緩沖器中;輸入緩沖器中;CPUCPU給出有效的給出有效的82558255
31、地址;地址;CPUCPU發(fā)讀命令,將發(fā)讀命令,將8255A8255A輸入緩沖器中數(shù)據(jù)讀入輸入緩沖器中數(shù)據(jù)讀入CPUCPU的的ALAL寄存器中。寄存器中。8255A的工作方式方式0(輸出方式)oOUT PORT,AL輸出鎖存器譯碼器數(shù)據(jù)數(shù)據(jù)DBDBABAB外設(shè)8nIO/MWR這是一種選通的輸入/輸出方式。在這種工作方式下,數(shù)據(jù)的輸入輸出操作要在選通信號(hào)控制下完成。端口A和端口B仍作為數(shù)據(jù)的輸入、輸出口;端口C的某些位作為端口A和端口B的選通控制信號(hào)-稱作聯(lián)絡(luò)信號(hào)特點(diǎn): 1、A口、B口在作為輸入和輸出時(shí)的選通信號(hào)不同。方式1的應(yīng)用:主要用于中斷控制方式下的輸入輸出。方式方式1 1需借用端口需借用端
32、口C C用做聯(lián)絡(luò)信號(hào)用做聯(lián)絡(luò)信號(hào)同時(shí)還具有中斷請(qǐng)求和屏蔽功能同時(shí)還具有中斷請(qǐng)求和屏蔽功能聯(lián)絡(luò)方式聯(lián)絡(luò)方式3、工作方式、工作方式-工作方式工作方式1(選通工作方式)(選通工作方式)8255A8255A方式方式1 1工作過程(輸入)工作過程(輸入)111外設(shè)產(chǎn)生外設(shè)產(chǎn)生數(shù)據(jù)數(shù)據(jù)數(shù)據(jù)出現(xiàn)在外數(shù)據(jù)出現(xiàn)在外部數(shù)據(jù)總線部數(shù)據(jù)總線外設(shè)發(fā)選通外設(shè)發(fā)選通信號(hào)信號(hào)數(shù)據(jù)進(jìn)入數(shù)據(jù)進(jìn)入8255A的的A口口1通知外設(shè)緩沖區(qū)已通知外設(shè)緩沖區(qū)已滿,表示已經(jīng)接受滿,表示已經(jīng)接受數(shù)據(jù)數(shù)據(jù)1向向C口寫口寫P4位置位置1,開放中斷開放中斷向向CPU發(fā)中斷請(qǐng)發(fā)中斷請(qǐng)求信號(hào)求信號(hào)CPU發(fā)讀信發(fā)讀信號(hào)號(hào)注意:此工作是注意:此工作是8255
33、A8255A初始化時(shí)初始化時(shí)完成的!完成的!2022-4-1260C口的聯(lián)絡(luò)信號(hào)(方式口的聯(lián)絡(luò)信號(hào)(方式1輸入)輸入)oSTB#(Strobe閘門)選通輸入信號(hào),低電平有效。它是外設(shè)供給的輸入信號(hào),當(dāng)其有效時(shí)將外設(shè)來的數(shù)據(jù)送入8255的輸入鎖存器。A組對(duì)應(yīng)(接到)PC4;B組對(duì)應(yīng)PC2。oIBF(input buffer full)輸入鎖存器滿,高電平有效。這是一個(gè)8255輸給外設(shè)的聯(lián)絡(luò)信號(hào)。當(dāng)其有效時(shí),通知外設(shè)輸入的數(shù)據(jù)已寫入緩沖器,此時(shí)不能送下一個(gè)數(shù)據(jù)。CPU用IN指令取走數(shù)據(jù)后,此信號(hào)被清除。A組對(duì)應(yīng)PC5;B組對(duì)應(yīng)PC1。如圖如圖這兩個(gè)信號(hào)(引腳)是這兩個(gè)信號(hào)(引腳)是82558255
34、與外設(shè)間的聯(lián)絡(luò)引腳與外設(shè)間的聯(lián)絡(luò)引腳2022-4-1261C口的聯(lián)絡(luò)信號(hào)(方式口的聯(lián)絡(luò)信號(hào)(方式1輸入)輸入)oINTR(interrupt request)中斷請(qǐng)求信號(hào),高電平有效。是由8255A輸出的一個(gè)信號(hào)。用于向CPU請(qǐng)求中斷,讓CPU讀走輸入鎖存器中的數(shù)據(jù)。A組對(duì)應(yīng)PC3;B組對(duì)應(yīng)PC0oINTE(interrupt enable)端口中斷允許信號(hào),可由用戶通過對(duì)PC4位置位來實(shí)現(xiàn)。INTE =1,允許發(fā)出INTR請(qǐng)求。該信號(hào)沒有外接引腳如圖如圖和和CPUCPU聯(lián)絡(luò)的引腳聯(lián)絡(luò)的引腳C C口置位復(fù)位控制字來設(shè)置口置位復(fù)位控制字來設(shè)置2022-4-1262注意:8255A8255A方式方
35、式1 1工作過程(輸出)工作過程(輸出)CPU發(fā)寫信發(fā)寫信號(hào)號(hào)1111向向C口寫口寫PC4位置位置1,開放中斷開放中斷1CPUCPU產(chǎn)生數(shù)據(jù)后,產(chǎn)生數(shù)據(jù)后,輸出到數(shù)據(jù)總線輸出到數(shù)據(jù)總線數(shù)據(jù)進(jìn)入數(shù)據(jù)進(jìn)入8255A通知外部設(shè)備取通知外部設(shè)備取走數(shù)據(jù)走數(shù)據(jù)外部設(shè)備取外部設(shè)備取走數(shù)據(jù)走數(shù)據(jù)外設(shè)取走數(shù)據(jù)外設(shè)取走數(shù)據(jù)后的應(yīng)答信號(hào)后的應(yīng)答信號(hào)高電平告訴外高電平告訴外設(shè)數(shù)據(jù)緩沖區(qū)設(shè)數(shù)據(jù)緩沖區(qū)為空為空0oOBF*(output buffer full)輸出緩沖器滿信號(hào),8255A輸輸出給外設(shè)出給外設(shè)的一個(gè)控制信號(hào),當(dāng)其有效時(shí),表示CPU已把數(shù)據(jù)輸出給指定的端口,外設(shè)可以取走oACK*(Acknowledge)響
36、應(yīng)確認(rèn)信號(hào)。是一個(gè)外設(shè)的響應(yīng)信號(hào),指示CPU輸給8255A的數(shù)據(jù)已由外設(shè)接受。oINTR中斷請(qǐng)求信號(hào),高有效。n當(dāng)輸出設(shè)備已接受了CPU輸出的數(shù)據(jù)后,8255A輸出此信號(hào)向輸出此信號(hào)向CPU提出提出新的中斷請(qǐng)求,新的中斷請(qǐng)求,要求CPU繼續(xù)輸出數(shù)據(jù)lINTE(interrupt enable)INTE(interrupt enable)端口中斷允許信號(hào),端口中斷允許信號(hào),可由用戶通過對(duì)PC6(INTEA)和PC2(INTEB)位置位來實(shí)現(xiàn)。INTE =1,允許發(fā)出INTR請(qǐng)求。該信號(hào)沒有外接引腳C口的聯(lián)絡(luò)信號(hào)(方式口的聯(lián)絡(luò)信號(hào)(方式1輸出)輸出)8255A應(yīng)用舉例o例8-1打印機(jī)接口。為某應(yīng)用
37、系統(tǒng)配置一個(gè)并行打印機(jī)接口,并且通過接口CPU采用查詢方式打印。已知欲打印數(shù)據(jù)存放在數(shù)據(jù)段中有效地址位2000H的單元中。8255的口地址位80H、81H、82H、83H。o分析:由于打印接口直接面向的對(duì)象是打印機(jī)接口標(biāo)準(zhǔn),而不是打印機(jī)本身,因此打印機(jī)接口要按照接口標(biāo)準(zhǔn)的要求進(jìn)行設(shè)計(jì),主要是8位并行數(shù)據(jù)線DATA0DATA7,2條握手聯(lián)絡(luò)線STB#、ACK#和1條忙線BUSY。有關(guān)打印機(jī)接口工作時(shí)序見下圖。DATA0DATA7STBBUSYACK從圖可見,當(dāng)CPU通過接口要求打印機(jī)打印數(shù)據(jù)時(shí),先要查看BUSY信號(hào),BUSY0時(shí),才能向打印機(jī)輸出數(shù)據(jù)。DATA0DATA7STBBUSYACK它的
38、工作流程:主機(jī)將要打印的數(shù)據(jù)送上數(shù)據(jù)線,然后發(fā)選通信號(hào)STB#=0信號(hào)通知打印機(jī);打印機(jī)將數(shù)據(jù)讀入,同時(shí)使BUSY線為高,通知主機(jī)停止送數(shù)。這時(shí),打印機(jī)內(nèi)部對(duì)讀入的數(shù)據(jù)進(jìn)行處理。處理完以后送出ACK#=0信號(hào)(使ACK有效),同時(shí)使BUSY=0(失效),通知主機(jī)可以發(fā)下一個(gè)數(shù)據(jù)。 8255A應(yīng)用舉例 CPU PA07PC6PC2地 地BUSYSTBDATA07111298255A打印機(jī)插座結(jié) 束8255A 初始化BUSY=0?送 數(shù)送 STB#開始YN圖中用圖中用8255A8255A的的PAPA口作為輸出打印數(shù)據(jù)口,工作于方式口作為輸出打印數(shù)據(jù)口,工作于方式0 0,PCPC口高口高4 4位工作
39、于輸位工作于輸出方式,出方式,PC6PC6產(chǎn)生產(chǎn)生STB#STB#信號(hào);信號(hào);PCPC口低口低4 4位工作于輸入方式,位工作于輸入方式,PC2PC2接收打印機(jī)的接收打印機(jī)的BUSYBUSY信號(hào)。程序流程如右示。信號(hào)。程序流程如右示。 8255A應(yīng)用舉例MOV AL,81H ;工作方式字100001BOUT 83H,ALMOV AL, 0DH ;置/復(fù)位字 01101B PC6位置高,使STB#=1 OUT 83H,ALTESBY:IN AL,82H ;查BUSY=0?(PC2=0)TEST AL,04H ;00000100B JNZ TESBY ;忙,則等待;不忙,則向A口送數(shù)MOV AL,2000H ;從內(nèi)存取數(shù)OUT 80H,AL ;送數(shù)據(jù)到A口MOV AL,0CH ;00001100B置STB#信號(hào)為低(PC6=0)OUT 83H,ALNOP ;負(fù)脈沖寬度(延時(shí))NOPINC AL ;置STB#為高(PC6=1)OUT 83H,ALo1、一個(gè)由8086CPU和8255A為主體構(gòu)成的閉環(huán)調(diào)節(jié)系統(tǒng)的結(jié)構(gòu)流程結(jié)構(gòu)流程如圖8.20所示:o由8255A端口A輸出的8位數(shù)字信息,經(jīng)數(shù)模轉(zhuǎn)換器DAC0832轉(zhuǎn)換成模擬量。當(dāng)CPU輸
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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íng)銷活動(dòng)方案
- 學(xué)校成語活動(dòng)方案
- 婦女節(jié)書店優(yōu)惠活動(dòng)方案
- 奶粉店開業(yè)活動(dòng)方案
- 學(xué)校黨員幫帶活動(dòng)方案
- 婦聯(lián)調(diào)研活動(dòng)方案
- 學(xué)校文化展示活動(dòng)方案
- 學(xué)校工會(huì)學(xué)憲法活動(dòng)方案
- 如何細(xì)化活動(dòng)方案
- 婦女節(jié)布藝活動(dòng)方案
- HALCON編程基礎(chǔ)與工程應(yīng)用全書ppt課件匯總(完整版)
- 冀教版小學(xué)美術(shù)六年級(jí)下冊(cè)教案
- 《一級(jí)學(xué)科下屬專業(yè)證明模板》
- 信陽市平橋區(qū)農(nóng)村土地承包經(jīng)營(yíng)權(quán)轉(zhuǎn)包
- 《城市軌道交通通風(fēng)與空調(diào)系統(tǒng)》教學(xué)課件—07地鐵通風(fēng)空調(diào)概述
- Stein-膀胱癌淋巴清掃資料課件
- 小柳樹和小棗樹(1)
- 市場(chǎng)營(yíng)銷學(xué)期末復(fù)習(xí)題知識(shí)分享
- 化學(xué)常用單詞匯總
- 大客戶銷售實(shí)戰(zhàn)技巧PPT
- 變壓器運(yùn)輸運(yùn)行和維護(hù)要點(diǎn)
評(píng)論
0/150
提交評(píng)論