第8章輸入輸出接口_第1頁
第8章輸入輸出接口_第2頁
第8章輸入輸出接口_第3頁
第8章輸入輸出接口_第4頁
第8章輸入輸出接口_第5頁
已閱讀5頁,還剩117頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第8章輸入輸出接口第8章并行接口與串行接口

概述

可編程并行接口8255A主要內(nèi)容教學(xué)重點(diǎn)

本章介紹兩種通信方式與兩種接口芯片,以此構(gòu)建并行與串行通信系統(tǒng)。重點(diǎn):通信的基本概念;

8255A的功能、結(jié)構(gòu)與編程;難點(diǎn):8255A與設(shè)備、系統(tǒng)的連接;

第8章教學(xué)要求1.掌握并行通信和串行通信的基本概念,2.掌握并行接口芯片8255A的基本結(jié)構(gòu)和特點(diǎn)3.熟悉8255A的三種工作方式及其應(yīng)用4.掌握8255A的控制字的含義一、CPU與外設(shè)通信特點(diǎn)需要有接口作為CPU與外設(shè)通訊的橋梁;需要有數(shù)據(jù)信息傳送之前的“聯(lián)絡(luò)”;要傳遞的信息有三方面內(nèi)容:狀態(tài)、數(shù)據(jù)及控制信息。概述CPUI/O接口外設(shè)地址數(shù)據(jù)控制控制數(shù)據(jù)狀態(tài)概述

接口電路通常包含一組能夠與處理器交換信息的寄存器或緩沖器,稱為I/O端口

數(shù)據(jù)端口——存放數(shù)據(jù)信息

狀態(tài)端口——存放狀態(tài)信息,即反映外設(shè)當(dāng)前工作狀態(tài)的信息

控制端口——存放控制信息概述

1.數(shù)據(jù)信息

(1)數(shù)字量:數(shù)字量是使用二進(jìn)制形式表示的數(shù)據(jù)、圖形、文字等信息。

(2)模擬量:連續(xù)變化的物理量,如溫度、壓力等。由傳感器先將其變?yōu)殡妷夯螂娏餍盘?hào),通過模/數(shù)轉(zhuǎn)換器變成數(shù)字量,送入計(jì)算機(jī)處理。

(3)開關(guān)量:用開關(guān)量可表示兩種狀態(tài),如開關(guān)的閉與合、電機(jī)的轉(zhuǎn)與停、三極管的通與斷等,這樣的量用一位二進(jìn)制數(shù)表示即可。概述

2.狀態(tài)信息

狀態(tài)信息反映了外部設(shè)備當(dāng)前所處的工作狀態(tài),是外部設(shè)備發(fā)送給CPU的,用來協(xié)調(diào)CPU和外部設(shè)備間的操作。對(duì)于輸入設(shè)備通常用準(zhǔn)備好(READY)信號(hào)表示輸入數(shù)據(jù)是否準(zhǔn)備好;對(duì)于輸出設(shè)備常用忙(BUSY)信號(hào)表示輸出設(shè)備是否處于空閑狀態(tài)。若有空閑,則可接收CPU送來的信息,否則CPU將等待。概述

3.控制信息

控制信息是CPU發(fā)送給外部設(shè)備的,以控制外部設(shè)備的工作。如對(duì)外部設(shè)備的初始化、外部設(shè)備的啟動(dòng)和停止等控制信息。概述二、接口的功能1.對(duì)輸入/輸出數(shù)據(jù)進(jìn)行緩沖與暫存2.實(shí)現(xiàn)信號(hào)形式和數(shù)據(jù)類型的轉(zhuǎn)換3.緩解外部設(shè)備與CPU工作速度的差異概述三、I/O端口的尋址

微機(jī)系統(tǒng)中會(huì)有許多外部設(shè)備,一個(gè)外部設(shè)備的接口電路中又可能占用多個(gè)I/O端口(PORT),每個(gè)端口用來保存和交換不同的信息。每個(gè)端口必須有各自的端口地址供CPU訪問。所以接口電路中包含有地址譯碼電路使CPU能夠?qū)ぶ返矫總€(gè)端口。概述

1.通用接口芯片

支持通用的數(shù)據(jù)輸入輸出和控制的接口芯片;如單向三態(tài)緩沖器74LS244,基本輸出接口芯片,如鎖存器74LS273和74LS373等。

2.專用接口芯片

針對(duì)某種外設(shè)設(shè)計(jì)、與該種外設(shè)接口;如并行接口8255、串行接口8250等。概述

3.面向微機(jī)系統(tǒng)的專用接口芯片

與CPU和系統(tǒng)配套使用,以增強(qiáng)其總體功能;如中斷控制接口8259、DMA接口等。有的接口電路具有可編程性,有的接口電路具有多種功能和工作方式,可以通過編程的方法選定其中一種接口。

接口軟件有兩類:一是初始化程序段,用于設(shè)定芯片工作方式等;二是數(shù)據(jù)交換程序段,用于管理、控制、驅(qū)動(dòng)外部設(shè)備。概述CPU與外部設(shè)備的數(shù)據(jù)交換,是通過I/O接口進(jìn)行的。為了區(qū)分每一個(gè)接口,我們采用對(duì)每一個(gè)I/O接口進(jìn)行編號(hào),即稱其為I/O接口的地址。利用I/O接口的地址可以很方便的確定外部設(shè)備使用的I/O接口,這就是對(duì)I/O接口的尋址。對(duì)I/O接口的編號(hào),也稱為編址,可以有兩種方式。概述1.I/O接口的統(tǒng)一編址概述I/O端口存儲(chǔ)單元I/O地址空間存儲(chǔ)器地址空間整個(gè)地址空間

