貴州大學(xué)微機(jī)原理PPT及復(fù)習(xí)PPT微機(jī)55_第1頁
貴州大學(xué)微機(jī)原理PPT及復(fù)習(xí)PPT微機(jī)55_第2頁
貴州大學(xué)微機(jī)原理PPT及復(fù)習(xí)PPT微機(jī)55_第3頁
貴州大學(xué)微機(jī)原理PPT及復(fù)習(xí)PPT微機(jī)55_第4頁
貴州大學(xué)微機(jī)原理PPT及復(fù)習(xí)PPT微機(jī)55_第5頁
已閱讀5頁,還剩38頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第7章典型可編程接口芯片及應(yīng)用

7.1可編程中斷控制器芯片8259

7.2可編程定時/計數(shù)器芯片8254

7.4串行通信和串行接口芯片8251

7.3可編程并行接口芯片82557.3可編程并行接口7.3.1可編程并行接口芯片8255A第7章典型可編程接口芯片及應(yīng)用并行通信—n位數(shù)據(jù)用n條線同時傳輸。具有速度快,效率高的特點(diǎn)。適于短距離、高速通信。74LS244,273都是簡單的并行接口。并行接口連接CPU與并行外設(shè),實(shí)現(xiàn)兩者間的并行通信,在信息傳送過程中,起到輸出鎖存或輸入緩沖的作用。Intel系列的8位并行接口芯片8255A通用性強(qiáng),使用靈活,可用程序設(shè)置和改變芯片的工作方式,是一種典型的可編程并行接口芯片。8255APA3PA2PA1PA0RDCSGNDA1A0PC7PC6PC5PC4PC3PC2PC1PC0PB0PB1PB2PA4PA5PA6PA7WRRESETD0D1D2D3D4D5D6D7VccPB7PB6PB5PB4PB3第7章典型可編程接口芯片及應(yīng)用resetD7~D0A9~A2A1A0IORIOW片選譯碼數(shù)據(jù)緩沖器讀寫控制片內(nèi)譯碼CSRESETA1A0RDWRPC7~PC0PB7~PB0PA7~PA0控制口D端口A端口C端口B+5VGNDD7~D0外設(shè)8255A總線第7章典型可編程接口芯片及應(yīng)用一、8255的內(nèi)部結(jié)構(gòu)1.端口(1)端口A(PA7~PA0):由一個8位數(shù)據(jù)輸入鎖存器和一個8位數(shù)據(jù)輸出鎖存器及緩沖器組成,可工作于雙向方式。(2)端口B(PB7~PB0):

由一個8位數(shù)據(jù)輸入緩沖器和1個8位數(shù)據(jù)輸出鎖存緩沖器構(gòu)成。(3)端口C(PC7~PC0):

由一個8位數(shù)據(jù)輸入緩沖器和一個8位數(shù)據(jù)輸出鎖存緩沖器構(gòu)成。C口可分為兩個部分,配合A口和B口工作。在與不需要控制聯(lián)絡(luò)的外設(shè)連接時,A、B、C口均可做輸入輸出。在與需要控制聯(lián)絡(luò)的外設(shè)連接時,C口分為兩部分,做A、B口的控制信號。第7章典型可編程接口芯片及應(yīng)用2.A組控制和B組控制接收CPU控制字,決定8255工作方式。A組控制A端口和C端口的上半部,

B組控制B端口和C端口下半部。3.讀寫控制邏輯

由RD,WR,CS,A0,A1和RESET組成,8255占用4個端口地址。RESET:高電平使8255復(fù)位,控制Reg清0,把A,B,C三個端口都設(shè)置為輸入方式。4.數(shù)據(jù)總線緩沖器

8位雙向數(shù)據(jù)緩沖器,可直接與數(shù)據(jù)總線相連。二、8255PIN功能40個引腳雙列直插的NMOS器件1.與外設(shè)連接引腳PA7~PA0:端口A的數(shù)據(jù)線,雙向,三態(tài)輸出。

