第07章 并行接口_第1頁
第07章 并行接口_第2頁
第07章 并行接口_第3頁
第07章 并行接口_第4頁
第07章 并行接口_第5頁
已閱讀5頁,還剩64頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、1第第7 7章章 并行接口并行接口 主要內(nèi)容:主要內(nèi)容:1 1、并行接口的特點(diǎn)、并行接口的特點(diǎn) 2 2、可編程并行接口芯片可編程并行接口芯片8255A 3 3、8255A的的0方式及其應(yīng)用方式及其應(yīng)用 4 4、8255A的的1方式及其應(yīng)用方式及其應(yīng)用 5 5、8255A的的2方式及其應(yīng)用方式及其應(yīng)用重點(diǎn)內(nèi)容:重點(diǎn)內(nèi)容:8255A的各種工作方式及其應(yīng)用的各種工作方式及其應(yīng)用2第第7 7章章 并行接口并行接口 7.1 并行并行I/O接口的特點(diǎn)接口的特點(diǎn)一、并行接口的定義一、并行接口的定義 實(shí)現(xiàn)并行輸入實(shí)現(xiàn)并行輸入/輸出的接口就是并行接口。通常,一個(gè)并行接口輸出的接口就是并行接口。通常,一個(gè)并行接口

2、 可設(shè)計(jì)為輸出接口,例如連接一臺(tái)打印機(jī);可設(shè)計(jì)為輸出接口,例如連接一臺(tái)打印機(jī); 也可設(shè)計(jì)為輸入接口,也可設(shè)計(jì)為輸入接口, 例如連接鍵盤;例如連接鍵盤; 還可設(shè)計(jì)成雙向通訊接口,既可作為輸入接口又可還可設(shè)計(jì)成雙向通訊接口,既可作為輸入接口又可 作為輸出接口,例如連接像磁盤驅(qū)動(dòng)器這樣的需要雙向通路的設(shè)備。作為輸出接口,例如連接像磁盤驅(qū)動(dòng)器這樣的需要雙向通路的設(shè)備。二、并行接口的特點(diǎn)二、并行接口的特點(diǎn) (1)以字節(jié)()以字節(jié)(8位)、位)、 字(字(16位)或雙字(位)或雙字(32)寬度,)寬度, 在接口與外在接口與外 設(shè)之間的多根數(shù)據(jù)線上傳輸數(shù)據(jù)。設(shè)之間的多根數(shù)據(jù)線上傳輸數(shù)據(jù)。 (2)并行數(shù)據(jù)的格

3、式無固定格式,由被連接的外設(shè)的要求決定。)并行數(shù)據(jù)的格式無固定格式,由被連接的外設(shè)的要求決定。 (3)并行數(shù)據(jù)傳輸過程中,一般不作差錯(cuò)檢驗(yàn)和傳輸速率控制)并行數(shù)據(jù)傳輸過程中,一般不作差錯(cuò)檢驗(yàn)和傳輸速率控制 (4)由于并行通信所采用的電纜較多,不太適合長(zhǎng)距離傳輸。所以,)由于并行通信所采用的電纜較多,不太適合長(zhǎng)距離傳輸。所以, 并行通信通常用在數(shù)據(jù)傳輸率要求較高、而傳輸?shù)木嚯x相對(duì)較并行通信通常用在數(shù)據(jù)傳輸率要求較高、而傳輸?shù)木嚯x相對(duì)較 短的場(chǎng)合。短的場(chǎng)合。3第第7 7章章 并行接口并行接口 三、并行接口與外設(shè)的連接三、并行接口與外設(shè)的連接 如圖所示,并行接口左邊是與如圖所示,并行接口左邊是與CP

4、U連接的總線,右邊用一個(gè)連接的總線,右邊用一個(gè) 通道和輸入設(shè)備相連,另一個(gè)通道和輸出設(shè)備相連,輸入和輸出通道和輸入設(shè)備相連,另一個(gè)通道和輸出設(shè)備相連,輸入和輸出 都有獨(dú)立的信號(hào)交換聯(lián)絡(luò)控制線。在并行接口內(nèi)部用控制寄存器都有獨(dú)立的信號(hào)交換聯(lián)絡(luò)控制線。在并行接口內(nèi)部用控制寄存器 來寄存來寄存CPU對(duì)它的控制命令,用狀態(tài)寄存器來提供各種工作狀態(tài)對(duì)它的控制命令,用狀態(tài)寄存器來提供各種工作狀態(tài) 供供CPU查詢,此外,還有供輸出和輸入數(shù)據(jù)用的輸出數(shù)據(jù)鎖存器查詢,此外,還有供輸出和輸入數(shù)據(jù)用的輸出數(shù)據(jù)鎖存器 和輸入數(shù)據(jù)緩沖器。和輸入數(shù)據(jù)緩沖器。 CPU控制寄存器控制寄存器輸入緩沖寄存器輸入緩沖寄存器輸出緩沖

5、寄存器輸出緩沖寄存器狀態(tài)寄存器狀態(tài)寄存器輸輸入入設(shè)設(shè)備備輸輸出出設(shè)設(shè)備備地址地址譯碼譯碼數(shù)據(jù)總線數(shù)據(jù)總線讀出信號(hào)讀出信號(hào)寫入信號(hào)寫入信號(hào)復(fù)位復(fù)位準(zhǔn)備好準(zhǔn)備好中斷請(qǐng)求中斷請(qǐng)求數(shù)據(jù)輸入準(zhǔn)備好數(shù)據(jù)輸入準(zhǔn)備好數(shù)據(jù)輸入回答數(shù)據(jù)輸入回答數(shù)據(jù)輸入數(shù)據(jù)輸入數(shù)據(jù)輸出數(shù)據(jù)輸出數(shù)據(jù)輸出準(zhǔn)備好數(shù)據(jù)輸出準(zhǔn)備好數(shù)據(jù)輸出回答數(shù)據(jù)輸出回答4第第7 7章章 并行接口并行接口 四、并行接口的基本工作原理四、并行接口的基本工作原理 1、數(shù)據(jù)的輸入過程、數(shù)據(jù)的輸入過程 當(dāng)外設(shè)把數(shù)據(jù)送到數(shù)據(jù)輸入線上時(shí),通過當(dāng)外設(shè)把數(shù)據(jù)送到數(shù)據(jù)輸入線上時(shí),通過“數(shù)據(jù)輸入準(zhǔn)數(shù)據(jù)輸入準(zhǔn) 備好備好”狀態(tài)線通知接口取數(shù)。接口在把數(shù)據(jù)鎖存到輸入緩沖狀態(tài)線通知接口

6、取數(shù)。接口在把數(shù)據(jù)鎖存到輸入緩沖 器的同時(shí),把數(shù)據(jù)輸入回答線置器的同時(shí),把數(shù)據(jù)輸入回答線置“1”,用來通知外設(shè),接口,用來通知外設(shè),接口 的數(shù)據(jù)輸入緩沖器的數(shù)據(jù)輸入緩沖器 “滿滿”,禁止外設(shè)再送數(shù)據(jù)。,禁止外設(shè)再送數(shù)據(jù)。 同時(shí)把內(nèi)部同時(shí)把內(nèi)部 狀態(tài)寄存器中狀態(tài)寄存器中“輸入準(zhǔn)備好輸入準(zhǔn)備好”狀態(tài)位置狀態(tài)位置“1”,以便,以便CPU對(duì)其進(jìn)對(duì)其進(jìn) 行查詢或向行查詢或向CPU申請(qǐng)中斷。在申請(qǐng)中斷。在 CPU 讀取接口中的數(shù)據(jù)后,讀取接口中的數(shù)據(jù)后, 接口將自動(dòng)清除接口將自動(dòng)清除 “輸入準(zhǔn)備好輸入準(zhǔn)備好” 狀態(tài)位和狀態(tài)位和“數(shù)據(jù)輸入回答數(shù)據(jù)輸入回答”信信 號(hào),以便外設(shè)輸入下一個(gè)數(shù)據(jù)。號(hào),以便外設(shè)輸入下

