數(shù)字量輸入輸出并行通信_第1頁
數(shù)字量輸入輸出并行通信_第2頁
數(shù)字量輸入輸出并行通信_第3頁
數(shù)字量輸入輸出并行通信_第4頁
數(shù)字量輸入輸出并行通信_第5頁
已閱讀5頁,還剩53頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

數(shù)字量輸入輸出并行通信第1頁,課件共58頁,創(chuàng)作于2023年2月并行數(shù)據(jù)傳輸方式以計算機的字長,通常是8位、16位或32位為傳輸單位,一次傳送一個字長的數(shù)據(jù)適合于外部設備與微機之間進行近距離、大量和快速的信息交換例如:微機與并行接口打印機、磁盤驅動器微機系統(tǒng)中最基本的信息交換方法例如:系統(tǒng)板上各部件之間,接口電路板上各部件之間第2頁,課件共58頁,創(chuàng)作于2023年2月8255A的基本性能Intel8086/8088系列的可編程外設接口電路(ProgrammablePeripheralInterface)簡稱PPI,型號為8255(改進型為8255A及8255A-5),具有24條輸入/輸出引腳、可編程的通用并行輸入/輸出接口電路。它是一片使用單一+5V電源的40腳雙列直插式大規(guī)模集成電路。8255A的通用性強,使用靈活,通過它CPU可直接與外設相連接。第3頁,課件共58頁,創(chuàng)作于2023年2月8255引腳圖D0D1D2D3D4D5D6D7PA0PA1PA2PA3PA4PA5PA6PA7PB0PB1PB2PB3PB4PB5PB6PB7PC0PC1PC2PC3PC4PC5PC6PC7RDWRA0A1RESETCS825534333231302928275369835643214039383718192021222324251415161713121110第4頁,課件共58頁,創(chuàng)作于2023年2月8255A的內部結構和引腳數(shù)據(jù)總線緩沖器內部控制線內部數(shù)據(jù)線D0~D7A組控制A組端口AA組端口C上部B組控制B組端口BB組端口C下部PC0~PC3PB0~PB7PC4~PC7PA0~PA7RDWRA0A1CSRESET讀寫控制邏輯第5頁,課件共58頁,創(chuàng)作于2023年2月8255A內部結構由以下四部分組成:數(shù)據(jù)端口A、B、C;A組控制和B組控制;讀/寫控制邏輯電路;數(shù)據(jù)總線緩沖器。第6頁,課件共58頁,創(chuàng)作于2023年2月三個相互獨立的輸入/輸出通道8255A具有三個相互獨立的輸入/輸出通道:通道A、通道B、通道CA,B,C三通道可以聯(lián)合使用,構成單線、雙線或三線聯(lián)絡信號的并行接口。此時C口完全服務于A、B口。A口有三種工作方式:方式0、方式1、方式2。B口有兩種工作方式:方式0、方式1。第7頁,課件共58頁,創(chuàng)作于2023年2月8255A的工作方式方式0:基本輸入輸出方式適用于無條件傳送和查詢方式的接口電路方式1:選通輸入輸出方式適用于查詢和中斷方式的接口電路方式2:雙向選通傳送方式適用于與雙向傳送數(shù)據(jù)的外設適用于查詢和中斷方式的接口電路第8頁,課件共58頁,創(chuàng)作于2023年2月8255A的三個端口端口A:包括一個8位的數(shù)據(jù)輸出鎖存/緩沖器和一個8位的數(shù)據(jù)輸入鎖存器,可作為數(shù)據(jù)輸入或輸出端口,并工作于三種方式中的任何一種。

端口B:包括一個8位的數(shù)據(jù)輸出鎖存/緩沖器和一個8位的數(shù)據(jù)輸入緩沖器,可作為數(shù)據(jù)輸入或輸出端口,但不能工作于方式2。