如圖所示,在這種方式中,把外部設(shè)備接口與內(nèi)存統(tǒng)一進(jìn)行編址,故每一個(gè)外部設(shè)備端口占有存儲(chǔ)器的一個(gè)地址。

這種編址方式的優(yōu)點(diǎn):可以用訪向存儲(chǔ)器的指令來訪問I/O端口,而訪問存儲(chǔ)器的指令功能比較強(qiáng),不僅有一般的傳送指令,還有算術(shù)、邏輯運(yùn)算指令,以及各種移位、比較指令等,并且可以實(shí)現(xiàn)直接對(duì)I/O端口內(nèi)的數(shù)據(jù)進(jìn)行處理。缺點(diǎn)是:由于I/O端口占用了一部分存儲(chǔ)器地址空間,因而使用戶的存儲(chǔ)地址空間相對(duì)減小。另外不利于程序閱讀。

在80X86系列微機(jī)系統(tǒng)中采用這種工作方式,外設(shè)地址空間和內(nèi)存地址空間相互獨(dú)立。CPU有專門的I/O指令和相應(yīng)的控制電路、控制信號(hào),用地址來區(qū)分不同的外設(shè)。2.I/O端口獨(dú)立編址概述存儲(chǔ)單元存儲(chǔ)地址空間I/O端口I/O地址空間概述這種編址方式的優(yōu)點(diǎn):可以用訪向存儲(chǔ)器的指令來訪問I/O端口,而訪問存儲(chǔ)器的指令功能比較強(qiáng),不僅有一般的傳送指令,還有算術(shù)、邏輯運(yùn)算指令,以及各種移位、比較指令等,并且可以實(shí)現(xiàn)直接對(duì)I/O端口內(nèi)的數(shù)據(jù)進(jìn)行處理。缺點(diǎn)是:由于I/O端口占用了一部分存儲(chǔ)器地址空間,因而使用戶的存儲(chǔ)地址空間相對(duì)減小。另外不利于程序閱讀。

四、輸入/輸出方式1、同步傳送方式2、異步查詢方式程序控制傳送方式3、中斷方式4、直接存儲(chǔ)器存取方式

概述一、程序控制傳送方式(一)、同步傳送方式(無條件方式)

CPU直接與外設(shè)傳送數(shù)據(jù)并不需要了解外設(shè)狀態(tài),認(rèn)為外設(shè)已經(jīng)準(zhǔn)備就緒,直接與外設(shè)傳送數(shù)據(jù)

概述CPU譯碼數(shù)據(jù)線M/IOWR或門地址線

接口外設(shè)輸出概述CPU譯碼數(shù)據(jù)線M/IORD或門地址線

接口外設(shè)輸入概述(二)、異步查詢方式

在執(zhí)行輸入輸出前,要先查詢接口中狀態(tài)寄存器的狀態(tài)。

概述

輸入時(shí),狀態(tài)寄存器的狀態(tài)指示要輸入的數(shù)據(jù)是否已經(jīng)準(zhǔn)備就緒;

準(zhǔn)備好?讀取狀態(tài)信息輸入數(shù)據(jù)是否概述常用的狀態(tài)線有IBF,READY功能:1、輸入設(shè)備準(zhǔn)備好數(shù)據(jù),狀態(tài)線有效;2、CPU讀數(shù)據(jù)端口,取走數(shù)據(jù)后,狀態(tài) 線轉(zhuǎn)換為無效概述輸出時(shí),狀態(tài)寄存器的狀態(tài)指示輸出設(shè)備是否空閑。忙?讀取狀態(tài)信息輸出數(shù)據(jù)否是概述常用的狀態(tài)線有empty,busy功能:1、輸出設(shè)備空閑,BUSY無效;2、CPU寫數(shù)據(jù)端口,輸出設(shè)備輸出數(shù)據(jù), 狀態(tài)線轉(zhuǎn)換為有效概述(三)、中斷方式

當(dāng)外設(shè)作好傳送準(zhǔn)備后,主動(dòng)向CPU請(qǐng)求中斷,CPU響應(yīng)中斷后在中斷處理程序中與外設(shè)交換數(shù)據(jù)。在中斷未發(fā)生時(shí),CPU可以執(zhí)行其他程序,這樣可以提高CPU的利用率。概述主程序中斷服務(wù)子程序中斷信號(hào)概述與程序查詢方式相比,中斷控制方式的數(shù)據(jù)交換具有如下特點(diǎn):(1)提高了CPU的工作效率;(2)CPU具有控制外圍設(shè)備服務(wù)的主動(dòng)權(quán);(3)CPU可以和外設(shè)并行工作;(4)可適合實(shí)時(shí)系統(tǒng)對(duì)I/O處理的要求。概述二、直接存儲(chǔ)器存取方式(DMA)(DirectMemoryAccess)。

在高速的外設(shè)或成塊交換數(shù)據(jù)的情況,采用程序控制方式進(jìn)行數(shù)據(jù)的傳輸,是無法滿足要求的。在這種情況下,采用DMA方式。概述