PB7~PB0:端口B的數(shù)據(jù)線,可輸入,也可輸出。PC7~PC0:端口C的數(shù)據(jù)線,可輸入,也可輸出,也可做A口或B口的控制信號線。第7章典型可編程接口芯片及應(yīng)用2.和CPU連接PIN

D7~D0:數(shù)據(jù)線,與系統(tǒng)總線連接。RD:讀信號,輸入,低電平有效,從8255A讀取數(shù)據(jù)。WR:寫信號,輸入,低電平有效,把數(shù)據(jù)寫入8255。CS:片選信號,輸入,低電平有效,決定芯片地址。A0,A1:端口選擇信號,8255占四個端口地址。RESET:復(fù)位信號,輸入,高電平有效。復(fù)位后清所有內(nèi)部寄存器。3.8255端口選擇第7章典型可編程接口芯片及應(yīng)用8255A與計算機(jī)連接說明:(1)8255的數(shù)據(jù)線D7~D0接8086系統(tǒng)的數(shù)據(jù)線的低8位。(2)8255的A0接8086的A1,8255的A1接8086的A2,使用偶地址傳遞信息。(3)端口地址第7章典型可編程接口芯片及應(yīng)用三、8255A的控制字和工作方式(一)8255A的控制字(分為兩類)1.方式控制字送控制口,以選擇A、B和C口的工作方式。說明:(見圖)(1)8255A有三種工作方式,每種方式都可以輸入也可以輸出。方式0:基本輸入輸出——不用聯(lián)絡(luò)信號,不用中斷方式傳送。通常為無條件或查詢方式傳送。方式1:選通輸入輸出——C口提供固定的聯(lián)絡(luò)信號,用中斷或查詢方式傳送。方式2:雙向方式——即可入,又可出。是方式1的組合。(2)A口有三種工作方式,B口僅有方式0和方式1工作方式。(3)在方式1和方式2中,C口某些位作為聯(lián)絡(luò)信號,以適應(yīng)CPU與外設(shè)間的各種數(shù)據(jù)傳送方式的要求,如查詢傳送的應(yīng)答信號、中斷傳送的中斷申請信號等;C口未被用作聯(lián)絡(luò)信號的其它位可工作在方式0。第7章典型可編程接口芯片及應(yīng)用2.端口C按位置/復(fù)位控制字說明:(1)寫入8255的控制口。(2)該控制字僅對8255的端口輸出鎖存器操作。

這一功能可使8255作為位控接口,來實(shí)現(xiàn)對外設(shè)的按位控制。例:利用位復(fù)位和位置位可使端口C某位產(chǎn)生方波。

MOVCX,0FHLOP: OUTPORT-CL,0AH ;送0 CALLDELAY OUTPORT-CL,0BH;送1

CALLDELAY LOOPLOP RET 向PC5送0電平

延時向PC5送1電平方波個數(shù)到?

延時第7章典型可編程接口芯片及應(yīng)用(二)8255A的工作方式1.方式0—基本輸入輸出方式(1)

端口A、B和C(PC7~PC4及PC3~PC0)都可工作于輸入或輸出。三個端口無必然聯(lián)系,各端口輸入輸出組合共有16種,可適用于多種用途。(2)對C口,其高低4位兩部分可相同(同為輸入或輸出)也可不同。但對端口8位的讀寫是在一條指令中作為整體來操作,可采用以下措施:CPU高4低4

IN入 出 必須屏蔽低四位IN出 入 必須屏蔽高四位IN入 入 讀入的8位均有用OUT入 出 輸出數(shù)據(jù)只設(shè)在低4位OUT出 入 輸出數(shù)據(jù)只設(shè)在高4位OUT出 出 輸出8位數(shù)據(jù)(3)CPU與外設(shè)采用無條件入/出,不用聯(lián)絡(luò)線,也不需要查詢。(4)方式0也可用于查詢傳送的場合,這時可令A(yù)、B口為數(shù)據(jù)口,C口做與外設(shè)的聯(lián)絡(luò)信號,A、B、C配合即可工作在查詢場合。(5)方式0下輸入不鎖存,輸出鎖存。CPU對數(shù)據(jù)口的輸入指令讀取端口當(dāng)前信息,

