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

下載本文檔

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

文檔簡介

河南科技大學(xué)電子信息工程學(xué)院計(jì)算機(jī)接口技術(shù)第7章

可編程接口芯片

學(xué)習(xí)內(nèi)容可編程接口芯片概述可編程并行輸入/輸出接口芯片8255A可編程計(jì)數(shù)器/定時(shí)器接口芯片82531河南科技大學(xué)電子信息工程學(xué)院計(jì)算機(jī)接口技術(shù)可編程接口芯片概述

所謂可編程接口芯片是指用戶不改變接口芯片的硬件電路,通過編寫相應(yīng)的程序段,使一塊通用的I/O接口芯片能按不同的工作方式完成不同功能的接口任務(wù)。2河南科技大學(xué)電子信息工程學(xué)院計(jì)算機(jī)接口技術(shù)命令字或方式控制字命令寄存器FF為0,I/O接鎖存器,輸出端口;FF為1,I/O接三態(tài)緩沖器,輸入端口。對(duì)可編程芯片初始化過程,即對(duì)芯片的控制端口寫入各種命令字的操作過程??刂菩畔?位三態(tài)緩沖器8位鎖存器數(shù)據(jù)端口命令端口或控制端口具有輸入功能和輸出功能的可編程接口芯片3河南科技大學(xué)電子信息工程學(xué)院計(jì)算機(jī)接口技術(shù)目前常用的可編程接口芯片有以下幾種:

8255A 并行I/O接口

8253 計(jì)數(shù)器/定時(shí)器

8251 串行I/O接口

8259A 中斷控制器

ADC0809A/D轉(zhuǎn)換接口4河南科技大學(xué)電子信息工程學(xué)院計(jì)算機(jī)接口技術(shù)數(shù)據(jù)的各位同時(shí)由計(jì)算機(jī)到達(dá)外設(shè)→

快多根數(shù)據(jù)線

遠(yuǎn)距離費(fèi)用高并行通信

將一組數(shù)據(jù)的各位同時(shí)在多根并行數(shù)據(jù)線上傳輸。01010110

D0D1D2D3D4D5D6D7外設(shè)D0D1D2D3D4D5D6D7計(jì)算機(jī)并行通信適合于外設(shè)與微機(jī)之間進(jìn)行近距離、大量和快速的信息交換。例如:微機(jī)與并行接口打印機(jī)、磁盤驅(qū)動(dòng)器。7.1可編程并行接口芯片8255A

一、數(shù)據(jù)通信方式5河南科技大學(xué)電子信息工程學(xué)院計(jì)算機(jī)接口技術(shù)數(shù)據(jù)的各位依次由計(jì)算機(jī)到達(dá)外設(shè)→

慢數(shù)據(jù)線少→

遠(yuǎn)距離費(fèi)用低

串行通信將一組數(shù)據(jù)的各位按順序依次在一根數(shù)據(jù)線上傳輸。

01101010

計(jì)算機(jī)串行通信適合于外設(shè)與微機(jī)之間進(jìn)行長距離、中低速信息交換。外設(shè)6河南科技大學(xué)電子信息工程學(xué)院計(jì)算機(jī)接口技術(shù)二、8255A功能和特點(diǎn)

8255A是一種通用的可編程并行I/O接口芯片,廣泛用于如8086、MCS-51、Z80CPU等系統(tǒng)中。具有3個(gè)帶鎖存或緩沖的數(shù)據(jù)端口,可與外設(shè)并行交換數(shù)據(jù)。

特點(diǎn):8255A有3個(gè)8位的并行輸入/輸出端口:A口、B口、C口;可利用編程的方法設(shè)置3個(gè)端口是輸入端口還是輸出端口;有三種工作方式:方式0、方式1和方式2;有三種數(shù)據(jù)傳送方式:無條件傳送、查詢傳送和中斷傳送??梢詫?duì)端口C的任一位進(jìn)行單獨(dú)的位操作??傊?255A是一個(gè)操作靈活、控制方便、應(yīng)用廣泛的并行接口電路。7河南科技大學(xué)電子信息工程學(xué)院計(jì)算機(jī)接口技術(shù)三、8255A內(nèi)部結(jié)構(gòu)和管腳8河南科技大學(xué)電子信息工程學(xué)院計(jì)算機(jī)接口技術(shù)1.?dāng)?shù)據(jù)端口A、B、C