DMA方式是在外設(shè)與內(nèi)存間建立起直接的通道,CPU不再直接參加外設(shè)和內(nèi)存間的數(shù)據(jù)傳輸。當(dāng)系統(tǒng)需要進(jìn)行DMA傳輸時(shí),將CPU對(duì)地址和數(shù)據(jù)及控制線的管理權(quán)交由DMA控制器進(jìn)行控制,當(dāng)完成了一次DMA數(shù)據(jù)傳輸后,再將這個(gè)控制權(quán)還給CPU,這些工作都是由硬件自動(dòng)實(shí)現(xiàn)的,并不需要程序進(jìn)行控制。概述CPU外設(shè)存儲(chǔ)器總線:執(zhí)行程序指令的數(shù)據(jù)傳送路徑;:DMA方式的數(shù)據(jù)傳送路徑概述內(nèi)存外設(shè)DMAC輸出輸入外設(shè)外設(shè)DMAC內(nèi)存內(nèi)存DMACDMA傳送的幾種形式概述五、8086CPU的輸入/輸出1、I/O尋址64K2、8086CPU的I/O指令(1)直接尋址輸入/輸出指令(八位端口地址) INAL,n(字節(jié)輸入) INAX,n(字輸入) OUTn,AL(字節(jié)輸出) OUTn,AX(字輸出)概述

(2)DX寄存器間接尋址輸入(十六位端口地址)

INAL,DX(字節(jié)輸入) INAX,DX(字輸入) OUTDX,AL(字節(jié)輸出) OUTDX,AX(字輸出)概述六、有關(guān)端口地址問題

a、8086CPU與外設(shè)交換數(shù)據(jù)可以字或字節(jié)進(jìn)行,

b、當(dāng)以字節(jié)進(jìn)行時(shí),偶地址端口的字節(jié)數(shù)據(jù)由低8位數(shù)據(jù)線D7~D0位傳送,奇地址端口的字節(jié)數(shù)據(jù)由高8位數(shù)據(jù)線D15~D8傳送,

c、當(dāng)用戶在安排外設(shè)的端口地址時(shí),如果外設(shè)是以8位的方式與CPU連接,就只能將其數(shù)據(jù)線或者與CPU的低八位或者與高八位連接,這樣同一臺(tái)外設(shè)的所有寄存器端口地址都只能是偶地址或是奇地址,這時(shí)設(shè)備的端口地址就會(huì)是不連續(xù)的。概述一、并行接口的特點(diǎn)并行接口是在多根數(shù)據(jù)線上,以字節(jié)/字為單位與I/O設(shè)備交換數(shù)據(jù)8.1.1并行通信二、可編程并行通信接口芯片82558255芯片引腳定義與功能Intel系列的8位并行接口芯片通用性強(qiáng),使用靈活可用程序設(shè)置和改變芯片的工作方式是一種典型的可編程并行接口芯片40個(gè)引腳,雙列直插式8255APA3PA2PA1PA0RDCSGNDA1A0PC7PC6PC5PC4PC3PC2PC1PC0PB0PB1PB2PA4PA5PA6PA7WRRESETD0D1D2D3D4D5D6D7VccPB7PB6PB5PB4PB3二、可編程并行通信接口芯片8255resetD7~D0A9~A2A1A0IORIOW片選譯碼數(shù)據(jù)緩沖器讀寫控制片內(nèi)譯碼CSRESETA1A0RDWRPC7~PC0PB7~PB0PA7~PA0控制口D端口A端口C端口B+5VGNDD7~D0外設(shè)8255A總線二、可編程并行通信接口芯片82558255芯片引腳定義與功能1.數(shù)據(jù)端口A、B、C每個(gè)端口8位,通過編程設(shè)定其為輸入口或輸出口可用來和外設(shè)傳送信息

端口A有3種工作方式(方式0、方式1、方式2)對(duì)外8根引腳PA7~PA0

二、可編程并行通信接口芯片82558255芯片引腳定義與功能1.數(shù)據(jù)端口A、B、C端口B

有2種工作方式:方式0、方式1對(duì)外8根引腳PB7~PB0端口C對(duì)外引腳PC0~PC7二、可編程并行通信接口芯片82558255芯片引腳定義與功能1.數(shù)據(jù)端口A、B、C

★當(dāng)端口A在方式1或方式2、端口B在方式1時(shí),端口C的某些位用于傳送聯(lián)絡(luò)信號(hào),以適應(yīng)CPU與外設(shè)間的各種數(shù)據(jù)傳送方式的要求,如查詢傳送的應(yīng)答信號(hào)、中斷傳送的中斷申請(qǐng)信號(hào)等;★C口未被用作聯(lián)絡(luò)信號(hào)的其它位可工作在方式0下。二、可編程并行通信接口芯片82558255芯片引腳定義與功能2.控制端口D(A組和B組控制電路)

8位端口,無對(duì)外引腳可用來和外設(shè)傳送信息控制端口的內(nèi)容決定A口、B口、C口的工作狀態(tài)(輸入或輸出)

和工作方式(方式0、1、2),起控制作用。二、可編程并行通信接口芯片82558255芯片引腳定義與功能3.數(shù)據(jù)總線緩沖器(引腳D0~D7)由1個(gè)8位雙向三態(tài)緩沖器構(gòu)成8255A內(nèi)各端口通過數(shù)據(jù)緩沖器與系統(tǒng)總線相連。