7、一個(gè)數(shù)據(jù)。5第第7 7章章 并行接口并行接口 2、數(shù)據(jù)的輸出過程、數(shù)據(jù)的輸出過程 當(dāng)數(shù)據(jù)輸出緩沖器當(dāng)數(shù)據(jù)輸出緩沖器“空閑空閑”時(shí),時(shí), 接口中接口中“輸出準(zhǔn)備好輸出準(zhǔn)備好”狀態(tài)狀態(tài)位位 置置“1”。 在接收到在接收到CPU的數(shù)據(jù)后,的數(shù)據(jù)后, “輸出準(zhǔn)備好輸出準(zhǔn)備好”狀態(tài)位復(fù)位。狀態(tài)位復(fù)位。 數(shù)據(jù)通過輸出線送到外設(shè),數(shù)據(jù)通過輸出線送到外設(shè), 同時(shí),由同時(shí),由“數(shù)據(jù)輸出準(zhǔn)備好數(shù)據(jù)輸出準(zhǔn)備好”信號(hào)線信號(hào)線 通知外設(shè)取數(shù)據(jù)。通知外設(shè)取數(shù)據(jù)。 當(dāng)外設(shè)接收一個(gè)數(shù)據(jù)時(shí),當(dāng)外設(shè)接收一個(gè)數(shù)據(jù)時(shí), 回送一個(gè)回送一個(gè) “數(shù)據(jù)輸數(shù)據(jù)輸 出回答出回答”信號(hào),通知接口準(zhǔn)備下一次輸出數(shù)據(jù)。信號(hào),通知接口準(zhǔn)備下一次輸出數(shù)據(jù)

8、。 接口將撤消接口將撤消“數(shù)數(shù) 據(jù)輸出準(zhǔn)備好據(jù)輸出準(zhǔn)備好”信號(hào)并且再一次置信號(hào)并且再一次置“輸出準(zhǔn)備好輸出準(zhǔn)備好”狀態(tài)位為狀態(tài)位為“1”, 以便以便CPU輸出下一個(gè)數(shù)據(jù)。輸出下一個(gè)數(shù)據(jù)。 6數(shù)據(jù)數(shù)據(jù)總線總線緩沖緩沖器器讀寫讀寫控制控制邏輯邏輯D7D0RDWRA0A1RESETCSA組組A端口端口(8位)位)B組組C端口端口(低(低4)B組組B端口端口(8位)位)A組組C端口端口(高(高4)I/O PA7PA0I/O PC7PC4I/O PC3PC0I/O PB7PB0A組組控制控制B組組控制控制與與CPU接口接口內(nèi)部邏輯內(nèi)部邏輯外設(shè)接口外設(shè)接口第第7 7章章 并行接口并行接口 7.2 可編程接

9、口芯片可編程接口芯片8255A一、一、8255A的內(nèi)部結(jié)構(gòu)及外部引腳的內(nèi)部結(jié)構(gòu)及外部引腳數(shù)據(jù)總線緩沖器數(shù)據(jù)總線緩沖器 數(shù)據(jù)的輸入數(shù)據(jù)的輸入與輸出、控制字與輸出、控制字的寫入和狀態(tài)信的寫入和狀態(tài)信息的讀出。息的讀出。RESET:復(fù)位信號(hào):復(fù)位信號(hào) 當(dāng)當(dāng) 8255A被復(fù)位被復(fù)位時(shí),片內(nèi)各寄存器全時(shí),片內(nèi)各寄存器全部清零,部清零,A、B、C三三個(gè)端口自動(dòng)設(shè)為輸入個(gè)端口自動(dòng)設(shè)為輸入端口,一般與端口,一般與CPU的的RESET相連。相連。CS:片選信號(hào):片選信號(hào) 與與A1、A0合起來合起來構(gòu)成構(gòu)成A、B、C和控制和控制口的端口地址??诘亩丝诘刂贰1、A0:端口地址:端口地址 譯碼譯碼00 端口端口A

10、01端口端口B 10 端口端口C 11控制口控制口RD / WR:讀寫控制:讀寫控制 信號(hào)信號(hào) 讀寫控制信號(hào)組合讀寫控制信號(hào)組合產(chǎn)生的操作產(chǎn)生的操作控制口控制口不能讀不能讀0 1 01 1總線懸浮總線懸?。ㄈ龖B(tài))(三態(tài))1 1 0X X總線懸浮總線懸浮(三態(tài))(三態(tài))X X 1X X數(shù)據(jù)數(shù)據(jù)寄存器控制寄存器控制1 0 01 1CPUPC1 0 01 0CPUPB1 0 00 1CPUPA1 0 00 0PCCPU0 1 01 0PBCPU0 1 00 1PACPU0 1 00 0操作操作RD WR CSA1 A08255A與外設(shè)接口與外設(shè)接口 為為A、B、C三個(gè)三個(gè)8 位端口寄存器,位端口寄存

11、器, 對(duì)對(duì)應(yīng)應(yīng) PA0PA7、 PB0PB7和和PC0PC7共共24條雙向三態(tài)線。通常條雙向三態(tài)線。通常A口和口和B口作為輸入、口作為輸入、輸出端口,輸出端口, C口作為口作為控制控制/狀態(tài)信息端口,狀態(tài)信息端口,C 口在方式控制字的口在方式控制字的控制下可分為二個(gè)控制下可分為二個(gè) 4位端口,分別與位端口,分別與A口、口、B 口配合使用??谂浜鲜褂?。C 口口還可以進(jìn)行位控制,還可以進(jìn)行位控制,通過指令使其任何一通過指令使其任何一位置位或復(fù)位。位置位或復(fù)位。內(nèi)部控制部分內(nèi)部控制部分 A、B組控制組控制電路組成,根據(jù)電路組成,根據(jù) CPU送來的控制送來的控制字用以決定兩組字用以決定兩組端口(端口(

12、A 組為組為 A口和口和 C 口的高口的高 4位,位,B 組為組為 B 口口和和C口的低口的低4位)位)的工作方式,也的工作方式,也可根據(jù)控制字的可根據(jù)控制字的要求對(duì)要求對(duì) C口控位口控位進(jìn)行置位或復(fù)位。進(jìn)行置位或復(fù)位。7第第7 7章章 并行接口并行接口 二、二、8255A的控制字與初始化編程的控制字與初始化編程例:例:現(xiàn)要求現(xiàn)要求8255A8255A的各個(gè)端口處于如下工作方式,端口的各個(gè)端口處于如下工作方式,端口A A:方式:方式0 0, 輸出;端口輸出;端口B B:方式:方式0 0,輸入;端口,輸入;端口C C的高的高4 4位為輸出,端口位為輸出,端口C C 的低的低4 4位為輸入。端口地