端口C:包括一個8位的數(shù)據(jù)輸出鎖存/緩沖器和一個8位的數(shù)據(jù)輸入緩沖器,可在方式字控制下分為兩個4位的端口(C端口上和下),每個4位端口都有4位的鎖存器,用來配合端口A與端口B鎖存輸出控制信號和輸入狀態(tài)信號,不能工作于方式1或2。第9頁,課件共58頁,創(chuàng)作于2023年2月A組和B組控制的作用A組和B組控制的作用如下:A組控制邏輯控制端口A及端口C的上半部;B組控制邏輯控制端口B及端口C的下半部。第10頁,課件共58頁,創(chuàng)作于2023年2月C端口置1置0控制字端口C的數(shù)位常常作為控制位來使用,所以,在設計8255A芯片時,應使端口C中的各位可以用置1置0控制字來單獨設置。說明:C端口置1置0控制字盡管是對端口C進行操作,但此控制字必須寫入控制口,而不是寫入C端口.第11頁,課件共58頁,創(chuàng)作于2023年2月8255內部寄存器選擇/CSA1A0/RD/WR000A口->數(shù)據(jù)總線數(shù)據(jù)總線->A口001B口->數(shù)據(jù)總線數(shù)據(jù)總線->B口010C口->數(shù)據(jù)總線數(shù)據(jù)總線->C口011數(shù)據(jù)總線->控制寄存器第12頁,課件共58頁,創(chuàng)作于2023年2月寫入方式控制字:控制字格式方式選擇控制字1D6D5D4D3D2D1D0A組方式選擇00=方式001=方式110=方式2端口A1=輸入0=輸出端口C(上半部)1=輸入0=輸出B組方式選擇0=方式01=方式1端口B1=輸入0=輸出端口C(下半部)1=輸入0=輸出第13頁,課件共58頁,創(chuàng)作于2023年2月寫入方式控制字:示例要求:A端口:方式1輸入C端口上半部:輸出,C口下半部:輸入B端口:方式0輸出方式控制字:10110001B或B1H初始化的程序段:

movdx,2A3h ;假設控制端口為2A3H moval,0b1h ;方式控制字

outdx,al ;送到控制端口第14頁,課件共58頁,創(chuàng)作于2023年2月端口C的位控制字位控制字寫入控制端口特別便于置位復位內部中斷允許觸發(fā)器INTE端口C按位置/復位控制字0D6D5D4D3D2D1D01=置位0=復位D7D6D5D4D3D2D1D0

11110000

11001100

10101010C端口位選擇第15頁,課件共58頁,創(chuàng)作于2023年2月關于端口C(1)C端口被分成兩個4位端口,兩個端口只能以方式0工作,可分別選擇輸入或輸出在控制上,C端口上半部和A端口編為A組,C端口下半部和B端口編為B組當A和B端口工作在方式1或方式2時,C端口的部分引腳將被征用,其余引腳仍可設定工作在方式0第16頁,課件共58頁,創(chuàng)作于2023年2月對端口C的數(shù)據(jù)輸出有兩種辦法通過端口C的I/O地址:向C端口直接寫入字節(jié)數(shù)據(jù)。這一數(shù)據(jù)被寫進C端口的輸出鎖存器,并從輸出引腳輸出,但對設置為輸入的引腳無效通過控制端口:向C端口寫入位控字,使C端口的某個引腳輸出1或0,或置位復位內部的中斷允許觸發(fā)器關于端口C(2)第17頁,課件共58頁,創(chuàng)作于2023年2月讀取的C端口數(shù)據(jù)有兩種情況未被A和B端口征用的引腳:將從定義為輸入的端口讀到引腳輸入信息;將從定義為輸出的端口讀到輸出鎖存器中的信息被A和B端口征用作為聯(lián)絡線的引腳:將讀到反映8255A狀態(tài)的狀態(tài)字關于端口C(3)第18頁,課件共58頁,創(chuàng)作于2023年2月端口C的狀態(tài)字方式1輸入×××INTRAINTE2IBFAINTE1OBFAINTRBOBFBINTEBINTRAI/OI/OINTEAOBFA方式2雙向方式1輸出INTRBIBFBINTEBINTRAINTEAIBFAI/OI/OD0D1D2D3D4D5D6D7A組B組第19頁,課件共58頁,創(chuàng)作于2023年2月方式0方式0是一種基本輸入或輸出方式,它適用于無需握手信號的簡單輸入輸出應用場合,端口A、B、C都可作為輸入或輸出數(shù)據(jù)使用,輸出有鎖存而輸入無鎖存。第20頁,課件共58頁,創(chuàng)作于2023年2月方式0輸入時序datadata輸入端口D0~D7RD