CPU與端口A、B、C間傳送的數(shù)據(jù),以及CPU寫入控制端口D中的控制字均通過數(shù)據(jù)緩沖器傳送。二、可編程并行通信接口芯片82558255芯片引腳定義與功能4.讀寫控制電路(引腳CS、RD、WR)控制數(shù)據(jù)總線緩沖器的狀態(tài)。數(shù)據(jù)總線緩沖器有3種狀態(tài):輸入、輸出、高阻態(tài)二、可編程并行通信接口芯片82558255芯片引腳定義與功能5.片內(nèi)譯碼電路(引腳A1、A0)選擇被操作的端口二、可編程并行通信接口芯片82558255芯片引腳定義與功能由CS、A1、A0、RD、WR引腳的不同組合,實(shí)現(xiàn)各種不同的功能。

在8255A內(nèi)部硬件結(jié)構(gòu)中:

A口和B口之間沒有硬件關(guān)系,即可分別作為獨(dú)立的輸入或輸出端口;

C口和A口,C口和B口之間有硬件聯(lián)系,通過向控制口設(shè)置控制字可以改變這種聯(lián)系。三、三種工作方式三、三種工作方式根據(jù)A口和C口、B口和C口之間硬件關(guān)系的不同,可以有三種不同的工作方式,

分別稱為方式0、方式1、方式2。A口或B口工作在方式0:與C口之間沒有硬件聯(lián)系。

A口或B口工作在方式1:C口的某3根引腳作為端口與外設(shè)的聯(lián)絡(luò)信號(hào)。A口工作在方式2:C口的某5根引腳作為端口與外設(shè)的聯(lián)絡(luò)信號(hào)。

三、三種工作方式1.方式0(基本輸入輸出方式)

A口工作在方式0

時(shí),A口和C口之間沒有硬件聯(lián)系

B口工作在方式0

時(shí),B口和C口之間沒有硬件聯(lián)系三、三種工作方式1.方式0(基本輸入輸出方式)

工作在方式0的端口,為單向傳送端口,輸入或輸出

作為輸入口相當(dāng)于普通的三態(tài)門作為輸出口相當(dāng)于普通的鎖存器

CPU可利用工作在方式0的端口,直接對(duì)端口進(jìn)行讀寫操作,實(shí)現(xiàn)CPU與外設(shè)間的數(shù)據(jù)傳送。三、三種工作方式

2.方式1(選通輸入輸出方式)

A口工作在方式1時(shí),C口的某3根引腳作為A口的聯(lián)絡(luò)信號(hào)。

B口工作在方式1時(shí),C口的某3根引腳作為B口的聯(lián)絡(luò)信號(hào)。工作在方式1的端口,為單向傳送端口。在方式1下,C口作為A口、B口聯(lián)絡(luò)信號(hào)的引腳,其動(dòng)作關(guān)系在芯片設(shè)計(jì)和制造時(shí)已固定,

不由用戶自己安排,也不能編程改變。三、三種工作方式3.方式2(雙向傳送方式)端口工作在方式2時(shí),C口的某5根引腳作為端口的聯(lián)絡(luò)信號(hào)

8255A只有A口可以工作在方式2下。與方式0和方式1不同的是:工作在方式2的端口,為雙向傳送端口,既可輸入又可輸出。方式選擇控制字四、8255A的控制字10001/0011/0D7D6D5D4D3D2D1D0特征位A口方式0A口輸出PC7~PC4I/OB口方式0B口輸入PC3~PC0I/O所以,方式控制字為1000

0010B,即82H由于對(duì)

C口無要求,控制C口的相應(yīng)位D4,D0可為任意值,假設(shè)取0例假設(shè)8255A控制端口的地址為203h,編程設(shè)置控制字,使A口方式0輸出;B口方式0輸入設(shè)置控制字的程序段如下:

MOVDX,203h;置DX為控制口地址

MOVAL,82h;置控制字于AL中

OUTDX,AL;將控制字寫入控制口例假設(shè)8255A控制端口的地址為203h,編程設(shè)置控制字,使A口方式0輸出;B口方式0輸入端口C置位/復(fù)位控制字注意:C口控制字雖然是對(duì)端口C操作,但應(yīng)寫入到控制口地址,而不是寫入到C數(shù)據(jù)口例

假設(shè)8255A的控制口地址為203h,通過控制口置PC2為0,置PC4為1

MOVDX,203H

;置DX為控制口地址MOVAL,00000100B;置PC2為0OUTDX,ALMOVAL,00001001B;置PC4為1OUTDX,AL

例:設(shè)A、B、C數(shù)據(jù)口地址分別位60H、61H、62H、控制口端口地址63H1:A口方式0,輸出、B口方式0,輸入,C口高4位輸出,C口低4位入MOVAL,10000011BOUT63H,AL2:PC7置1,PC3置0MOVDX,63HMOVAL,0000,1111B;PC7置1OUTDX,ALMOVAL,0000,0110B;PC3置0OUTDX,AL8255的工作方式08255作為打印機(jī)接口,工作于方式01.方式0(基本輸入輸出方式,單向傳送端口,輸入或輸出)程序設(shè)計(jì):設(shè)PA、PB、PC口地址分別為0D0H、0D2H、0D4H控制口地址:0D6HMOVAL,81H;OUT0D6H,ALMOVAL,0DH;①PC6置1,0DH=0000,1101OUT0D6H,ALLPST:INAL,0D4H;讀PC口ANDAL,04D;②打印機(jī)忙否(PC2=BUSY=?)JNZLPST;PC2=1,打印機(jī)忙,等待MOVAL,CLOUT0D0H,AL;③CL中的字符送PA口MOVAL,0CHOUT0D6H,AL;④置PC6=0,即=0;00001100=0CHINCALOUT0D6H,AL;置PC6=1,即=1,00001101=0DH┆8255的工作方式1——選通輸入輸出方式A口工作在方式1時(shí),C口的某3根引腳作為A口的聯(lián)絡(luò)信號(hào)

