第七章輸入輸出接口芯片_第1頁
第七章輸入輸出接口芯片_第2頁
第七章輸入輸出接口芯片_第3頁
第七章輸入輸出接口芯片_第4頁
第七章輸入輸出接口芯片_第5頁
已閱讀5頁,還剩98頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第七章輸入輸出接口芯片主要內容§7.1并行與串行通信§7.2可編程并行接口8255A§7.1并行與串行通信CPU與外設之間的信息傳送都是通過接口電路來進行的。計算機與外部設備、計算機與計算機之間交換信息稱之為計算機通信,計算機通信可分為兩大類:并行通信:8位或16位或32位數(shù)據(jù)同時傳輸,速度快,信息率高,成本高串行通信:一位一位數(shù)據(jù)傳送(在一條線上順序傳送),成本低實現(xiàn)并行通信的接口就是并行接口。

并行接口的特點并行接口最基本的特點是在多根據(jù)數(shù)據(jù)線上以數(shù)據(jù)字節(jié)(字)為單位與I/O設備或被控對象傳送信息。如:打印機接口,A/D、D/A轉換器接口,IEEE-488接口,開關量接口,控制設備接口等。在并行接口中,除了少數(shù)據(jù)場合之外,一般都要求在接口與外設之間設置并行數(shù)據(jù)線的同時,至少還要設置兩根握手(聯(lián)線)信號線,以便進行互鎖異步握手方式(即查詢方式)的通信。§7.1并行與串行通信§7.1并行與串行通信在并行接口中,8位或16位是一起行動的,因此,當采用并行接口與外設交換數(shù)據(jù)時,即使是只用到其中的一位,也是一次輸入/輸出8位或16位。并行傳送信息,不要求固定的格式,這與串行傳送的數(shù)據(jù)格式的要求不同。CPU控制寄存器輸入緩沖寄存器輸出緩沖寄存器狀態(tài)寄存器地址譯碼輸入設備輸出設備數(shù)據(jù)輸入準備好數(shù)據(jù)輸入回答數(shù)據(jù)輸入數(shù)據(jù)輸出數(shù)據(jù)輸出準備好數(shù)據(jù)輸出回答片選A0A1數(shù)據(jù)總線讀出信號寫入信號復位輸入準備好中斷請求并行接口連接外設的示意圖

對于各種型號的CPU都有與其配套的并行接口芯片。如Intel公司8255A(PPI),Zilog公司Z-80PIO,MC6820(PIO)等,它們的功能雖有差異,但工作原理基本相同。用于并行通信,可以輸入,可以輸出,可以控制其工作方式,即可以編程(對其進行設置,可以改變),使用方便。§7.2可編程并行接口8255A一、8255A的內部結構數(shù)據(jù)總線緩沖器內部控制線內部數(shù)據(jù)線D0~D7A組控制A組端口AA組端口C上部B組控制B組端口BB組端口C下部讀寫控制邏輯PC0~PC3PB0~PB7PC4~PC7PA0~PA7RDWRA0A1CSRESET1.三個數(shù)據(jù)端口A,B,C

這三個端口均可看作是I/O口,但它們的結構和功能也稍有不同?!口:是一個獨立的8位I/O口,它的內部有對數(shù)據(jù)輸入/輸出的鎖存功能?!口:也是一個獨立的8位I/O口,僅對輸出數(shù)據(jù)的鎖存功能?!口:可以看作是一個獨立的8位I/O口;也可以看作是兩個獨立的4位I/O口。也是僅對輸出數(shù)據(jù)進行鎖存。C口的作用與8255A的工作方式有關,它除了作數(shù)據(jù)口以外,還有其他用途,故C口的使用比較特殊,單獨介紹如下:

a.作數(shù)據(jù)口。

b.作狀態(tài)口。

c.作專用(固定)聯(lián)絡(握手)信號線。