13、址位為輸入。端口地址60H60H63H63H寫出方式選擇控制字。寫出方式選擇控制字。1 1、方式選擇控制字、方式選擇控制字PC3PC0:1 輸入輸入0輸出輸出 PB7PB0:1 輸入輸入0輸出輸出 B組方式組方式 選擇:選擇:0方式方式01方式方式1PC7PC4:1 輸入輸入0輸出輸出 PA7PA0:1 輸入輸入0輸出輸出 A組方式組方式 選擇:選擇:00方式方式001方式方式11X方式方式2 特特征征位位1D6D5D4D3D2D1D08第第7 7章章 并行接口并行接口 2、C口按位置口按位置0/置置1控制字控制字0D6D5D4D3D2D1D01:置:置10:置:置0D3 D2 D1選擇選擇C

14、口的口的0 0 0 0位位0 0 11位位0 1 02位位0 1 13位位1 0 04位位1 0 16位位1 1 17位位未使用未使用特征位特征位例:例:若若8255A的端口地址為的端口地址為220H223 H,現(xiàn)要求端口,現(xiàn)要求端口C的的PC7置置1, PC3置置0。寫出實(shí)現(xiàn)上述要求的程序。寫出實(shí)現(xiàn)上述要求的程序。注意:注意:雖然是對(duì)端口雖然是對(duì)端口C的某一位進(jìn)行置的某一位進(jìn)行置1或清或清0,但該控制字要寫入,但該控制字要寫入 控制口而不是寫入端口控制口而不是寫入端口C。 9第第7 7章章 并行接口并行接口 練習(xí):練習(xí):利用利用8255的的 PC3產(chǎn)生負(fù)脈沖作為打印機(jī)接口電路的產(chǎn)生負(fù)脈沖作為

15、打印機(jī)接口電路的 數(shù)據(jù)選通信號(hào),端口地址為數(shù)據(jù)選通信號(hào),端口地址為300H303H。寫出實(shí)現(xiàn)。寫出實(shí)現(xiàn) 上述要求的程序。上述要求的程序。mov dx , 303Hmov al , 00000110B out dx , al nop nop mov al , 00000111Bout dx , al 10第第7 7章章 并行接口并行接口 3、初始化編程的步驟、初始化編程的步驟 (1)向)向8255控制寄存器寫入方式選擇控制字,控制寄存器寫入方式選擇控制字, 從而預(yù)置端口的工作方式。從而預(yù)置端口的工作方式。 (2)當(dāng)端口預(yù)置為方式)當(dāng)端口預(yù)置為方式1或方式或方式2時(shí),再向控時(shí),再向控 制寄存器寫入

16、制寄存器寫入C口置口置0/置置1控制字,使相控制字,使相 應(yīng)端口的中斷允許觸發(fā)器置應(yīng)端口的中斷允許觸發(fā)器置0 或置或置1,從,從 而禁止或允許端口提出中斷。確定而禁止或允許端口提出中斷。確定8255A 以查詢方式還是中斷方式交換信息。以查詢方式還是中斷方式交換信息。11第第7 7章章 并行接口并行接口 練習(xí):練習(xí):8255端口地址(端口地址(200H203),),8255A的的A口指定口指定 為方式為方式1,輸入,輸入,C口上半部分定為輸出;口上半部分定為輸出;B口指口指 定為定為0方式,方式, 輸出,輸出,C 口下半部分定為輸入??谙掳氩糠侄檩斎搿?寫寫 初始化程序。初始化程序。mov d

17、x , 203Hmov al , 10110001B out dx , al 12第第7 7章章 并行接口并行接口 練習(xí):練習(xí):寫出使口寫出使口A的的PA2和和PA5同時(shí)復(fù)位和同時(shí)同時(shí)復(fù)位和同時(shí) 置位的初始化程序。置位的初始化程序。mov dx , 200 Hin al , dxand al , 11011011Bout dx , almov dx , 200Hin al , dxmov ah , alor al , 00100100Bout dx , al13第第7 7章章 并行接口并行接口 工作工作方式方式方式方式0(基本輸入(基本輸入/輸出):輸出):A口、口、B口、口、C口???。方式方

18、式1(選通型輸入(選通型輸入/輸出):輸出):A口、口、B口口方式方式2(雙向數(shù)據(jù)傳送):(雙向數(shù)據(jù)傳送):A口口C口配合口配合A口口B口工作,為口工作,為它們的它們的I/O提提供聯(lián)絡(luò)信號(hào)供聯(lián)絡(luò)信號(hào)7.3 并行接口芯片并行接口芯片8255A的工作方式的工作方式14第第7 7章章 并行接口并行接口 一、方式一、方式0及其應(yīng)用(基本的輸入及其應(yīng)用(基本的輸入 / 輸出)輸出) 1、特點(diǎn)、特點(diǎn) (1)0方式是一種基本輸入方式是一種基本輸入/輸出工作方式。輸出工作方式。 通常不用聯(lián)絡(luò)通常不用聯(lián)絡(luò) 信號(hào)或不使用固定的聯(lián)絡(luò)信號(hào),信號(hào)或不使用固定的聯(lián)絡(luò)信號(hào), 因此,所謂基本因此,所謂基本 I/O 方式是指查

19、詢方式傳送,也包括無條件傳送。輸出鎖方式是指查詢方式傳送,也包括無條件傳送。輸出鎖 存,輸入有三態(tài)緩沖能力而無鎖存功能。存,輸入有三態(tài)緩沖能力而無鎖存功能。 (2)在)在 0 方式下,彼此獨(dú)立的兩個(gè)方式下,彼此獨(dú)立的兩個(gè)8位和兩個(gè)位和兩個(gè)4位并行口,位并行口, 共共 24 根根I/O線全部由用戶支配,都能被指定作為輸入線全部由用戶支配,都能被指定作為輸入 或者作為輸出用,共有或者作為輸出用,共有16種不同的使用組態(tài)。要特別種不同的使用組態(tài)。要特別 強(qiáng)調(diào)的是,在強(qiáng)調(diào)的是,在0方式下,方式下, 只能把只能把C口的高口的高4位為一組或位為一組或 低低4位為一組同時(shí)輸入或輸出,不能再把位為一組同時(shí)輸入

20、或輸出,不能再把4位中一部分位中一部分 作輸入另一部分作輸出,即作輸入另一部分作輸出,即4位一起使用。位一起使用。15第第7 7章章 并行接口并行接口 一、方式一、方式0及其應(yīng)用(基本的輸入及其應(yīng)用(基本的輸入 / 輸出)輸出) 1、特點(diǎn)、特點(diǎn) (3)在)在 0 方式下不設(shè)置專用聯(lián)絡(luò)信號(hào)線,需要聯(lián)絡(luò)時(shí),可方式下不設(shè)置專用聯(lián)絡(luò)信號(hào)線,需要聯(lián)絡(luò)時(shí),可 由用戶任意指定由用戶任意指定 C 口中的哪根線完成某種聯(lián)絡(luò)功能,口中的哪根線完成某種聯(lián)絡(luò)功能, 這與后面要討論的在這與后面要討論的在1方式、方式、2方式下設(shè)置固定的專用方式下設(shè)置固定的專用 聯(lián)絡(luò)信號(hào)線不同。由于無固定的專用聯(lián)絡(luò)信號(hào),因此聯(lián)絡(luò)信號(hào)線不同