B口工作在方式1時(shí),C口的某3根引腳作為B口的聯(lián)絡(luò)信號(hào)。工作在方式1的端口,為單向傳送端口。由方式控制字決定是輸入還是輸出。

C口作為聯(lián)絡(luò)信號(hào)的引腳,不受方式控制字的控制。該出則出,該入則入,不受C口按位置位/復(fù)位控制字控制。8255的工作方式1——選通輸入輸出方式

利用方式1下的聯(lián)絡(luò)信號(hào),可方便地實(shí)現(xiàn)查詢或中斷方式的硬件設(shè)計(jì),使CPU能夠有效、可靠地與外設(shè)進(jìn)行數(shù)據(jù)傳送。

A口、B口在輸入或輸出不同的工作狀態(tài)時(shí),C口聯(lián)絡(luò)信號(hào)的引腳和意義也不同。8255的工作方式1——選通輸入輸出方式8255的工作方式1——選通輸入輸出方式對(duì)方式1輸入的端口,C口提供與外部聯(lián)絡(luò)的信號(hào)有:①

STB選通信號(hào)(低電平有效)由外設(shè)發(fā)出,送給8255A,作用是將外設(shè)送來的數(shù)據(jù)鎖存到8255A的輸入端口。②

IBF輸入緩沖器滿信號(hào)(高電平有效)

8255A發(fā)出,表示外設(shè)送來的數(shù)據(jù)已進(jìn)入輸入端口。當(dāng)外設(shè)送來的數(shù)據(jù)送入輸入端口后,8255A自動(dòng)發(fā)出。③

INTR中斷申請(qǐng)信號(hào)(高電平或上升沿有效)8255A發(fā)出,用來向CPU發(fā)出中斷申請(qǐng)。STB、IBF、INTE均為1時(shí),8255A自動(dòng)發(fā)出INTR。8255的工作方式1——選通輸入輸出方式對(duì)方式1輸入的端口,8255A內(nèi)部的控制信號(hào)有:

INTE中斷允許控制信號(hào),作用是控制是否允許8255A的中斷申請(qǐng)信號(hào)INTR發(fā)出。

此信號(hào)無引出,通過控制口對(duì)C口相應(yīng)位的置位/復(fù)位設(shè)置允許或不允許。

A口,對(duì)PC4置位,使INTEA=1,允許中斷

對(duì)PC4復(fù)位,使INTEA=0,不允許中斷

B口,對(duì)PC2置位,使INTEB=1,允許中斷

對(duì)PC2復(fù)位,使INTEB=0,不允許中斷8255的工作方式1——選通輸入輸出方式方式1的輸入時(shí)序:從工作在方式1下的輸入端口輸入數(shù)據(jù)時(shí),有關(guān)信號(hào)的變化關(guān)系。外設(shè)送來數(shù)據(jù)PB7~PB0PA7~PA0STBIBFINTRRD②③當(dāng)INTE=1時(shí)

①8255的工作方式1——選通輸入輸出方式①當(dāng)外設(shè)準(zhǔn)備好數(shù)據(jù),將數(shù)據(jù)送至端口線PA7~PA0或PB7~PB0②

外設(shè)發(fā)出選通信號(hào)STB:(1)將數(shù)據(jù)鎖存在輸入端口內(nèi)。(2)使IBF變高,表示輸入端口滿,可用于阻止外設(shè)輸入新數(shù)據(jù)。(3)如果INTE=1,STB的上升沿使INTR變高,發(fā)出中斷請(qǐng)求。③轉(zhuǎn)中斷處理程序,執(zhí)行IN指令,CPU讀取數(shù)據(jù),發(fā)出RD信號(hào):(1)RD的下降沿清除INTR(2)RD的上升沿清除IBF(3)端口內(nèi)的數(shù)據(jù)進(jìn)入CPU8255的工作方式1——選通輸入輸出方式8255的工作方式1——選通輸入輸出方式對(duì)方式1輸出的端口,C口提供與外部聯(lián)絡(luò)的信號(hào)有:①

OBF輸出緩沖器滿信號(hào)(低電平有效)當(dāng)數(shù)據(jù)送至8255A輸出緩沖器后,8255A自動(dòng)發(fā)出。表示CPU送來的數(shù)據(jù)已進(jìn)入8255A輸出端口,可用來通知外設(shè)把數(shù)據(jù)取走。②

ACK外設(shè)響應(yīng)信號(hào)(低電平有效)由外設(shè)發(fā)出,送給8255A。作用是通知8255A輸出端口的數(shù)據(jù)已被外設(shè)取走,可以傳送下一個(gè)數(shù)據(jù)。8255的工作方式1——選通輸入輸出方式③

INTR中斷申請(qǐng)信號(hào)(高電平或上升沿有效)

8255A發(fā)出,用來向CPU發(fā)出中斷申請(qǐng)。當(dāng)OBF、ACK、INTE均為1時(shí),8255A自動(dòng)發(fā)出INTR。8255的工作方式1——選通輸入輸出方式對(duì)方式1輸出的端口,8255A內(nèi)部的控制信號(hào)有:

INTE中斷允許控制信號(hào),作用是控制是否允許中斷申請(qǐng)信號(hào)INTR發(fā)出。