d.作按位控制用。2.A組和B組的控制電路這是兩組根據(jù)CPU命令控制8255A工作方式的電路,這些控制電路內部設有控制寄存器,可以根據(jù)CPU送來的編程命令來控制8255A的工作方式,也可以根據(jù)編程命令來對C口的指定位進行置/復位的操作。A組控制電路用來控制A口及C口的高4位;B組控制電路用來控制B口及C口的低4位。3.讀/寫控制邏輯讀/寫控制邏輯電路負責管理8255A的數(shù)據(jù)傳輸過程。它接收片選信號及系統(tǒng)讀信號、寫信號、復位信號RESET,還有來自系統(tǒng)地址總線的口地址選擇信號A0和A1。4.數(shù)據(jù)總線緩沖器8位的雙向的三態(tài)緩沖器。作為8255A與系統(tǒng)總線連接的界面,輸入/輸出的數(shù)據(jù),CPU的編程命令以及外設通過8255A傳送的工作狀態(tài)等信息,都是通過它來傳輸?shù)摹6?255A的芯片引腳信號引腳信號可以分為兩組:一組是面向CPU的信號,一組是面向外設的信號。1.面向外設的引腳信號及功能?PA0-PA7:A組數(shù)據(jù)信號,用來連接外設;?PB0-PB7:B組數(shù)據(jù)信號,用來連接外設;?PC0-PC7:C組數(shù)據(jù)信號,用來連接外設或者作為控制信號。2.面向CPU的引腳信號及功能D0-D7:8位,雙向,三態(tài)數(shù)據(jù)線,用來與系統(tǒng)數(shù)據(jù)總線相連。為了連線方便一般總是與低8位相連,對應的偶地址,這是就要考慮地址線的連接;RESET:復位信號(對8255A的復位),高電平有效,輸入,用來清除8255A的內部寄存器,并置A口,B口,C口均為輸入方式;CS:片選,輸入,用來決定芯片是否被選中;RD:讀信號,輸入,控制8255A將數(shù)據(jù)或狀態(tài)信息送給CPU;WR:寫信號,輸入,控制CPU將數(shù)據(jù)或控制信息送到8255A;A1,A0:內部口地址的選擇,輸入。這兩個引腳上的信號組合決定對8255A內部的哪一個口或寄存器進行操作。8255A內部共有4個端口:A口,B口,C口和控制口,兩個引腳的信號組合選中端口見下表。前面提到8位數(shù)據(jù)線接CPU的低8位,因此,CPU,A0=0,A1接8255A的A0,A2接8255A的A1。與片選結合得到端口地址。(偶地址)CS,RD,WR,A1,A0這幾個信號的組合決定了8255A的所有具體操作,見下表:注:對控制口的寫有兩種情況,根據(jù)D7判斷。1為控制字,0為C口的置0置1。

表6.38255A的控制信號與傳輸動作的對應關系CSA1A0RDWR讀操作內容00001PA口→數(shù)據(jù)總線(→CPU)數(shù)據(jù)00101PB口→數(shù)據(jù)總線(→CPU)數(shù)據(jù)01001PC口→數(shù)據(jù)總線(→CPU)數(shù)據(jù)寫操作00010PA口←數(shù)據(jù)總線(←CPU)數(shù)據(jù)00110PB口←數(shù)據(jù)總線(←CPU)數(shù)據(jù)01010PC口←數(shù)據(jù)總線(←CPU)數(shù)據(jù)01110控制寄存器←數(shù)據(jù)總線控制字無操作情況1××××總線懸浮(高阻態(tài))0××11總線懸?。ǜ咦钁B(tài))01101控制口不能讀(程序錯誤)12345678910111213141516171819204039383736353433323130292827262524232221PA4PA5PA6PA7PB6PB5PB4PB3PB7D1D2D3D4D0D5D6D7VCCRESETWRRDCSPA3PA2PA1PA0GNDA1A0PC7PC6PC4PC0PC1PC2PC5PB0PB1PB2PC38255A三.8255A的控制字和編程對8255A的控制字涉及到兩個內容:⑴方式選擇控制字,設置各端口的工作方式等信息,⑵端口C置1、置0控制字,使C口的指定位置位/復位的功能。注:均寫入控制端口1.方式選擇控制字:控制字格式方式選擇控制字的標志位1.方式選擇控制字:控制字格式說明:1、8255A有三種基本工作方式方式0:基本輸入輸出方式適用于無條件傳送和查詢方式的接口電路方式1:選通輸入輸出方式適用于查詢和中斷方式的接口電路方式2:雙向選通傳送方式適用于與雙向傳送數(shù)據(jù)的外設適用于查詢和中斷方式的接口電路1.方式選擇控制字:控制字格式2、D7標識位,=1為方式選擇控制字的標識,由數(shù)據(jù)線往控制口寫入控制字。因此方式選擇控制字的第7位總是1。=0C口的置0置1命令,數(shù)據(jù)線上的數(shù)據(jù)作為c口的置位命令,寫控制口。3、A口與C口的高4位,歸A組;