8255A有3個(gè)8位的數(shù)據(jù)端口A、B、C(簡稱A口、B口、C口),可通過程序設(shè)定,使它們分別作為輸入端口或輸出端口與CPU或外設(shè)進(jìn)行數(shù)據(jù)、控制命令和狀態(tài)信息的交換。A口有一個(gè)8位的輸入鎖存器和一個(gè)8位的輸出鎖存器/緩沖器,因此A口作輸入或輸出時(shí),數(shù)據(jù)均被鎖存。B口有一個(gè)8位的輸入緩沖器和一個(gè)8位的輸出鎖存器/緩沖器,因此B口輸入時(shí)數(shù)據(jù)不鎖存,輸出時(shí)數(shù)據(jù)鎖存。A口、B口經(jīng)常作為獨(dú)立的端口工作或與C口配合一起工作。C口有一個(gè)8位的輸入緩沖器和一個(gè)8位的輸出鎖存器/緩沖器,因此C口輸入時(shí)數(shù)據(jù)不鎖存,輸出時(shí)數(shù)據(jù)鎖存。C口經(jīng)常被分成高4位PC7~PC4和低4位PC3~PC0兩個(gè)端口,可分別作為A口和B口的“聯(lián)絡(luò)”線、“狀態(tài)”線、“中斷”線,也可分別作為輸入端口或輸出端口。9河南科技大學(xué)電子信息工程學(xué)院計(jì)算機(jī)接口技術(shù)2.A組和B組控制部件A口和C口的高4位(PC7~PC4)組成A組,由A組控制部件控制,B口和C口的低4位(PC3~PC0)組成B組,由B組控制部件控制。這兩組控制部件一方面接收芯片內(nèi)部數(shù)據(jù)總線上的控制字,一方面接收來自讀/寫控制邏輯電路的讀/寫命令,然后向各端口發(fā)出相應(yīng)的控制命令,控制各端口的工作方式和讀/寫操作。還可以根據(jù)CPU的命令字對(duì)C口的任一位按位進(jìn)行置位或復(fù)位。10河南科技大學(xué)電子信息工程學(xué)院計(jì)算機(jī)接口技術(shù)3.?dāng)?shù)據(jù)總線緩沖器雙向三態(tài)的8位數(shù)據(jù)緩沖器,與系統(tǒng)數(shù)據(jù)總線相連,是傳送數(shù)據(jù)、控制字、狀態(tài)信息的通道。當(dāng)片選信號(hào)CS=0時(shí),通過緩沖器和與之相連的8位數(shù)據(jù)總線D7~D0,可以接收CPU傳送的數(shù)據(jù)或控制字,送入8255A的數(shù)據(jù)端口或控制端口;也可向CPU傳送外設(shè)的數(shù)據(jù)或狀態(tài)信息。當(dāng)片選信號(hào)CS=1時(shí),數(shù)據(jù)總線緩沖器與外部總線D7~D0之間為高阻狀態(tài),即電氣隔離狀態(tài)。11河南科技大學(xué)電子信息工程學(xué)院計(jì)算機(jī)接口技術(shù)讀/寫控制電路接收CPU的控制命令,如片選信號(hào)CS、地址總線的端口選擇信號(hào)A2、A1,讀、寫信號(hào)RD和WR和復(fù)位信號(hào)RESET,將這些信號(hào)組合后,向A、B兩組控制部件發(fā)送命令,完成數(shù)據(jù)、控制字和狀態(tài)信息的傳送。4.讀/寫控制電路12河南科技大學(xué)電子信息工程學(xué)院計(jì)算機(jī)接口技術(shù)

8255A管腳功能

1)8255A與外設(shè)相連的管腳:

PA7~PA0:A口數(shù)據(jù)線,接外設(shè);

PB7~PB0:B口數(shù)據(jù)線,接外設(shè);

PC7~PC0:C口數(shù)據(jù)線或作為A口、

B口的聯(lián)絡(luò)線,接外設(shè)。40個(gè)管腳包括三部分:

1.24個(gè)與外設(shè)相連的管腳;

2.14個(gè)與CPU相連的管腳;

3.電源線和地線。13河南科技大學(xué)電子信息工程學(xué)院計(jì)算機(jī)接口技術(shù)2)8255A與CPU相連的管腳:D7~D0:8位數(shù)據(jù)線,與系統(tǒng)數(shù)據(jù)總線相連。RESET:復(fù)位信號(hào),高電平有效。復(fù)位時(shí)所有內(nèi)部寄存器清除,同時(shí)3個(gè)端口被自動(dòng)置成輸入端口。CS:片選信號(hào),低電平有效。有效時(shí),8255A被選中。RD:讀信號(hào),低電平有效。有效時(shí),CPU可從8255A讀取數(shù)據(jù)或狀態(tài)信息。WR:寫信號(hào),低電平有效。有效時(shí),CPU可向8255A寫入控制字或輸出數(shù)據(jù)。14河南科技大學(xué)電子信息工程學(xué)院計(jì)算機(jī)接口技術(shù)A1A0:端口選擇線8255A有3個(gè)數(shù)據(jù)端口和1個(gè)控制端口,可用A1A0的組合來選擇不同端口。A1A0選擇端口00A口01B口10C口11控制口A1A0的組合與端口關(guān)系15河南科技大學(xué)電子信息工程學(xué)院計(jì)算機(jī)接口技術(shù)8255A端口選擇操作