CS,A1,A0第21頁,課件共58頁,創(chuàng)作于2023年2月方式0輸出時序WRdatadata輸出端口D0~D7

CS,A1,A0第22頁,課件共58頁,創(chuàng)作于2023年2月方式1方式1也稱選通的輸入/輸出方式。在這種方式下,無論是輸入還是輸出都通過應答關系實現(xiàn),這時端口A或B用作數(shù)據(jù)口,端口C的一部分引腳用作握手信號線與中斷請求線。第23頁,課件共58頁,創(chuàng)作于2023年2月若端口A工作于方式1,則B可工作于方式0;若端口B工作于方式1,則A可工作于方式0或余下的13位可工作于方式0;若端口A和B同時工作于方式1,端口C余下的兩位還可用于傳送數(shù)據(jù)或控制信號。方式1第24頁,課件共58頁,創(chuàng)作于2023年2月方式1輸入引腳:A端口數(shù)據(jù)選通信號表示外設已經(jīng)準備好數(shù)據(jù)輸入緩沖器滿信號表示A口已經(jīng)接收數(shù)據(jù)中斷請求信號請求CPU接收數(shù)據(jù)PC4PC5PC3PA7~PA0INTEAIBFAINTRASTBA中斷允許觸發(fā)器第25頁,課件共58頁,創(chuàng)作于2023年2月方式1輸入引腳:B端口PC2PC1PC0PB7~PB0INTEBIBFBINTRBSTBB數(shù)據(jù)選通信號表示外設已經(jīng)準備好數(shù)據(jù)輸入緩沖器滿信號表示A口已經(jīng)接收數(shù)據(jù)中斷請求信號請求CPU接收數(shù)據(jù)中斷允許觸發(fā)器第26頁,課件共58頁,創(chuàng)作于2023年2月方式1輸入聯(lián)絡信號STB*——選通信號,低電平有效由外設提供的輸入信號,當其有效時,將輸入設備送來的數(shù)據(jù)鎖存至8255A的輸入鎖存器IBF——輸入緩沖器滿信號,高電平有效8255A輸出的聯(lián)絡信號。當其有效時,表示數(shù)據(jù)已鎖存在輸入鎖存器INTR——中斷請求信號,高電平有效8255A輸出的信號,可用于向CPU提出中斷請求,要求CPU讀取外設數(shù)據(jù)第27頁,課件共58頁,創(chuàng)作于2023年2月方式1輸入時序INTRIBF輸入端口D0~D7STBRDdatadata第28頁,課件共58頁,創(chuàng)作于2023年2月方式1的輸入過程1、當輸入設備已準備好一個新數(shù)據(jù)時,首先檢測IBF線的狀態(tài),若為低(表示輸入鎖存器"空"),則輸入設備將數(shù)據(jù)放入PA7--PA0。2、然后發(fā)出選通信號STB,STB將PA7--PA0上的數(shù)據(jù)置入數(shù)據(jù)鎖存器,這時8255A使IBF有效,指示輸入鎖存器已"滿"。3、STB變?yōu)闊o效后,8255A使INTR由低變高,通過8259A向CPU發(fā)出中斷請求,CPU響應請求并進入相應的中斷服務程序。4、在中斷服務程序中,CPU讀端口A,RD的下降沿使INTR無效。5、RD的上升沿使IBF變無效,指示輸入鎖存器的數(shù)據(jù)已傳送給CPU,處于"空"狀態(tài),準備接收新的數(shù)據(jù)。第29頁,課件共58頁,創(chuàng)作于2023年2月方式1輸出引腳:A端口外設響應信號表示外設已經(jīng)接收到數(shù)據(jù)輸出緩沖器滿信號表示CPU已經(jīng)輸出了數(shù)據(jù)中斷請求信號請求CPU再次輸出數(shù)據(jù)PC6PC7PC3PA7~PA0INTEAOBFAINTRAACKA中斷允許觸發(fā)器第30頁,課件共58頁,創(chuàng)作于2023年2月方式1輸出引腳:B端口PC2PC1PC0PB7~PB0INTEBOBFBINTRBACKB外設響應信號表示外設已經(jīng)接收到數(shù)據(jù)輸出緩沖器滿信號表示CPU已經(jīng)輸出了數(shù)據(jù)中斷請求信號請求CPU再次輸出數(shù)據(jù)中斷允許觸發(fā)器第31頁,課件共58頁,創(chuàng)作于2023年2月方式1輸出聯(lián)絡信號OBF*——輸出緩沖器滿信號,低有效8255A輸出給外設的一個控制信號,當其有效時,表示CPU已把數(shù)據(jù)輸出給指定的端口,外設可以取走ACK*——響應信號,低有效外設的響應信號,指示8255A的端口數(shù)據(jù)已由外設接受INTR——中斷請求信號,高有效當輸出設備已接受數(shù)據(jù)后,8255A輸出此信號向CPU提出中斷請求,要求CPU繼續(xù)提供數(shù)據(jù)第32頁,課件共58頁,創(chuàng)作于2023年2月方式1輸出時序datadataINTR輸出端口D0~D7WROBFACK第33頁,課件共58頁,創(chuàng)作于2023年2月方式1的輸出過程1、以端口A為例,當輸出設備接收了前一次數(shù)據(jù) 后,8255A通過8259A向CPU請求中斷。2、在中斷服務程序中,CPU將數(shù)據(jù)寫入指定的端口,WR變?yōu)橛行?于是數(shù)據(jù)寫入輸出鎖存器并出現(xiàn)在PA7--PA0。3、寫信號WR的上升沿使OBF變?yōu)橛行?指示輸出設備PA7--PA0上,已有新的數(shù)據(jù),同時還使INTR變?yōu)?無效。4、在PA7--PA0上輸出數(shù)據(jù)。5、輸出設備接收到數(shù)據(jù)后,向8255A發(fā)回ACK信號,ACK的上升沿通常表示輸出設備已準備好再接收新的數(shù)據(jù)。6、8255A在ACK出現(xiàn)上升沿之前使OBF變?yōu)闊o效,若INTE=1,則還使INTR變?yōu)橛行?再次請求中斷。第34頁,課件共58頁,創(chuàng)作于2023年2月關于方式1中斷控制8255A的中斷由中斷允許觸發(fā)器INTE控制置位允許中斷,復位禁止中斷對INTE的操作通過寫入端口C的對應位實現(xiàn),INTE觸發(fā)器對應端口C的位是作應答聯(lián)絡信號的輸入信號的哪一位,只要對那一位置位/復位就可以控制INTE觸發(fā)器選通輸入方式下端口A的INTEA對應PC4端口B的INTEB對應PC2第35頁,課件共58頁,創(chuàng)作于2023年2月方式2:雙向方式方式2將方式1的選通輸入輸出功能組合成一個雙向數(shù)據(jù)端口,可以發(fā)送數(shù)據(jù)和接收數(shù)據(jù)只有端口A可以工作于方式2,需要利用端口C的5個信號線,其作用與方式1相同方式2的數(shù)據(jù)輸入過程與方式1的輸入方式一樣方式2的數(shù)據(jù)輸出過程與方式1的輸出方式有一點不同:數(shù)據(jù)輸出時8255A不是在OBF*有效時向外設輸出數(shù)據(jù),而是在外設提供響應信號ACK*時才送出數(shù)據(jù)第36頁,課件共58頁,創(chuàng)作于2023年2月方式2雙向引腳PC6PC7PC3PA7~PA0INTE1OBFAINTRAACKAPC4PC5IBFASTBAINTE2用PC6設置INTE1(輸出)用PC4設置INTE2(輸入)輸入和輸出中斷通過或門輸出INTRA信號第37頁,課件共58頁,創(chuàng)作于2023年2月方式2雙向時序data-outdata-outdata-indata-inINTRPA0~PA7D0~D7IBFWROBFACKSTBRD第38頁,課件共58頁,創(chuàng)作于2023年2月應用舉例1:用8255A方式0與打印機接口BUSYDATA0~78255APC7PC2PA0~PA7打印機STROBE第39頁,課件共58頁,創(chuàng)作于2023年2月打印機接口的信號主機把數(shù)據(jù)送給引腳DATA0~DATA7同時送出數(shù)據(jù)選通信號STROBE*打印機在BUSY信號線上發(fā)出“忙”信號打印機處理好輸入的數(shù)據(jù)時,撤消“忙”信號第40頁,課件共58頁,創(chuàng)作于2023年2月打印機接口時序BUSYDATA0~7ACKSTROBE第41頁,課件共58頁,創(chuàng)作于2023年2月8255A的初始化movdx,0fffeh;控制端口地址moval,10000001B;方式控制字:91Houtdx,al;A端口方式0輸出,C端口上輸出、下輸入moval,00001111B;端口C的復位置位控制字,使PC7=1outdx,al第42頁,課件共58頁,創(chuàng)作于2023年2月打印子程序:查詢printc