B口與C口的低4位,歸B組;但同一組的不同端口可以分別工作在輸入或輸出方式。4、只有A口可以工作在方式2,C口一般用來配合AB的工作。例1:要求:A端口:方式1輸入C端口上半部:輸出,C口下半部:輸入B端口:方式0輸出方式控制字:10110001B或B1H

若將此命令代碼寫到8255A的命令寄存器,即實現(xiàn)了對8255A工作方式及端口功能的指定,或者說完成了對8255A的初始化。假設8255A控制口地址0FFFEH。初始化的程序段為:

MOVDX,0FFFEH;控制口地址

MOVAL,0B1H;初始化命令

OUTDX,AL;送到控制口例2

某系統(tǒng)要求使用8255A的A口方式0輸入,B口方式0輸出,C口高4位方式0輸出,C口低4位方式0輸入??刂谱譃椋?/p>

10010001B即91H初始化程序為:

MOVAL,91HOUTCTRL_PORT,AL例3某系統(tǒng)要求使用8255A的A口方式0輸出,B口方式0輸入,C口輸入。控制字為:

10001011B或8BH初始化程序

MOVAL,8BHMOVDX,CTRL_PORTOUTDX,AL例4(1)芯片地址J1的控制口地址00E6HJ2的控制口地址00EEH(2)芯片的初始化編程J1端口A:方式0,輸出端口B:方式0,輸入端口C高4位輸出,低4位輸入10000011B(83H)J2端口A:方式0,輸入端口B:方式1,輸出端口C高4位輸出,低4位任意,010010100B(94H)接芯片分組譯碼輸出CBAGGA5A4A3A8Y4Y5CSRDWRA1A0D7D0RESETPA7.-PA0PB7.-PB0PC7.-PC0CSRDWRA1A0D7D0RESETPA7.-PA0PB7.-PB0PC7.-PC0IORIOWA2A1MOVAL,83H;MOVDX,00E6HOUTDX,ALMOVAL,94HMOVDX,00EEHOUTDX,AL2、端口C的置1、置0控制字位控制字寫入控制端口特別便于置位復位內部中斷允許觸發(fā)器INTEC口置1置0標志位例2:若要把C口的PC2引腳置成高電平輸出,則命令字應該為00000101B或05H。

將該命令的代碼寫入8255A的控制寄存器,就會使得從PC口的PC2引腳輸出高電平,其程序段為:

MOVDX,0FFFEH;8255A命令口地址

MOVAL,05H;使PC2=1的命令字

OUTDX,AL;送到命令口如果要使引腳PC2輸出低電位,則程序段為:

MOVDX,0FFFEH;8255A命令口地址

MOVAL,04H;使PC2=0的命令字

OUTDX,AL;送到命令口

利用C口的按位控制特性還可以產(chǎn)生、負脈沖或方波輸出,對外設進行控制。例3:利用8255A的PC7產(chǎn)生負脈沖,作打印機接口電路的數(shù)據(jù)選通信號,寫出命令字及其程序段:

MOVDX,0FFFEH;8255A命令口

MOVAL,00001110B;置PC7=0OUTDX,ALNOP;維持低電平

NOPMOVAL,00001111B;置PC7=1OUTDX,ALC端口置1置0控制字說明1必須寫入控制口2D0位決定是置1還是置03D3,D2,D1決定哪一位4D6,D5,D4無關5D7標志位必須為0①方式命令是對8255A的3個端口的工作方式及功能進行指定,即進行初始化,初始工作要在使用8255A之前做。②按位置位/復位命令只是對PC口的輸出進行控制,使用它時不破壞已經(jīng)建立的3種工作方式,而是對它們實現(xiàn)動態(tài)控制的一種支持。它可放在初始化程序以后的任何地方。3.關于兩個命令的討論③兩個命令的最高位(D7)都分配作了特征位,之所以要設置特征位,是為了識別兩個不同的命令。④按位置位/復位的命令代碼只能寫入命令口。48255的編程初始化編程初始化編程后:當數(shù)據(jù)端口作為輸入接口時,執(zhí)行輸入IN指令將從輸入設備得到外設數(shù)據(jù)當數(shù)據(jù)端口作為輸出接口時,執(zhí)行輸出OUT指令將把CPU的數(shù)據(jù)送給輸出設備8255A具有鎖存輸出數(shù)據(jù)的能力對輸出方式的端口同樣可以輸入不是讀取外設數(shù)據(jù)讀取的是上次CPU給外設的數(shù)據(jù)利用8255A的輸出鎖存能力,可實現(xiàn)按位輸出控制