對數(shù)據(jù)口的輸出指令把數(shù)據(jù)輸出到端口輸出鎖存器。第7章典型可編程接口芯片及應(yīng)用例1:8255A與系統(tǒng)的連線如下,片選譯碼地址為F0~F3h1)確定各端口地址;2)編程設(shè)置8255A:A組方式0,A口輸入,PC7~PC4輸出

B組方式0,B口輸出,PC3~PC0輸入resetD7~D0A9~A2A1A0IORIOW片選譯碼數(shù)據(jù)緩沖器讀寫控制片內(nèi)譯碼RESETA1A0PC7PC0PB7PB0控制口D端口A端口C端口B+5VGNDD7~D0外設(shè)RDWRCSPA7PA0F0~F3h第7章典型可編程接口芯片及應(yīng)用最后得出結(jié)論:

A口地址為

F0H

B口地址為

F1H

C口地址為

F2H

D口地址為F3H1)確定端口地址由8255A結(jié)構(gòu)知:由8255A的CS與系統(tǒng)總線的連線知,地址在F0~F3h可使CS有效,故:4個端口的地址在F0~F3h中。結(jié)合8255A與系統(tǒng)總線的連線:

A7

A6

A5

A4

A3

A2

A1

A0

F0H

1

1

1

1

0

0

0

0

A口F1H

1

11

1

0

0

0

1

B口F2H

1

1

1

1

0

0

1

0

C口F3H

1

1

1

1

0

0

1

1

D口

CSA1A0

8255A總線第7章典型可編程接口芯片及應(yīng)用2)確定方式控制字10010001D7D6D5D4D3D2D1D0特征位A組方式0A口輸入PC7~PC4輸出B組方式0B口輸出PC3~PC0輸入所以,方式控制字為

10010001B,即91H

要求設(shè)置:A口方式0輸入,PC7~PC4輸出

B口方式0輸出,PC3~PC0輸入設(shè)置方式控制字的程序段為:MOVDX,

0F3H

;控制口地址MOVAL,

91H

;方式控制字OUTDX,AL或

MOVAL,

91H

;方式控制字OUT

0F3H,AL第7章典型可編程接口芯片及應(yīng)用tRD數(shù)據(jù)有效tDFtRAtHRtRRtIRtARRD輸入數(shù)據(jù)CS,A1,

A0D7--D0方式0輸入(INAL,PORT)時序第7章典型可編程接口芯片及應(yīng)用數(shù)據(jù)有效tWAtWWtAWWR輸出數(shù)據(jù)CS,A1,A0D7--D0tDW數(shù)據(jù)有效tWDtWB方式0輸出(OUTPORT,AL)時序第7章典型可編程接口芯片及應(yīng)用2.方式1—選通輸入輸出方式方式1端口A和B輸入/輸出數(shù)據(jù)時,必須利用端口C提供聯(lián)絡(luò)信號(選通、應(yīng)答信號)。

一般情況下,用中斷傳送數(shù)據(jù)方式(也可用查詢方式)這時:通道A:8位數(shù)據(jù)端口(A口),3位控制位(C口)。通道B:8位數(shù)據(jù)端口(B口),3位控制位(C口)。

這種配合固定,不可以用程序修改。

特點(diǎn):

①端口A、B既可做輸入又可做輸出,數(shù)據(jù)輸入輸出都被鎖存。②端口C引腳分別作為控制、狀態(tài)和中斷申請信號等。③若只有一個端口工作在方式1,則余下13位可工作在方式0。若兩個端口都工作在方式1,則余下2位可由程序指定為輸入或輸出。端口A、B工作于方式1的輸入或輸出時,端口C聯(lián)絡(luò)信號的引腳和意義都不同,故以下分開討論。第7章典型可編程接口芯片及應(yīng)用1011A口方式1輸入控制字111B口方式1輸入控制字PA7~PA0PC4PC5PC3INTEAPC4與門IBFASTBAINTRARDD7~D0A口方式1輸入時相應(yīng)的聯(lián)絡(luò)信號PB7~PB0PC2PC1PC0INTEBPC2與門RDD7~D0IBFBSTBBINTRBB口方式1輸入時相應(yīng)的聯(lián)絡(luò)信號(1)選通輸入方式信號說明:

