第04章并行輸入輸出技術(shù)1_第1頁(yè)
第04章并行輸入輸出技術(shù)1_第2頁(yè)
第04章并行輸入輸出技術(shù)1_第3頁(yè)
第04章并行輸入輸出技術(shù)1_第4頁(yè)
第04章并行輸入輸出技術(shù)1_第5頁(yè)
已閱讀5頁(yè),還剩158頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、第四章 并行輸入/輸出技術(shù)4.1 并行接口基本概念并行接口基本概念 4.2 簡(jiǎn)單并行簡(jiǎn)單并行I/O接口接口 8212 4.3 可編程并行可編程并行I/O接口接口 8255A 目錄4.1 并行接口基本概念并行接口基本概念 1. 并行接口并行接口 并行通信由并行接口來(lái)完成的,在并行數(shù)據(jù)傳輸中并行接口連接CPU與并行外設(shè)的通道,并行接口中各位數(shù)據(jù)都是并行傳輸?shù)?,它以字?jié)(或字)為單位與I/O設(shè)備或被控對(duì)象進(jìn)行數(shù)據(jù)交換。并行通信以同步方式傳輸,其特點(diǎn)是:傳輸速度快;傳輸速度快;硬件開銷大;硬件開銷大;只適合近距離傳輸。只適合近距離傳輸。4.1并行接口概念基本結(jié)構(gòu)接口電路的基本結(jié)構(gòu)數(shù)據(jù)線數(shù)據(jù)線控制線控制

2、線狀態(tài)線狀態(tài)線DBCBAB數(shù)據(jù)輸入寄存器數(shù)據(jù)輸入寄存器(or 三態(tài)門三態(tài)門)數(shù)據(jù)輸出寄存器數(shù)據(jù)輸出寄存器(鎖存器鎖存器)狀態(tài)寄存器狀態(tài)寄存器(or 三態(tài)門三態(tài)門)命令寄存器命令寄存器譯碼譯碼電路電路控制控制邏輯邏輯基本結(jié)構(gòu)p數(shù)據(jù)輸入數(shù)據(jù)輸入/輸出寄存器輸出寄存器暫存輸入/輸出的數(shù)據(jù)p命令寄存器存放控制命令,用來(lái)設(shè)定接口功能、工作參數(shù)和工作方式。p狀態(tài)寄存器狀態(tài)寄存器保存外設(shè)當(dāng)前狀態(tài),以供CPU讀取。一個(gè)并行接口中包括:圖4.1狀態(tài)信息狀態(tài)信息控制信息控制信息數(shù)據(jù)信息。數(shù)據(jù)信息。串并接口狀態(tài)信息狀態(tài)信息圖4.1 狀態(tài)信息表示外設(shè)當(dāng)前所處的工作狀態(tài)。例如,準(zhǔn)備好信號(hào)表示輸入設(shè)備已經(jīng)準(zhǔn)備好信息,可以

3、和CPU交換數(shù)據(jù);忙信號(hào)(BUSY)表示輸出設(shè)備正在輸出信息,即在“忙”著,同時(shí)也等于指示CPU要處于等待狀態(tài)??刂菩畔⒖刂菩畔?控制信息是由CPU發(fā)出的,用于控制外設(shè)接口的工作方式以及外設(shè)的啟動(dòng)和停機(jī)信息等。數(shù)據(jù)信息數(shù)據(jù)信息圖4.1 CPU與并行外設(shè)數(shù)據(jù)交換的內(nèi)容。 狀態(tài)信息、控制信息和數(shù)據(jù)信息,通常都是通過數(shù)據(jù)總線傳送,這些信息在外設(shè)接口中分別存取在不同的口中。所謂口是指可以由CPU讀、寫的寄存器,這些口分別是狀態(tài)口、控制口和數(shù)據(jù)口,它們分別用來(lái)存放狀態(tài)信息、控制信息和數(shù)據(jù)信息。對(duì)于一個(gè)外設(shè)接口,常常需要幾個(gè)口才能滿足和協(xié)調(diào)外部設(shè)備的工作與要求,圖4.1是一個(gè)典型的并行接口與CPU、外設(shè)的

4、連接圖。圖4.1 并行接口與CPU、外設(shè)的連接控制寄存器狀態(tài)寄存器輸入緩沖寄存器輸出緩沖寄存器CPU總線系統(tǒng)輸入設(shè)備輸出設(shè)備數(shù)據(jù)總線輸出數(shù)據(jù)準(zhǔn)備好輸入數(shù)據(jù)準(zhǔn)備好中斷請(qǐng)求地 址譯碼器復(fù)位地址總線AENCSA0A1IORIOW輸入數(shù)據(jù)輸入數(shù)據(jù)準(zhǔn)備好輸入應(yīng)答輸出數(shù)據(jù)輸出數(shù)據(jù)準(zhǔn)備好輸出應(yīng)答圖4.12. 并行接口的組成并行接口的組成圖4.1 狀態(tài)寄存器狀態(tài)寄存器 狀態(tài)寄存器用來(lái)存放外設(shè)的信息,CPU通過訪問這個(gè)寄存器來(lái)了解某個(gè)外設(shè)的狀態(tài),進(jìn)而控制外設(shè)的工作,以便與外設(shè)進(jìn)行數(shù)據(jù)交換。 控制寄存器控制寄存器 并行接口中有一個(gè)控制寄存器,CPU對(duì)外設(shè)的操作命令都寄存在控制寄存器中。2、并行接口組成 數(shù)據(jù)緩沖寄

5、存器數(shù)據(jù)緩沖寄存器圖4.1 在并行接口中還設(shè)置了輸入緩沖寄存器和輸出緩沖寄存器,緩沖器是用來(lái)暫存數(shù)據(jù)。因?yàn)橥庠O(shè)與CPU交換數(shù)據(jù),CPU的速度遠(yuǎn)遠(yuǎn)高于外設(shè)的速度。例如,打印機(jī)的打印速度與CPU的速度相差的遠(yuǎn)不止是一個(gè)數(shù)量級(jí),在并行接口中設(shè)置緩沖器,把要傳送的數(shù)據(jù)先放入緩沖器中,打印機(jī)按照安排好的打印隊(duì)列進(jìn)行打印,這樣可以保證輸入,輸出數(shù)據(jù)的可靠性。 3. 數(shù)據(jù)輸入過程數(shù)據(jù)輸入過程圖4.1 數(shù)據(jù)輸入過程,指的是外設(shè)向數(shù)據(jù)輸入過程,指的是外設(shè)向CPU輸入數(shù)據(jù)。輸入數(shù)據(jù)。 當(dāng)外設(shè)將數(shù)據(jù)通過數(shù)據(jù)輸入線送給接口時(shí),先使?fàn)顟B(tài)線當(dāng)外設(shè)將數(shù)據(jù)通過數(shù)據(jù)輸入線送給接口時(shí),先使?fàn)顟B(tài)線“輸輸入數(shù)據(jù)準(zhǔn)備好入數(shù)據(jù)準(zhǔn)備好”為

6、高電平。然后通過接口把數(shù)據(jù)接收到輸入緩為高電平。然后通過接口把數(shù)據(jù)接收到輸入緩沖寄存器中,同時(shí)把沖寄存器中,同時(shí)把“輸入回答輸入回答”信號(hào)置成高電平信號(hào)置成高電平“1”,并發(fā),并發(fā)給外設(shè)。給外設(shè)。 外設(shè)接到回答信號(hào)后,將撤消外設(shè)接到回答信號(hào)后,將撤消“輸入數(shù)據(jù)準(zhǔn)備好輸入數(shù)據(jù)準(zhǔn)備好”的信號(hào)。的信號(hào)。當(dāng)接口收到數(shù)據(jù)后,會(huì)在狀態(tài)寄存器中設(shè)置當(dāng)接口收到數(shù)據(jù)后,會(huì)在狀態(tài)寄存器中設(shè)置“準(zhǔn)備好輸入準(zhǔn)備好輸入”狀狀態(tài)位,以便態(tài)位,以便CPU對(duì)其進(jìn)行查詢。對(duì)其進(jìn)行查詢。3、數(shù)據(jù)輸入過程 接口向接口向CPU發(fā)出一個(gè)中斷請(qǐng)求信號(hào),這樣發(fā)出一個(gè)中斷請(qǐng)求信號(hào),這樣CPU可以用可以用軟件查詢方式,也可以用中斷的方式將接口