21、。由于無固定的專用聯(lián)絡(luò)信號(hào),因此 也就在端口與也就在端口與 I/O 設(shè)備之間無固定的時(shí)序關(guān)系,由用設(shè)備之間無固定的時(shí)序關(guān)系,由用 戶根據(jù)數(shù)據(jù)傳送的要求決定輸入戶根據(jù)數(shù)據(jù)傳送的要求決定輸入/輸出的操作過程。輸出的操作過程。0 方式也沒有設(shè)置固定的狀態(tài)字。方式也沒有設(shè)置固定的狀態(tài)字。 (4)是單向)是單向 I/O, 一次初始化只能指定端口(一次初始化只能指定端口(PA、PB 和和 PC )作輸入或作輸出,)作輸入或作輸出, 不能指定端口同時(shí)既作輸入不能指定端口同時(shí)既作輸入 又作輸出。又作輸出。162、使用場(chǎng)合、使用場(chǎng)合 (1)同步傳送時(shí),發(fā)送方和接收方的動(dòng)作由一個(gè)時(shí)序信號(hào))同步傳送時(shí),發(fā)送方和接收

22、方的動(dòng)作由一個(gè)時(shí)序信號(hào) 來管理,雙方互相知道對(duì)方的動(dòng)作,不需應(yīng)答信號(hào),來管理,雙方互相知道對(duì)方的動(dòng)作,不需應(yīng)答信號(hào), CPU不需要查詢外設(shè)的狀態(tài)。在同步傳送方式下使用不需要查詢外設(shè)的狀態(tài)。在同步傳送方式下使用 8255A時(shí),時(shí),3個(gè)數(shù)據(jù)端口可實(shí)現(xiàn)三路數(shù)據(jù)傳輸。個(gè)數(shù)據(jù)端口可實(shí)現(xiàn)三路數(shù)據(jù)傳輸。 (2)查詢方式傳輸時(shí),需要有應(yīng)答信號(hào)。)查詢方式傳輸時(shí),需要有應(yīng)答信號(hào)。 這時(shí)一般將這時(shí)一般將 A、 B口作為數(shù)據(jù)端口,口作為數(shù)據(jù)端口,C口的口的4個(gè)數(shù)位規(guī)定為輸出口,用個(gè)數(shù)位規(guī)定為輸出口,用 來輸出一些控制信號(hào),來輸出一些控制信號(hào),C 口的另外口的另外 4 個(gè)數(shù)位規(guī)定為輸個(gè)數(shù)位規(guī)定為輸 入口,用來讀入外設(shè)

23、的狀態(tài)。即用入口,用來讀入外設(shè)的狀態(tài)。即用 C 口來配合口來配合A口和口和 B口的輸入輸出操作??诘妮斎胼敵霾僮?。第第7 7章章 并行接口并行接口 17第第7 7章章 并行接口并行接口 例例1:設(shè)設(shè)8255A端口端口A工作在方式工作在方式0下,通過下,通過A口輸出口輸出 數(shù)據(jù)控制數(shù)據(jù)控制8個(gè)指示燈輪流點(diǎn)亮。個(gè)指示燈輪流點(diǎn)亮。 電路連接如圖電路連接如圖 所示。(地址為所示。(地址為04A0H04A6H)CPU80868255AD0D7INTRD0D7PC3PA0PA7.Vcc18第第7 7章章 并行接口并行接口 MOV DX,04A6H ;控制口地址送;控制口地址送DX MOV AL,80H ;

24、寫工作方式控制字;寫工作方式控制字 OUT DX,AL MOV DX,04A0H ;A端口地址送端口地址送DX MOV AL,0FEH ;低電平燈亮;低電平燈亮 AA1 OUT DX,AL ;輸出數(shù)據(jù);輸出數(shù)據(jù) CALL DELAY ;延時(shí);延時(shí) ROL AL,1 ;輪流點(diǎn)亮;輪流點(diǎn)亮 JMP AA1 注意:注意:執(zhí)行此段程序時(shí)要注意延時(shí)子程序的延時(shí)時(shí)間,執(zhí)行此段程序時(shí)要注意延時(shí)子程序的延時(shí)時(shí)間, 若延時(shí)時(shí)間不夠,指示燈會(huì)全亮或全滅。若延時(shí)時(shí)間不夠,指示燈會(huì)全亮或全滅。19第第7 7章章 并行接口并行接口 例例2 2:開關(guān)輸入與開關(guān)輸入與LEDLED顯示與顯示與ISAISA總線的接口電路如圖所

25、示??偩€的接口電路如圖所示。 8255A8255A端口端口A A編程為方式編程為方式0 0,端口,端口A A向向7 7段段LEDLED顯示器提供顯示器提供 段碼,端口段碼,端口C C作為開關(guān)數(shù)據(jù)輸入。作為開關(guān)數(shù)據(jù)輸入。 本例中,接口的功本例中,接口的功 能是:能是: 將將4 4位開關(guān)輸入的二進(jìn)制數(shù)轉(zhuǎn)換成對(duì)應(yīng)的位開關(guān)輸入的二進(jìn)制數(shù)轉(zhuǎn)換成對(duì)應(yīng)的1616進(jìn)進(jìn) 制數(shù),并在制數(shù),并在7 7段段LEDLED上顯示。上顯示。abcdefgpabcdefgp+5Vabcdefgp(a)共陽極)共陽極LED(b)共陰極)共陰極LED(c)LED字形字形20第第7 7章章 并行接口并行接口 PA0PA1PA2PA

26、3PA4PA5PA6PA7PC3PC2PC1PC01RESETA0A1WRRDCS8255Aabcdefgp+5V段驅(qū)動(dòng)器段驅(qū)動(dòng)器abcdefgp1ABCG2AG2BG1DBRESET DRVA0A1IOWIORA2A3A4AENA9A5A6A7A8Y074LS138+5VK來自來自ISA總線總線21第第7 7章章 并行接口并行接口 DATA SEGMENT ;定義;定義7段碼表段碼表SEGTAB DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H DB 7FH,67H,77H,7CH,39H,5EH,79H,71HDATA ENDSCODE SEGMENTASSUME CS

27、:CODE,DS:DATASTART: MOV AX, DATA MOV DS,AX MOV AL,10000001B ;8255A控制字控制字 MOV DX,203H OUT DX,AL MOV BX,OFFSET SEGTAB22第第7 7章章 并行接口并行接口 MOV DX,202H ;輸入開關(guān)狀態(tài);輸入開關(guān)狀態(tài) IN AL,DX MOV AH,0 AND AL,0FH ;屏蔽高;屏蔽高4位位 ADD BX,AX ;獲取輸入數(shù)字對(duì)應(yīng)的;獲取輸入數(shù)字對(duì)應(yīng)的7段碼地址段碼地址 MOV AL,BX;??;取7段碼段碼 MOV DX,200H ;向端口;向端口A輸出輸出7段碼段碼 OUT DX,A

28、L MOV AX,4C00H ;返回;返回DOS操作系統(tǒng)操作系統(tǒng) INT 21H CODE ENDS END START23第第7 7章章 并行接口并行接口 例:例:如下圖所示如下圖所示8255A作為并行打印機(jī)的接口,作為并行打印機(jī)的接口,CPU采用查詢方式采用查詢方式 把存放在把存放在Buf緩沖區(qū)的緩沖區(qū)的256個(gè)字符(個(gè)字符(ASCII)送去打印。)送去打印。CPUPA7PA0PC7PC2GND291(STB)11 BUSYGND8255A打印機(jī)插座打印機(jī)插座打印機(jī)與打印機(jī)與CPU間傳送數(shù)據(jù)的過程:間傳送數(shù)據(jù)的過程:(1)BUSY=1等待;等待;BUSY=0 CPU送數(shù)據(jù)至數(shù)據(jù)線送數(shù)據(jù)至數(shù)