對輸出端口B的PB7位置位的程序段:

movdx,0fffah;B端口假設為FFFAH inal,dx ;讀出B端口原輸出內容

oral,80h ;使PB7=1 outdx,al ;輸出新的內容C端口被分成兩個4位端口,兩個端口只能以方式0工作,可分別選擇輸入或輸出在控制上,C端口上半部和A端口編為A組,C端口下半部和B端口編為B組當A和B端口工作在方式1或方式2時,C端口的部分或全部引腳將被征用其余引腳仍可設定工作在方式0對端口C的數(shù)據(jù)輸出有兩種辦法通過端口C的I/O地址:向C端口直接寫入字節(jié)數(shù)據(jù)。這一數(shù)據(jù)被寫進C端口的輸出鎖存器,并從輸出引腳輸出,但對設置為輸入的引腳無效通過控制端口:向C端口寫入位控字,使C端口的某個引腳輸出1或0,或置位復位內部的中斷允許觸發(fā)器例:編程使PA7位輸出高/低電平使PA7輸出高電平.

MOVDX,200H;PA數(shù)據(jù)口地址

INAL,DX;讀入A口原輸出內容

MOVAH,AL;保存原輸出內容

ORAL,80H;使PA7=1OUTDX,AL;輸出PA7┇MOVAL,AH;恢復原輸出內容

OUTDX,AL使PA7輸出低電平MOVDX,200H;A口地址INAL,DX;讀入端口原輸出值MOVAH,AL;保存原輸出值ANDAL,7FH;使PA7=0OUTDX,AL;輸出PA7┇MOVAL,AH;恢復原輸出內容OUTDX,AL四、8255A的工作方式方式0:基本輸入輸出方式方式1:選通輸入輸出方式方式2:雙向選通傳送方式8255A的工作方式與端口有關,PA口有三種方式(0方式、1方式、2方式),PB口和PC口只有兩種方式(0方式、1方式)。1、方式0方式0是一種基本輸入/輸出工作方式。通常不用聯(lián)絡信號,或不使用固定的聯(lián)絡信號。在0方式下,彼此獨立的兩個8位和兩個4位并行口,都能被指定作為輸入或者輸出用,共有16種不同的使用狀態(tài)。在0方式下不設置專用聯(lián)絡信號線,需要聯(lián)絡時,可由用戶任意指定C口中的哪根線完成某種聯(lián)絡功能,這與后面要討論的在1方式、2方式下設置固定的專用聯(lián)絡信號線不同。是單向I/O,一次初始化只能指定端口(PA、PB和PC)作輸入或輸出,不能指定端口同時既作輸入又作輸出。適用于無條件傳送和查詢方式的接口電路datadata輸入端口D0~D7RDCS,A1,A0請體會這里8255A的數(shù)據(jù)緩沖作用方式0輸入時序WRdatadata輸出端口D0~D7CS,A1,A08255A對CPU通過它輸出給外設的數(shù)據(jù)進行鎖存方式0輸出時序