7、中的數(shù)據(jù)輸入軟件查詢方式,也可以用中斷的方式將接口中的數(shù)據(jù)輸入到到CPU中。中。 CPU在接收到數(shù)據(jù)后,將在接收到數(shù)據(jù)后,將“準(zhǔn)備好輸入準(zhǔn)備好輸入”的狀態(tài)位自動(dòng)的狀態(tài)位自動(dòng)清除,并使數(shù)據(jù)總線處于高阻狀態(tài)。準(zhǔn)備外設(shè)向清除,并使數(shù)據(jù)總線處于高阻狀態(tài)。準(zhǔn)備外設(shè)向CPU輸入輸入下一個(gè)數(shù)據(jù)。下一個(gè)數(shù)據(jù)。圖4.1 4. 數(shù)據(jù)輸出過程數(shù)據(jù)輸出過程圖4.1 數(shù)據(jù)輸出過程,指的是數(shù)據(jù)輸出過程,指的是CPU向外設(shè)輸出數(shù)據(jù)。向外設(shè)輸出數(shù)據(jù)。 當(dāng)外設(shè)從接口接收到一個(gè)數(shù)據(jù)后,接口的輸出緩沖寄存器當(dāng)外設(shè)從接口接收到一個(gè)數(shù)據(jù)后,接口的輸出緩沖寄存器“空空”,使?fàn)顟B(tài)寄存的,使?fàn)顟B(tài)寄存的“輸出數(shù)據(jù)準(zhǔn)備好輸出數(shù)據(jù)準(zhǔn)備好”狀態(tài)位置

8、成高電平狀態(tài)位置成高電平“1”,這表示,這表示CPU可以向外設(shè)接口輸出數(shù)據(jù),這個(gè)狀態(tài)位可供可以向外設(shè)接口輸出數(shù)據(jù),這個(gè)狀態(tài)位可供CPU查詢。查詢。 此時(shí)接口也可向此時(shí)接口也可向CPU發(fā)出一個(gè)中斷請(qǐng)求信號(hào),同上面的輸發(fā)出一個(gè)中斷請(qǐng)求信號(hào),同上面的輸入過程相同,入過程相同,CPU可以用軟件查詢方式,也可以用中斷的方式可以用軟件查詢方式,也可以用中斷的方式將將CPU中的數(shù)據(jù)通過接口輸出到外設(shè)中。當(dāng)輸出數(shù)據(jù)送到接口中的數(shù)據(jù)通過接口輸出到外設(shè)中。當(dāng)輸出數(shù)據(jù)送到接口的輸出緩沖寄存器后,再輸出到外設(shè)。的輸出緩沖寄存器后,再輸出到外設(shè)。4、數(shù)據(jù)輸出過程 與此同時(shí),接口向外設(shè)發(fā)送一個(gè)啟動(dòng)信號(hào),啟動(dòng)外設(shè)接收數(shù)與此

9、同時(shí),接口向外設(shè)發(fā)送一個(gè)啟動(dòng)信號(hào),啟動(dòng)外設(shè)接收數(shù)據(jù)。外設(shè)接收到數(shù)據(jù)后,向接口回送一個(gè)據(jù)。外設(shè)接收到數(shù)據(jù)后,向接口回送一個(gè)“輸出回答輸出回答”信號(hào)。信號(hào)。 接口電路收到該信號(hào)后,自動(dòng)將接口狀態(tài)寄存器中的接口電路收到該信號(hào)后,自動(dòng)將接口狀態(tài)寄存器中的“準(zhǔn)準(zhǔn)備好輸出備好輸出”狀態(tài)位重新置為高電平狀態(tài)位重新置為高電平“1”,通知,通知CPU可以向外設(shè)可以向外設(shè)輸出下一個(gè)數(shù)據(jù)。輸出下一個(gè)數(shù)據(jù)。圖4.1p三態(tài)門:高電平、低電平、三態(tài)門:高電平、低電平、高阻態(tài)高阻態(tài) 通常一個(gè)器件中包含通常一個(gè)器件中包含8個(gè)三態(tài)門個(gè)三態(tài)門 常用芯片:常用芯片:74LS244 應(yīng)用例子:開關(guān)接口應(yīng)用例子:開關(guān)接口 工作波形圖如

10、下:工作波形圖如下:例用三態(tài)門實(shí)現(xiàn)輸入輸出A0A15IOR#譯碼輸出D0D7開關(guān)狀態(tài)開關(guān)狀態(tài)地址有效地址有效例1: 74LS24483FCH83FFH譯碼器例2: 74LS273p鎖存器:由D觸發(fā)器構(gòu)成通常一個(gè)器件包含8個(gè)D觸發(fā)器常用芯片: 74LS273 74LS374(具有三態(tài)輸出的鎖存器)應(yīng)用例子:發(fā)光二極管接口譯譯碼碼器器=1=1.+5VRD0D7CPQ0Q7.D0D7A0A15IOW#R例3:綜合應(yīng)用p根據(jù)開關(guān)狀態(tài)在7段數(shù)碼管上顯示數(shù)字或符號(hào)共陽(yáng)極共陽(yáng)極7段數(shù)碼管結(jié)構(gòu)段數(shù)碼管結(jié)構(gòu)用用74LS273作為輸出接口,把數(shù)據(jù)送到作為輸出接口,把數(shù)據(jù)送到7段數(shù)碼管段數(shù)碼管 74LS273的地址

11、假設(shè)為的地址假設(shè)為F0H用用74LS244作為輸入口,讀入開關(guān)作為輸入口,讀入開關(guān)K0K3的狀態(tài)的狀態(tài) 74LS244的地址假設(shè)為的地址假設(shè)為F1H當(dāng)開關(guān)的狀態(tài)分別為當(dāng)開關(guān)的狀態(tài)分別為00001111時(shí),在時(shí),在7段數(shù)碼管上段數(shù)碼管上對(duì)應(yīng)顯示對(duì)應(yīng)顯示0F(7段碼表見下頁(yè)段碼表見下頁(yè))例3:綜合應(yīng)用 符號(hào)形狀7段碼.gfedcba符號(hào)形狀7段碼.gfedcba000111111801111111100000110901100111201011011A01110111301001111B01111100401100110C00111001501101101D01011110601111101E01

12、111001700000111F01110001例3:綜合應(yīng)用O1 I1O2 I2O3 I3O4 I4E1# K0K3+5VGG2AG2BCBA1174LS244D0 Q0 | Q1D7 Q2 Q3 Q4CP Q5 Q6 Q7 abcdefgDP7406反相器反相器74LS273Rx81174LS138D0D7IOW#IOR#Y0Y1F0H = 0000 0000 1111 0000F1H = 0000 0000 1111 0001&1A7A4A15A8A3A2A1A0D0D1D2D3譯碼器譯碼器例3:綜合應(yīng)用相應(yīng)程序段如下:Seg7DB3FH,06H,5BH,4FH,66H,6DH,

13、7DH,07HDB7FH,67H,77H,7CH,39H,5EH,79H,71HLEABX, Seg7;取7段碼表基地址MOV AH, 0GO:MOV DX, 0F1H;開關(guān)接口的地址為F1HINAL, DX;讀入開關(guān)狀態(tài)ANDAL, 0FH;保留低4位MOV SI, AX;作為7段碼表的表內(nèi)位移量MOV AL, BX+SI;取7段碼MOV DX, 0F0H;7段數(shù)碼管接口的地址為F0HOUTDX, ALJMPGO4.3 可編程并行可編程并行I/O接口接口8255A 并行接口電路,在早期的微機(jī)中與串行口、軟盤接口、硬盤接口等都放在一塊多功能接口卡上,插在微機(jī)的擴(kuò)展槽上使用?,F(xiàn)在這部分電路已在微