proc pushax pushdxprn: movdx,0fffch

;讀取端口C

inal,dx

;查詢打印機狀態(tài)

andal,04h

;PC2=BUSY=0?

jnzprn

;PC2=1,打印機忙,則循環(huán)等待第43頁,課件共58頁,創(chuàng)作于2023年2月打印子程序:輸出movdx,0fff8h;PC2=0,打印機不忙,則輸出數(shù)據(jù)moval,ahoutdx,al

;將打印數(shù)據(jù)從端口A輸出第44頁,課件共58頁,創(chuàng)作于2023年2月打印子程序:打印movdx,0fffeh

;從PC7送出控制低脈沖moval,00001110B

;置STROBE*=0outdx,alnop

;產(chǎn)生一定寬度的低電平nopmoval,00001111B

;置=1outdx,al第45頁,課件共58頁,創(chuàng)作于2023年2月打印子程序:返回

popdx popax retprintc endp第46頁,課件共58頁,創(chuàng)作于2023年2月用8255A方式1與打印機接口1000pf2K15321441LS123單穩(wěn)電路+5VDATA0~78255APC6INTRPC3PC7PA0~PA7打印機ACKACKOBFSTROBE第47頁,課件共58頁,創(chuàng)作于2023年2月8255A方式1與打印機接口時序配合PA0~PA7(DATA0~7)ACKOBFSTROBE第48頁,課件共58頁,創(chuàng)作于2023年2月8255A的初始化movdx,0fffeh;控制口地址=0fffehmoval,0a0h;控制字10100000outdx,almoval,0ch;00001100使INTEA(PC6)為0,禁止中斷outdx,al……movcx,counter