a.STB選通輸入:低電平有效,表示外設(shè)送出新的數(shù)據(jù)。b.IBF輸入緩沖區(qū)滿:輸出,高電平有效。通知外設(shè)輸入緩沖區(qū)滿,不要送新數(shù)據(jù),由CPU讀取數(shù)據(jù)時(RD的上升沿)清除。c.INTR中斷請求信號:輸出,高電平有效,可向CPU申請中斷。第7章典型可編程接口芯片及應(yīng)用1011A口方式1輸入控制字111B口方式1輸入控制字PA7~PA0PC4PC5PC3INTEAPC4與門IBFASTBAINTRARDD7~D0A口方式1輸入時相應(yīng)的聯(lián)絡(luò)信號PB7~PB0PC2PC1PC0INTEBPC2與門RDD7~D0IBFBSTBBINTRBB口方式1輸入時相應(yīng)的聯(lián)絡(luò)信號STB、IBF、INTE均為1時,8255A自動發(fā)出INTR。d.INTE中斷允許:INTEA是C口輸出鎖存器的PC4,INTEB是C口輸出鎖存器的PC2,由它們分別控制A口和B口的中斷申請。INTE=1中斷允許,

INTE=0禁止中斷。(可由C口置/復(fù)位控制字將INTE置1或復(fù)位為0)第7章典型可編程接口芯片及應(yīng)用PB7~PB0PA7~PA0STBIBFINTRRD外設(shè)送來數(shù)據(jù)②③當(dāng)INTE=1時

①方式1的輸入時序:從工作在方式1下的輸入端口輸入數(shù)據(jù)時,有關(guān)信號的變化關(guān)系。RDD7~D0PA7~PA0PC4PC5PC3INTEAPC4與門IBFSTBINTR第7章典型可編程接口芯片及應(yīng)用PA7~PA0PB7~PB0STBIBFINTRRD外設(shè)送來數(shù)據(jù)②當(dāng)INTE=1時

③①RDD7~D0PA7~PA0PC4PC5PC3INTEAPC4與門IBFSTBINTR①當(dāng)外設(shè)數(shù)據(jù)準(zhǔn)備好,將數(shù)據(jù)送至端口線PA7~PA0或PB7~PB0②外設(shè)發(fā)出選通信號STB:(1)將數(shù)據(jù)鎖存在輸入端口內(nèi)。(2)使IBF變高,表示輸入端口滿,可用于阻止外設(shè)輸入新數(shù)據(jù)(3)如果INTE=1,STB的上升沿使INTR變高,發(fā)出中斷請求。③中斷處理程序中CPU讀取數(shù)據(jù),發(fā)出RD信號:(1)RD的下降沿清除INTR(2)RD的上升沿清除IBF(3)端口內(nèi)的數(shù)據(jù)進(jìn)入CPU以中斷方式輸入數(shù)據(jù):第7章典型可編程接口芯片及應(yīng)用1011A口方式1輸入控制字111B口方式1輸入控制字PA7~PA0PC4PC5PC3INTEAPC4與門IBFASTBAINTRARDD7~D0A口方式1輸入時相應(yīng)的聯(lián)絡(luò)信號PB7~PB0PC2PC1PC0INTEBPC2與門RDD7~D0IBFBSTBBINTRBB口方式1輸入時相應(yīng)的聯(lián)絡(luò)信號注意:在方式1下,作為聯(lián)絡(luò)信號的外部引腳PC4、PC2,不受C口按位置位/復(fù)位控制字控制,即對這些位的置位/復(fù)位不影響這些引腳信號的輸入/輸出,而只在8255A內(nèi)部對INTE信號起作用。第7章典型可編程接口芯片及應(yīng)用PA7~PA0PB7~PB0STBIBFINTRRD外設(shè)送來數(shù)據(jù)②當(dāng)INTE=1時

