第8章 可編程接口芯片及其與CPU的接口_第1頁
第8章 可編程接口芯片及其與CPU的接口_第2頁
第8章 可編程接口芯片及其與CPU的接口_第3頁
第8章 可編程接口芯片及其與CPU的接口_第4頁
第8章 可編程接口芯片及其與CPU的接口_第5頁
已閱讀5頁,還剩62頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

第八章可編程接口芯片及其與CPU的接口8.1可編程并行輸入/輸出接口芯片8255A8.2可編程計數(shù)器/定時器82548.3可編程串行輸入/輸出接口芯片8251A8.1可編程并行輸入/輸出接口芯片8255A8.1.18255A的內(nèi)部結(jié)構(gòu)

8.1.28255A的引腳分配

一、與外設(shè)聯(lián)系的引腳

A口有PA0~PA78個引腳,同樣B口和C口均有PB0~PB7,PC0~PC78個引腳。

二、與CPU聯(lián)系的引腳數(shù)據(jù)和命令通道線D0~D7,讀/寫控制引腳RD、WR、CS、A0,A1,RESET。三、端口地址控制引腳

CSA1A0端口

000A口地址

001B口地址

010C口地址

011控制端口地址8.1.38255A的工作方式及編程

一、8255A的工作方式

1、方式0(基本輸入/輸出方式)

2、方式1(選通輸入/輸出方式)

3、方式2(雙向傳送方式)各端口可工作的方式:

A口:方式0、方式1、方式2B口:方式0、方式1C口:方式0二、8255A的控制字

1、方式控制字

D7D6D5D4D3D2D1D0B組C口低半字節(jié):1-輸入,0-輸出B口:1-輸入,0-輸出

方式選擇:0-方式0,1-方式1A組C口高半字節(jié):1-輸入,0-輸出A口:1-輸入,0-輸出

方式選擇:

方式控制字標(biāo)志:1-有效00-方式001-方式11X-方式22、C口置“1”/清“0”控制字

D7D6D5D4D3D2D1D0位控:1-置1,0-清0狀態(tài)選中位000001010011100101110111PC0PC1PC2PC3PC4PC5PC6PC7位控字標(biāo)志:0-有效無效8.1.48255A各工作方式的功能及應(yīng)用一、8255A工作在方式0特點:

8255A工作在方式0時,各個端口(包括2個8位端口A、B及2個4位端口C)的輸入、輸出可以有16種不同的組合。在這種方式下,任一個端口都由CPU用簡單的輸入/輸出指令進行讀/寫。不用提供“聯(lián)絡(luò)”信號,適用于各種同步傳送情況。另外,方式0也可用于程序查詢方式來進行數(shù)據(jù)傳送。此時,通常以A口和B口作為數(shù)據(jù)口,而用C口的某些位作為輸入輸出“聯(lián)絡(luò)”信號。注意,輸入“聯(lián)絡(luò)”信號和輸出“聯(lián)絡(luò)”信號不在同一4位C口中。方式0應(yīng)用舉例1(同步情況):例18255A的A口和B口工作在方式0,A口為輸入端口,接有4個開關(guān);B口為輸出端口,接有1個7段發(fā)光二極管,其硬件連接電路如圖所示。試編一程序要求7段發(fā)光二極管顯示開關(guān)所撥通的數(shù)字。分析:

1、端口地址

A口:8020HC口:8024HB口:8022H控制口:8026H2、字符代碼對照表顯示字符7段代碼顯示字符7段代碼

03FH87FH106H96FH25BHA77H34FHb7CH466Hc39H56DHd5EH67DHE79H707HF31H程序:APORTEQU8020HBPORTEQU8022HCONTREQU8026HDATASEGMENTTAB1DB3FH,06H,5BH,4FH,

……DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AX

MOVAL,90H;定義8255A工作方式

MOVDX,CONTROUTDX,ALADDR1:MOVDX,APORT;取開關(guān)值

INAL,DX

ANDAL,0FH;屏蔽高4位

MOVBX,OFFSETTAB1;取代碼表首址

XLAT;找到字符代碼

MOVDX,BPORT;輸出顯示