168255A與8088系統(tǒng)的連接示意圖D0~D7WRRDA1A0CSDBIOWIORA1A0譯碼器8255AA口B口C口D0~D7外設(shè)A15~A2系統(tǒng)總線8位系統(tǒng),8255A的A1、A0可直接與地址總線的A1、A0相連,4個(gè)端口地址是連續(xù)的,如:08H,09H,0AH,0BH。178255A與8086系統(tǒng)的連接示意圖D0~D7WRRDA1A0CSDBIOWIORA2A1譯碼器8255AA口B口C口D0~D7外設(shè)A15~A3,A0系統(tǒng)總線16位系統(tǒng),8255A的數(shù)據(jù)線與系統(tǒng)的低8位相連;而低8位總是與偶地址對(duì)應(yīng),因此系統(tǒng)的A2應(yīng)與8255的A1相連,系統(tǒng)的A1應(yīng)與8255的A0相連。4個(gè)端口的地址為偶數(shù),如端口地址為328H、32AH、32CH、32EH。18河南科技大學(xué)電子信息工程學(xué)院計(jì)算機(jī)接口技術(shù)四、8255A的工作方式及控制字1、8255A的工作方式

8255A有3種工作方式:

1)方式0——基本輸入/輸出方式(A、B、C口);

2)方式1——選通輸入/輸出方式(A、B口);

3)方式2——雙向傳輸方式(僅A口)。A口和B口的工作方式是由寫入控制端口的方式控制字決定的;A口和B口工作方式的是獨(dú)立設(shè)置的,可用方式控制字中的D6~D5位、D2位來分別設(shè)置A口和B口的工作方式。19河南科技大學(xué)電子信息工程學(xué)院計(jì)算機(jī)接口技術(shù)1)方式0—基本輸入/輸出方式特點(diǎn):

方式0適合于無條件傳送方式,A口、B口、C口在無條件方式下,作為數(shù)據(jù)輸入或輸出端口時(shí),不需要應(yīng)答聯(lián)絡(luò)信號(hào)。方式0也適合于查詢傳送方式,A口、B口可作為數(shù)據(jù)輸入或輸出端口,C口的某些位作為聯(lián)絡(luò)線,為A口、

B口提供應(yīng)答聯(lián)絡(luò)信號(hào),具體是哪些位沒有統(tǒng)一規(guī)定。20河南科技大學(xué)電子信息工程學(xué)院計(jì)算機(jī)接口技術(shù)2)方式1—選通輸入/輸出方式特點(diǎn):

方式1也稱為應(yīng)答方式,適合于查詢傳送方式或中斷傳送方式,A口、B口作為數(shù)據(jù)輸入或輸出端口時(shí),需要應(yīng)答聯(lián)絡(luò)信號(hào)。

C口的某些位固定的作為聯(lián)絡(luò)線,為A口、B口提供聯(lián)絡(luò)信號(hào),具體是哪些位有統(tǒng)一規(guī)定。21河南科技大學(xué)電子信息工程學(xué)院計(jì)算機(jī)接口技術(shù)3)方式2—雙向傳輸方式特點(diǎn):只適用于A口,C口固定的5位作為聯(lián)絡(luò)線,為A口提供聯(lián)絡(luò)信號(hào);當(dāng)A口工作在方式2時(shí),B口可工作在方式0或1,C口沒有被指定為聯(lián)絡(luò)信號(hào)的其他位可以工作在方式0,可輸入/輸出端口。22河南科技大學(xué)電子信息工程學(xué)院計(jì)算機(jī)接口技術(shù)2、8255A的控制字8255A有兩個(gè)控制字:1)方式選擇控制字(8位)

作用:設(shè)定工作方式、選擇輸入/輸出;

C口的輸入/輸出可分為兩個(gè)4位端口分別設(shè)置;寫入控制端口(A1=1、A0=1),特征位D7=1。23河南科技大學(xué)電子信息工程學(xué)院計(jì)算機(jī)接口技術(shù)2)C口置位/復(fù)位控制字(8位)作用:控制C口的相應(yīng)位置位(置“1”)或復(fù)位(置“0”);

注意:C口置位/復(fù)位控制字雖然是對(duì)C口操作,但應(yīng)將控制字寫入控制端口(A1=1、A0=1),而不是寫入C端口;特征位D7=0。24河南科技大學(xué)電子信息工程學(xué)院計(jì)算機(jī)接口技術(shù)方式控制字格式:8位,其中最高位是標(biāo)志位,一定要寫1。D7D6D5D4D3D2D1D0D7=1方式控制字標(biāo)志

D7=0C口置位/復(fù)位控制字標(biāo)志

在使用8255A時(shí),首先要由CPU對(duì)8255A寫入控制字,有兩種控制字,8255A的三種工作方式都要由控制字來設(shè)定——設(shè)置過程稱為“初始化”。25河南科技大學(xué)電子信息工程學(xué)院計(jì)算機(jī)接口技術(shù)D7D6D5D4D3D2D1D0D7=1A口工作方式選擇:00=方式0,01=方式1,1X=方式2

基本輸入/輸出選通輸入/輸出雙向傳輸方式

A口輸入輸出選擇:0=輸出1=輸入C口高4位輸入輸出選擇:0=輸出1=輸入B口工作方式選擇:0=方式0基本輸入/輸出

1=方式1選通輸入/輸出

B口輸入輸出選擇:0=輸出

1=輸入C口低4位輸入輸出選擇:

0=輸出1=輸入26河南科技大學(xué)電子信息工程學(xué)院計(jì)算機(jī)接口技術(shù)3種工作方式說明

D7D6D5D4D3D2D1D0D7=1A口工作方式選擇:00=方式0,01=方式1,1X=方式2A口工作狀態(tài)為:基本輸入輸出選通輸入輸出雙向選通輸入輸出

8255A的24條I/O線全部用作傳送數(shù)據(jù),不設(shè)專用聯(lián)絡(luò)線,常用于無條件傳送。A、B口傳送數(shù)據(jù),C口部分位指定為固定的專用聯(lián)絡(luò)線,用于查詢(條件)傳送或中斷傳送。A為雙向輸入輸出口,C口的5位為專用聯(lián)絡(luò)線。27河南科技大學(xué)電子信息工程學(xué)院計(jì)算機(jī)接口技術(shù)例1:要把A口指定為方式1,輸入,C口高4位為輸出;B口指定為方式0,輸出,C口低4位為輸入,則方式控制字是:10110001B(0B1H)初始化的程序段為:

MOVDX,303H;假設(shè)8255A控制口地址303HMOVAL,0B1H;方式控制字

OUTDX,AL;送到控制口28河南科技大學(xué)電子信息工程學(xué)院計(jì)算機(jī)接口技術(shù)

C口置位/復(fù)位控制字

作用:指定C口的某一位(某一個(gè)管腳)輸出高平或低電平。格式:8位,其中最高位是標(biāo)志位,一定要寫0。D7=0置位/復(fù)位控制字標(biāo)志不用(寫0)D3D2D1位選擇000PC0001PC1010PC2011PC3100PC4101PC5110PC6111PC7D7D6D5D4D3D2D1D0置位/復(fù)位選擇:

1=置位0=復(fù)位29河南科技大學(xué)電子信息工程學(xué)院計(jì)算機(jī)接口技術(shù)例2:若把C口的PC2管腳置成高電平輸出,則控制字為:

00000101B(05H)程序段為:

MOVDX,303H;假設(shè)8255A控制口地址303HMOVAL,05H;使PC2=1的控制字

OUTDX,AL;送到控制口如果要使管腳PC3輸出低電位,則控制字為:

00000110B(06H)程序段為:

MOVDX,303H;假設(shè)8255A控制口地址303H

MOVAL,06H;使PC3=0的控制字

OUTDX,AL;送到控制口30河南科技大學(xué)電子信息工程學(xué)院計(jì)算機(jī)接口技術(shù)例3:在某個(gè)外設(shè)接口電路中,8255A的C口為輸出,控制8個(gè)繼電器,設(shè)C口的I/O線為1時(shí),表示繼電器閉合,為0時(shí),表示繼電器斷開?,F(xiàn)要求某個(gè)繼電器閉合,如PC2對(duì)應(yīng)的繼電器閉合,其他繼電器狀態(tài)不變,如何實(shí)現(xiàn)?

方案1:程序段為:

INAL,42H;假設(shè)8255A的C口地址42H,讀取C口的信息

ORAL,00000100H;設(shè)置PC2=1,其他位不變

OUT42H,AL;送到C口方案2:直接對(duì)PC2進(jìn)行置位,則控制字為:

00000101B(05H)程序段為:

MOVAL,05H;使PC2=1的控制字

OUT43H,AL;假設(shè)8255A的控制口地址43H31河南科技大學(xué)電子信息工程學(xué)院計(jì)算機(jī)接口技術(shù)3.讀入狀態(tài)字

當(dāng)8255A由程序設(shè)定在方式1或方式2工作時(shí),C口就根據(jù)不同的情況,產(chǎn)生或接收“聯(lián)絡(luò)”信號(hào)。如果這時(shí)我們對(duì)C口進(jìn)行讀操作,則讀出的內(nèi)容就包含兩部分內(nèi)容,一部分是那些作為I/O線上的內(nèi)容,另一部分是與“聯(lián)絡(luò)”狀態(tài)有關(guān)的內(nèi)容。方式1的輸入狀態(tài)字:

32河南科技大學(xué)電子信息工程學(xué)院計(jì)算機(jī)接口技術(shù)方式1的輸出狀態(tài)字:

方式2的狀態(tài)字:

33河南科技大學(xué)電子信息工程學(xué)院計(jì)算機(jī)接口技術(shù)五、8255A工作方式的功能及其應(yīng)用舉例1)方式0—基本輸入/輸出方式方式0主要適合于無條件傳送方式,A口、B口、C口在無條件方式下,作為數(shù)據(jù)輸入或輸出端口時(shí),不需要應(yīng)答聯(lián)絡(luò)信號(hào)。

C口可作為兩個(gè)4位的輸入/輸出端口,也可作為8位的輸入/輸出端口;各個(gè)端口的輸入、輸出,有16種組合。34河南科技大學(xué)電子信息工程學(xué)院計(jì)算機(jī)接口技術(shù)