14、機(jī)的主板上由與CPU配套的芯片組來(lái)實(shí)現(xiàn)其功能。如果要在其他的場(chǎng)合實(shí)現(xiàn)并行數(shù)據(jù)傳送,在電路設(shè)計(jì)時(shí)采用專用的接口芯片最為方便??删幊痰慕涌谛酒?255A是完成并行通信的集成電路芯片。 圖4.24.3可編程接口8255A4.3.1 8255A的主要特性的主要特性圖4.2三個(gè)可編程的端口三個(gè)可編程的端口(A端口、端口、B端口和端口和C端口端口)每個(gè)端口每個(gè)端口8條線,共有條線,共有24條條I/O引腳,引腳,可分為可分為2組工作,每組組工作,每組12條線,條線,三種工作方式。三種工作方式。 可編程可編程是指可通過軟件設(shè)置芯片的工作方式,因此這個(gè)芯片在與外部設(shè)備相連接時(shí),通常不需要附加太多的外部邏輯電路,

15、這給用戶的使用帶來(lái)很大方便。4.3.18255A的主要特性1、 8255A具有三個(gè)可編程的并行輸入具有三個(gè)可編程的并行輸入/輸出端口輸出端口(A端口、B端口和C端口),它們?yōu)镃PU與外設(shè)之間提供了多個(gè)8位并行數(shù)據(jù)通道,并且端口端口C還具有按位置位還具有按位置位/復(fù)位功能復(fù)位功能,為按位控制功能提供了強(qiáng)有力的支持。圖4.22、 8255A具有三種工作方式:具有三種工作方式:方式方式0基本輸入輸出方式?;据斎胼敵龇绞健7绞椒绞? 選通輸入輸出方式選通輸入輸出方式方式方式2 雙向選通輸入輸出方式雙向選通輸入輸出方式3、 8255A端口端口C分成兩個(gè)分成兩個(gè)4位的端口位的端口,這兩個(gè)4位的端口分別作

16、為A端口和B端口的控制信號(hào)和輸入狀態(tài)信號(hào)使用。方式方式0用作數(shù)據(jù)端口用作數(shù)據(jù)端口。方式方式1 /2部分端口被分配作通信聯(lián)絡(luò)線部分端口被分配作通信聯(lián)絡(luò)線端口C在用作控制端口時(shí),CPU可用置位/復(fù)位指令輸出控制信號(hào);用作狀態(tài)端口時(shí),可供CPU讀取8255狀態(tài)4、 8255A能適應(yīng)CPU與I/O設(shè)備之間的多種數(shù)據(jù)傳送方式的要求,如無(wú)條件方式、有條件方式、中斷方式無(wú)條件方式、有條件方式、中斷方式。圖4.2 芯片的主要技術(shù)性能如下:圖4.2 (1) 輸入、輸出電平與輸入、輸出電平與TTL電平完全兼容。電平完全兼容。 (2) 時(shí)序特性好。時(shí)序特性好。 (3) 部分位可以直接置部分位可以直接置“1”/置置“

17、0”,便于實(shí)現(xiàn)控制接口使,便于實(shí)現(xiàn)控制接口使用。用。 (4) 單一的單一的+5 V電源。電源。 8255A的內(nèi)部結(jié)構(gòu)框圖如圖10.7(a)所示,圖10.7(b)為8255A的外引腳圖。從圖中可以看到,8255A主要由4部分組成。4.3.2 8255A的內(nèi)部結(jié)構(gòu)的內(nèi)部結(jié)構(gòu)圖4.2 8255A的內(nèi)部結(jié)構(gòu)框圖如圖4.2(a)所示,圖4.2(b)為8255A的外引腳圖。從圖中可以看到,8255A主要由4部分組成。4.3.38255A內(nèi)部結(jié)構(gòu)圖4.2 8255內(nèi)部結(jié)構(gòu)和引腳圖(a) 8255A內(nèi)部結(jié)構(gòu);(b) 8255A外引腳圖數(shù) 據(jù)總 線緩 沖 器讀 寫控 制邏 輯B組控 制端 口B(8)端 口 C下

18、 半 部(4)端 口 C上 半 部(4)端 口A(8)A組控 制DBRDWRA0A1RESETCSCPU接 口內(nèi) 部 邏 輯外 部 接 口PA7 PA0PC7 PC4PC3 PC0PB7 PB08255A12345678910111213141516171819204039383736353433323130292827262524232221PA3PA2PA1PA0RDCSGNDA0A1PC7PC6PC5PC4PC0PC1PC2PC3PB0PB1PB2PA4PA5PA6PA7WRRESETD0D1D2D3D4D5D6D7VCCPB7PB6PB5PB4PB3(a)(b)8位內(nèi) 部數(shù) 據(jù) 總 線

19、圖4.2圖4.2 8255內(nèi)部結(jié)構(gòu)數(shù)據(jù)數(shù)據(jù)總線總線緩沖器緩沖器內(nèi)部控制線內(nèi)部控制線內(nèi)部數(shù)據(jù)線內(nèi)部數(shù)據(jù)線D0D7A組組控制控制A組組端口端口AA組組端口端口C上部上部B組組控制控制B組組端口端口BB組組端口端口C下部下部讀寫讀寫控制控制邏輯邏輯PC0PC3PB0PB7PC4PC7PA0PA7RDWRA0A1CSRESET圖4.2 8255A外引腳圖1. 數(shù)據(jù)總線緩沖器數(shù)據(jù)總線緩沖器圖4.2 這是一個(gè)雙向、三態(tài)的雙向、三態(tài)的8位數(shù)據(jù)總線緩沖器位數(shù)據(jù)總線緩沖器,是8255A和系統(tǒng)總線相連接的通道,用來(lái)傳送輸入/輸出的數(shù)據(jù)、CPU發(fā)出的控制字以及外設(shè)的狀態(tài)信息??傊?,8255A與CPU之間的所有信息傳

20、輸都要經(jīng)過數(shù)據(jù)總線緩沖器。1、數(shù)據(jù)總線緩沖器 2. 讀寫控制邏輯電路讀寫控制邏輯電路圖4.2 這部分電路是用來(lái)完成對(duì)8255A內(nèi)部三個(gè)數(shù)據(jù)口的譯碼工作,由CPU的地址總線A1、A0和8255A的片選信號(hào)CS和WR、RD信號(hào)組合后產(chǎn)生控制命令,并將產(chǎn)生的控制命令傳送給A組和B組的控制電路,從而完成對(duì)數(shù)據(jù)信息的傳輸控制。8255A的控制信號(hào)與執(zhí)行的操作之間的對(duì)應(yīng)關(guān)系如表4-1所示。2、讀寫控制邏輯電路2)與處理器接口CS* A1 A0I/O地址讀操作RD*寫操作WR*0 0 00 0 10 1 00 1 160H61H62H63H讀端口A讀端口B讀端口C非法寫端口A寫端口B寫端口C寫控制字D0 D

21、7數(shù)據(jù)線A0 A1地址線RD*讀信號(hào)WR*寫信號(hào)CS*片選信號(hào)RESET復(fù)位信號(hào) 3. A組控制電路和組控制電路和B組控制電路組控制電路圖4.2 控制電路分成A組組控制和B組組控制兩組,A組組控制電路控制A端口和端口和C端口的高端口的高4位位(PC4PC7)。B組組控制電路控制B端口和端口和C端口的低端口的低4位位(PC0PC3)。這兩組控制電路的作用是:由它們內(nèi)部的控制寄存器接收CPU輸出的方式控制命令字,還接收來(lái)自讀/寫控制邏輯電路的讀/寫命令,根據(jù)控制命令決定A組和B組的工作方式和讀/寫操作。3、AB組控制電路 4. 三個(gè)獨(dú)立的數(shù)據(jù)口三個(gè)獨(dú)立的數(shù)據(jù)口圖4.2 8255A的三個(gè)數(shù)據(jù)口分別是