OUTDX,AL

MOVCX,0400H;顯示延時

ADDR2:DECCX

JNZADDR2

JMPADDR1

MOVAH,4CH

INT21H

CODEENDS

ENDSTART

方式0應(yīng)用舉例2(異步查詢情況):例2如圖所示,假設(shè)8255A端口A,B,C及控制口的地址分別為80H,81H,82H和83H;打印機的選通信號為STB,紙帶讀入機的驅(qū)動信號為DRV,編寫接口程序。程序片段:

MOVAL,83H;8255A初始化

OUT83H,AL;打印機驅(qū)動程序PST:INAL,82HTESTAL,04HJNZPSTMOVAL,BL;若打印數(shù)據(jù)在BL中

OUT80H,AL

MOVAL,0DHOUT83H,AL;選通打印機

DECALOUT83H,AL

;斷開打印機;紙帶讀入機驅(qū)動程序

MOVAL,09HOUT83H,AL

;啟動紙帶讀入機PRT:INAL,82HTESTAL,01HJZPRT;未準(zhǔn)備好,循環(huán)

INAL,81H;準(zhǔn)備好,讀入數(shù)據(jù)

MOVBL,AL

MOVAL,08HOUT83H,AL;斷開紙帶讀入機方式0應(yīng)用舉例3(異步查詢情況):例3利用8255A實現(xiàn)打印機接口,打印BL中的數(shù)據(jù)。打印機工作時序如左圖所示。數(shù)據(jù)接口將數(shù)據(jù)傳送到打印機的數(shù)據(jù)端口,利用一個負脈沖STROBE打入鎖存。這時打印機可發(fā)回答信號ACK,然后由打印機處理。同時打印機送出高電平信號BUSY,表示打印機忙于打印。一旦BUSY變?yōu)榈碗娖?,表示打印結(jié)束,即可接收下一數(shù)據(jù)。請利用8255A工作方式0實現(xiàn)上述打印控制。硬件連接如右圖.根據(jù)連線分析得知4個端口地址依次為:80H,84H,88H,8CH程序如下:MOVAL,10000001BOUT8CH,AL;8255A初始化WAIT:INAL,88H;讀BUSYTESTAL,01HJNZWAIT;BUSY=1等待

MOVAL,BLOUT80H,AL;數(shù)據(jù)輸出

MOVAL,00001110BOUT8CH,AL;PC7置低電平

MOVAL,00001111BOUT8CH,AL;PC7恢復(fù)高電平二、8255A工作在方式1特點:

8255A工作在方式1時,數(shù)據(jù)輸入/輸出操作要在選通信號控制下完成。A口和B口可作為輸入或輸出口,而C口的某些位作為“聯(lián)絡(luò)”信息。和方式0相比,最重要的差別在于C口的這些位與聯(lián)絡(luò)信號有著固定的一一對應(yīng)關(guān)系。A口的聯(lián)絡(luò)信息由C口的PC3~PC7提供,B口的聯(lián)絡(luò)信息由C口的PC0~PC2提供。另外,8255A在方式1下具有中斷能力,可以發(fā)出中斷請求信號,為CPU工作在中斷方式提供了條件。由于輸入接口和輸出接口所需的選通控制不同,下面分別予以介紹。1、選通輸入方式(1)選通輸入方式C口“聯(lián)絡(luò)”信號定義圖2、選通輸出方式(1)選通輸出方式C口“聯(lián)絡(luò)”信號定義圖方式1應(yīng)用舉例1(異步查詢情況):例1在某一系統(tǒng)中接有一個μ80微型打印機,8255A作為輸出接口,工作在選通方式,試編一程序?qū)⒕彌_區(qū)BUFF內(nèi)的400H個字節(jié)的ASCII碼送打印機打印,其接口硬件電路如圖所示。8255A作為打印機接口電路源程序如下:APORTEQU0FFF8HCPORTEQU0FFFCHCONTREQU0FFFEHDATASEGMENTBUFFDB400HDUP(?)DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVCX,400H;字節(jié)長度

MOVAL,0A8H;8255A控制字

