匯編語言第10章并行通信及其接口電路.ppt
《匯編語言第10章并行通信及其接口電路.ppt》由會員分享,可在線閱讀,更多相關(guān)《匯編語言第10章并行通信及其接口電路.ppt(65頁珍藏版)》請在裝配圖網(wǎng)上搜索。
,第10章并行通信及其接口電路,本章主要內(nèi)容,(1)可編程并行接口電路8255A的結(jié)構(gòu)及工作原理(2)8255A的應(yīng)用,10.0概述,在計算機(jī)和數(shù)據(jù)通信系統(tǒng)中,有兩種基本的數(shù)據(jù)傳送方式,即串行數(shù)據(jù)傳送方式和并行數(shù)據(jù)傳送方式,也稱串行通信和并行通信。數(shù)據(jù)在單條一位寬的傳輸線上按時間先后一位一位地進(jìn)行傳送,稱為串行傳送;數(shù)據(jù)在多位寬的傳輸線上各位同時進(jìn)行傳送,稱為并行傳送。和串行傳送相比,在同樣的時鐘速率下,并行傳送的數(shù)據(jù)傳輸率較高。,,并行通信往往適用于信息傳輸率要求較高,而傳輸距離較短的場合。本章重點(diǎn)介紹并行通信及其所要求的并行接口電路,研究它們的組成、功能及典型的并行接口芯片的工作原理及使用方法。著重介紹可編程并行接口電路8255A及其典型應(yīng)用。,10.1可編程并行接口,10.1.1可編程并行接口的組成及其與CPU和外設(shè)的連接通常,一個可編程并行接口電路應(yīng)包括下列組成部分:(1)兩個或兩個以上具有緩沖能力的數(shù)據(jù)寄存器。(2)可供CPU訪問的控制及狀態(tài)寄存器。(3)片選和內(nèi)部控制邏輯電路。,,(4)與外設(shè)進(jìn)行數(shù)據(jù)交換的控制與聯(lián)絡(luò)信號線。(5)與CPU用中斷方式傳送數(shù)據(jù)的相關(guān)中斷控制電路。典型的可編程并行接口及其與CPU和外設(shè)的連接示意圖如圖10.1所示。,圖10.1可編程并行接口電路及其與CPU和外設(shè)的連接,CPU,,,輸出設(shè)備,輸入設(shè)備,并行接口電路,數(shù)據(jù)總線,,,,,,讀控信號,寫控信號,復(fù)位信號,中斷響應(yīng)信號,中斷請求信號,地址,譯碼器,,片選,輸出緩沖寄存器,輸入緩沖寄存器,控制寄存器,狀態(tài)寄存器,中斷邏輯,并行輸出數(shù)據(jù),,,,,并行輸入數(shù)據(jù),輸出準(zhǔn)備好,輸出回答,輸入準(zhǔn)備好,輸入回答,,10.1.2可編程并行接口的數(shù)據(jù)輸入輸出過程將以8255A為例進(jìn)行討論。,10.2可編程并行通信接口8255A,10.2.18255A的性能概要Intel8255A是一個為Intel8080和8085微機(jī)系統(tǒng)設(shè)計的通用可編程并行接口芯片,也可應(yīng)用于其他微機(jī)系統(tǒng)之中。8255A采用40腳雙列直插封裝,單一+5V電源,全部輸入輸出與TTL電平兼容。用8255A連接外部設(shè)備時,通常不需要再附加其他電路,給使用帶來很大方便。,,8255A有三個輸入輸出端口:端口A、端口B、端口C。每個端口都可通過編程設(shè)定為輸入端口或輸出端口,但有各自不同的方式和特點(diǎn)。端口C可作為一個獨(dú)立的端口使用,但通常是配合端口A和端口B的工作,為這兩個端口的輸入輸出提供控制聯(lián)絡(luò)信號。,10.2.28255A芯片引腳分配及引腳信號說明,8255A芯片引腳分配如圖10.2所示。8255A芯片的40條引腳,大致可分為三類:(1)電源與地線共2條:Vcc、GND。(2)與外設(shè)相連的共24條:PA7~PA0:端口A數(shù)據(jù)信號。PB7~PB0:端口B數(shù)據(jù)信號。PC7~PC0:端口C數(shù)據(jù)信號。,,圖,10.28255,A,芯片引腳分配,,(3)與CPU相連的共14條:RESET:復(fù)位信號,高電平有效。當(dāng)RESET信號有效時,所有內(nèi)部寄存器都被清除。同時,3個數(shù)據(jù)端口被自動設(shè)置為輸入端口。D7~D0:雙向數(shù)據(jù)線,在8080、8085系統(tǒng)中,8255A的D7~D0與系統(tǒng)的8位數(shù)據(jù)總線相連;在8086系統(tǒng)中,采用16位數(shù)據(jù)總線,8255A的D7~D0通常是接在16位數(shù)據(jù)總線的低8位上。,,CS:片選信號,低電平有效。該信號來自譯碼器的輸出,只有當(dāng)CS有效時,讀信號RD和寫信號WR才對8255A有效。RD:讀信號,低電平有效。它控制從8255A讀出數(shù)據(jù)或狀態(tài)信息。,,,,,,,WR:寫信號,低電平有效。它控制把數(shù)據(jù)或控制命令字寫入8255A。A1、A0:端口選擇信號。8255A內(nèi)部共有4個端口(即寄存器):3個數(shù)據(jù)端口(端口A、端口B、端口C)和1個控制端口,當(dāng)片選信號CS有效時,規(guī)定A1、A0為00、01、10、11時,分別選中端口A、端口B、端口C和控制端口。CS、RD、WR、A1、A0這五個信號的組合決定了對三個數(shù)據(jù)端口和一個控制端口的讀寫操作,如表10-1所示。,,,,,,表10-18255A端口選擇和基本操作,10.2.38255A內(nèi)部結(jié)構(gòu)方塊圖,8255A內(nèi)部結(jié)構(gòu)方塊圖如圖10.3所示。,圖10.38255A內(nèi)部結(jié)構(gòu)方塊圖,RESET,,由圖10.3可以看出,8255A由以下幾部分組成:(1)數(shù)據(jù)總線緩沖器這是一個雙向三態(tài)8位數(shù)據(jù)緩沖器,它是8255A與CPU數(shù)據(jù)總線的接口。輸入數(shù)據(jù)、輸出數(shù)據(jù)以及CPU發(fā)給8255A的控制字和從8255A讀出的狀態(tài)信息都是通過該緩沖器傳送的。,,(2)端口A、端口B、端口C8255A有三個8位端口(端口A、端口B、端口C),各端口可由程序設(shè)定為輸入端口或輸出端口。在使用中,端口A和端口B常常作為獨(dú)立的輸入端口或輸出端口。端口C也可以作為輸入端口或輸出端口,但往往是用來配合端口A和端口B的工作。在方式字的控制下,端口C可以分成兩個4位的端口,分別用來為端口A和端口B提供控制和狀態(tài)信息。,,(3)A組控制和B組控制A組控制——控制端口A及端口C的高4位。B組控制——控制端口B及端口C的低4位。(4)讀寫控制邏輯讀寫控制邏輯負(fù)責(zé)管理8255A的數(shù)據(jù)傳輸過程。,10.2.48255A的控制字,1.方式選擇控制字方式選擇控制字的格式如圖10.4所示。,圖10.48255A方式選擇控制字,,假定要求8255A的各個端口工作于如下方式:端口A——方式0,輸出;端口B——方式0,輸入;端口C的高4位——方式0,輸出;端口C的低4位——方式0,輸入。相應(yīng)的方式選擇控制字應(yīng)為10000011B(83H)。,,在實(shí)驗(yàn)系統(tǒng)中8255A控制口的地址為28BH,則執(zhí)行如下三條指令即可實(shí)現(xiàn)上述工作方式的設(shè)定。MOVDX,28BHMOVAL,83HOUTDX,AL;將方式選擇控制字寫入控制口,,2.端口C按位置1/置0控制字可以用專門的控制字實(shí)現(xiàn)對端口C按位置1/置0操作,用以產(chǎn)生所需的控制功能,這種控制字就是“端口C按位置1/置0控制字”。該控制字的具體格式如圖10.5所示。,圖10.5端口C按位置1/置0控制字,,需要指出的是,端口C按位置1/置0控制字是對端口C的操作控制信息,因此該控制字必須寫入控制口,而不應(yīng)寫入端口C??刂谱值腄0位決定是置“1”操作還是置“0”操作,但究竟是對端口C的哪一位進(jìn)行操作,則決定于控制字中的D3、D2、D1位。,,例如,要實(shí)現(xiàn)對端口C的PC6位置“0”,則控制字應(yīng)為00001100B(0CH)。設(shè)8255A的控制口地址同上,則執(zhí)行下列指令即可實(shí)現(xiàn)指定的功能:MOVDX,28BHMOVAL,0CH;OUTDX,AL;將“端口C按位置1/置0控制字”寫入控制口,實(shí)現(xiàn)對PC6位置“0”,10.2.58255A的工作方式,1.方式0方式0也叫基本輸入/輸出方式。在這種方式下,端口A和端口B可以通過方式選擇控制字規(guī)定為輸入口或者輸出口;端口C分為高4位(PC7~PC4)和低4位(PC3~PC0)兩個4位端口,這兩個4位端口也可由方式選擇控制字分別規(guī)定為輸入口或輸出口。,,這四個并行口共可構(gòu)成24=16種不同的使用組態(tài)。利用8255A的方式0進(jìn)行數(shù)據(jù)傳輸時,由于沒有規(guī)定專門的應(yīng)答信號,所以這種方式常用于與簡單外設(shè)之間的數(shù)據(jù)傳送,如向LED顯示器的輸出,從二進(jìn)制開關(guān)裝置的輸入等。,2.方式1,方式1也叫選通的輸入/輸出方式。和方式0相比,最主要的差別就是當(dāng)端口A和端口B工作于方式1時,要利用端口C來接收選通信號或提供有關(guān)的狀態(tài)信號,而這些信號是由端口C的固定數(shù)位來接收或提供的,即信號與數(shù)位之間存在著對應(yīng)關(guān)系。這種關(guān)系不可以用程序的方法予以改變。,,(1)方式1輸入當(dāng)端口A和端口B工作于“方式1輸入”時,端口C控制信號定義如圖10.11所示。該圖中還給出了相應(yīng)的方式選擇控制字。,圖10.68255A方式1輸入,,對于圖10.6中所示的控制信號說明如下:STB(Strobe):選通信號,低電平有效。它是由外設(shè)送給8255A的輸入信號,當(dāng)其有效時,8255A接收外設(shè)送來的一個8位數(shù)據(jù)。IBF(InputBufferFull):“輸入緩沖器滿”信號,高電平有效,它是一個8255A送給外設(shè)的聯(lián)絡(luò)信號。,,,當(dāng)IBF為高電平時,表示外設(shè)的數(shù)據(jù)已送進(jìn)輸入緩沖器中,但尚未被CPU取走,通知外設(shè)不能送新數(shù)據(jù);只有當(dāng)IBF變?yōu)榈碗娖綍r,即CPU已讀取數(shù)據(jù),輸入緩沖器變空時,才允許外設(shè)送新數(shù)據(jù)。IBF信號是由STB使其置位(變?yōu)楦唠娖?,而由讀信號RD的上升沿使其復(fù)位(變?yōu)榈碗娖?。,,,,INTR(InterruptRequest):中斷請求信號,高電平有效。它是當(dāng)STB為1、IBF為1且INTE也為1(中斷允許)時被置為高電平。當(dāng)選通信號結(jié)束(STB=1),已將一個數(shù)據(jù)送進(jìn)輸入緩沖器(IBF=1),并且端口處于中斷允許狀態(tài)(INTE=1)時,8255A的INTR端被置為高電平,向CPU發(fā)出中斷請求信號。當(dāng)CPU響應(yīng)中斷讀取輸入緩沖器中的數(shù)據(jù)時,由讀信號RD的下降沿將INTR置為低電平。,,,,,INTEA(InterruptEnable):端口A中斷允許信號。INTEA沒有外部引出端,它實(shí)際上就是端口A內(nèi)部的中斷允許觸發(fā)器的狀態(tài)信號。INTEA由PC4的置位/復(fù)位來控制,PC4=1時,使端口A處于中斷允許狀態(tài)。INTEAcontrolledbybitset/resetofPC4,,INTEB:端口B中斷允許信號。與INTEA類似,INTEB也沒有外部引出端,它是端口B內(nèi)部的中斷允許觸發(fā)器的狀態(tài)信號。由PC2的置位/復(fù)位來控制,PC2=1時,使端口B處于中斷允許狀態(tài)。,,另外,在方式1輸入時,PC6和PC7兩位還閑著未用。如果要利用它們,可用方式選擇控制字中的D3位來設(shè)定。方式1輸入工作時序圖如圖10.7所示。,圖10.7方式1輸入工作時序圖,來自外設(shè)的輸入數(shù)據(jù),,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,___STB,IBF,INTR,___RD,tRIB,tST,,,tSIB,,,,,TSIT,,,,,,,,,,,,,,,tRIT,,,,,,,,,,,,,tPS,,,tPH,表10-2方式1輸入工作時序圖參數(shù)說明,,(2)方式1輸出當(dāng)端口A和端口B工作于方式1輸出時,方式選擇控制字及相應(yīng)的端口C控制信號定義如圖10.8所示。,圖10.88255A方式1輸出,,INTEA,PC7PC6,,PC4,5,,,2,I/O,,,____OBFAACKA,PA7~PA0,,,___WR,PC3,,,D7~D0,,INTRA,方式1輸出(端口A),,,,INTEB,PC1PC2,,,,____OBFBACKB,PB7~PB0,,,___WR,PC0,,,D7~D0,,INTRB,方式1輸出(端口B),,,,,,對圖10.8中所示的控制信號說明如下:OBF(OutputBufferFull):“輸出緩沖器滿”信號,低電平有效,它是8255A輸出給外設(shè)的一個控制信號。當(dāng)其有效時,表示CPU已經(jīng)把數(shù)據(jù)輸出給指定端口,通知外設(shè)把數(shù)據(jù)取走。它是由寫信號WR的上升沿置成有效(低電平),而由ACK信號的有效電平使其恢復(fù)為高電平。,,,,,ACK(Acknowledge):外設(shè)響應(yīng)信號,低電平有效。當(dāng)其有效時,表明CPU通過8255A輸出的數(shù)據(jù)已經(jīng)由外設(shè)接收。它是對OBF的回答信號。INTR(InterruptRequest):中斷請求信號,高電平有效。它是8255A的一個輸出信號,用于向CPU發(fā)出中斷請求。INTR是當(dāng)ACK、OBF和INTE都為“1”時才被置成高電平(向CPU發(fā)出中斷請求信號);寫信號WR的上升沿使其變?yōu)榈碗娖?清除中斷請求信號)。,,,,,,INTEA:端口A中斷允許信號,由PC6的置位/復(fù)位來控制,PC6=1時,端口A處于中斷允許狀態(tài)。INTEB:端口B中斷允許信號,由PC2的置位/復(fù)位來控制,PC2=1時,端口B處于中斷允許狀態(tài)。另外,在方式1輸出時,PC4、PC5兩位還閑著未用,如果要利用它們可用方式選擇控制字的D3位來設(shè)定。,圖10.9方式1輸出工作時序圖,表10-3方式1輸出工作時序圖參數(shù)說明,10.2.68255A的狀態(tài)字,8255A工作于方式1和方式2時的狀態(tài)字是通過讀端口C的內(nèi)容來獲得的。1.方式1狀態(tài)字格式方式1狀態(tài)字格式如圖10.11所示。,圖10.11方式1狀態(tài)字格式,,2.方式2狀態(tài)字格式方式2的狀態(tài)字也是從端口C讀取。方式2狀態(tài)字的格式如圖10.12所示。,圖10.12方式2狀態(tài)字格式,10.2.78255A應(yīng)用舉例,例10.18255A工作于方式0,利用8255A將外設(shè)開關(guān)的二進(jìn)制狀態(tài)從端口A輸入,經(jīng)程序轉(zhuǎn)換為對應(yīng)的LED段選碼(字形碼)后,再從端口B輸出到LED顯示器。具體連線圖如圖10.13(a)所示。LED顯示器如圖10.13(b)所示。,,圖,10.138255,A,的應(yīng)用,,地,址,譯,碼,,地址,,CPU,(8088),,RD,WR,A,0,A,1,,__,,__,,D,7,~D,0,,8255,A,,RD,WR,A,0,A,1,,__,,__,,PA,0,PA,1,PA,2,PA,3,PB,0,PB,1,PB,2,PB,3,PB,4,PB,5,PB,6,PB,7,,,,,,,,,,,,,,,,,,+5,V,,2,K,,4,,,,,,,,,,K0,K1,K2,K3,,,,,,,,,,,,,,,,,,,,,,,,,,a,b,c,d,e,f,g,h,,,,,+5,V,,120,,74,LS04,,LED,,(,a),連線圖,,地,址,譯,碼,,地址,,CPU,(8088),,RD,WR,A,0,A,1,,__,,__,,D,7,~D,0,,8255,A,,RD,WR,A,0,A,1,,__,,__,,PA,0,PA,1,PA,2,PA,3,PB,0,PB,1,PB,2,PB,3,PB,4,PB,5,PB,6,PB,7,,,,,,,,,,,,,,,,,,+5,V,,2,K,,4,,,,,,,,,,K0,K1,K2,K3,,,,,,,,,,,,,,,,,,,,,,,,設(shè)8255A的端口地址為:端口A——D0H,端口B——D1H,端口C——D2H,控制口——D3H。則本例的初始化及輸入、輸出控制程序如下所示。,DATASEGMENTSSEGCODEDB3FH,06H,5BH,4FH,66H,6DH,7DH,07HDB7FH,67H,77H,7CH,39H,5EH,79H,71HDATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVAL,90H;設(shè)置方式選擇控制字,A口工作于方式0輸入,B口工作于方式0輸出OUT0D3H,ALRDPORTA:INAL,0D0H;讀A口ANDAL,0FH;取A口低4位MOVBX,OFFSETSSEGCODE;取LED段選碼表首地址XLAT;查表,AL←(BX+AL),,OUT0D1H,AL;從B口輸出LED段選碼,顯示相應(yīng)字形符號MOVAX,XXXXH;延時DELAY:DECAXJNZDELAY;MOVAH,1;判斷是否有鍵按下INT16HJZRDPORTA;若無,則繼續(xù)讀端口AMOVAH,4CH;否則返回DOSINT21HCODEENDSENDSTART,,例10.28255A工作于方式0,用8255A作為以查詢方式工作的打印機(jī)接口,如圖10.14所示。,圖10.148255A作為打印機(jī)接口,,工作原理為:當(dāng)主機(jī)開始打印輸出時,先測試打印機(jī)忙(BUSY)信號,如果打印機(jī)處于忙狀態(tài),則BUSY信號為1;反之,則BUSY信號為0。當(dāng)檢測到BUSY信號為0時,則主機(jī)可通過8255A向打印機(jī)輸出一個字符。此時,還需輸出一個選通信號(負(fù)脈沖)給打印機(jī)的STB端,用此負(fù)脈沖作為字符送到打印機(jī)輸入緩沖器的打入脈沖。,,,用8255A的端口A作為打印輸出數(shù)據(jù)口,工作于方式0;端口B不用;端口C也工作于方式0,端口C的PC2作為BUSY信號輸入端,所以PC3~PC0應(yīng)設(shè)定為輸入方式;PC6作為選通信號輸出端,所以PC7~PC4應(yīng)設(shè)定為輸出方式。設(shè)打印字符存放在內(nèi)存2000H單元。8255A的端口地址為:端口A—D0H,端口B—D1H,端口C—D2H,控制口—D3H則初始化及打印控制子程序如下所示:,,BEGIN:MOVAL,81H;方式選擇控制字,使A、B、C三個端口工作于方式0,OUT0D3H,AL;端口A為輸出,PC7~PC4為輸出,PC3~PC0為輸入MOVAL,0DH;用“端口C按位置1/置0控制字”置PC6=1,使STB為高電平OUT0D3H,ALTESBY:INAL,0D2H;讀端口CTESTAL,04H;測試PC2(BUSY)JNZTESBY;如PC2=1(BUSY信號有效)打印機(jī)處于忙狀態(tài),繼續(xù)查詢MOVAL,DS:[2000H];PC2=0(BUSY信號無效),取打印字符OUT0D0H,AL;由端口A輸出打印字符MOVAL,0CH;用“端口C按位置1/置0控制字”置PC6=0,使STB為低電平OUT0D3H,ALINCALOUT0D3H,AL;置PC6=1,再使STB為高電平,從而產(chǎn)生一個負(fù)選通脈沖信號RET,,,,第10章作業(yè),10.110.210.410.510.710.1110.1210.1310.14,P245習(xí)題10.13解:①程序流程框圖:②初始化及有關(guān)控制程序,圖10.16交通燈控制,8255APC0PA2PA1PA0PB2PB1PB0,,接系統(tǒng)總線,,,,,,,,KRYGRYG(開關(guān)),,,,,主道燈,副道燈,- 1.請仔細(xì)閱讀文檔,確保文檔完整性,對于不預(yù)覽、不比對內(nèi)容而直接下載帶來的問題本站不予受理。
- 2.下載的文檔,不會出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預(yù)覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請點(diǎn)此認(rèn)領(lǐng)!既往收益都?xì)w您。
下載文檔到電腦,查找使用更方便
14.9 積分
下載 |
- 配套講稿:
如PPT文件的首頁顯示word圖標(biāo),表示該P(yáng)PT已包含配套word講稿。雙擊word圖標(biāo)可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國旗、國徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計者僅對作品中獨(dú)創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- 匯編語言 10 并行 通信 及其 接口 電路
鏈接地址:http://www.hcyjhs8.com/p-3294498.html