例:8255A的A口和B口工作在方式0下,A口為輸入口,接有4個(gè)開關(guān),B口為輸出口,接有一個(gè)七段發(fā)光二極管,連接電路如下圖所示。編寫一個(gè)程序,要求發(fā)光二極管顯示開關(guān)所撥通的數(shù)字。1001X00XB10010000B(90H)A口地址:8020HB口地址:8022HC口地址:8024H控制口地址:8026H35河南科技大學(xué)電子信息工程學(xué)院計(jì)算機(jī)接口技術(shù)abdcefgdpabdcefgdpD7D6D5D4D3D2D1D0

dpgfedcba0(3FH)00111111abdcefgdpabdcefgdpabdcefgdpabdcefgdpabdcefgdpabdcefgdpabdcefgdpabdcefgdp9(6FH)011011111(06H)000001102(5BH)010110113(4FH)010011114(66H)011001105(6DH)011011016(7DH)011111017(07H)000001118(7FH)0111111136河南科技大學(xué)電子信息工程學(xué)院計(jì)算機(jī)接口技術(shù)由圖可知,七段發(fā)光二極管為共陽極LED。要讓a段點(diǎn)亮,要求從PB0輸出高電平“1”;要使b段熄滅,要求從PB1輸出高電平“0”,其余各段依此類推。

A口接開關(guān),4位開關(guān)的組合可為0000~1111(0H~FH)??稍贚ED上顯示0H~FH各字符的段碼列表,如下圖所示:37河南科技大學(xué)電子信息工程學(xué)院計(jì)算機(jī)接口技術(shù)A_PORTEQU8020H;定義端口的符號(hào)地址B_PORTEQU8022HC_PORTEQU8024HCTRL_PORTEQU8026HDATASEGMENT;定義數(shù)據(jù)段TAB1DB3FH,06H,5BH,4FH,…,71H;定義段碼表DATAENDS

源程序如下:

38河南科技大學(xué)電子信息工程學(xué)院計(jì)算機(jī)接口技術(shù)CODESEGMENT;定義代碼段

ASSUMEDS:DATA,CS:CODESTART:MOVAX,DATAMOVDS,AXMOVAL,90H

;設(shè)置8255A方式字

MOVDX,CTRL_PORTOUTDX,AL

39河南科技大學(xué)電子信息工程學(xué)院計(jì)算機(jī)接口技術(shù)ADD1:MOVDX,A_PORTINAL,DX;讀A口開關(guān)狀態(tài)

ANDAL,0FH;屏蔽高4位

MOVBX,OFFSETTAB1;段碼表起始地址送BXXLAT;查表得段碼

MOVDX,B_PORT;輸出顯示

OUTDX,ALMOVCX,0600HADD2:LOOPADD2;循環(huán)延時(shí)

JMPADD1CODEENDSENDSTART40河南科技大學(xué)電子信息工程學(xué)院計(jì)算機(jī)接口技術(shù)2)方式1—選通輸入/輸出方式

利用一組選通信號(hào)來控制A口和B口的數(shù)據(jù)輸入輸出。特點(diǎn):

A、B口均可工作在方式1下,可分別作為輸入或輸出口,C口分為兩部分,其部分位(6位)固定用作A口、B口的選通信號(hào)。

C口的剩余位仍可作數(shù)據(jù)線使用。

A口、B口在作為輸入和輸出口時(shí)的選通信號(hào)不同。方式1的應(yīng)用:主要用于中斷傳送方式下數(shù)據(jù)的輸入輸出,也可用于條件傳送方式下數(shù)據(jù)的輸入輸出。說明:C口除部分位用作選通信號(hào)外,其余位(2位)可工作在方式0下,作為輸入或輸出線,用程序指定其數(shù)據(jù)傳送方向。41計(jì)算機(jī)接口技術(shù)PC4PC5PC3PA7~PA0INTEAIBFAINTRASTBAPC6PC7RD(1)選通輸入方式

(A口)PC4置1,INTEA

=1,A口處于中斷允許狀態(tài),當(dāng)STBA=1,IBFA=1時(shí),INTRA有效,向CPU申請(qǐng)中斷。PC4復(fù)位,INTEA

=0,A口處于中斷屏蔽狀態(tài),INTRA無效。A口的選通信號(hào),外設(shè)發(fā)出,有效時(shí),表示外設(shè)把數(shù)據(jù)送入A口的輸入緩沖器。A口的輸入緩沖器“滿”信號(hào),8255A發(fā)出,有效時(shí),表示A口的輸入緩沖器已暫存一個(gè)有效數(shù)據(jù)。A口的中斷請(qǐng)求信號(hào),8255A發(fā)出,有效時(shí),表示A口向CPU發(fā)出中斷請(qǐng)求信號(hào),請(qǐng)求CPU從A口取數(shù)據(jù)。中斷允許信號(hào)I/O10111/0D7D6D5D4D3D2D1D0方式1PC7、PC61=輸入0=輸出端口A輸入42計(jì)算機(jī)接口技術(shù)PC2PC1PC0PB7~PB0INTEBIBFBINTRBSTBBRD(1)選通輸入方式

(B口)PC2置1,INTEB

=1,B口處于中斷允許狀態(tài),當(dāng)STBB=1,IBFB=1時(shí),INTRB有效,向CPU申請(qǐng)中斷。PC2復(fù)位,INTEB