③①RDD7~D0PA7~PA0PC4PC5PC3INTEAPC4與門IBFSTBINTR①當(dāng)外設(shè)數(shù)據(jù)準(zhǔn)備好,將數(shù)據(jù)送至端口線PA7~PA0或PB7~PB0②

外設(shè)發(fā)出選通信號STB:(1)將數(shù)據(jù)鎖存在輸入端口內(nèi)。(2)使IBF變高,表示輸入端口滿,可用于阻止外設(shè)輸入新數(shù)據(jù)③在主程序中CPU查詢IBF,若其為高電平,讀取數(shù)據(jù),發(fā)出RD信號:

(1)RD的上升沿清除IBF(2)端口內(nèi)的數(shù)據(jù)進(jìn)入CPU以查詢方式輸入數(shù)據(jù):

查詢方法從8255的A口向CPU輸入數(shù)據(jù):

方式1的狀態(tài)信號可通過讀取端口C得到

INPUT: IN AL,PortC ;讀方式1狀態(tài)信號 TEST AL,20H ;查A口的IBF JE INPUT ;IBF=0,數(shù)據(jù)未準(zhǔn)備好。 IN AL,PortA ;IBF≠0,CPU讀入數(shù)據(jù)。第7章典型可編程接口芯片及應(yīng)用PA7~PA0PB7~PB0STBIBFINTRRD外設(shè)送來數(shù)據(jù)②當(dāng)INTE=1時

③①RDD7~D0PA7~PA0PC4PC5PC3INTEAPC4與門IBFSTBINTR注意:方式1輸入時共用到C口6個引腳,剩余2個引腳PC6、PC7可做I/O位,或由C口置/復(fù)位控制字決定其輸出。第7章典型可編程接口芯片及應(yīng)用A口方式1輸出時相應(yīng)的聯(lián)絡(luò)信號1010A口方式1輸出控制字110B口方式1輸出控制字PA7~PA0PC6PC7PC3INTEAPC6與門OBFAACKAINTRAWRD7~D0PB7~PB0PC2PC1PC0INTEBPC2與門WRD7~D0OBFBACKBINTRBB口方式1輸出時相應(yīng)的聯(lián)絡(luò)信號(2)選通輸出方式信號說明:

a.OBF輸出緩沖器滿,輸出,低電平有效,通知外設(shè)端口已有可用數(shù)據(jù)。b.ACK收到信號,輸入,低電平有效。外設(shè)通知8255已取走數(shù)據(jù),由其清除OBF,并置“1”INTR。c.INTR中斷請求信號,輸出,高電平有效,可向CPU申請中斷。第7章典型可編程接口芯片及應(yīng)用A口方式1輸出時相應(yīng)的聯(lián)絡(luò)信號1010A口方式1輸出控制字110B口方式1輸出控制字PA7~PA0PC6PC7PC3INTEAPC6與門OBFAACKAINTRAWRD7~D0PB7~PB0PC2PC1PC0INTEBPC2與門WRD7~D0OBFBACKBINTRBB口方式1輸出時相應(yīng)的聯(lián)絡(luò)信號OBF、ACK、INTE均為1時,8255A自動發(fā)出INTR。d.INTE中斷允許信號:INTEA為C口輸出鎖存器的PC6,INTEB為C口輸出鎖存器的PC2。由它們分別控制A口和B口的中斷申請。INTE=1中斷允許,INTE=0禁止中斷。(可由C口置/復(fù)位控制字將INTE置1或復(fù)位為0)第7章典型可編程接口芯片及應(yīng)用方式1的輸出時序:向工作在方式1下的輸出端口輸出數(shù)據(jù)時,有關(guān)信號的變化關(guān)系。PA7~PA0PC6PC7PC3INTEAPC6與門OBFAACKAINTRAWRD7~D0①D7~D0送往外設(shè)數(shù)據(jù)數(shù)據(jù)寫入端口WROBFINTRACK②③當(dāng)INTE=1時