29、據(jù)線(2)當(dāng))當(dāng)CPU發(fā)發(fā)STB數(shù)據(jù)選通信號(hào),數(shù)據(jù)至打印機(jī)數(shù)據(jù)選通信號(hào),數(shù)據(jù)至打印機(jī)(3)打印機(jī)收到數(shù)據(jù),發(fā))打印機(jī)收到數(shù)據(jù),發(fā)“忙忙”信號(hào),打印機(jī)正處理數(shù)據(jù)。信號(hào),打印機(jī)正處理數(shù)據(jù)。 當(dāng)數(shù)據(jù)處理完,打印機(jī)撤消當(dāng)數(shù)據(jù)處理完,打印機(jī)撤消“忙忙”信號(hào),直至信號(hào),直至busy=024第第7 7章章 并行接口并行接口 code segmentassume cs : code, ds : codeorg 100hstart: mov ax , code mov ds , ax mov dx , 303h mov al , 10000001b ( ) mov al , 00001111b out dx ,

30、 al mov si , offset buf mov cx , ( )L: mov dx , 302h in al , dx and al , ( ) jnz L mov dx , ( )mov al , siout dx , al mov dx , 303hmov al , 00001110bout dx , alnop nopmov al , 00001111bout dx , alinc sidec cxjnz Lmov ax , 4c00hint 21hbuf db 256個(gè)子個(gè)子ASCII字符字符code endsend startout dx , al25604h 300h25第

31、第7 7章章 并行接口并行接口 練習(xí)練習(xí)1、8255A有多少條有多少條I/O信號(hào)線?分別是什么?信號(hào)線?分別是什么?2、8255A使用了多少個(gè)端口?分別是什么端口?使用了多少個(gè)端口?分別是什么端口? 各有何功能?各有何功能?3、當(dāng)把、當(dāng)把82H裝入裝入8255A的控制寄存器后,其端口的控制寄存器后,其端口 A、B、C的工作和的工作和 I/O配置是什么?配置是什么?4、如果、如果8255A的端口的端口A、B和和C設(shè)置為方式設(shè)置為方式0,且,且 端口端口A和和B用于輸入而端口用于輸入而端口C用于輸出,用于輸出,8255 的端口地址為的端口地址為1000H1003H,編寫一個(gè)裝入,編寫一個(gè)裝入 該控

32、制字的指令序列?該控制字的指令序列?5、簡(jiǎn)述、簡(jiǎn)述8255A方式方式0的特點(diǎn)及應(yīng)用場(chǎng)合。的特點(diǎn)及應(yīng)用場(chǎng)合。26第第7 7章章 并行接口并行接口 二、方式二、方式1及其應(yīng)用(選通型的輸入及其應(yīng)用(選通型的輸入/輸出方式)輸出方式) A口、口、B口用方式口用方式1輸入輸入/輸出傳輸時(shí),輸出傳輸時(shí), 要利用端要利用端 口口C提供的選通信號(hào),而這些選通信號(hào)與端口提供的選通信號(hào),而這些選通信號(hào)與端口C的各的各 位之間有著固定的對(duì)應(yīng)關(guān)系。位之間有著固定的對(duì)應(yīng)關(guān)系。 1、特點(diǎn)、特點(diǎn) (1)任何一個(gè)端口可作為輸入口,也可作為輸出)任何一個(gè)端口可作為輸入口,也可作為輸出 口,各端口間無必然關(guān)系。口,各端口間無必

33、然關(guān)系。 (2)各個(gè)端口的輸入或輸出有)各個(gè)端口的輸入或輸出有16種不同的組合,種不同的組合, 可適用多種不同場(chǎng)合??蛇m用多種不同場(chǎng)合。 (3)如果)如果A、B口都工作在方式口都工作在方式1,則端口,則端口C有有6位位 被規(guī)定為配合方式被規(guī)定為配合方式1工作的信號(hào),剩下的工作的信號(hào),剩下的2位位 仍可作為輸入或輸出。仍可作為輸入或輸出。27PC2PC1PC0PB7PB0INTEBRDSTBBIBFBINTRB第第7 7章章 并行接口并行接口 2 2、方式、方式1 1時(shí)輸入端口對(duì)應(yīng)的控制信號(hào)時(shí)輸入端口對(duì)應(yīng)的控制信號(hào)1011 1/0 X X XD7 D6 D5 D4 D3 D2 D1A組工作于方式

34、組工作于方式1輸入的控制字輸入的控制字D0PC4PC5PC3PC7、PC6PA7PA0INTEARDSTBAIBFAINTRAI/O1X X X X11XD7 D6 D5 D4 D3 D2 D1B組工作于方式組工作于方式1輸入的控制字輸入的控制字D01011 1/0 11XD7 D6 D5 D4 D3 D2 D1A、B組都工作于方式組都工作于方式1輸入的控制字輸入的控制字D0STB(Storbe):選通信號(hào)輸入端,它是由外設(shè)送往選通信號(hào)輸入端,它是由外設(shè)送往 8255A 的,當(dāng)?shù)模?dāng) STB有效時(shí),有效時(shí),8255A接收外設(shè)送來的一個(gè)接收外設(shè)送來的一個(gè)8位數(shù)據(jù),位數(shù)據(jù), 從而使從而使8255A

35、的輸入緩沖器中得到一個(gè)新的數(shù)據(jù)。的輸入緩沖器中得到一個(gè)新的數(shù)據(jù)。 IBF(Input Buffer Full):緩沖區(qū)滿信號(hào),它是緩沖區(qū)滿信號(hào),它是8255A 輸出的狀態(tài)信輸出的狀態(tài)信 號(hào)。表示當(dāng)前已有一個(gè)新的數(shù)據(jù)在輸入緩號(hào)。表示當(dāng)前已有一個(gè)新的數(shù)據(jù)在輸入緩 沖器中,該信號(hào)由沖器中,該信號(hào)由STB置位,置位,RD復(fù)位。復(fù)位。INTR(Intrrupt Request):中斷請(qǐng)求信號(hào),它是當(dāng)中斷請(qǐng)求信號(hào),它是當(dāng)STB和和IBF均為高均為高 電平時(shí),電平時(shí),8255 向向CPU發(fā)出的,發(fā)出的,CPU 響響 應(yīng)讀取輸入緩沖器的數(shù)據(jù),由應(yīng)讀取輸入緩沖器的數(shù)據(jù),由RD復(fù)位。復(fù)位。INTE(Intrrup

36、t Enable):中斷允許信號(hào),它是一個(gè)控制中斷允許或中斷允許信號(hào),它是一個(gè)控制中斷允許或 中斷屏蔽的信號(hào)。中斷屏蔽的信號(hào)。 INTE 無外部引腳,由無外部引腳,由 軟件通過對(duì)軟件通過對(duì)C口口PC4或或PC2置置1開、置開、置0禁。禁。28第第7 7章章 并行接口并行接口 STBIBFINTRRD從外設(shè)來的從外設(shè)來的 輸入數(shù)據(jù)輸入數(shù)據(jù)29第第7 7章章 并行接口并行接口 OBF(Out Buffer Full):緩沖區(qū)滿信號(hào),它是緩沖區(qū)滿信號(hào),它是8255A輸出的狀態(tài)信輸出的狀態(tài)信 號(hào)。通知外設(shè)取走數(shù)據(jù)的信號(hào),該信號(hào)由號(hào)。通知外設(shè)取走數(shù)據(jù)的信號(hào),該信號(hào)由 WR置位,置位,ACK使其復(fù)位。使其