MOVDX,CONTROUTDX,ALMOVDI,OFFSETBUFFABC1:MOVAL,[DI];ASCII碼輸出

MOVDX,APORTOUTDX,ALMOVDX,CPORTABC2:INAL,DX;查OBFA信號

ANDAL,80H;OBFA變高了嗎?JZABC2;否;再查ABC3:INAL,DX;查BUSY信號

ANDAL,10H;BUSY變低嗎?JNZABC3;否,再查

INCDI;是,傳送下一個數(shù)

LOOPABC1MOVAH,4CH;返回操作系統(tǒng)

INT21HCODEENDSENDSTART方式1應(yīng)用舉例2(中斷情況):例2利用8255工作方式1實現(xiàn)打印控制。8255A工作在方式1時,PC7作為OBFA輸出端,PC6作為ACKA輸入端,PC3作為INTRA輸出端,其硬件連接如圖所示。設(shè)中斷類型碼為0BH,中斷服務(wù)程序首地址為PRINTER。程序片段設(shè)計如下:

MOVAL,10100000BOUT8CH,AL;初始化

MOVAL,00001101BOUT8CH,AL

;INTEA置1MOVAH,25H;設(shè)置DOS調(diào)用功能號

MOVAL,0BH;設(shè)置類型碼

LEADX,PRINTER;設(shè)置中斷服務(wù)程序偏移地址

MOVBX,SEGPRINTER;設(shè)置中斷服務(wù)程序段地址

MOVDS,BXINT21H;DOS功能調(diào)用,設(shè)置中斷向量

STI;開中斷

……PRINTERPROCFAR;中斷服務(wù)程序

MOVAL,BLOUT80H,AL;輸出打印

IRETPRINTERENDP(參考書)例8.6接口圖如圖9.4所示,設(shè):8259A邊沿觸發(fā),八個中斷類型碼為60~67H。寫出對以內(nèi)存DSR開始連續(xù)10個字節(jié)數(shù)進行打印的匯編程序片段。注:未用的地址線可設(shè)為0。解根據(jù)接口圖,8255A的A、B、C、控制口地址分別為8000H、8002H、8004H、8006H,B口工作在方式1。8259A的地址為8028H和802AH。

;初始化8259AMOVDX,8028HMOVAL,13HOUTDX,AL;ICW1MOCDX,802AHMOVAL,60HOUTDX,AL;ICW2MOVAL,01HOUTDX,AL;ICW4;建立中斷向量表

PUSHDSMOVAX,0MOVDS,AXMOVSI,OFFSETXYMOVDI,SEGXYMOV[018CH],SIMOV[018EH],DIPOPDS;初始化8255AMOVDX,8006HMOVAL,84HOUTDX,ALMOVAL,05HOUTDX,AL;INTE置1

;循環(huán)10次

MOVCX,10LEABX,DSRW:HLTLOOPW……

;中斷服務(wù)程序

XY:MOVAL,[BX]MOVDX,8002HOUTDX,ALINCBXIRET【評注】由于中斷源從8259A的IR3接入,故該中斷源的中斷類型碼為63H,由此計算出中斷向量地址為63H×4=018CH。三、8255A工作在方式2特點:

8255A只有A口可工作在方式2,此時B口可工作在方式0或者方式1。

8255A工作在方式2,CPU通過它與外設(shè)交換數(shù)據(jù)可采用無條件傳送方式,查詢傳送方式或中斷傳送方式。A口設(shè)置為方式2,也就是說從A口既可以輸入數(shù)據(jù),也可以輸出數(shù)據(jù),但某時某刻只能是輸入或輸出。實際上是A口方式1輸入和輸出的組合形式。方式2下C口“聯(lián)絡(luò)”信號定義圖8.2可編程計數(shù)器/定時器82548.2.18254的內(nèi)部結(jié)構(gòu)及功能一、內(nèi)部結(jié)構(gòu)及引腳

端口地址分配:

CSA1A0端口地址

0000#計數(shù)器地址

0011#計數(shù)器地址

0102#計數(shù)器地址

011控制字寄存器地址計數(shù)器的內(nèi)部結(jié)構(gòu)二、功能計數(shù)器方式定時器方式