=0,B口處于中斷屏蔽狀態(tài),INTRB無效。B口的選通信號(hào),外設(shè)發(fā)出,有效時(shí),表示外設(shè)把數(shù)據(jù)送入B口的輸入緩沖器。B口的輸入緩沖器“滿”信號(hào),8255A發(fā)出,有效時(shí),表示B口的輸入緩沖器已暫存一個(gè)有效數(shù)據(jù)。B口的中斷請(qǐng)求信號(hào),8255A發(fā)出,有效時(shí),表示B口向CPU發(fā)出中斷請(qǐng)求信號(hào),請(qǐng)求CPU從B口取數(shù)據(jù)。中斷允許信號(hào)端口B輸入111

D7D6D5D4D3D2D1D0方式143河南科技大學(xué)電子信息工程學(xué)院計(jì)算機(jī)接口技術(shù)選通輸入方式有關(guān)信號(hào)規(guī)定:STB(Strobe):選通信號(hào),低電平有效。外設(shè)

8255A有效時(shí),表示外設(shè)把一個(gè)新的數(shù)據(jù)送到輸入緩沖器。IBF(InputBufferFull):輸入緩沖器“滿”信號(hào),高電平有效。

8255A

外設(shè)有效時(shí),表示輸入緩沖器已暫存一個(gè)有效數(shù)據(jù)。

STB使IBF有效,RD的后沿即上升沿使其變?yōu)榈碗娖?,無效。44河南科技大學(xué)電子信息工程學(xué)院計(jì)算機(jī)接口技術(shù)INTE(InterruptEnable):中斷允許信號(hào),高電平有效。控制中斷的允許和屏蔽。可通過對(duì)C口的PC4、PC2置位/復(fù)位來實(shí)現(xiàn)對(duì)INTE的設(shè)置。INTR(InterruptRequest):中斷請(qǐng)求信號(hào),高電平有效。

8255ACPU用于向CPU提出中斷請(qǐng)求,請(qǐng)求CPU讀取外設(shè)輸入的數(shù)據(jù)。STB、IBF均為高電平時(shí),使INTR有效,RD的下降沿使INTR變?yōu)榈碗娖?,無效。45河南科技大學(xué)電子信息工程學(xué)院計(jì)算機(jī)接口技術(shù)

PC4位用來設(shè)置A口中斷允許和屏蔽,與PC4引腳的輸入信號(hào)STBA無關(guān),由內(nèi)部電路決定,對(duì)PC4的置位、復(fù)位不影響STBA信號(hào)。

即對(duì)PC4置位,使得INTEA=1不等于把STBA置為高電平;

外設(shè)使STBA=0也不等于使INTEA=0。PC2用來設(shè)置B口中斷允許和屏蔽,與外設(shè)來的STBB信號(hào)無關(guān)。注意啦?。?!46計(jì)算機(jī)接口技術(shù)方式1的輸入時(shí)序:(PB7~PB0)外設(shè)送來數(shù)據(jù)PA7~PA0STBIBFINTRRD②③當(dāng)INTE=1時(shí)

①①當(dāng)外設(shè)準(zhǔn)備好數(shù)據(jù),將數(shù)據(jù)送到A口(B口)的數(shù)據(jù)線PA7~PA0(PB7~PB0)上②

外設(shè)發(fā)出選通信號(hào)STB

表示數(shù)據(jù)已進(jìn)入輸入緩沖器;使IBF變高,表示輸入緩沖器滿,可阻止外設(shè)輸入新數(shù)據(jù),CPU可查詢

IBF信號(hào),用于條件查詢傳送方式;

如果INTE=1,STB的上升沿使INTR變高,發(fā)出中斷請(qǐng)求。③CPU執(zhí)行IN指令,發(fā)出RD信號(hào),讀取數(shù)據(jù)

RD的下降沿使INTR無效,降為低電平;

RD的上升沿使IBF無效,降為低電平;端口內(nèi)的數(shù)據(jù)進(jìn)入CPU47河南科技大學(xué)電子信息工程學(xué)院計(jì)算機(jī)接口技術(shù)例1:8255A端口A工作在方式1,A口為輸入,允許A口中斷,試編寫初始化程序。方式控制字:1011××××BC口置位/復(fù)位控制字:00001001B初始化程序段如下:

MOVDX,308H;控制口地址308H送入DXMOVAL,10110000B;A口方式1、輸入

OUTDX,ALMOVAL,00001001B;置PC4=1,允許中斷

OUTDX,AL48河南科技大學(xué)電子信息工程學(xué)院計(jì)算機(jī)接口技術(shù)例2:8255A的A口和B口分別工作在方式1和方式0,A口為輸入口,接有8個(gè)開關(guān)。B口為輸出口,接8個(gè)發(fā)光二極管,連接電路如圖所示。現(xiàn)要求用方式1把改變后的開關(guān)信息輸入到CPU并通過B口顯示。工作過程如下:

1、用戶改變K0~K7,產(chǎn)生新的開關(guān)信息;