37、復(fù)位。3 3、方式、方式1 1時(shí)輸出端口對(duì)應(yīng)的控制信號(hào)時(shí)輸出端口對(duì)應(yīng)的控制信號(hào)1010 1/0 X X XD7 D6 D5 D4 D3 D2 D1A組工作于方式組工作于方式1輸出的控制字輸出的控制字D01X X X X10XD7 D6 D5 D4 D3 D2 D1B組工作于方式組工作于方式1輸出的控制字輸出的控制字D01010 1/0 10XD7 D6 D5 D4 D3 D2 D1A、B組都工作于方式組都工作于方式1輸出的控制字輸出的控制字D0ACK(Acknowledge):外設(shè)響應(yīng)信號(hào),表示外設(shè)響應(yīng)信號(hào),表示CPU通過通過8255A輸出的輸出的 數(shù)據(jù)已經(jīng)送到外設(shè)。數(shù)據(jù)已經(jīng)送到外設(shè)。INTR

38、(Intrrupt Request):中斷請(qǐng)求信號(hào),它是當(dāng)中斷請(qǐng)求信號(hào),它是當(dāng)ACK和和OBF均為均為 高電平時(shí),高電平時(shí),8255向向CPU發(fā)出的,發(fā)出的, 以使以使 CPU再次輸出數(shù)據(jù),由再次輸出數(shù)據(jù),由WR復(fù)位。復(fù)位。INTE(Intrrupt Enable):中斷允許信號(hào),它是一個(gè)控制中斷允許或中斷允許信號(hào),它是一個(gè)控制中斷允許或 中斷屏蔽的信號(hào)。中斷屏蔽的信號(hào)。 INTE 無外部引腳,由無外部引腳,由 軟件通過對(duì)軟件通過對(duì)C口口PC6或或PC2置置1開、置開、置0禁。禁。PC1PC2PC0PB7PB0INTEBWROBFBACKBINTRBPC7PC6PC3PC4、PC5PA7PA0

39、INTEAWROBFAACKAINTRAI/O30第第7 7章章 并行接口并行接口 輸出輸出WROBFINTRACK31第第7 7章章 并行接口并行接口 4、方式、方式1的使用場(chǎng)合的使用場(chǎng)合 選定方式選定方式 1, 在規(guī)定一個(gè)端口的輸入輸出方式的在規(guī)定一個(gè)端口的輸入輸出方式的 同時(shí),就自動(dòng)規(guī)定了有關(guān)的聯(lián)絡(luò)、控制信號(hào)和中斷請(qǐng)同時(shí),就自動(dòng)規(guī)定了有關(guān)的聯(lián)絡(luò)、控制信號(hào)和中斷請(qǐng) 求信號(hào)。求信號(hào)。 如果外設(shè)能向如果外設(shè)能向8255A提供輸入數(shù)據(jù)選通信號(hào)提供輸入數(shù)據(jù)選通信號(hào) 或輸出數(shù)據(jù)接收應(yīng)答信號(hào),或輸出數(shù)據(jù)接收應(yīng)答信號(hào), 就可采用方式就可采用方式 1,方便又,方便又 有效地傳送數(shù)據(jù)。具體地來說,方式有效地

40、傳送數(shù)據(jù)。具體地來說,方式1有二種用法:有二種用法: (1)中斷方式:)中斷方式:將將 INTE 置為置為1,A組和組和B組可以使用組可以使用 各自的各自的INTR信號(hào)申請(qǐng)中斷。信號(hào)申請(qǐng)中斷。 (2)查詢方式:)查詢方式:CPU 通過讀通過讀 C 端口,可以查詢端口,可以查詢IBF、 OBF信號(hào)的當(dāng)前狀態(tài),決定是否立即信號(hào)的當(dāng)前狀態(tài),決定是否立即 進(jìn)行數(shù)據(jù)傳輸。進(jìn)行數(shù)據(jù)傳輸。32第第7 7章章 并行接口并行接口 例:例:打印機(jī)是經(jīng)常使用的外設(shè),打印機(jī)是經(jīng)常使用的外設(shè), 除少數(shù)情況都使用并行接口。除少數(shù)情況都使用并行接口。 它有它有 8位數(shù)據(jù)線位數(shù)據(jù)線DATA1DATA8, 數(shù)據(jù)選通信號(hào)數(shù)據(jù)選通

41、信號(hào)STROBE,應(yīng)答信,應(yīng)答信 號(hào)號(hào)ACK和忙信號(hào)和忙信號(hào)BUSY, 8255A工作在方式工作在方式1,ACK與與PC6(端(端 口口A的的ACKA)相連,而)相連,而 STROBE 由由 PC4 通過軟件方式產(chǎn)生,通過軟件方式產(chǎn)生, PC3(INTRA)產(chǎn)生的中斷請(qǐng)求送入)產(chǎn)生的中斷請(qǐng)求送入PC的的IRQ7引腳。設(shè)引腳。設(shè)8255A 端口地址為端口地址為 200H203H,8255A傳送傳送N個(gè)字符給打印機(jī)。個(gè)字符給打印機(jī)。 PA0PA78255APC4DATA0DATA7STROBEACKPC6PC3打印機(jī)打印機(jī)ACKAINTRPC IRQ733第第7 7章章 并行接口并行接口 DATA

42、 SEGMENTBUF DB N DUP(?)INT0F_SEG DW ? ;存;存0FH號(hào)中斷向量的段地址號(hào)中斷向量的段地址INT0F_OFF DW ? ;存;存0FH號(hào)中斷向量的偏移地址號(hào)中斷向量的偏移地址N EQU 100 ;打印字節(jié)數(shù);打印字節(jié)數(shù)DATA ENDSSTACK SEGMENT PARA STACKSTACK DW 100 DUP(?)STACK ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATA, SS:STACKSTART: MOV AX,DATA;初始化數(shù)據(jù)段;初始化數(shù)據(jù)段 MOV DS,AX CLI MOVAX,350FH;??;取0F號(hào)中

43、斷向量號(hào)中斷向量 INT21H MOVINT0F_SEG,ES34第第7 7章章 并行接口并行接口 MOVINT0F_OFF,BXPUSH DSMOVAX,SEG PRINT_INT ;設(shè)置新中斷向量;設(shè)置新中斷向量MOVDS,AXMOVDX,OFFSET PRINT_INTMOVAX,250FHINT21HPOPDSINAL,21HANDAL,7FHOUT21H,AL ;允許;允許PCIRQ7中斷中斷MOVDX,203HMOVAL,10100000B ;A口方式口方式1輸出,輸出,PC4為輸出為輸出OUTDX,ALMOVAL,00001101B ;置;置PC6=1,允許,允許8255A 中斷

44、中斷OUTDX,ALMOVDX,203H ;8255A控制端口地址控制端口地址 35第第7 7章章 并行接口并行接口 MOVAL,00001001B ;8255A PC4輸出高電平輸出高電平OUTDX,ALSTI ;開中斷;開中斷MOVBX,OFFSET BUF ;緩沖區(qū)首地址;緩沖區(qū)首地址MOVCL,N ;傳送長(zhǎng)度;傳送長(zhǎng)度MOVAL,BX ;取數(shù)據(jù);取數(shù)據(jù)INCBXMOVDX,200HOUTDX,AL ;向;向8255A輸出第一個(gè)字節(jié)輸出第一個(gè)字節(jié) DECCLMOVDX,203HMOVAL,00001000B ;輸出;輸出PC4低電平低電平OUTDX,ALNOP ;延時(shí);延時(shí)NOPMOVA