8.2.28254的編程

設(shè)置控制字(寫入控制寄存器地址)

初始化賦計數(shù)初值(寫入相應(yīng)計數(shù)器地址)包括

讀計數(shù)器內(nèi)容(從相應(yīng)計數(shù)器地址讀出)一、控制字格式

1BCD計數(shù)D7D6D5D4D3D2D1D0SC1SC0RL1RL0M2M1M0BCD0二進制計數(shù)工作方式選擇000

方式0001方式110方式211方式3100方式4101方式5計數(shù)長度選擇00將計數(shù)器中的數(shù)據(jù)鎖存于輸出鎖存器01選擇計數(shù)器低8位讀或?qū)?,?位自動為010選擇計數(shù)器高8位讀或?qū)懀?位自動為011選擇先低后高兩個字節(jié)讀或?qū)懹嫈?shù)器選擇00計數(shù)器001計數(shù)器110計數(shù)器211非法二、對計數(shù)器賦計數(shù)初值控制字寫完后,接著賦計數(shù)初值。計數(shù)初值寫入計數(shù)器的格式必須按照控制字的RL1、RL0的讀寫指示來寫。另外,當(dāng)D0=0時,即選擇二進制計數(shù),計數(shù)初值可在0~FFFFH之間選擇。當(dāng)D0=1時,即選擇BCD碼計數(shù),計數(shù)初值可在0~9999之間選擇。若想擴大計數(shù)范圍,可以將兩個或三個計數(shù)器級連使用。即將一計數(shù)器的OUT信號與另一計數(shù)器的CLK信號相連接。三、讀計數(shù)器的內(nèi)容

8254的讀操作只能讀計數(shù)器的值,而不能讀控制字。若讀16位計數(shù)值,則對該計數(shù)器讀兩次,先讀低8位,再讀高8位。如果在計數(shù)過程中讀計數(shù)器內(nèi)容,則需發(fā)鎖存命令。計數(shù)器的鎖存命令是用一個字節(jié)的最高兩位D7,D6指定要鎖存的計數(shù)器;D5,D4必須為00作為鎖存命令的標(biāo)志。而低4位可為全0。它是控制字的一種特殊形式,所以要把此鎖存命令寫到控制字寄存器中去??梢?,3個計數(shù)器的鎖存命令分別為00H,40H和80H。

四、舉例例1

若要使計數(shù)器1工作在方式0,僅用8位二進制計數(shù),計數(shù)值為128,試對其進行初始化編程。

MOVAL,50HOUT73H,ALMOVAL,80HOUT71H,AL

例2

若要使計數(shù)器0工作在方式1,按BCD碼計數(shù),計數(shù)值為3000,試對其進行初始化編程。

MOVAL,23HOUT73H,ALMOVAL,30HOUT70H,AL

例3若要使計數(shù)器2工作在方式2,按二進制計數(shù),計數(shù)值為1110H,試對其進行初始化編程。

MOVAL,0B4HOUT73H,ALMOVAL,10HOUT72H,ALMOVAL,11HOUT72H,AL

例48254工作方式同上題。要在計數(shù)過程中讀取該計數(shù)器的計數(shù)值。試對其進行初始化編程。

MOVAL,0B4HOUT73H,ALMOVAL,10HOUT72H,ALMOVAL,11HOUT72H,ALMOVBH,20HW:DECBHJNZW

MOVAL,80HOUT73H,AL

INAL,72HMOVCL,AL

INAL,72HMOVAH,ALMOVAL,CL

8.2.38254的工作方式一、方式0主要特點:*方式0的OUT輸出是一次性負方波。*若想再次OUT輸出,必須重寫控制字、計數(shù)值或只寫計數(shù)值。二、方式1主要特點:*方式1的OUT輸出是一次性負方波。*若想再次OUT輸出,只須重新啟動GATE脈沖。三、方式2主要特點:*方式2的OUT輸出是周期性的負脈沖。

例5已知計數(shù)脈沖CLK頻率為2MHZ,要求每10ms產(chǎn)生一次中斷,選用2#計數(shù)器。8253地址70H~73H。分析:1、工作方式的選擇