22、A端口、B端口、C端口,它們彼此獨(dú)立,都是8位的數(shù)據(jù)口,用來(lái)完成和外設(shè)之間的信息交換。三個(gè)口在使用上有所不同。 1) A端口端口 A端口對(duì)應(yīng)一個(gè)8位的數(shù)據(jù)輸入鎖存器和一個(gè)8位的數(shù)據(jù)輸出鎖存器和緩沖器。因此A端口適合用在雙向雙向的數(shù)據(jù)傳輸場(chǎng)合,用A端口傳送數(shù)據(jù),不管是輸入還是輸出,都可以鎖存都可以鎖存。4、三個(gè)獨(dú)立的數(shù)據(jù)口 2) B端口和端口和C端口端口圖4.2 這兩個(gè)口分別是由一個(gè)8位的數(shù)據(jù)輸入緩沖器數(shù)據(jù)輸入緩沖器和一個(gè)8位的數(shù)據(jù)輸出鎖存器和緩沖器數(shù)據(jù)輸出鎖存器和緩沖器組成。因此用B端口和C端口傳送數(shù)據(jù)作輸出端口時(shí),數(shù)據(jù)信息可以實(shí)現(xiàn)鎖存功能;而用作輸入口時(shí),則不能對(duì)數(shù)據(jù)實(shí)現(xiàn)鎖存,這一點(diǎn)在使用中

23、要注意。在實(shí)際應(yīng)用中,A端口和B端口通常作為獨(dú)立的輸入口和輸出口,而C端口常用來(lái)配合A端口和B端口的工作使用。C端口分成兩個(gè)4位的端口,這兩個(gè)4位的端口分別作為A端口和B端口的控制信號(hào)和輸入狀態(tài)信號(hào)使用。1)外設(shè)數(shù)據(jù)端口 端口A:PA0PA7 A組,支持工作方式0、1、2 端口B:PB0PB7 B組,支持工作方式0、1 端口C:PC0PC7 僅支持工作方式0 A組控制高4位PC4PC7 B組控制低4位PC0PC3n端口端口A:PA0PA7n常作數(shù)據(jù)端口,功能最強(qiáng)大常作數(shù)據(jù)端口,功能最強(qiáng)大n端口端口B:PB0PB7n常作數(shù)據(jù)端口常作數(shù)據(jù)端口n端口端口C:PC0PC7n可作數(shù)據(jù)、狀態(tài)和控制端口可作

24、數(shù)據(jù)、狀態(tài)和控制端口n分兩個(gè)分兩個(gè)4位,每位可獨(dú)立操作位,每位可獨(dú)立操作n控制最靈活,最難掌握控制最靈活,最難掌握4.3.3 8255A的外部特性的外部特性圖4.2 8255A是40條引腳的雙列直插式芯片,引腳排列如圖4.2(b)所示。單一的+5 V電源,使用時(shí)要注意它的+5V電源引腳是第26腳,地線引腳是第7腳,它不像大多數(shù)TTL芯片電源和地線在右上角和左下角的位置,除了電源和地線之外,其他引腳的信號(hào)按連接的功能可分為兩大組。4.3.38255A外部特性 1. 與與CPU接口的信號(hào)線(引腳)接口的信號(hào)線(引腳) 圖4.2 D7D0 (2734PIN):雙向三態(tài)雙向三態(tài)8位數(shù)據(jù)線位數(shù)據(jù)線,與系

25、統(tǒng)的數(shù)據(jù)總線相連接。 A1、A0 (8,9PIN):端口譯碼信號(hào)端口譯碼信號(hào)。用來(lái)選擇8255A內(nèi)部的三個(gè)數(shù)據(jù)端口和一個(gè)控制端口的地址。其中對(duì)控制口只能進(jìn)行寫操作。 (1) 當(dāng)當(dāng)A1A0=00時(shí),選中時(shí),選中A端口。端口。 (2) 當(dāng)當(dāng)A1A0=01時(shí),選中時(shí),選中B端口。端口。 (3) 當(dāng)當(dāng)A1A0=10時(shí),選中時(shí),選中C端口。端口。 (4) 當(dāng)當(dāng)A1A0=11時(shí),選中控制端口。時(shí),選中控制端口。 A1、A0與讀/寫信號(hào)組合對(duì)各端口所執(zhí)行的操作如表4-1所示。 1、與CPU接口信號(hào)線 RESET (35PIN):芯片的復(fù)位復(fù)位信號(hào),高電平時(shí)有效高電平時(shí)有效。復(fù)位后把8255A內(nèi)部的所有寄存器

26、都清0,并將三個(gè)數(shù)據(jù)口自動(dòng)設(shè)置為輸入口。 CS(6PIN):片選信號(hào)片選信號(hào),低電平時(shí)有效。只有當(dāng)CS=0時(shí),芯片被選中,才能對(duì)8255A進(jìn)行讀、寫操作。 RD(5PIN):讀信號(hào)讀信號(hào),低電平有效。只有當(dāng)CS=0,RD=0,才允許從8255A的三個(gè)端口中讀取數(shù)據(jù)。 WR(36PIN):寫信號(hào)寫信號(hào),低電平有效。只有當(dāng)CS=0,WR=0,才允許從8255A的三個(gè)端口寫入數(shù)據(jù)或者是寫入控制字。表表4-1 8255A的控制信號(hào)與執(zhí)行的操作之間的對(duì)應(yīng)關(guān)系的控制信號(hào)與執(zhí)行的操作之間的對(duì)應(yīng)關(guān)系CSRDWRA1A0執(zhí)行的操作000000000010101011101x1010100011x0 00 00

27、10 11 01 01 11 11 1x xx x讀A端口(A端口數(shù)據(jù)數(shù)據(jù)總線)寫A端口(A端口數(shù)據(jù)總線數(shù)據(jù))讀B端口(B端口數(shù)據(jù)數(shù)據(jù)總線)寫B(tài)端口(B端口數(shù)據(jù)總線數(shù)據(jù))讀C端口(C端口數(shù)據(jù)數(shù)據(jù)總線)寫C端口(C端口數(shù)據(jù)總線數(shù)據(jù))當(dāng)D71時(shí),對(duì)8255A寫入控制字當(dāng)D70時(shí),對(duì)C端口置位/復(fù)位非法的信號(hào)組合數(shù)據(jù)線D7D0進(jìn)入高阻狀態(tài)未選擇表41 8255A的數(shù)據(jù)線為8條,這樣8位的接口芯片在與8086外部數(shù)據(jù)線為16條的CPU相連接時(shí),應(yīng)考慮接口芯片本身對(duì)地址的要求。由于在8086這樣的16位外部總線系統(tǒng)中,CPU在進(jìn)行數(shù)據(jù)傳輸時(shí),低8位對(duì)應(yīng)一個(gè)偶地址,高8位對(duì)應(yīng)一個(gè)奇地址。如果將8255A的

28、數(shù)據(jù)線D7D0與8086CPU的數(shù)據(jù)總線的低8位相連的話,從CPU這邊看來(lái),要求8255A的4個(gè)端口地址都應(yīng)為偶地址,這樣才能保證對(duì)8255A的端口的讀/寫能在一個(gè)總線周期內(nèi)完成,但又要滿足8255A本身對(duì)4個(gè)端口規(guī)定的地址要求是00,01,10,11。因此將8255A的A1和A0分別與8086系統(tǒng)總線的A2和A1相連,而將最低位A0總設(shè)置為0。2. 和外設(shè)端相連的引腳和外設(shè)端相連的引腳圖4.2PA7PA0 (3740 PIN,l4PIN):A端口的輸入/輸出引腳PB7PB0 (2518 PIN):B端口的輸入/輸出引腳PC7PC0 (1013,1714 PIN):C端口的輸入/輸出引腳2、和

29、外設(shè)端相連接的引腳4.3.4 8255A的控制字的控制字 由CPU執(zhí)行輸出指令,向8255A的端口輸出不同的控制字來(lái)決定它的工作方式??刂谱址譃閮煞N控制字分為兩種,分別稱為方式選擇控方式選擇控制字制字和端口端口C置置1/置置0控制字控制字。根據(jù)控制寄存器的D7位的狀態(tài)決定是哪一種控制字。 1. 方式選擇控制字方式選擇控制字 方式選擇控制字用來(lái)決定8255A三個(gè)數(shù)據(jù)端口各自的工作方式,它的格式如圖4.3所示。它由一個(gè)8位的寄存器組成。4.3.48255A的控制字圖4.3 8255A的方式選擇控制字D7D6D5D4D3D2D1D0PC3PC01:輸入0:輸出00:方式 001:方式 11x:方式