2、閉合開關(guān)K,產(chǎn)生選通信號(hào)STBA,數(shù)據(jù)進(jìn)入A口的輸入緩沖器,告訴CPU,8255的A口來了一個(gè)新數(shù)據(jù);3、IBFA有效,使LED點(diǎn)亮。包含兩個(gè)信息,一個(gè)是8255A通知CPU其A口來了一個(gè)新數(shù)據(jù),另一個(gè)是告訴用戶CPU尚未取走這個(gè)這個(gè)數(shù)據(jù),用戶不得再送其他數(shù)據(jù);4、CPU取走這個(gè)數(shù)據(jù),LED熄滅;

5、轉(zhuǎn)步驟1。49河南科技大學(xué)電子信息工程學(xué)院計(jì)算機(jī)接口技術(shù)設(shè)8255A的I/O地址為88H~8EH。程序段如下:

MOVAL,10111001B;設(shè)置A口為方式1、輸入

OUT8EH,AL LOOP1:INAL,8CH;讀取C口的狀態(tài)線

TESTAL,00100000B;測試IBFA信息

JZLOOP1;等待用戶設(shè)定新的開關(guān)值

MOVCX,0FFFFH ;延時(shí),LED燈亮 LOOP2:LOOPLOOP2 INAL,88H;取數(shù),LED燈滅

OUT8AH,AL;更新B口的顯示

JMPLOOP1;重復(fù)50計(jì)算機(jī)接口技術(shù)PC6PC7PC3PA7~PA0INTEAOBFAINTRAACKAWR(2)選通輸出方式

(A口)外設(shè)響應(yīng)信號(hào),外設(shè)發(fā)出,有效時(shí),表示外設(shè)已經(jīng)接收數(shù)據(jù)。A口的輸出緩沖器“滿”信號(hào),8255A發(fā)出,有效時(shí),表示A口的輸出緩沖器已暫存一個(gè)有效數(shù)據(jù)。A口的中斷請(qǐng)求信號(hào),8255A發(fā)出,有效時(shí),表示A口向CPU發(fā)出中斷請(qǐng)求,請(qǐng)求CPU輸出數(shù)據(jù)到A口。中斷允許信號(hào)PC6置1,INTEA=1(不等于ACKA=1),A口處于中斷允許狀態(tài);PC6復(fù)位,INTEA

=0(不等于ACKA=0),A口處于中斷屏蔽狀態(tài),INTRA無效。51計(jì)算機(jī)接口技術(shù)PC2PC1PC0PB7~PB0INTEBOBFBINTRBACKBWR(2)選通輸出方式

(B口)中斷允許信號(hào)PC2置1,INTEB=1(不等于ACKB=1),B口處于中斷允許狀態(tài);PC2復(fù)位,INTEB

=0(不等于ACKB=0),B口處于中斷屏蔽狀態(tài),INTRB無效。外設(shè)響應(yīng)信號(hào),外設(shè)發(fā)出,有效時(shí),表示外設(shè)已經(jīng)接收數(shù)據(jù)。B口的輸出緩沖器“滿”信號(hào),8255A發(fā)出,有效時(shí),表示B口的輸出緩沖器已暫存一個(gè)有效數(shù)據(jù)。B口的中斷請(qǐng)求信號(hào),8255A發(fā)出,有效時(shí),表示B口向CPU發(fā)出中斷請(qǐng)求,請(qǐng)求CPU輸出數(shù)據(jù)到B口。52河南科技大學(xué)電子信息工程學(xué)院計(jì)算機(jī)接口技術(shù)選通輸出方式有關(guān)信號(hào)規(guī)定:OBF(OutputBufferFull):輸出緩沖器“滿”信號(hào),低電平有效。8255A

外設(shè)有效時(shí),表示CPU已向端口輸出了數(shù)據(jù),即輸出緩沖器已暫存一個(gè)有效數(shù)據(jù),OBF是8255A用來通知外設(shè)取走數(shù)據(jù)的信號(hào)。OBF由寫信號(hào)WR的上升沿置成有效電平即低電平,而由ACK

的下降沿使其變?yōu)楦唠娖健?/p>

ACK(Acknowledge):外設(shè)響應(yīng)信號(hào),低電平有效。

外設(shè)

8255A有效時(shí),表示CPU通過8255A輸出的數(shù)據(jù)已送到外設(shè),即外設(shè)已接收到了數(shù)據(jù)。53河南科技大學(xué)電子信息工程學(xué)院計(jì)算機(jī)接口技術(shù)INTE(InterruptEnable):中斷允許信號(hào),高電平有效??刂贫丝谥袛嗟脑试S和屏蔽??赏ㄟ^對(duì)C口的PC6、PC2置位/復(fù)位來實(shí)現(xiàn)對(duì)INTE的設(shè)置。

PC6=1(PC2=1),A口(B口)處于中斷允許狀態(tài);

PC6=0(PC2=0),A口(B口)處于中斷屏蔽狀態(tài)。INTR(InterruptRequest):中斷請(qǐng)求信號(hào),高電平有效。