此信號(hào)無引出,通過控制口對(duì)C口相應(yīng)位的置位/復(fù)位設(shè)置允許或不允許。

A口,對(duì)PC6置位,使INTEA=1,允許中斷

對(duì)PC6復(fù)位,使INTEA=0,不允許中斷

B口,對(duì)PC2置位,使INTEB=1,允許中斷

對(duì)PC2復(fù)位,使INTEB=0,不允許中斷8255的工作方式1——選通輸入輸出方式方式1的輸出時(shí)序:向工作在方式1下的輸出端口輸出數(shù)據(jù)時(shí),有關(guān)信號(hào)的變化關(guān)系。8255的工作方式1——選通輸入輸出方式①CPU執(zhí)行OUT指令,輸出數(shù)據(jù)②CPU發(fā)出WR(1)數(shù)據(jù)寫到8255A的端口(2)使OBF有效(OBF=0),表示輸出端口滿,可作為外設(shè)的選通信號(hào),通知外設(shè)取數(shù)據(jù)。(3)

清除中斷請(qǐng)求信號(hào)INTR③

外設(shè)接受到數(shù)據(jù)后,發(fā)出ACK信號(hào)

(1)ACK的下降沿使OBF變高,

(2)當(dāng)INTE=1,ACK的上降沿使INTR變高,發(fā)出中斷請(qǐng)求,請(qǐng)求CPU輸出新的數(shù)據(jù)。8255的工作方式1——選通輸入輸出方式主程序:MAIN:MOVAL,0A0H;方式選擇控制字OUT0C6H,ALMOVAL,01H;OUT0C6H,ALCLI;替換中斷向量前關(guān)中斷MOVAH,25H;替換中斷向量的典型方式MOVAL,0BH;IR3的類型碼為0BHMOVDX,OFFSETROUTINTRPUSHDSMOVAX,SEGROUTINTRMOVDS,AXINT21HPOPDSMOVAL,0DH;PA方式1輸出,“置PC6=1的操作”O(jiān)UT0C6H,AL;使8255允許中斷(INTEA=1)STI;CPU開中斷┆假 設(shè):A口地址0C0HB口地址0C2HC口地址0C4H控制口0C6H中斷處理程序ROUTINTR:MOVAL,[DI];DI為打印字符緩沖區(qū)地址OUT0C0H,ALMOVAL,00H;置PC0=0OUT0C6H,ALINCAL;置PC0=1┆IRET8255的工作方式2——選通雙向傳輸方式

端口工作在方式2時(shí),C口的某5根引腳作為端口的聯(lián)絡(luò)信號(hào)

8255A只有A口可以工作在方式2下。與方式0、方式1的單向傳送不同,工作在方式2下的端口,具有雙向傳送功能。

A口工作在方式2下,C口未做聯(lián)絡(luò)信號(hào)的3條引腳可作為B口在方式1下的聯(lián)絡(luò)線,也可和B口一樣工作在方式0下。由方式控制字決定其輸入/輸出。8255的工作方式2——選通雙向傳輸方式工作在方式2時(shí),C口有5根引腳作為A口的聯(lián)絡(luò)信號(hào),是方式1下A口輸入、輸出聯(lián)絡(luò)信號(hào)的組合。8255A在IBMPC/XT主板上的應(yīng)用鍵盤接口鍵盤鍵盤中斷申請(qǐng)8259AIR1INTAINT8088INTRINTA60H端口61H端口8255A應(yīng)答信號(hào)掃描碼輔助電路IR018.2Hz方波揚(yáng)聲器8255A與系統(tǒng)的連接8255A在IBMPC/XT主板上的應(yīng)用各端口的地址分別為:

A口:60HB口:61HC口:62H控制口:63H正常工作時(shí),A、B、C三個(gè)端口均工作在方式0,A口輸入、B口輸出、C口輸入,方式控制字為:1001

1001B(99H)(8255A的控制字在系統(tǒng)初始化中已設(shè)置)

8255A在IBMPC/XT主板上的應(yīng)用

8255A在IBMPC/XT主板上的應(yīng)用發(fā)聲程序中通過61H端口控制發(fā)聲鍵盤中斷子程中通過60H端口讀入鍵盤掃描碼執(zhí)行:OUT61H,AL執(zhí)行:OUT61H,AL8255A在IBMPC/XT主板上的應(yīng)用87例8.1某系統(tǒng)要求使用8255的A口工作于方式1作輸入,B口工作于方式0作輸出,C口上半部輸入,下半部輸出。8255端口地址為60H-63H??刂谱譃椋?0111000B=0B8H初始化程序?yàn)椋?/p>

MOV AL,0B8HOUT 63H,AL882.C口按位置/復(fù)位控制字(寫,A1A0=11)C口按位置/復(fù)位控制字例8.2 如上例,若A口工作于方式1作輸入,要使用中斷傳送方式,則應(yīng)當(dāng)寫PC4的按位置位字:

MOV AL,00001001BOUT 63H,AL89