2、方式1①1方式是一種選通輸入/輸出方式或叫應答方式,因此,需設置專用的聯(lián)絡信號線或應答信號線,以便對I/O設備和CPU兩側進行聯(lián)絡。這種方式通常用于查詢(條件)傳送或中斷傳送。②PA和PB為數(shù)據(jù)口,而PC口的大部分引腳分配作專用(固定)的聯(lián)絡信號的C口引腳,用戶不能再指定作其他作用。③各聯(lián)絡信號線之間有固定的時序關系,傳送數(shù)據(jù)時,要嚴格按照時序進行。④輸入/輸出操作過程中,產(chǎn)生固定的狀態(tài)字,這些狀態(tài)信息可作為查詢或中斷請求之用。狀態(tài)字從PC口讀取。⑤單向傳送。一次初始化只能設置在一個方向上傳送,不能同時作兩個方向的傳送適用于查詢和中斷方式的接口電路第10章:數(shù)據(jù)選通信號表示外設已經(jīng)準備好數(shù)據(jù)輸入緩沖器滿信號表示A口已經(jīng)接收數(shù)據(jù)中斷請求信號請求CPU接收數(shù)據(jù)PC4PC5PC3PA7~PA0INTEAIBFAINTRASTBA中斷允許觸發(fā)器方式1輸入引腳:A端口第10章:PC2PC1PC0PB7~PB0INTEBIBFBINTRBSTBB數(shù)據(jù)選通信號表示外設已經(jīng)準備好數(shù)據(jù)輸入緩沖器滿信號表示A口已經(jīng)接收數(shù)據(jù)中斷請求信號請求CPU接收數(shù)據(jù)中斷允許觸發(fā)器方式1需借用端口C用做聯(lián)絡信號同時還具有中斷請求和屏蔽功能方式1輸入引腳:B端口第10章:方式1輸入聯(lián)絡信號STB*——選通信號,低電平有效由外設提供的輸入信號,當其有效時,將輸入設備送來的數(shù)據(jù)鎖存至8255A的輸入鎖存器IBF——輸入緩沖器滿信號,高電平有效8255A輸出的聯(lián)絡信號。當其有效時,表示數(shù)據(jù)已鎖存在輸入鎖存器,讀信號的上升沿使其復位。INTR——中斷請求信號,高電平有效8255A輸出的信號,可用于向CPU提出中斷請求,要求CPU讀取外設數(shù)據(jù)。讀的下降沿使其復位。第10章:dataINTRIBF

data輸入端口D0~D7STBRDSTB*和IBF是外設和8255A間的一對應答聯(lián)絡信號,為的是可靠地輸入數(shù)據(jù)方式1輸入時序第10章:方式1中斷控制8255A的中斷由中斷允許觸發(fā)器INTE控制置位允許中斷,復位禁止中斷對INTE的操作通過寫入端口C的對應位實現(xiàn),INTE觸發(fā)器對應端口C的位是作應答聯(lián)絡信號的輸入信號的哪一位,只要對那一位置位/復位就可以控制INTE觸發(fā)器選通輸入方式下端口A的INTEA對應PC4端口B的INTEB對應PC2第10章:外設響應信號表示外設已經(jīng)接收到數(shù)據(jù)輸出緩沖器滿信號表示CPU已經(jīng)輸出了數(shù)據(jù)中斷請求信號請求CPU再次輸出數(shù)據(jù)PC6PC7PC3PA7~PA0INTEAOBFAINTRAACKA中斷允許觸發(fā)器方式1輸出引腳:A端口第10章:PC2PC1PC0PB7~PB0INTEBOBFBINTRBACKB外設響應信號表示外設已經(jīng)接收到數(shù)據(jù)輸出緩沖器滿信號表示CPU已經(jīng)輸出了數(shù)據(jù)中斷請求信號請求CPU再次輸出數(shù)據(jù)中斷允許觸發(fā)器方式1輸出引腳:B端口第10章:方式1輸出聯(lián)絡信號OBF*——輸出緩沖器滿信號,低有效8255A輸出給外設的一個控制信號,當其有效時,表示CPU已把數(shù)據(jù)輸出給指定的端口,外設可以取走ACK*——響應信號,低有效外設的響應信號,指示8255A的端口數(shù)據(jù)已由外設接受INTR——中斷請求信號,高有效當輸出設備已接受數(shù)據(jù)后,8255A輸出此信號向CPU提出中斷請求,要求CPU繼續(xù)提供數(shù)據(jù)端口A的INTEA對應PC6端口B的INTEB對應PC2第10章:

INTR

datadata輸出端口D0~D7WROBFACK

OBF*和ACK*是外設和8255A間的一對應答聯(lián)絡信號,為的是可靠地輸出數(shù)據(jù)方式1輸出時序§7.58255A的2方式及其應用3、方式2①PA口為雙向選通輸入/輸出或叫雙向應答式輸入/輸出。一次初始化可指定PA口既作輸入口又作輸出口。②設置專用的聯(lián)絡信號線和中斷請求號信線,因此,2方式下可采用中斷方式和查詢方式與CPU交換數(shù)據(jù)。③各聯(lián)絡線的定義及其時序關系和壯態(tài)基本上是在1方式下輸入和輸出兩種操作的組合。適用于與雙向傳送數(shù)據(jù)的外設適用于查詢和中斷方式的接口電路方式2是一種雙向選通輸入輸出方式,它把A口作為雙向輸入/輸出口,把C口的5根線(PC3~PC7)作為專用應答線,所以,8255A只有A口才有2方式。其引腳定義如圖所示。PC3PC7PA7~0PC6PC4PC5PC2~0≥1&INTE1INTE2&WRRDINTRA8OBFAACKASTBAIBFAI/O32方式的聯(lián)絡信號線定義方式2控制信號五、應用舉例例1、