;打印字節(jié)數(shù)送CXmovbx,offsetbuffer

;取字符串首地址callprints

;調用打印子程序第49頁,課件共58頁,創(chuàng)作于2023年2月打印子程序:輸出prints

proc pushax

;保護寄存器

pushdxprint1:

moval,[bx]

;取一個數(shù)據(jù)

movdx,0fff8h outdx,al

;從端口A輸出第50頁,課件共58頁,創(chuàng)作于2023年2月打印子程序:查詢

movdx,0fffchprint2:

inal,dx testal,80h

;檢測(PC7)為1否?

jzprint2

;為0,說明打印機沒有響應,繼續(xù)檢測第51頁,課件共58頁,創(chuàng)作于2023年2月打印子程序:返回

incbx

;為1,說明打印機已接受數(shù)據(jù)

loopprint1

;準備取下一個數(shù)據(jù)輸出

popdx

;打印結束,恢復寄存器

popax ret

;返回prints

endp第52頁,課件共58頁,創(chuàng)作于2023年2月8255內部寄存器選擇/CSA1A0/RD/WR000A口->數(shù)據(jù)總線數(shù)據(jù)總線->A口001B口->數(shù)據(jù)總線數(shù)據(jù)總線->B口01

溫馨提示

  • 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

提交評論