45、L,000010001B ;輸出;輸出PC4高電平(產(chǎn)生高電平(產(chǎn)生STROBE信號(hào))信號(hào))OUTDX,AL36第第7 7章章 并行接口并行接口 HERE:CMP CL,0 JNZ HERE CLI PUSH DS MOV AX,INT0F_SEG ;恢復(fù)類型;恢復(fù)類型0FH原中斷向量原中斷向量 MOV DS,AX MOV DX,INT0F_OFF MOV AX,250FH INT 21H POP DS IN AL,21H ;禁止;禁止IRQ7中斷中斷 OR AL,80H OUT 21H,AL MOV AH,4CH ;返回;返回DOS INT 21H37第第7 7章章 并行接口并行接口 ;*中

46、斷服務(wù)程序中斷服務(wù)程序 * PRINT_INTPROC NEAR PUSH DX PUSH AX MOV DX,200H MOV AL,BX OUT DX,AL ;8255A端口端口A輸出下一個(gè)字節(jié)輸出下一個(gè)字節(jié) INC BX ;修改地址;修改地址 DEC CL ;字節(jié)計(jì)數(shù);字節(jié)計(jì)數(shù) MOV AL,00001000B ;產(chǎn)生;產(chǎn)生STROBE信號(hào)信號(hào) MOV DX,203H OUT DX,AL NOP NOP MOV AL,00001001B OUT DX,AL38第第7 7章章 并行接口并行接口 MOV AL,20H ;結(jié)束中斷;結(jié)束中斷 OUT 20H,AL POP AX POP DX I

47、RETPRINT_INT ENDPCODEENDS END START 39第第7 7章章 并行接口并行接口 設(shè)設(shè)8255A和相應(yīng)的實(shí)驗(yàn)電路,如上圖所示。要求先預(yù)置開關(guān)和相應(yīng)的實(shí)驗(yàn)電路,如上圖所示。要求先預(yù)置開關(guān)K2K0為一組狀態(tài),為一組狀態(tài),然后按下自復(fù)按鈕然后按下自復(fù)按鈕K產(chǎn)生一個(gè)負(fù)脈沖信號(hào),輸入到產(chǎn)生一個(gè)負(fù)脈沖信號(hào),輸入到PC4。用發(fā)光二極管。用發(fā)光二極管LEDi 亮,亮,顯示顯示K2K0的狀態(tài)。主機(jī)鍵盤有按任意鍵按下時(shí)結(jié)束演示。查詢方式:當(dāng)?shù)臓顟B(tài)。主機(jī)鍵盤有按任意鍵按下時(shí)結(jié)束演示。查詢方式:當(dāng)PC4收到負(fù)脈沖之后,收到負(fù)脈沖之后,K2K0的狀態(tài)信息被存入的狀態(tài)信息被存入A口數(shù)據(jù)寄存器,

48、口數(shù)據(jù)寄存器,8255A使使IBFA(PC5)=1。程序查詢。程序查詢PC5,當(dāng),當(dāng)PC5=1時(shí)執(zhí)行時(shí)執(zhí)行A口輸入指令。給程序?qū)懨髯⑨???谳斎胫噶?。給程序?qū)懨髯⑨?。D7D0RESETD7D0+5VRDWRIORIOWA1A0A0A1CS地址譯碼器地址譯碼器218H21FHPB6PB7PB0.PA2PA1PA0+5VK2K1K0PC4單脈沖發(fā)生器單脈沖發(fā)生器+5VLED6LED7LED0.PC5IBFA40第第7 7章章 并行接口并行接口 data segmentmesg db 8255A ready, 0dh , 0ah , $tab db 1 1 1 1 1 1 1 0 b db 1 1 1

49、 1 1 1 0 1 b db 1 1 1 1 1 0 1 1 b db 1 1 1 1 0 1 1 1 b db 1 1 1 0 1 1 1 1 b db 1 1 0 1 1 1 1 1 b db 1 0 1 1 1 1 1 1 b db 0 1 1 1 1 1 1 1 bdata endscode segment assume cs : code , ds : databeg: mov ax , data mov ds , ax call i8255A mov ah , 9 mov dx , offset mesg int 21h scan: mov ah , 1 int 16h jnz

50、return mov dx , 21ah in al , dx test al , 00100000b jz scan mov dx , 218h in al , dx and al , 07h mov bx , offset tab xlat tab mov dx , 219h out dx , al jmp scan return: mov ah, 4ch int 21h 41第第7 7章章 并行接口并行接口 i8255a proc mov dx , 21bh mov al , 1 01 1 0 0 0 0 b out dx , al mov al , 08h out dx , al mo

51、v dx , 219h mov al , 0ffh out dx , al reti8255a endp 42第第7 7章章 并行接口并行接口 設(shè)系統(tǒng)機(jī)外擴(kuò)了一片設(shè)系統(tǒng)機(jī)外擴(kuò)了一片8255A和相應(yīng)的實(shí)驗(yàn)電路,如上圖所示。要求和相應(yīng)的實(shí)驗(yàn)電路,如上圖所示。要求從從8255端口端口A邏輯開關(guān)邏輯開關(guān)K7K0作為輸入,端口作為輸入,端口B接發(fā)光二極管接發(fā)光二極管LEDi編程當(dāng)主機(jī)鍵盤無按鍵按下時(shí)從編程當(dāng)主機(jī)鍵盤無按鍵按下時(shí)從8255端口端口A輸入數(shù)據(jù)并從端口輸入數(shù)據(jù)并從端口B輸輸出,驗(yàn)證結(jié)果。開關(guān)閉合為出,驗(yàn)證結(jié)果。開關(guān)閉合為0,斷開為,斷開為1;輸出;輸出PBi=0,LEDi亮。亮。當(dāng)主機(jī)鍵盤有鍵

52、按下時(shí)結(jié)束演示。完成程序并寫明注釋。當(dāng)主機(jī)鍵盤有鍵按下時(shí)結(jié)束演示。完成程序并寫明注釋。CS地址譯碼器地址譯碼器218H21FHPB6PB7PB0.PA2PA1PA0+5VK7K1K0+5VLED6LED7LED0.43第第7 7章章 并行接口并行接口 code segment assume ( )start: mov dx , 21bh mov al , ( ) out dx , alinput: mov dx , ( ) in ( ) , dx mov dx , ( ) out dx , ( ) mov ah , 1 int 16h jz ( ) mov ah, ( ) int 21hcod

53、e ( ) end ( )44第第7 7章章 并行接口并行接口 三三 、方式、方式 2(雙向傳輸方式)(雙向傳輸方式) 只適合于端口只適合于端口A,在方式,在方式2下,下, 外設(shè)可以在外設(shè)可以在 8 位數(shù)據(jù)線上,位數(shù)據(jù)線上, 既往既往 CPU發(fā)送數(shù)據(jù),發(fā)送數(shù)據(jù), 又從又從CPU接收數(shù)接收數(shù) 據(jù)。據(jù)。 當(dāng)當(dāng)A口工作于方式口工作于方式2時(shí),時(shí), C端端 口自動(dòng)提供相應(yīng)的控制信號(hào)??谧詣?dòng)提供相應(yīng)的控制信號(hào)。 1、方式、方式2工作時(shí)的控制信號(hào)工作時(shí)的控制信號(hào)11XXX 1/0 1/0 1/0D7D6D5D4D3D2D1A組工作于方式組工作于方式2的控制字的控制字D0PC3PC7PC6PC4PC5PC2