第7章典型可編程接口芯片及應(yīng)用以中斷方式輸出數(shù)據(jù):①CPU輸出數(shù)據(jù)②CPU發(fā)出WR:(1)數(shù)據(jù)寫到8255A的端口(2)使OBF有效,表示輸出端口滿,可作為外設(shè)的選通信號,通知外設(shè)取數(shù)據(jù)。(3)清除中斷請求信號INTR③

外設(shè)接受到數(shù)據(jù)后,發(fā)出ACK信號:(1)ACK的下降沿使OBF變高,(2)當(dāng)INTE=1,ACK的上升沿使INTR變高,發(fā)出中斷請求,請求CPU輸出新的數(shù)據(jù)。PA7~PA0PC6PC7PC3INTEAPC6與門OBFAACKAINTRAWRD7~D0WROBFACK當(dāng)INTE=1時

送往外設(shè)數(shù)據(jù)數(shù)據(jù)寫入端口②③①INTR第7章典型可編程接口芯片及應(yīng)用注意:在方式1下,作為聯(lián)絡(luò)信號的外部引腳PC6、PC2,不受C口按位置位/復(fù)位控制字控制,即對這些位的置位/復(fù)位不影響這些引腳信號的輸入/輸出,而只在8255A內(nèi)部對INTE信號起作用。A口方式1輸出時相應(yīng)的聯(lián)絡(luò)信號1010A口方式1輸出控制字110B口方式1輸出控制字PA7~PA0PC6PC7PC3INTEAPC6與門OBFAACKAINTRAWRD7~D0PB7~PB0PC2PC1PC0INTEBPC2與門WRD7~D0OBFBACKBINTRBB口方式1輸出時相應(yīng)的聯(lián)絡(luò)信號第7章典型可編程接口芯片及應(yīng)用PA7~PA0PC6PC7PC3INTEAPC6與門OBFAACKAINTRAWRD7~D0WROBFACK當(dāng)INTE=1時

送往外設(shè)數(shù)據(jù)數(shù)據(jù)寫入端口②③①INTR

①CPU輸出數(shù)據(jù)

②CPU發(fā)出WR:

(1)數(shù)據(jù)寫到8255A的端口

(2)使OBF有效,表示輸出端口滿,可作為外設(shè)的選通信號,通知外設(shè)取數(shù)據(jù)。

外設(shè)接受到數(shù)據(jù)后,發(fā)出ACK信號:(1)ACK的下降沿使OBF變高,

(2)在主程序中CPU查詢OBF,若其為高電平,數(shù)據(jù)已取走,端口可接受新的數(shù)據(jù)。以查詢方式輸出數(shù)據(jù):第7章典型可編程接口芯片及應(yīng)用PA7~PA0PC6PC7PC3INTEAPC6與門OBFAACKAINTRAWRD7~D0WROBFACK當(dāng)INTE=1時

送往外設(shè)數(shù)據(jù)數(shù)據(jù)寫入端口②③①INTR注意:方式1輸出時共用到C口6個引腳,剩余2個引腳PC4、PC5可做I/O位,或由C口置/復(fù)位控制字決定其輸出。

查詢方法向8255的A口輸出數(shù)據(jù):

方式1的狀態(tài)信號可通過讀取端口C得到

OUTPUT: IN AL,PortC ;讀方式1狀態(tài)信號 TEST AL,80H ;查A口的OBF,設(shè)備空閑? JE OUTPUT ;OBF=0,不空,等待。 MOV AL,DATAS OUT PortA,AL ;OBF≠0,CPU輸出數(shù)據(jù)。第7章典型可編程接口芯片及應(yīng)用3.方式2—雙向方式僅A口有此方式