8255ACPU當(dāng)外設(shè)從8255A端口取走數(shù)據(jù),從而發(fā)出ACK信號(hào)后,8255A便向CPU發(fā)出中斷請(qǐng)求信號(hào),要求CPU再次輸出數(shù)據(jù)。ACK、OBF均為高電平時(shí),使INTR有效,WR的下降沿使INTR

變?yōu)榈碗娖健?4河南科技大學(xué)電子信息工程學(xué)院計(jì)算機(jī)接口技術(shù)方式1的輸出時(shí)序:①CPU執(zhí)行OUT指令,輸出數(shù)據(jù)②CPU發(fā)出寫信號(hào)WR(1)數(shù)據(jù)寫到8255A的端口;(2)使OBF有效,表示輸出端口滿,通知外設(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ù)。55河南科技大學(xué)電子信息工程學(xué)院計(jì)算機(jī)接口技術(shù)例3:如果8255A的A口、B口工作于方式1,A口為輸出,B口為輸入,A口、B口都允許中斷,A口、B口、C口和控制端口的端口地址分別為:288H、289H、28AH和28BH,編寫初始化程序。解:方式控制字為:10100110B(0A6H)

D7=1方式控制字標(biāo)志位

D6D5=01A口工作于方式1D4=0A口為輸出

D3=0可為0或1,取0D2=1B口工作于方式1D1=1B口為輸入

D0=0可為0或1,取056河南科技大學(xué)電子信息工程學(xué)院計(jì)算機(jī)接口技術(shù)A口允許中斷,要求INTEA=1,即要對(duì)PC6置1。C口置位/復(fù)位控制字為:00001101B(0DH)B口允許中斷,要求INTEB=1,即要對(duì)PC2置1。C口置位/復(fù)位控制字為:00000101B(05H)57河南科技大學(xué)電子信息工程學(xué)院計(jì)算機(jī)接口技術(shù)初始化程序:MOVDX,28BHMOVAL,0A6HOUTDX,AL;方式控制字寫入控制端口MOVAL,0DHOUTDX,AL;C口置位/復(fù)位控制字寫入控制端口使PC6置1MOVAL,05HOUTDX,AL;C口置位/復(fù)位控制字寫入控制端口使PC6置158河南科技大學(xué)電子信息工程學(xué)院計(jì)算機(jī)接口技術(shù)例4:8255A的A口工作在方式1,輸出,接有8個(gè)發(fā)光二極管,現(xiàn)要求把內(nèi)存中的10個(gè)數(shù)通過A口發(fā)送給發(fā)光二極管(以二進(jìn)制的形式供用戶抄錄),設(shè)8255A的I/O地址為88H~8EH。工作過程如下:CPU把內(nèi)存中的一個(gè)數(shù)據(jù)寫入A口;OBF有效,LED燈亮,告訴用戶LED0—LED7顯示的是新數(shù)據(jù);用戶抄錄數(shù)據(jù);用戶按下開關(guān)K,發(fā)ACK信號(hào),告訴8255A數(shù)據(jù)已取走;轉(zhuǎn)第一步。59河南科技大學(xué)電子信息工程學(xué)院計(jì)算機(jī)接口技術(shù)程序段如下:DATASEGMENT;定義數(shù)據(jù)段XXDBX0,X1,…,X9;定義數(shù)組,10個(gè)元素DATAENDSCODE

SEGMENT;定義代碼段

ASSUMEDS:DATA,CS:CODESTART:MOVAX,DATAMOVDS,AXMOVCX,10;送10個(gè)數(shù)

MOVBX,OFFSETXX;數(shù)組起始地址送BXMOVAL,10101001B

;設(shè)置A口為方式1、輸出

OUT8EH,AL60河南科技大學(xué)電子信息工程學(xué)院計(jì)算機(jī)接口技術(shù)LOOP1:MOVAX,[BX];取數(shù)據(jù)

OUT88H,AL;送數(shù)據(jù)到A口LOOP2:INAL,8CH;讀取C口狀態(tài)線

ANDAL,80H;測試OBFA是否有效JNZLOOP2;用戶尚未抄錄數(shù)據(jù)等待,此時(shí)LED燈亮

CALLDELAY;用戶已抄錄數(shù)據(jù),LED燈滅

INCBX;準(zhǔn)備送下一個(gè)數(shù)

LOOPLOOP1;循環(huán)10次

MOVAX,4C00HINT21H;返回系統(tǒng)CODEENDSENDSTART61河南科技大學(xué)電子信息工程學(xué)院計(jì)算機(jī)接口技術(shù)3)方式2—雙向傳輸方式特點(diǎn):雙向傳輸—既是輸入口,又是輸出口,但輸入輸出不能同時(shí)進(jìn)行。只有A口可工作在方式2下,類似于A口方式1下輸入和輸出的組合,工作時(shí)輸入、輸出都能鎖存。

A口工作在方式2時(shí),C口的5位提供聯(lián)絡(luò)信號(hào)。

A口工作在方式2時(shí),B口可工作在方式0或方式1。應(yīng)用:可用于中斷控制輸入輸出方式,也可用于查詢方式。當(dāng)A口工作于方式2時(shí),B口可工作于

溫馨提示

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