A口工作于方式1輸入,B口工作于方式1輸出,寫出其控制字及初始化程序

10110100BMOVAL,0B4H OUTCTRL_port,AL

例2、

A口工作于方式2,B口工作于方式0輸入,PC0-PC2輸入,寫出其控制字及初始化程序11000011BMOVAL,0C3HOUTCTRL_port,AL例3、

A口工作于方式2,輸出時,要允許其中斷,需要寫入的控制字是什么(PC6置1)0×××1101B例4、并行打印機接口設計1.要求

為某應用系統(tǒng)配置一個并行打印機接口,并且通過接口CPU采用查詢方式把存放在BUF緩沖區(qū)的255個字(ASCII碼)送去打印。

2.分析

由于打印接口直接面向的對象是打印機接口標準,而不是打印機本身,因此打印機接口要按照接口標準的要求進行設計。有關打印機接口標準Centronics的信號線定義引腳名稱方向功能1STROBE入數(shù)據(jù)選通,有效時接收數(shù)據(jù)2-9DATA1-DATA8入數(shù)據(jù)線10ACKING出相應信號,有效時準備接收數(shù)據(jù)11BUSY出忙信號,有效時不能接收數(shù)據(jù)….….….…….工作時序如下。DATA0~DATA7STROBEBUSYACK并行打印機接口數(shù)據(jù)傳送時序

它的工作流程是:主機將要打印的數(shù)據(jù)送上數(shù)據(jù)線,然后發(fā)選通信號。打印機將數(shù)據(jù)讀入,同時使BUSY線為高,通知主機停止送數(shù)。這時,打印機內部對讀入的數(shù)據(jù)進行處理。處理完以后使ACK有效,同時使BUSY失效,通知主機可以發(fā)下一個數(shù)據(jù)。過程:采用查詢方式時,打印機與CPU之間傳送數(shù)據(jù)的過程是:①首先查詢BUSY。若BUSY=1,打印機忙,則等待;若BUSY=0,打印機不忙,則送數(shù)據(jù)。②通過并行接口把數(shù)據(jù)送給標準插座DATABIT1~DATABIT8

數(shù)據(jù)線上,此時數(shù)據(jù)并未送入打印機。③再送出一個數(shù)據(jù)選通信號DATASTROBE-(負脈沖),把數(shù)據(jù)線上的數(shù)據(jù)打入到打印機的內部緩沖器。④打印機在收到數(shù)據(jù)后,發(fā)出“忙”(BUSY=1)信號,表明打印機正在處理輸入的數(shù)據(jù)。⑤最后送出一個回答信號ACK-給主機,表示上一個字符已經(jīng)處理完畢。3.設計接口電路的設計包括硬件接口電路和軟件驅動程序兩部分。①打印機接口電路。打印機接口電路原理框圖如圖所示。該電路的設計思路是:按照Centronicss標準對打印機接口信號線的定義,最基本的信號線需要8根數(shù)據(jù)線(DATABIT1~8)1根控制線(STB),1根狀態(tài)線(BUSY)和1根地線。選用8255A的PA口作數(shù)據(jù)口輸出8位打印數(shù)據(jù),工作方式為0方式。8255ACPU

PA0~7PC7PC2地

地BUSYSTBDATA0~7打印機插座8255A并行打印機接口電路框圖結束8255A初始化BUSY=0?送數(shù)送STB內存+1字節(jié)數(shù)-1送完?開始YNYN②接口驅動程序程序DATASEGMENTBUFFDB××××××DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:

MOVAX,DATAMOVDS,AX

假設:端口地址A口:00D0HB口:00D2HC口:00D4H控制口:00D6HMOVDX,00D6H

;8255A命令口MOVAL,10000001B

;工作方式字(81H)OUTDX,AL

;(A口0方式,輸出,C4~C7

輸出,C0~C3輸入)MOVAL,00001111B

;PC7位置高,使STB--=1OUTDX,ALMOVSI,OFFSETBUF

;打印字符內存首地址MOVCX,OFFH

;打印字符個數(shù)MOVDX,00D4H