30、2A端口1:輸入0:輸出PC7PC41:輸入0:輸出B組方式0:方式01:方式1B端口1:輸入0:輸出B組控制A組控制方式選擇控制字識(shí)別位,為1選中圖4.3圖4.3 D7位為“1”時(shí),為方式選擇控制字的標(biāo)識(shí)位。圖4.3 D6、D5位決定A端口的工作方式,D6D5位為00、01、1x時(shí)分別表示A端口工作在方式0、方式1和方式2下。 D4位決定A端口工作在輸入還是輸出方式。D4位為0時(shí),A端口工作在輸出方式;D4位為1時(shí),A端口工作在輸入方式。 D3位決定用于A端口的C端口高4位PC7PC4是作為輸入端口,還是作為輸出端口。D3位為0時(shí),PC7PC4作輸出;D3位為1時(shí),PC7PC4作輸入。 D2

31、位用來(lái)選擇B端口的工作方式。D2位為0時(shí),B端口工作在方式0,D2位為1時(shí),B端口工作在方式1。 D1位決定B端口作為輸入還是輸出端口。D1位為1時(shí)B端口工作在輸入方式;D1位為0時(shí)B端口工作在輸出方式。 D0位決定用于B端口的C端口低4位PC3PC0作為輸入,還是輸出。D0位為0時(shí),PC3PC0作輸出;D0位為1時(shí),PC3PC0作輸入。圖4.3 如果要求8255A的A端口作輸入,B端口和C端口作輸出,A組工作在方式0,B組工作在方式1,用三條指令可完成對(duì)芯片工作方式的選擇。MOV AL,94H;方式選擇控制字送ALMOV DX,PortCtr ;控制端口地址PortCtr送DXOUTDX,A

32、L;方式選擇控制字輸出給8255A的控制端 口,完成方式選擇10010100B=94H圖4.3例:某系統(tǒng)要求使用8255的A口工作于方式1作輸入,B口工作于方式0作輸出,C口上半部輸入,下半部輸出。8255端口地址為60H-63H??刂谱譃椋?0111000B=0B8H初始化程序?yàn)椋?MOV AL,0B8H OUT 63H,AL 2. C端口置端口置1/置置0控制字控制字圖4.3 8255A在和CPU傳輸數(shù)據(jù)的過程中,經(jīng)常將C端口的某幾位作為控制位或狀態(tài)位來(lái)使用,從而配合A端口或B端口的工作。為了方便用戶,在8255A芯片初始化時(shí),C端口置1/置0控制字可以單獨(dú)設(shè)置C端口的某一位為0或某一位為

33、1??刂谱值腄7位為“0”時(shí),是C端口置1/置0控制字中的標(biāo)識(shí)位,具體的格式如圖4.4所示。 2、C端口置01控制字對(duì)端口端口C的數(shù)據(jù)輸出有兩種辦法兩種辦法: 通過端口通過端口C的的I/O地址地址:向C端口直接寫入字節(jié)數(shù)據(jù)。這一數(shù)據(jù)被寫進(jìn)C端口的輸出鎖存器,并從輸出引腳輸出,但對(duì)設(shè)置為輸入的引腳無(wú)效 通過控制端口通過控制端口:向C端口寫入位控字,使C端口的某個(gè)引腳輸出1或0,或置位復(fù)位內(nèi)部的中斷允許觸發(fā)器圖4.4 8255A的C端口置1/置0控制字D7D6D5D4D3D2D1D0C端口置位識(shí)別位,為0有效任意值C口位選擇000 : PC0001 : PC1010 : PC2011 : PC31

34、00 : PC4101 : PC5110 : PC6111 : PC7選中位置1/置0選擇0 : 置01 : 置1圖4.4圖4.4 D6D4位可為任意值,不影響操作。D3D1位用來(lái)決定對(duì)C端口8位中的哪一位進(jìn)行操作。D0位用來(lái)決定對(duì)D3D1所選擇的位是置1,還是置0。圖4.4 例如,要將C端口的PC3置0,PC7置1,可用下列程序段實(shí)現(xiàn)。MOVAL,06H;PC3置0控制字送ALMOVDX,PortAdd;控制端口地址PortAdd送DXOUTDX,AL;對(duì)PC3完成置0操作MOVAL,0FH;PC7置1控制字送ACOUTDX,AL;完成對(duì)PC7置1操作例:(接上例) 若A口工作于方式1作輸入

35、,要使用中斷傳送方式,則應(yīng)當(dāng)寫PC4的按位置位字。 控制字為:00001001B=09HMOV AL,00001001BOUT 63H,AL 4.3.5 8255A初始化編程初始化編程圖4.38255片地址為300H 【例4.1】按下述要求對(duì)8255A進(jìn)行初始化。A=方式0輸出;B=方式1輸入;CH=輸入;CL輸出。根據(jù)要求則控制字10001110B=8EHMOVDX,303H;控制端口地址MOVAL,08EH;工作方式控制字OUTDX,AL;送到控制端口4.3.58255A初始化編程【例4.2】按下述要求對(duì)8255A的C口進(jìn)行初始化。PC0=1。根據(jù)要求則控制字00000001B=01H圖4

36、.4MOVDX,303H;控制端口地址MOVAL,01H;使PC0=1的控制字OUTDX,AL;送到控制端口;PC0=0MOVDX,303H;控制端口地址MOVAL,00H;使PC0=0的控制字OUTDX,AL;送到控制端口【例4.3】要求對(duì)PA7、PA6位進(jìn)行置位/復(fù)位輸出,不改變A口其它位的原來(lái)狀態(tài)。(使用或和與操作)圖4.3;PA7、PA6位置位 11000000B=C0HMOVDX,300H;A口地址INAL,DX;讀入A口原輸出值MOVAH,AL;保存原輸出值到AHORAL,0C0H;使PA6=PA7=1OUTDX,AL;同時(shí)輸出到PA6、PA7.MOVAL,AH;恢復(fù)原輸出值OUT

37、DX,AL;送到A口;PA7、PA6位復(fù)位 00111111B=3FH圖4.3MOVDX,300H;A口地址INAL,DX;讀入A口原輸出值MOVAH,AL;保存原輸出值到AHANDAL,03FH;使PA6=PA7=0OUTDX,AL;同時(shí)輸出到PA6、PA7.MOVAL,AH;恢復(fù)原輸出值OUTDX,AL;送到A口4.3.6 8255A的三種工作方式的三種工作方式 8255A有三種工作方式,分別稱為方式方式0,方式,方式1和和方式方式2。其中A端口端口可以工作在三種方式三種方式中的任一種;B端口端口只能工作在方式方式0和方式和方式1;C端端口通常作為控制信號(hào)使用,配合A端口和B端口的工作。每

38、種工作方式的具體內(nèi)容如下所述。4.3.68255A的三種工作方式1. 方式方式0基本的輸入基本的輸入/輸出方式輸出方式 方式0之所以被稱為基本的輸入/輸出方式,是因?yàn)樵谶@種方式下,A端口、B端口和C端口(C端口分為2個(gè)4位使用)都可提供簡(jiǎn)單的輸入和輸出操簡(jiǎn)單的輸入和輸出操作,對(duì)每個(gè)端口不需要固定的應(yīng)答式聯(lián)絡(luò)信號(hào)。工作在方式0時(shí),在程序中可直接使用輸入指令(IN)和輸出(OUT)指令對(duì)各端口進(jìn)行讀寫。方式0的基本定義是2個(gè)8位的端口和2個(gè)4位的端口。任何一個(gè)端口都可以作為輸入或輸出,輸出的數(shù)據(jù)可以被鎖存,輸入的數(shù)據(jù)不能鎖存。適用于無(wú)條件傳送和查詢方式的接口電路適用于無(wú)條件傳送和查詢方式的接口電路