54、PC0PA7PA0INTE1INTRAOBFAACKASTBAIBFAINTE245第第7 7章章 并行接口并行接口 2、方式、方式2的使用場(chǎng)合的使用場(chǎng)合 方式方式2是一種雙向工作方式,如果一個(gè)外設(shè)是一種雙向工作方式,如果一個(gè)外設(shè) 既是輸入設(shè)備,既是輸入設(shè)備, 又是輸出設(shè)備,又是輸出設(shè)備, 并且輸入和輸并且輸入和輸 出是分時(shí)進(jìn)行的,出是分時(shí)進(jìn)行的, 那么將此設(shè)備與那么將此設(shè)備與8255A的的A口口 相連,并使相連,并使A口工作在方式口工作在方式2就非常方便。例如,就非常方便。例如, 磁盤就是一種這樣的雙向外設(shè)。磁盤就是一種這樣的雙向外設(shè)。 CPU 既能對(duì)磁既能對(duì)磁 盤讀,盤讀, 又能對(duì)磁盤寫,

55、又能對(duì)磁盤寫, 并且讀和寫在時(shí)間上是并且讀和寫在時(shí)間上是 不重合的。不重合的。 所以,所以, 可以將磁盤驅(qū)動(dòng)器的數(shù)據(jù)線可以將磁盤驅(qū)動(dòng)器的數(shù)據(jù)線 和和8255A的的A口相連,再使口相連,再使 PC3PC7 與磁盤控與磁盤控 制器的控制線和狀態(tài)線相連,制器的控制線和狀態(tài)線相連, 就可以進(jìn)行雙向就可以進(jìn)行雙向 的數(shù)據(jù)傳輸。的數(shù)據(jù)傳輸。46第第7 7章章 并行接口并行接口 例:例:使用兩臺(tái)使用兩臺(tái)CPU系統(tǒng),傳送系統(tǒng),傳送 100 個(gè)數(shù)據(jù),個(gè)數(shù)據(jù), 一臺(tái)為主機(jī)一臺(tái)為主機(jī)CPU,其相應(yīng)的,其相應(yīng)的 接口稱為主側(cè),另一臺(tái)為從機(jī)接口稱為主側(cè),另一臺(tái)為從機(jī)CPU,其相應(yīng)的接口稱為從側(cè)。,其相應(yīng)的接口稱為從側(cè)。

56、 主機(jī)主機(jī) CPU以中斷方式輸入輸出數(shù)據(jù),主側(cè)以中斷方式輸入輸出數(shù)據(jù),主側(cè)8255A工作在方式工作在方式2,從機(jī),從機(jī)CPU 采用查詢式輸入輸出數(shù)據(jù)。從側(cè)采用查詢式輸入輸出數(shù)據(jù)。從側(cè)8255A工作在方式工作在方式 0(兩側(cè)(兩側(cè) 8255A地地 址都是址都是04A0H04A6H)。分析:分析:(1) 輸入數(shù)據(jù)時(shí),由從側(cè)輸入數(shù)據(jù)時(shí),由從側(cè)8255A發(fā)給主側(cè)發(fā)給主側(cè)8255A的控制信號(hào)的控制信號(hào) STB 有效時(shí),打開主側(cè)有效時(shí),打開主側(cè)8255A輸入鎖存器,當(dāng)數(shù)據(jù)被鎖存后,主輸入鎖存器,當(dāng)數(shù)據(jù)被鎖存后,主 側(cè)側(cè)8255A輸出信號(hào)輸出信號(hào)IBF才有效。才有效。 (2) 輸出數(shù)據(jù)時(shí),主機(jī)輸出數(shù)據(jù)時(shí),主

57、機(jī)CPU把數(shù)據(jù)輸入給主側(cè)把數(shù)據(jù)輸入給主側(cè)8255A輸出鎖存器,輸出鎖存器, 發(fā)出發(fā)出OBF信號(hào),通知從側(cè)信號(hào),通知從側(cè)8255A,從側(cè),從側(cè)8255A發(fā)回發(fā)回ACK信號(hào),信號(hào), 用來啟動(dòng)三態(tài)輸出緩沖器輸出數(shù)據(jù)。用來啟動(dòng)三態(tài)輸出緩沖器輸出數(shù)據(jù)。47第第7 7章章 并行接口并行接口 D0D7RDWRINTA1A2A3A98086CPUPA0PA7RDWRINTAA1A0PC7PC6PC4PC5PA0PA7PB0PB7PC0PC4PC5PC1A1A0A1A2A3A98086CPUD0D7RDWRRDWRCSCS譯碼器譯碼器譯碼器譯碼器.8255A8255AOBFACKSTBIBF48第第7 7章章

58、并行接口并行接口 ;主程序;主程序 MOV BL,64H ;輸入;輸入100個(gè)數(shù)計(jì)數(shù)器個(gè)數(shù)計(jì)數(shù)器 MOV CL,64H ;輸出;輸出100個(gè)數(shù)計(jì)數(shù)器個(gè)數(shù)計(jì)數(shù)器 MOV SI,0100H ;輸出數(shù)據(jù)所在內(nèi)存單元首址送;輸出數(shù)據(jù)所在內(nèi)存單元首址送SI MOV DI,0200H ;輸入數(shù)據(jù)存放內(nèi)存單元首址送;輸入數(shù)據(jù)存放內(nèi)存單元首址送DI MOV DX,04A6H ;8255A控制口地址送控制口地址送DX MOV AL,0C0H ;工作方式;工作方式2控制字寫入控制字寫入A口口 MOV DX,AL MOV AL,09H ;PC41,允許輸入中斷,允許輸入中斷 MOV DX,AL MOV AL,0DH

59、 ;PC61,允許輸出中斷,允許輸出中斷 STI ;開中斷;開中斷AA5: CMP BL,00H JNZ AA549第第7 7章章 并行接口并行接口 CMP CL,00H JNZ AA5 CLI ;關(guān)中斷;關(guān)中斷 HALT ;中斷服務(wù)程序;中斷服務(wù)程序INT: MOVDX,04A4H ;8255狀態(tài)口地址(狀態(tài)口地址(C口)送口)送DX IN AL,DX ;采集;采集8255狀態(tài)口的狀態(tài)值狀態(tài)口的狀態(tài)值 MOV AH,AL ;保存狀態(tài);保存狀態(tài) AND AL,20H ;判斷輸入緩沖器是否滿;判斷輸入緩沖器是否滿(PC) JZ AA1 ;IBF0,無數(shù)據(jù),轉(zhuǎn)走,無數(shù)據(jù),轉(zhuǎn)走 MOV DX,04A

60、0H ;A口地址送口地址送DX IN AL,DX ;輸入緩沖器滿;輸入緩沖器滿IBF=1,取數(shù)據(jù),取數(shù)據(jù) MOV DI,AL ;保存數(shù)據(jù);保存數(shù)據(jù) 50第第7 7章章 并行接口并行接口 INC DI ;修改地址指針;修改地址指針 DEC BL JMP AA2 AA1: MOV AL,AH AND AL,80H ;判斷輸出緩沖器是否滿;判斷輸出緩沖器是否滿 JZ AA2 ;OBF0,滿,有數(shù)據(jù),轉(zhuǎn)向,滿,有數(shù)據(jù),轉(zhuǎn)向AA2 MOV DX,04A0H ;A口地址送入口地址送入DX MOV AL,SI ;OBF=1輸入緩沖器空,取數(shù)據(jù)輸入緩沖器空,取數(shù)據(jù) OUT DX,AL ;輸出數(shù)據(jù);輸出數(shù)據(jù) I

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論