(1)與方式0、方式1的單向傳送不同,工作在方式2下的端口,具有雙向傳送功能。(2)端口工作在方式2時,C口的某5根引腳作為端口的聯(lián)絡(luò)信號;

是方式1下A口輸入、輸出聯(lián)絡(luò)信號的組合(見下頁圖)。

(3)C口未做聯(lián)絡(luò)信號的3條引腳,可作為B口在方式1下的聯(lián)絡(luò)線,也可和B口一樣工作在方式0。由方式控制字決定其輸入/輸出。(4)方式2下的時序?yàn)榉绞?輸入/輸出兩者的組合(略)。關(guān)于8255中斷允許/禁止的設(shè)定:例:A口INTE=1→PC4=1(方式1,2)輸入

orB口INTE=1→

PC2=1(方式1)輸入

MOV AL,09H寫入控制口OUT63H,AL

這時的位操作只影響INTE的狀態(tài),而不影響PC4引腳的狀態(tài)。1001000010100000第7章典型可編程接口芯片及應(yīng)用PA7~PA0PC6PC7ACKAOBFAD7~D0RDWRPC4PC5STBAIBFAINTEA1PC4INTEA2PC6與門PC3INTRA或門與門工作在方式2時,C口有5根引腳作為A口的聯(lián)絡(luò)信號,是方式1下A口輸入、輸出聯(lián)絡(luò)信號的組合。方式2下的時序?yàn)榉绞?輸入/輸出兩者的組合(略)。第7章典型可編程接口芯片及應(yīng)用四、8255A應(yīng)用舉例例:由8255A的A口輸出控制一位共陽極數(shù)碼管,由C口的PC7~PC4輸入接入四位DIP開關(guān)的設(shè)置,根據(jù)開關(guān)設(shè)置值,在數(shù)碼管上顯示字型。1.數(shù)碼管LED數(shù)碼管由8個發(fā)光二極管組成七段數(shù)碼和小數(shù)點(diǎn),結(jié)構(gòu)如圖所示。

2.硬件連接第7章典型可編程接口芯片及應(yīng)用3.程序(1)8255初始化控制字:88H(2)十六進(jìn)制到字型碼采用軟件譯碼方式。(3)程序PORTAEQU60HPORTBEQU62HPORTCEQU64HPCTRLEQU66HSH_TABDB0C0H,…;字型表DISPROCMOVAL,88HOUTPCTRL,AL;初始化8255

INAL,PORTC;讀開關(guān)狀態(tài)

MOVCL,4SHRAL,CL;轉(zhuǎn)成低4位LEABX,SH_TABXLATSH_TAB;查表

OUTPORTA,AL;顯示輸出

RETDISENDP第7章典型可編程接口芯片及應(yīng)用一、打印機(jī)的主要接口信號與時序D7~D0:數(shù)據(jù)總線,雙向、三態(tài)。

STB:數(shù)據(jù)選通觸發(fā)脈沖(輸入),打印機(jī)在其上升沿讀入數(shù)據(jù)。

ACK:應(yīng)答脈沖(輸出),“低”表示數(shù)據(jù)已被打印機(jī)接受、而且打印機(jī)準(zhǔn)備好接收下一數(shù)據(jù)。常用作打印機(jī)的中斷申請信號。BUSY

:“高”表示打印機(jī)正“忙”(輸出),不能接收數(shù)據(jù),通常用作狀態(tài)信號供CPU查詢。打印機(jī)的基本時序如圖所示。

7.3.2并行打印機(jī)接口8255PA0-7PC7PC0打印機(jī)D0-7BUSYSTB第7章典型可編程接口芯片及應(yīng)用(2)查詢方式打印字符串

端口A作為數(shù)據(jù)通道,方式0、輸出;由PC7讀入BUSY狀態(tài)、PC0輸出STB脈沖,

C口工作在方式0,上半部輸入、下半部輸出;

8255PA0-7PC7PC0打印機(jī)D0-7BUSYSTB設(shè)8255端口地址為280H、281H、282H和283H。打印子程序如下:BUF DB‘HELLO!’ DB 0DH ;回車