39、1、方式0 方式方式0一般用于無(wú)條件傳送的場(chǎng)合一般用于無(wú)條件傳送的場(chǎng)合,不需要應(yīng)答式聯(lián)絡(luò)信號(hào),外設(shè)總是處于準(zhǔn)備好的狀態(tài)。也可以用作查詢式傳送,查詢式傳送時(shí),需要有應(yīng)答信號(hào)。可以將A端口、B端口作為數(shù)據(jù)口使用。把C端口分為2部分,其中4位規(guī)定為輸出,用來(lái)輸出一些控制信息,另外4位規(guī)定為輸入,用來(lái)讀入外設(shè)的狀態(tài)。利用C端口配合A端口和B端口完成查詢式的I/O操作。方式0輸入時(shí)序datadata輸入端口輸入端口D0D7RD CS,A1,A0方式0輸出時(shí)序WRdatadata輸出端口輸出端口D0D7 CS,A1,A01)無(wú)條件輸入輸出)無(wú)條件輸入輸出 CPU始終認(rèn)為I/O設(shè)備處于準(zhǔn)備就緒狀態(tài)。不需要應(yīng)

40、答式聯(lián)絡(luò)信號(hào)。片地址300H【例】PB方式0輸出接發(fā)光二極管,PA方式0輸入接開關(guān),如下圖4.5所示,要求開關(guān)閉合(接地)則對(duì)應(yīng)亮,反之則熄。;PA、PB端口初始化 10010000B=90H圖4.3MOVDX,303H;控制口地址MOVAL,90H;控制值OUTDX,AL;控制值到控制口;循環(huán)檢測(cè)輸入狀態(tài),根據(jù)輸入改變輸出狀態(tài)LOP:MOV DX,300H;A口地址INAL,DX;輸入A口開關(guān)狀態(tài)MOV DX,301H;B口地址OUTDX,AL;輸出到B口發(fā)光二極管JMPLOP;循環(huán)檢測(cè)說(shuō)明:開關(guān)閉合時(shí),PA?=0 PB?=0,則發(fā)光二極管亮;開關(guān)閉合則不發(fā)光,開關(guān)斷開則發(fā)光 XORAL,0

41、FFH;將輸入反相OUTDX,AL;輸出到B口發(fā)光二極管XOR為異或,相同為零,相異為1圖4.5 無(wú)條件輸入輸出硬件連線圖圖4.52)有條件(查詢)輸入輸出)有條件(查詢)輸入輸出 PC口可分別作為查詢用的控制和狀態(tài)線,不過這時(shí)的控制狀態(tài)和狀態(tài)線不是固定方式(方式1中是固定的),由程序來(lái)確定。2. 方式方式1 選通輸入選通輸入/輸出方式輸出方式 在這種方式下,當(dāng)當(dāng)A端口和端口和B端口進(jìn)行輸入輸出時(shí),必須利端口進(jìn)行輸入輸出時(shí),必須利用用C端口提供的選通和應(yīng)答信號(hào),而且這些信號(hào)與端口提供的選通和應(yīng)答信號(hào),而且這些信號(hào)與C端口中的某端口中的某些位之間有著固定的對(duì)應(yīng)關(guān)系,這種關(guān)系是硬件本身決定的不些位

42、之間有著固定的對(duì)應(yīng)關(guān)系,這種關(guān)系是硬件本身決定的不是軟件可以改變的是軟件可以改變的。由于工作在方式l時(shí),要由C端口中的固定位來(lái)作為選通和應(yīng)答等控制信號(hào),因此稱方式1為選通的輸入/輸出方式。方式1的基本定義是,分成2組(A組和B組),每組包含一個(gè)8位的數(shù)據(jù)端口和1個(gè)4位的控制/數(shù)據(jù)端口。8位的數(shù)據(jù)端口既可以作為輸入,也可以作為輸出,輸入和輸出都可以被鎖存。4位的控制/數(shù)據(jù)端口用于傳送8位數(shù)據(jù)端口的控制和狀態(tài)信息。I適用于查詢和中斷方式的接口電路適用于查詢和中斷方式的接口電路2、方式11) 選通的輸入方式(方式選通的輸入方式(方式1輸入)輸入) 方式1在選通輸入方式下對(duì)應(yīng)的控制信號(hào)如圖4.6所示。

43、圖4.7是方式1在選通輸入方式的工作時(shí)序圖。選通輸入方式的工作過程是: 當(dāng)外設(shè)的數(shù)據(jù)已送到8255A某個(gè)端口的數(shù)據(jù)線上時(shí),就發(fā)出選通輸入信號(hào)STB,將數(shù)據(jù)通過A端口或B端口鎖存到8255A的數(shù)據(jù)輸入寄存器,STB信號(hào)的寬度至少是500 ns。STB信號(hào)變低后最多經(jīng)過300 ns時(shí)間,使輸入緩沖器滿信號(hào)IBF變?yōu)楦唠娖剑鐖D4.7中表示的箭頭。1)選通輸入 輸入緩沖器滿意味著將阻止外設(shè)輸入新的數(shù)據(jù),可供CPU來(lái)查詢。在選通輸入信號(hào)結(jié)束后,最多經(jīng)過300 ns時(shí)間,向CPU發(fā)出中斷請(qǐng)求信號(hào)(要在中斷允許的情況下),如圖4.7中表示的箭頭,使中斷請(qǐng)求信號(hào)INTR變高,CPU可以響應(yīng)中斷。 當(dāng)CPU響

44、應(yīng)中斷后才發(fā)出讀信號(hào)RD,將數(shù)據(jù)讀入到CPU中,讀信號(hào)有效(低電平為有效)后,最多經(jīng)過400 ns時(shí)間,RD就清除中斷請(qǐng)求,使中斷請(qǐng)求信號(hào)變低,如圖4.7中表示的箭頭。當(dāng)讀信號(hào)結(jié)束后,才使輸入緩沖器滿信號(hào)IBF變低,如圖4.7中表示的箭頭。IBF變低表明輸入緩沖器已空,通知外設(shè)可以輸入新的數(shù)據(jù)。方式1輸入引腳:A端口數(shù)據(jù)選通信號(hào)表示外設(shè)已經(jīng)準(zhǔn)備好數(shù)據(jù)輸入緩沖器滿信號(hào)表示A口已經(jīng)接收數(shù)據(jù)中斷請(qǐng)求信號(hào)請(qǐng)求CPU接收數(shù)據(jù)PC4PC5PC3PA7PA0INTEAIBFAINTRASTBA中斷允許觸發(fā)器方式1輸入引腳:B端口PC2PC1PC0PB7PB0INTEBIBFBINTRBSTBB數(shù)據(jù)選通信號(hào)表

45、示外設(shè)已經(jīng)準(zhǔn)備好數(shù)據(jù)輸入緩沖器滿信號(hào)表示A口已經(jīng)接收數(shù)據(jù)中斷請(qǐng)求信號(hào)請(qǐng)求CPU接收數(shù)據(jù)中斷允許觸發(fā)器方式1需借用端口C用做聯(lián)絡(luò)信號(hào)同時(shí)還具有中斷請(qǐng)求和屏蔽功能方式1輸入聯(lián)絡(luò)信號(hào)STB選通信號(hào),低電平有效由外設(shè)提供的輸入信號(hào),當(dāng)其有效時(shí),將輸入設(shè)備送來(lái)的數(shù)據(jù)鎖存至8255A的輸入鎖存器IBF輸入緩沖器滿信號(hào),高電平有效8255A輸出的聯(lián)絡(luò)信號(hào)。當(dāng)其有效時(shí),表示數(shù)據(jù)已鎖存在輸入鎖存器INTR中斷請(qǐng)求信號(hào),高電平有效 8255A輸出的信號(hào),可用于向CPU提出中斷請(qǐng)求,要求CPU讀取外設(shè)數(shù)據(jù)方式1輸入時(shí)序dataINTRIBF data輸入端口輸入端口D0D7STBRDSTB*和IBF是外設(shè)和8255