2、計數(shù)初值的確定

MOVAL,0B4HOUT73H,ALMOVAL,20HOUT72H,ALMOVAL,4EHOUT72H,AL四、方式3主要特點:*方式3的OUT輸出是周期性的方波。(若計數(shù)值n是偶數(shù),則輸出OUT是對稱方波;若計數(shù)值n是奇數(shù),則輸出OUT在(n+1)/2計數(shù)期間保持為高電平,而在(n-1)/2計數(shù)期間保持為低電平。)五、方式4主要特點:*方式4的OUT輸出是一次性負脈沖。*若想再次OUT輸出,須再次寫入計數(shù)值。故又稱軟件觸發(fā)選通方式。六、方式5主要特點:*方式5的OUT輸出是一次性負脈沖。*若想再次OUT輸出,只須再次啟動GATE脈沖。故又稱硬件觸發(fā)選通方式。OUT輸出特性及GATE的區(qū)別OUTGATE方式0一次性負方波電平控制方式1一次性負方波脈沖觸發(fā)方式2周期性負脈沖電平控制方式3周期性正方波電平控制方式4一次性負脈沖電平控制方式5一次性負脈沖脈沖觸發(fā)軟件觸發(fā)硬件觸發(fā)例6某8086系統(tǒng)中有一片8254芯片,利用其通道1完成對外部事件計數(shù),計滿250次向CPU發(fā)出中斷申請;利用2通道輸出頻率為1kHz的方波,試編寫8254的初始化程序,硬件電路如圖所示。

MOVAL,71H;通道1控制字

OUT1EH,AL

MOVAL,0A7H;通道2控制字

OUT1EH,AL

MOVAL,50H;通道1計數(shù)值低8位

OUT1AH,AL

MOVAL,02H;通道1計數(shù)值高8位

OUT1AH,AL

MOVAL,20H;通道2計數(shù)值高8位

OUT1CH,AL例78254通道2接有一發(fā)光二極管,要使發(fā)光二極管以點亮2s,熄滅2s的間隔工作,8254各通道端口地址分別為FFE9H~FFEFH。其電路硬件圖如圖。試編程完成以上工作。MOVDX,0FFEFH;控制字端口地址

MOVAL,65H;通道1控制字

OUTDX,AL

MOVAL,0A7H;通道2控制字

OUTDX,AL

MOVDX,0FFEBH;通道1端口地址

MOVAL,40H;通道1計數(shù)值高8位

OUTDX,AL

MOVDX,0FFEDH;通道2端口地址

MOVAL,10H;通道2計數(shù)值高8位

OUTDX,AL例8有如下接口原理圖。要求發(fā)光二極管L0亮5秒后就熄滅;L1在K1啟動后亮6秒后就熄滅;L2亮4秒滅4秒交替進行。寫出源程序片段。分析:由譯碼電路分析可知,8254芯片計數(shù)器1、計數(shù)器2、計數(shù)器3及控制端口的地址分別為91H,93H,95H,97H。根據(jù)接口圖及題目要求,8254的計數(shù)器0應(yīng)該工作在方式0,計數(shù)初值N0=5000;計數(shù)器1應(yīng)工作在方式1,N1=6000;計數(shù)器2應(yīng)工作在方式3,N2=8000。

MOVAL,21H;初始化計數(shù)器0OUT97H,ALMOVAL,50HOUT91H,AL

MOVAL,63H;初始化計數(shù)器1OUT97H,ALMOVAL,60HOUT93H,AL

MOVAL,0A7H;初始化計數(shù)器2OUT97H,ALMOVAL,80HOUT95H,AL

8.3可編程串行輸入/輸出接口芯片8251A8.3.1串行通訊概述一、串行通訊方式

異步通訊同步通訊1、異步通訊數(shù)據(jù)格式規(guī)定:

(1)字符格式

.起始位、停止位的位數(shù)

.數(shù)據(jù)采用的編碼

.是否奇偶校驗,若要,規(guī)定奇校驗還是偶校驗(2)波特率

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論