;PC口地址INAL,DX

;查BUSY=0?(PC2=0)ANDAL,04H;00000100BJNZL

;為1,忙,則等待;不忙,則向A口送數(shù)MOVDX,00D0H

;PA口地址MOVAL,[SI]

;從內存取數(shù)OUTDX,AL

;送數(shù)據(jù)到A口L:MOVDX,00D6H

;8255A命令口MOVAL,00001110B

;置STB-信號為低(PC7=0)OUTDX,ALNOP

;負脈沖寬度(延時)NOPMOVAL,00001111B

;置STB-為高(PC7=1)OUTDX,ALINCSI

;內存地址加1DECCX

;字符數(shù)減1JNZL

;未完,繼續(xù)CODEENDSENDSTART例5、用8255A的PA0~PA2擴展三位按鍵,PB0~PB2驅動三個發(fā)光二極管,要求實現(xiàn)如下功能:K1按下燈全亮,K2按下燈全滅,K3按下燈閃爍,優(yōu)先順序K1>K2>K3.K3K2K1PA0PA1PA2PB0PB1PB2+5V8255A8086CPU設8255A端口地址0340H~0346H

MOVAL,91H;10010001,A口方式0輸入,B口方式0輸出

MOVDX,0346H OUTDX,AL;寫控制字

MOVDX,0340H INAL,DX;讀A口內容

NOTAL ANDAL,07H;保留PA0~PA2 RORAL,1 JCDLL;K1=1,調燈亮 RORAL,1 JCDMM;K2=1,調燈滅

RORAL,1 JCDSS;K3=1,調燈閃爍

RETMOVDX,0342HMOVAL,00HOUTDX,AL;RETDLL:MOVDX,0342HMOVAL,07HOUTDX,AL;RETMOVDX,0342HMOVAL,07HOUTDX,ALCALLDO5S;調用延時5秒MOVAL,00HOUTDX,ALCALLDO5S;調用延時5秒RETDMM:DMM:例六在甲乙兩臺微機之間并行傳送1K字節(jié)數(shù)據(jù)。甲機發(fā)送,乙機接收。甲機一側的8255A采用1方式工作,乙機一側的8255A采用0方式工作。兩機的CPU與接口之間都采用查詢方式交換數(shù)據(jù)。分析雙機均采用可編程并行接口芯片8255A構成接口電路,只是8255A的工作方式不同。此時,雙方的8255A把對方視為I/O設備。設計(1)硬件連接根據(jù)上述要求,接口電路的連接如圖所示。(2)軟件編程接口驅動程序及甲機發(fā)送程序段0方式1方式8255APA0~7PC7PC3PC4~6PC0~2PB0~7PA0~7PC7PC6PC3PC0~2、4~5PB0~7未用8255A甲(發(fā)送)CPU乙(接收)CPUACKOBF兩種方式的并行傳送接口電路框圖甲機發(fā)送程序段:MOVDX,203H;8255A命令口MOVAL,10100000B;初始化工作方式字OUTDX,ALMOVAL,00001101B;置發(fā)送中斷允許INTEA=1OUTDX,AL;PC6=1MOVSI,OFFSETBUFS;設置發(fā)送數(shù)據(jù)區(qū)的指針MOVCX,3FFH;發(fā)送字節(jié)數(shù)MOVDX,200H;向A口寫第一個數(shù),產(chǎn)生第一

;個OBF-信號MOVAL,[SI];送給乙方,以便獲取乙方的ACK-信號OUTDX,ALINCSI;內存地址加1DECCX;傳送字節(jié)數(shù)減1L:MOVDX,202H;8255A狀態(tài)口

INAL,DX;查發(fā)送斷請求INTRA=1?

ANDAL,08H;PC3=1?

JZL;若無中斷請求,則等待;;若有中斷請求,則向A口寫數(shù)

MOVDX,200H;8255APA口地址

MOVAL,[SI];從內存取數(shù)

OUTDX,AL;通過A口向乙機發(fā)送第二個數(shù)據(jù)

INCSI;內存地址加1DECCX;字節(jié)數(shù)減1JNZL;字節(jié)未完,繼續(xù)

MOVAH,4CH;已完,退出

INT21H;返回

BUFSDB1024個數(shù)據(jù)例7使用的8255A以方式2工作作主、從CPU之間的接口。INTRPA7-PA0OBFAIBF

溫馨提示

  • 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

提交評論