46、A間的一對(duì)應(yīng)答聯(lián)絡(luò)信號(hào),為的是可靠地輸入數(shù)據(jù)方式1中斷控制8255A的中斷由中斷允許觸發(fā)器INTE控制置位允許中斷,復(fù)位禁止中斷對(duì)INTE的操作通過寫入端口C的對(duì)應(yīng)位實(shí)現(xiàn),INTE觸發(fā)器對(duì)應(yīng)端口C的位是作應(yīng)答聯(lián)絡(luò)信號(hào)的輸入信號(hào)的哪一位,只要對(duì)那一位置位/復(fù)位就可以控制INTE觸發(fā)器選通輸入方式下端口A的INTEA對(duì)應(yīng)PC4端口B的INTEB對(duì)應(yīng)PC2圖4.6 方式1選通輸入下對(duì)應(yīng)的控制信號(hào)(a) 對(duì)A端口;(b) 對(duì)B端口1011 I/O1011 I/O 11111D7D6D5D4D3D2D1D0D7D6D5D4D3D2D1D0D7D6D5D4D3D2D1D0A組工作于方式1輸入的控制字A組和

47、B組工作于方式1輸入的控制字B組工作于方式1輸入的控制字方式1B端口為輸入PC7、PC61輸入0輸出PC7、PC61輸入0輸出A端口為輸入方式1STBAIBFAINTRAI/OPC4PC5PC3INTEA&PC7PC6PA7PA02RD8PC2PC1PC0INTEB&PB7PB0RD8INTRBIBFBSTBB(a)(b)圖4.6端口結(jié)構(gòu)圖4.7 8255A方式l輸入時(shí)序STBIBFINTRRD來(lái)自外設(shè)的輸入數(shù)據(jù)數(shù)據(jù)有效數(shù)據(jù)有效1234tSTtSIBtSITtRITtPHtPStRIB圖4.7時(shí)序表表4-4 8255A方式方式1輸入時(shí)序參數(shù)說(shuō)明輸入時(shí)序參數(shù)說(shuō)明STBSTBRDR

48、D參 數(shù)說(shuō) 明8255A最小時(shí)間/ns最大時(shí)間/nstST選通脈沖的寬度500 tSIB選通脈沖有效到IBF有效之間的時(shí)間 300tSIT =1到中斷請(qǐng)求INTR有效之間的時(shí)間 300tPH數(shù)據(jù)保持時(shí)間180 tPS數(shù)據(jù)有效到 無(wú)效之間的時(shí)間0 tRIT 有效到中斷請(qǐng)求撤除之間的時(shí)間 400tRIB 為1到IBF為0之間的時(shí)間 300表44 當(dāng)8255A的A端口和B端口工作在選通輸入方式時(shí),對(duì)應(yīng)的C端口固定分配,規(guī)定是PC3PC5分配給A端口,PC0PC2分配給B端口,C端口剩下的2位PC7、PC6可作為簡(jiǎn)單的輸入/輸出線使用??刂谱值腄3位為“1”時(shí),PC7、PC6作輸入;控制字的D3位為“

49、0”時(shí),PC7、PC6作輸出。圖4.6 在方式1選通輸入方式時(shí),各控制信號(hào)的意義如下: STB(Strobe):選通輸入信號(hào),低電平有效。A組方式控制字中對(duì)應(yīng)PC4;B組方式控制字中對(duì)應(yīng)PC2。當(dāng)該信號(hào)有效時(shí),從外部設(shè)備來(lái)的8位數(shù)據(jù)送入到8255A的輸入緩沖器中,負(fù)脈沖寬度最小是500 ns。圖4.7 IBF(Input Buffer Full):輸入緩沖器滿信號(hào),高電平有效。A組方式控制字中對(duì)應(yīng)PC5;B組方式控制字中對(duì)應(yīng)PC1。這是8255A送給外設(shè)的聯(lián)絡(luò)信號(hào),當(dāng)8255A的輸入緩沖區(qū)已有一個(gè)新數(shù)據(jù)后,輸出這個(gè)信號(hào)供CPU查詢。該信號(hào)在選通輸入信號(hào)STB變低后,300 ns時(shí)間內(nèi)即變?yōu)橛行?/p>

50、的高電平。在RD信號(hào)撤消后的300 ns時(shí)間內(nèi)IBF信號(hào)才撤消,變?yōu)闊o(wú)效的低電平,這樣保證了數(shù)據(jù)傳輸?shù)目煽啃?。圖4.7圖4.6 INTR(Interrupt Request):中斷請(qǐng)求信號(hào),高電平有效。A組方式控制字中對(duì)應(yīng)PC3;B組方式控制字中對(duì)應(yīng)PC0。這是8255A向CPU發(fā)出的中斷請(qǐng)求信號(hào)。當(dāng)STB信號(hào)撤消變?yōu)楦唠娖胶笞疃?00 ns時(shí)間內(nèi),并且IBF信號(hào)也為高電平,INTR信號(hào)產(chǎn)生變?yōu)橛行У母唠娖?。INTR信號(hào)變高后可以請(qǐng)求CPU讀取數(shù)據(jù)。當(dāng)CPU發(fā)出的RD信號(hào)有效后,400 ns的時(shí)間內(nèi)INTR信號(hào)將撤消,變?yōu)榈碗娖?。圖4.7 圖4.6 INTE(Interrupt Enable)

51、:中斷允許信號(hào),高電平有效。該信號(hào)為高時(shí),允許中斷請(qǐng)求,為低時(shí)則屏蔽中斷請(qǐng)求。INTE的狀態(tài)是用軟件通過由C端口置1/置0控制字來(lái)控制的,在A組中,使PC4置“1”后INTEA變高;在B組中,使PC2置“1”后INTEB變高,A端口和B端口才允許中斷。如果PC4和PC2都置“0”,與之對(duì)應(yīng)的INTE信號(hào)為低,則禁止中斷。圖4.7圖4.6 對(duì)于這種選通的輸入方式,如果采用查詢式輸入時(shí),CPU先查詢8255A的輸入緩沖器是否滿了,也就是IBF是否為高? 如果輸入緩沖器滿信號(hào)IBF為高,則CPU就可以從8255A讀入數(shù)據(jù)。如果采用中斷方式傳送數(shù)據(jù)時(shí),應(yīng)該先用C端口置1/置0的控制字使相應(yīng)的端口允許中

52、斷,也就是要使PC4或PC2置1。輸入控制信號(hào)分配表信號(hào)A組 B組功能說(shuō)明STBPC4 PC2 輸入選通0輸入數(shù)據(jù)IBFPC5 PC1輸入滿1已接收數(shù)據(jù)INTEPC4 PC2 中斷允許1允許發(fā)出中斷INTRPC3 PC0 中斷請(qǐng)求1中斷信號(hào):表示為輸出信號(hào):表示為輸入信號(hào)圖4.7 圖4.6控制信號(hào)分配表 2) 選通的輸出方式(方式選通的輸出方式(方式1輸出)輸出) 方式1在選通輸出情況下對(duì)應(yīng)的控制信號(hào)如圖4.8所示,圖4.9是方式1選通輸出情況下的工作時(shí)序圖。這種方式的工作過程與選通輸入的情況相類似。2)選通輸出方式1輸出引腳:A端口外設(shè)響應(yīng)信號(hào)表示外設(shè)已經(jīng)接收到數(shù)據(jù)輸出緩沖器滿信號(hào)表示CPU

53、已經(jīng)輸出了數(shù)據(jù)中斷請(qǐng)求信號(hào)請(qǐng)求CPU再次輸出數(shù)據(jù)PC6PC7PC3PA7PA0INTEAOBFAINTRAACKA中斷允許觸發(fā)器方式1輸出引腳:B端口PC2PC1PC0PB7PB0INTEBOBFBINTRBACKB外設(shè)響應(yīng)信號(hào)表示外設(shè)已經(jīng)接收到數(shù)據(jù)輸出緩沖器滿信號(hào)表示CPU已經(jīng)輸出了數(shù)據(jù)中斷請(qǐng)求信號(hào)請(qǐng)求CPU再次輸出數(shù)據(jù)中斷允許觸發(fā)器方式1輸出聯(lián)絡(luò)信號(hào) OBF輸出緩沖器滿信號(hào),低有效 8255A輸出給外設(shè)的一個(gè)控制信號(hào),當(dāng)其有效時(shí),表示CPU已把數(shù)據(jù)輸出給指定的端口,外設(shè)可以取走 ACK響應(yīng)信號(hào),低有效 外設(shè)的響應(yīng)信號(hào),指示8255A的端口數(shù)據(jù)已由外設(shè)接受 INTR中斷請(qǐng)求信號(hào),高有效 當(dāng)輸