方式1下8255狀態(tài)字中INTE位的置位和復(fù)位⊙若禁止PA口輸入中斷請(qǐng)求MOVDX,303H;8255命令口MOVAL,00001000B;置PC4=0,禁止中斷請(qǐng)求OUTDX,AL⊙若允許PA口輸入中斷請(qǐng)求MOVDX,303H;8255命令口MOVAL,00001001B;置PC4=1,允許中斷請(qǐng)求OUTDX,AL⊙若允許PA口輸出中斷請(qǐng)求MOVDX,303H;8255命令口MOVAL,00001101B;置PC6=1,允許中斷請(qǐng)求OUTDX,AL90⊙若允許PB口輸入中斷請(qǐng)求MOVDX,303H;8255命令口MOVAL,00000101B;置PC2=1,允許中斷請(qǐng)求OUTDX,AL⊙若禁止PB口輸入中斷請(qǐng)求MOVDX,303H;8255命令口MOVAL,00000100B;置PC2=0,禁止中斷請(qǐng)求OUTDX,AL⊙若允許PB口輸出中斷請(qǐng)求MOVDX,303H ;8255命令口MOVAL,00000101B;置PC2=1,允許中斷請(qǐng)求OUTDX,AL例8.3:CPU通過8255A控制8個(gè)開關(guān)和發(fā)光二極管,要求發(fā)光二極管的亮滅和開關(guān)狀態(tài)一致,設(shè)計(jì)電路并編寫程序。解析:可以認(rèn)為,處于方式0輸出工作狀態(tài)的PA、PB、PC端口實(shí)際上等同一個(gè)鎖存器,而處于方式0輸入工作狀態(tài)的PA、PB、PC端口實(shí)際上等同一個(gè)緩沖器。電路如圖所示。圖18255控制開關(guān)、發(fā)光二極管電路

首先根據(jù)電路確定8255A4個(gè)端口的地址。確定端口地址用下述方法進(jìn)行,為了能夠訪問8255A,必須使8255A的片選信號(hào)CS=0,A9~A4的信號(hào)必須如下:A9A8A7A6A5A4A3A2

10011000PA端口

01PB端口

10PC端口

11控制端口

而A3、A2

的組合和各個(gè)端口地址的關(guān)系也如上所示,由于A1、A0沒有參與譯碼,其值對(duì)訪問端口沒有影響。綜合以上討論可以得出,PA、PB、PC和控制端口的地址分別是260H、264H、268H和26CH。在確定工作方式控制字時(shí)必須知道,PA端口為方式0輸出,PB端口為方式0輸入,而PC端口沒有參與電路工作,其輸入輸出方式隨意,由此可確定控制字為82H。

10000010

控制電路工作并使其保證開關(guān)狀態(tài)和發(fā)光二極管亮滅一致的程序如下:

MOVDX,26CHMOVAL,82HOUTDX,ALMOVDX,264HINAL,DXNOTALMOVDX,260HOUTDX,AL例8.4:

用一片8255A連接8個(gè)7段數(shù)碼顯示管,規(guī)定8255A的端口地址范圍為340H~34FH,用74LS138譯碼器實(shí)現(xiàn)8255A的片選電路,并根據(jù)電路編寫在8個(gè)7段數(shù)碼管上顯示數(shù)字0~7的程序。解:在設(shè)計(jì)電路前,首先要了解7段數(shù)碼管,掌握數(shù)碼管顯示數(shù)字的原理。圖2-1給出了共陰極7段數(shù)碼管邏輯結(jié)構(gòu)圖。

bcadfegabcdefgcomabcdefgcom(a)7段發(fā)光二極管標(biāo)號(hào)(b)對(duì)應(yīng)電路圖(c)引腳分布圖2-1共陰極7段數(shù)碼管邏輯結(jié)構(gòu)

從圖2-1可以看出。當(dāng)com端接低電平,a~g端接高電平,對(duì)應(yīng)的發(fā)光二極管就發(fā)亮。如果想在7段數(shù)碼管上顯示數(shù)字0,需要在com端接低電平,a、b、c、d、e、f端接高電平,g端接低電平。七段數(shù)碼管的字形代碼表如下:顯示字形g f edc b a段碼

0 0 1 1 11 1 13fh1 0 1 1 00 0 0 30h2 1 0 1 10 1 1 5bh3 1 0 0 11 1 1 4fh4 1 1 0 01 1 0 66h5 1 1 0 11 0 1 6dh61 1 1 11 0 1 7dh7 0 0 0 01 1 1 07h

一片8255A只需4個(gè)端口地址,而題中給出的地址范圍由16個(gè)地址,這意味著低4位地址中有些地址可以不參加地址譯碼。設(shè)計(jì)電路的第一部還需要設(shè)計(jì)出片選電路。必須用指定地址范圍內(nèi)狀態(tài)不變的地址信號(hào)作為片選電路的輸入信號(hào)。

A9A8A7A6A5A4

A3A2A1A0110100

0000

340H110100

1111

34FH

從上述分析中可以看出,指定地址范圍內(nèi)狀態(tài)不變的地址信號(hào)是A9A8A7A6A5A4

它們的狀態(tài)分別是110100,這意味著A9~A4上出現(xiàn)的信號(hào)狀態(tài)為110100,8255A的CS必須為低電平。下面討論如何用74LS138譯碼器實(shí)現(xiàn)這一功能。設(shè)計(jì)片選電路的基本原則是:用A9~A4作為74LS138的輸入,用74LS138其中一個(gè)輸出Yi去連接8255的CS,當(dāng)且僅當(dāng)A9~A4=110100時(shí),Yi才能變?yōu)榈碗娖?。圖2-2中,用A6、A5、A4

分別連接74LS138的

G、G2A、G2B,只有當(dāng)A6A5A4=100時(shí)74LS138才能進(jìn)行譯碼操作,用A9