DB 0AH ;換行NUM EQU$-BUF :PRINTPROCFAR :第7章典型可編程接口芯片及應(yīng)用 MOVDX,283H ;8255初始化:均為方式0

MOVAL,10001000B;A口輸出,C上半輸入、下半輸出

OUTDX,AL MOVAL,00000001B ;控制口,初始PC0即STB=1

OUTDX,AL MOVSI,OFFSETBUF MOVCX,NUMNEXT:MOVDX,282H ;從C口讀入數(shù)據(jù),查PC7 INAL,DX

TESTAL,80H JNZNEXT ;BUSY=1(忙)?,忙則去NEXT MOVAL,[SI] ;不忙,送下一個數(shù)據(jù) INCSI MOVDX,280H OUTDX,AL MOVDX,283H MOVAL,00000000B;STB=0 OUTDX,AL NOP

MOVAL,00000001B OUTDX,AL ;STB=1 LOOPNEXT RETPRINTENDP第7章典型可編程接口芯片及應(yīng)用三、中斷方式打印字符串

中斷方式打印時,8255A與打印機(jī)的基本接口如圖。

端口A作為數(shù)據(jù)通道,工作在方式1、輸出。PC6

自動作為ACK信號輸入端;

PC3自動作為INTR信號輸出端,連接至8259的IRQ2(中斷類型碼0AH,對應(yīng)的中斷向量放在0000:0028H~0000:002BH的4個單元中);打印機(jī)需要的數(shù)據(jù)選通信號由CPU控制PC0來產(chǎn)生。

這時PC7未用,故將其懸空。PA7~PA0PC6PC7PC3INTEAPC6與門OBFAACKAINTRAWRD7~D0

8255PA0-7(ACKA)PC6PC0(INTRA)PC3

打印機(jī)D0-7ACKSTB8259的IRQ2第7章典型可編程接口芯片及應(yīng)用三、中斷方式打印字符串

PA7~PA0PC6PC7PC3INTEAPC6與門OBFAACKAINTRAWRD7~D0WROBFACK當(dāng)INTE=1時

送往外設(shè)數(shù)據(jù)數(shù)據(jù)寫入端口②③①INTRSTB:數(shù)據(jù)選通觸發(fā)脈沖(輸入),打印機(jī)在其上升沿讀入數(shù)據(jù)。

ACK:應(yīng)答脈沖(輸出),“低”表示數(shù)據(jù)已被打印機(jī)接受、而且打印機(jī)準(zhǔn)備好接收下一數(shù)據(jù)。常用作打印機(jī)的中斷申請信號。第7章典型可編程接口芯片及應(yīng)用

工作過程為:(1)設(shè)數(shù)據(jù)放在輸出緩沖區(qū),輸出字符時,CPU通過對PC0置1/置0命令使其輸出選通脈沖,把端口A的數(shù)據(jù)送到打印機(jī)。(2)打印機(jī)接收并打印字符后,發(fā)出ACK回答信號,此信號清除8255A的OBF信號(此處未用),并使8255A產(chǎn)生新的中斷請求。(3)如果CPU的中斷是開放的,則響應(yīng)中斷,進(jìn)入中斷服務(wù)子程序,再輸出一個新的字符。

設(shè)8255A端口地址仍為280H~283H。程序如下:

IRQ EQU 0AH ;IRQ2IMR1 EQU0FBHIMR2 EQU04HBUF DB‘HELLO!’ DB0DH,0AH ;回車,換行NUM EQU$-BUFBUFPT DW? ;保存打印緩沖區(qū)當(dāng)前指針BUF_NDBNUM ;打印字符計數(shù)器 :第7章典型可編程接口芯片及應(yīng)用PRI_INIPROCFAR ;初始化子程序

CLI MOVDX,283H;8255初始化:A口方式1、輸出,

MOVAL,10100000B;B口方式0,C口下半部輸出(輸出PC0)

OUT

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論