54、出設(shè)備已接受數(shù)據(jù)后,8255A輸出此信號(hào)向CPU提出中斷請(qǐng)求,要求CPU繼續(xù)提供數(shù)據(jù)端口A的INTEA對(duì)應(yīng)PC6端口B的INTEB對(duì)應(yīng)PC2方式1輸出時(shí)序 INTR datadata輸出端口輸出端口D0D7WROBFACK OBF*和ACK*是外設(shè)和8255A間的一對(duì)應(yīng)答聯(lián)絡(luò)信號(hào),為的是可靠地輸出數(shù)據(jù)圖4.8 方式l輸出時(shí)C端口對(duì)A、B端口的控制(a) 對(duì)A端口;(b) 對(duì)B端口1010 I/O1010 I/O 10110D7D6D5D4D3D2D1D0D7D6D5D4D3D2D1D0D7D6D5D4D3D2D1D0A組工作于方式1輸出的控制字A組和B組工作于方式1輸出的控制字B組工作于方式1

55、輸出的控制字方式1B端口為輸出PC5、PC41輸入0輸出PC5、PC41輸入0輸出A端口為輸出方式1ACKAOBFAINTRAI/OPC6PC7PC3INTEA&PC5PC4PA7PA02WR8PC2PC1PC0INTEB&PB7PB0WR8INTRBOBFBACKB(a)(b)圖4.8端口結(jié)構(gòu)圖4.9 8255A方式1輸出時(shí)序WROBFINTRACK送往外設(shè)的輸出數(shù)據(jù)數(shù)據(jù)有效tAOBtWOBtWITtAKtAITtWB2134圖4.9時(shí)序 當(dāng)8255A的A端口和B端口工作在選通輸出方式時(shí),對(duì)應(yīng)的C端口也是固定分配,規(guī)定是PC3、PC6、PC7分配給A端口;PC2、PC1、PC

56、0分配給B端口,剩下的2位PC4、PC5可作為簡(jiǎn)單的輸入/輸出線使用。當(dāng)控制字的D3位為“1”時(shí),PC4、PC5作輸入;當(dāng)控制字的D3位為“0”時(shí),PC4、PC5作輸出。圖4.8 方式1選通輸出方式時(shí),各控制信號(hào)的意義如下: OBF(Output Buffer Fu11):輸出緩沖器滿信號(hào),低電平有效。A組方式控制字中對(duì)應(yīng)PC7;B組方式控制字中對(duì)應(yīng)PC1,這是8255A與外設(shè)的聯(lián)絡(luò)信號(hào)。當(dāng)CPU向8255A的端口中傳送了數(shù)據(jù)以后,由8255A向外設(shè)發(fā)出低電平的OBF信號(hào),通知外設(shè)可以把數(shù)據(jù)取走。由輸出指令產(chǎn)生的寫信號(hào)WR的上升沿出現(xiàn)后,最多經(jīng)過650 ns時(shí)間,將OBF信號(hào)置成有效即變?yōu)榈碗?/p>

57、平,如圖4.9中表示的箭頭。 當(dāng)應(yīng)答信號(hào)ACK變?yōu)橛行У牡碗娖胶?50 ns時(shí)間,OBF信號(hào)撤消變?yōu)楦唠娖?,如圖4.9中表示的箭頭。表表4-5 8255A方式方式1輸出時(shí)序參數(shù)說(shuō)明輸出時(shí)序參數(shù)說(shuō)明OBFACKACK參 數(shù)說(shuō) 明8255A最小時(shí)間/ns最大時(shí)間/nstWIT從寫信號(hào)有效到中斷請(qǐng)求無(wú)效的時(shí)間 850tWOB從寫信號(hào)無(wú)效到輸出緩沖器清的時(shí)間 650tAOB 有效到無(wú)效的時(shí)間 350tAK 脈沖的寬度300 tAIT 為1到發(fā)新的中斷請(qǐng)求的時(shí)間 350tWB寫信號(hào)撤除到數(shù)據(jù)有效的時(shí)間350ACK表45 ACK(Acknowledge):數(shù)據(jù)接收應(yīng)答信號(hào),低電平有效。A組方式控制字中對(duì)應(yīng)

58、PC6;B組方式控制字中對(duì)應(yīng)PC2,這是外設(shè)的響應(yīng)信號(hào),當(dāng)CPU輸出給8255A的數(shù)據(jù)已由外設(shè)接收后,外設(shè)就向8255A回送一個(gè)低電平的應(yīng)答信號(hào)ACK。 INTR:中斷請(qǐng)求信號(hào),高電平有效。A組方式控制字中對(duì)應(yīng)PC3;B組方式控制字中對(duì)應(yīng)PC0。當(dāng)外設(shè)已經(jīng)接受了CPU輸出的數(shù)據(jù)后,由8255A向CPU發(fā)出中斷請(qǐng)求,要求CPU輸出新的數(shù)據(jù)。當(dāng)ACK撤消后為高電平,OBF也為高電平,中斷允許信號(hào)INTE也為高時(shí),INTR中斷請(qǐng)求信號(hào)被置位為高電平, 如圖4.9中表示的箭頭。 作為請(qǐng)求CPU進(jìn)行下一次數(shù)據(jù)輸出的中斷請(qǐng)求信號(hào),是在WR有效的下降沿出現(xiàn)后850 ns時(shí)間內(nèi)使它變?yōu)闊o(wú)效的低電平,如圖4.9

59、中表示的箭頭。 INTE:中斷允許信號(hào),高電平有效。當(dāng)該信號(hào)為“1”時(shí),允許中斷,為“0”時(shí),A端口(B端口)處于中斷屏蔽狀態(tài),即不發(fā)出中斷請(qǐng)求信號(hào)INTR。在使用時(shí),中斷允許信號(hào)INTE是用軟件通過對(duì)C端口置1/置0的控制字來(lái)設(shè)置的。當(dāng)PC6置1時(shí),A端口允許中斷;PC2置1,B端口允許中斷。反之,如果A、B端口所對(duì)應(yīng)的PC6、PC2置0時(shí),則處于中斷屏蔽狀態(tài),即不允許中斷。圖4.9 當(dāng)8255A工作在方式l輸出選通方式時(shí),一般是采用中斷方式與CPU通信。從圖4.9方式1輸出工作時(shí)序圖中可以看到,CPU響應(yīng)中斷以后,就向8255A輸出數(shù)據(jù),寫信號(hào)出現(xiàn)。當(dāng)寫信號(hào)WR撤消,其上升沿一方面撤消中斷

60、請(qǐng)求信號(hào)INTR,如圖4.9中表示的箭頭使INTR變低,表示CPU對(duì)上一次中斷已經(jīng)響應(yīng)過。另一方面使OBF信號(hào)變?yōu)橛行У牡碗娖?,如圖4.9中表示的箭頭,以通知外設(shè)可以接收下一個(gè)數(shù)據(jù)。 實(shí)際上,CPU在發(fā)出寫信號(hào)后要經(jīng)過最長(zhǎng)350 ns時(shí)間,數(shù)據(jù)才能出現(xiàn)在端口的輸出緩沖器中。當(dāng)外設(shè)收到數(shù)據(jù)后,便發(fā)出一個(gè)ACK信號(hào),ACK信號(hào)有效后使OBF變成無(wú)效的高電平,如圖04.09中表示的箭頭,表示數(shù)據(jù)已經(jīng)取走,當(dāng)前緩沖器空。ACK信號(hào)結(jié)束時(shí)使INTR信號(hào)變?yōu)橛行У母唠娖剑鐖D4.9中表示的箭頭,向CPU發(fā)出中斷請(qǐng)求信號(hào),從而開始新的數(shù)據(jù)輸出過程。輸出控制信號(hào)分配表信號(hào)A組 B組功能說(shuō)明OBFPC7 PC1輸出滿0輸出滿 ACKPC6 PC2回答0外設(shè)接收

溫馨提示

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

評(píng)論

0/150

提交評(píng)論