、A8、A7分別連接74LS138的C、B、A,而用Y6輸出連接8255的CS,這樣,只有當(dāng)A9A8A7=110時(shí),Y6輸出為低電平。圖2-2用74LS138譯碼器實(shí)現(xiàn)8255的片選電路

用一片8255A連接8個(gè)7段數(shù)碼管。且使8個(gè)7段數(shù)碼管顯示8個(gè)不同的數(shù)字。開始,似乎感到有點(diǎn)困難。實(shí)際上,任何時(shí)刻只顯示一個(gè)7段數(shù)碼管,其余7個(gè)7段數(shù)碼管都沒有顯示狀態(tài),CPU通過8255A逐個(gè)顯示7段數(shù)碼管,并在不同的7段數(shù)碼管上顯示不同的數(shù)字。在逐個(gè)顯示完8個(gè)數(shù)碼管后,又開始新一輪的逐個(gè)顯示過程,當(dāng)這個(gè)循環(huán)周期間隔足夠短時(shí),由于人的眼睛有滯后效應(yīng),使得人們發(fā)現(xiàn)每一個(gè)數(shù)碼管都出于顯示狀態(tài),且顯示不同的數(shù)字。

從電路中可以得出,8255A4個(gè)端口的地址分別是:

340H(PA端口)、344H(PB端口)348H(PC端口)、34CH(控制口)程序的設(shè)計(jì)思路是先通過PB端口選中某個(gè)數(shù)碼管(使其公共端為低電平),然后再從PA端口輸出選中的數(shù)碼管所對(duì)應(yīng)的顯示碼,在完成當(dāng)前數(shù)碼管顯示后,顯示下一個(gè)數(shù)碼管,在完成一輪顯示后,開始下一輪的顯示。datasegmentorg100hbuff1db3fh,30h,5bh,4fh,66h,6dh,7dh,07h;定義0~7的顯示碼

buff2db0feh,0fdh,0fbh,0f7h,0efh,0dfh,0bfh,7fh;定義位碼dataendscodesegmentassumecs:code,ds:datastart:movdx,34Ch;設(shè)置8255控制端口地址

moval,80h;使8255的A口、B口、C口為方式0輸出

outdx,alyyy1:movsi,offsetbuff1;設(shè)置顯示碼指針

movdi,offsetbuff2;設(shè)置控制碼指針

movcx,8;每一輪循環(huán)中顯示的數(shù)碼管的數(shù)目

yyy2:

movdx,340h

;先使所有數(shù)碼管變黑

moval,0

outdx,al

movdx,344h

;選中一個(gè)數(shù)碼管

moval,[di]

outdx,al

movdx,340h

;輸出該數(shù)碼管對(duì)應(yīng)的顯示碼

moval,[si]

outdx,al

incsi

;選擇下一個(gè)數(shù)碼管所對(duì)應(yīng)的顯示碼

incdi

;選擇下一個(gè)數(shù)碼管

loopyyy2;顯示下一個(gè)數(shù)碼管

jmpyyy1;開始新的一輪的顯示

movah,4chint21hcodeends

endstart

8255A作為開關(guān)K0~K3及七段LED顯示器接口。要求開關(guān)設(shè)置的二進(jìn)制信息,由PC0~PC3輸入,經(jīng)程序轉(zhuǎn)換為對(duì)應(yīng)的七段LED顯示器的字形代碼后,由A口輸出顯示。8255APA7PA0~驅(qū)動(dòng)器+5V+5VK0K1K2K3PC3PC2PC1PC0D7~D0RDWRA1A2ABCG2AG2BG1Y0Y1Y2OOOD7~D0RDWRA0A1CSA0A3A4A78086系統(tǒng)總線LS138接口電路M/IO&A5A6各端口地址為:E8H~EEH8255A各端口地址確定:由圖可知: A7A6A5A4A3A2A1A011101

08255A方式選擇控制字:LED顯示器的字形代碼表存放在TABLE單元開始的內(nèi)存中.TABLEDB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H DB80H,98H,88H,83H,0C6H,0A1H,86H,8EHCSABCG2AG2BG1Y0Y1Y2A0A3A4A7LS138M/IO&A5A6按題意設(shè)置端口A方式0輸出,下C口輸入.10000××181H實(shí)現(xiàn)操作的具體程序如下:MOV DX,0E8H ;指向端口A OUT DX,AL ;輸出字形碼顯示 HLTMOV DX,0EEH;設(shè)置8255A工作方式 MOV AL,81H OUT DX,ALMOV DX,0ECH;指向端口C,讀開關(guān)狀態(tài) IN AL,DX AND AL,0FH LEA BX,TABLE;顯示代碼表首地址送BX XLAT ;查表,取出相應(yīng)的字形碼送ALLED顯示器的結(jié)構(gòu)abdcefgdpLED顯示器的外形abcdefgdp共陽極LED顯示器的結(jié)構(gòu)abcdefgdp共陰極LED顯示器的結(jié)構(gòu)LED顯示器的工作原理軟件譯碼法PA0PA1PA2PA3PA4PA5PA6PA78255DB7--DB0abcdefgdp方案1共陽極LED顯示器與同相驅(qū)動(dòng)器接口abdcefgdpabdcefgdpD7D6D5D4D3D2D1D0dpgfedcba0(C0H)11000000abdcefgdpabdcefgdpabdcefgdpabdcefgdpabdcefgdpabdcefgdpabdcefgdpabdcefgdp9(90H)100100001(F9H)111110012(A4H)101001003(B0H)101100004(99H)100110015(92H)100100106(82H)1

溫馨提示

  • 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)論