微機(jī)原理及應(yīng)用西南交通版第七章_第1頁(yè)
微機(jī)原理及應(yīng)用西南交通版第七章_第2頁(yè)
微機(jī)原理及應(yīng)用西南交通版第七章_第3頁(yè)
微機(jī)原理及應(yīng)用西南交通版第七章_第4頁(yè)
微機(jī)原理及應(yīng)用西南交通版第七章_第5頁(yè)
已閱讀5頁(yè),還剩180頁(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第七章基本輸入輸出接口本章內(nèi)容提要1.輸入輸出接口功能及其數(shù)據(jù)交換方式;2.8255結(jié)構(gòu)、功能與應(yīng)用;3.8253/8254結(jié)構(gòu)、功能與應(yīng)用;4.8259A結(jié)構(gòu)、功能與應(yīng)用;5.串行通信的基本概念;6.16C550芯片結(jié)構(gòu)、功能與應(yīng)用。2第一節(jié)輸入輸出接口功能及其數(shù)據(jù)交換方式1.I/O接口電路及其功能;2.8086CPU的I/O指令、I/O端口編址與端口譯碼;3.I/O接口電路與CPU的數(shù)據(jù)交換方式。3設(shè)置接口電路的原因通過(guò)接口電路,CPU與外部設(shè)備之間建立信息交換通道,有三種信息類型:數(shù)據(jù)信息:數(shù)字量、模擬量、開(kāi)關(guān)量;狀態(tài)信息:外設(shè)狀態(tài)通過(guò)接口送達(dá)CPU;控制信息:CPU通過(guò)接口控制外設(shè)工作。接口電路在外設(shè)與CPU之間完成相應(yīng)的信號(hào)轉(zhuǎn)換、速度匹配、數(shù)據(jù)緩沖等功能。4CPU與外設(shè)連接示意圖微處理器

CPUI/O

接 口外部設(shè)備控制線

數(shù)據(jù)線狀態(tài)線ABCB DB5輸入輸出接口功能描述1.數(shù)據(jù)緩沖功能;(CPU與外設(shè)工作速度匹配)2.接受和執(zhí)行CPU命令的功能;3.信號(hào)轉(zhuǎn)換功能;(用一組邏輯電平編碼信息)4.設(shè)備選擇功能;5.中斷管理功能;(提高系統(tǒng)效率與事件響應(yīng)速度)6.數(shù)據(jù)格式變換功能;(串?并轉(zhuǎn)換)7.可編程功能。(增加硬件電路靈活性)I/O指令及其執(zhí)行過(guò)程

I/O指令I(lǐng)NINININAL,PORTAX,PORTAL,DXAX,DXOUTOUTOUTOUTPORT,ALPORT,AXDX,ALDX,AX其中PORT為直接端口地址(0~0FFH);DX為間接端口尋址寄存器;8086CPU能尋址216個(gè)I/O端口。

67數(shù)據(jù)由接口電路準(zhǔn)備好并送上系統(tǒng)數(shù)據(jù)總線由DX或指令直接給出的端口地址浮空數(shù)據(jù)輸入地址輸出IN指令執(zhí)行過(guò)程(時(shí)序)

總線周期T1T2T4T3,Tw

CLKM/IO

ALEAD15~AD0RDCPU采樣數(shù)據(jù)總線,讀取端口數(shù)據(jù)8由DX或指令直接 給出的端口地址數(shù)據(jù)輸出地址輸出OUT指令執(zhí)行過(guò)程(時(shí)序)

總線周期T1T2T4T3,Tw

CLKM/IO ALEAD15~AD0WRAL或AX中數(shù)據(jù)輸出到系統(tǒng)數(shù)據(jù)總線 此時(shí)接口電路應(yīng)捕 獲數(shù)據(jù)總線上數(shù)據(jù)9I/O接口編址方式存儲(chǔ)器映像輸入輸出I/O操作與存儲(chǔ)器操作指令相同;I/O接口占用存儲(chǔ)空間。獨(dú)立編址輸入輸出I/O空間與存儲(chǔ)器空間分開(kāi)編址;設(shè)置專用的輸入輸出指令I(lǐng)N/OUT;設(shè)置專用的控制信號(hào)M/IO。10輸入輸出端口地址譯碼

I/O端口地址譯碼與存儲(chǔ)器地址譯碼非常相似; 考慮M/IO=0為I/O操作;

長(zhǎng)格式I/O指令可只譯碼A7~A0,短格式I/O指令 必須譯碼A15~A0地址線;

如同存儲(chǔ)器一樣,8086CPU的I/O系統(tǒng)包含兩個(gè)8

位I/O體,如圖所示,16位規(guī)則字?jǐn)?shù)據(jù)或8位數(shù)據(jù)

I/O只需一次操作即可; 8088CPU只有一個(gè)I/O體,執(zhí)行16位I/O指令時(shí),

需要兩次總線操作,分別讀/寫(xiě)高/低字節(jié)。NEXT118086I/O體結(jié)構(gòu)

BHE=0選擇

0FFFFH0FFFDH0FFFBH 0003H 0001H

對(duì)應(yīng)D15~D8

A0=0 0FFFEH 0FFFCH 0FFFAH 0002H 0000H對(duì)應(yīng)D7~D0返回12譯碼電路設(shè)計(jì)例:設(shè)兩個(gè)輸出端口地址為0FEH~0FFH,設(shè)計(jì)其輸出電路,要求該電路可按照字節(jié)或字進(jìn)行輸出操作。138位或16位輸出電路原理圖DI7~DI0Q7~Q0OEOED7~D0&A7A6A5A4A3A2A1≥1M/IOWR

≥1 D15~D874LS374#2≥1

74LS374#1A0BHECLK

0FEHDI7~DI0

Q7~Q0CLK

0FFH14相應(yīng)操作指令及其執(zhí)行結(jié)果:執(zhí)行:OUT0FEH,AL時(shí),AL內(nèi)容送74LS374#1執(zhí)行:OUT0FFH,AL時(shí),AL內(nèi)容送74LS374#2注意:此時(shí),AL內(nèi)容由CPU數(shù)據(jù)總線的D15~D8送出執(zhí)行:OUT0FEH,AX時(shí),AL內(nèi)容送74LS374#1,AH內(nèi)容送74LS374#2。NEXTA7A6A5A4A3A2A10≥1158位或16位輸出電路原理圖DI7~DI0D7~D0&BHE

Q7~Q0OECLK

0FEHDI7~DI0

Q7~Q0OECLK

0FFHWR

1 1 1 1 1 1 11M/IO0 0≥11001≥11返回

74LS374#1A00 0

上升沿 觸發(fā)

D15~D8

74LS374#2168位或16位輸出電路原理圖DI7~DI0Q7~Q0OEOECLKD7~D0&A7A6A5A4A3A2A1WRBHECLK

0FEHDI7~DI0

Q7~Q00FFH11111111M/IO0 0≥110

74LS374#1A01

0≥1 D15~D874LS374#200≥1返回上升沿觸發(fā)0≥1178位或16位輸出電路原理圖DI7~DI0Q7~Q0OEOECLKD7~D0&A7A6A5A4A3A2A1WRBHECLK

0FEHDI7~DI0

Q7~Q00FFH11111111M/IO0 0≥110

74LS374#1A0000≥1返回

上升沿 觸發(fā)

D15~D874LS374#2上升沿觸發(fā)18CPU與外設(shè)間數(shù)據(jù)交換方式CPU與外設(shè)間的數(shù)據(jù)交換,有程序控制方式、中斷控制方式和存儲(chǔ)器直接存取控制方式。其中程序控制方式是基礎(chǔ),應(yīng)首先掌握該方式。程序控制方式是指CPU與外設(shè)間的數(shù)據(jù)交換在程序控制下進(jìn)行,分為無(wú)條件傳送方式和條件傳送方式兩類。19無(wú)條件傳送方式無(wú)條件輸入:不管外設(shè)狀態(tài),CPU執(zhí)行IN指令直接從端口輸入即為無(wú)條件輸入。無(wú)條件輸出:不管外設(shè)狀態(tài),CPU執(zhí)行OUT指令直接將數(shù)據(jù)輸出到端口即為無(wú)條件輸出。無(wú)條件輸入輸出要求外設(shè)在任何時(shí)候都能與CPU交換信息;輸入端口只需緩沖,而輸出端口一般都需要加入鎖存器。20無(wú)條件傳送方式的輸入輸出原理Q7~Q0

D7~D0

OECLKCPU數(shù)據(jù)總線數(shù)據(jù)輸出至外設(shè)來(lái)自外設(shè)數(shù)據(jù)D7~D0

G三態(tài)緩沖器端口譯碼器≥1WR地址輸入≥1RD端口譯碼信號(hào)M/IO鎖存器21條件傳送方式(查詢方式)條件傳送即程序查詢方式,是指CPU在傳送數(shù)據(jù)前,首先通過(guò)查詢確認(rèn)外設(shè)準(zhǔn)備好了才傳送數(shù)據(jù),否則,CPU等待。從而較好地解決了CPU與外設(shè)傳送數(shù)據(jù)時(shí)不同步的問(wèn)題。查詢的一般步驟:①?gòu)腎/O端口讀入設(shè)備狀態(tài)信息并確定外設(shè)是否準(zhǔn)備好交換數(shù)據(jù);②若外設(shè)沒(méi)有準(zhǔn)備好,則重復(fù)執(zhí)行第①直到設(shè)備準(zhǔn)備好為止;③CPU執(zhí)行I/O指令,從I/O端口讀/寫(xiě)數(shù)據(jù),同時(shí)復(fù)位I/O端口的狀態(tài)字。RD查詢式輸入原理

數(shù)據(jù)端口 譯碼信號(hào)輸入設(shè)備

≥1CPU數(shù)據(jù)總線狀態(tài)信息READY

×8選通信號(hào)

STB數(shù)據(jù)鎖存器

DQDQCLR+5V×8狀態(tài)端口譯碼信號(hào)≥1RD當(dāng)外設(shè)有數(shù)據(jù)要傳送到CPU時(shí),應(yīng)將數(shù)據(jù)送上外設(shè)數(shù)據(jù)總線并發(fā)出選通信號(hào)(STB)

221123查詢輸入方式的基本程序

設(shè)外設(shè)狀態(tài)信息READY接到系統(tǒng)數(shù)據(jù)總線的D7位。POLL:INAL,STATUS_PORT;讀狀態(tài)端口TESTAL,80H;檢查READY是否是1JEIN

POLLAL,DATA_PORT;未準(zhǔn)備好,循環(huán)再查;從數(shù)據(jù)端口輸入數(shù)據(jù)BUF0查詢式輸出原理外設(shè)接收完數(shù)據(jù)后應(yīng)給出應(yīng)答信號(hào)ACK,表示數(shù)據(jù)已接收到,BUF為數(shù)據(jù)準(zhǔn)備好信號(hào),用于通知外設(shè)CPU已輸出新的數(shù)據(jù)。查詢式I/O的實(shí)質(zhì)是軟硬件配合完成外設(shè)與CPU之間的狀態(tài)“握手”與數(shù)據(jù)交換。

24+5V數(shù)據(jù)端口輸出設(shè)備ACK

譯碼信號(hào)

≥1

WR狀態(tài)端口譯碼信號(hào)≥1RD數(shù)據(jù)鎖存器

QD

×8 QDCLR選通信號(hào)CPU數(shù)據(jù)總線

狀態(tài)信息BUSY

0中斷請(qǐng)求RD中斷控制I/O方式原理

中斷控制I/O方式能及時(shí)處理系統(tǒng)中多個(gè)外設(shè)的 數(shù)據(jù)傳輸過(guò)程。

端口譯碼信號(hào)輸入設(shè)備

≥1CPU數(shù)據(jù)總線數(shù)據(jù)鎖存器

DQ

×8×8選通信號(hào)STB+5V觸發(fā)器

25

INTA

中斷響應(yīng)INT中斷請(qǐng)求1

CLR DQ上升沿觸發(fā)26直接存儲(chǔ)器存取(DMA)控制方式在DMA方式下,外部設(shè)備利用專用的接口電路直接和存儲(chǔ)器進(jìn)行高速數(shù)據(jù)傳送,而無(wú)需通過(guò)CPU交換數(shù)據(jù)。在利用DMA方式進(jìn)行數(shù)據(jù)傳輸時(shí),接口電路要向CPU發(fā)出請(qǐng)求,使CPU讓出總線,即把總線控制權(quán)交給DMA控制器。主要優(yōu)點(diǎn):速度快,數(shù)據(jù)傳送的速率只受存儲(chǔ)器和接口電路訪問(wèn)速度的限制。主要缺點(diǎn):硬件電路比較復(fù)雜。27第二節(jié)8255結(jié)構(gòu)、功能與應(yīng)用1.2.3.4.了解82C55可編程芯片的內(nèi)部結(jié)構(gòu);掌握82C55的引腳功能及其與CPU的連接;掌握82C55的初始化方法及其工作方式;深入體會(huì)可編程芯片的一般使用方法。28可編程I/O接口芯片概述1.使用可編程芯片的原因簡(jiǎn)化電路設(shè)計(jì),增加硬件電路靈活性。2.可編程芯片內(nèi)部的一般結(jié)構(gòu)與CPU連接端口:包括命令口、狀態(tài)口和數(shù)據(jù)口。通常每個(gè)端口都應(yīng)映射到CPU的I/O空間;與外設(shè)連接端口:用于接口電路與外設(shè)傳遞數(shù)據(jù);內(nèi)部數(shù)據(jù)總線將所有內(nèi)部端口連接成一體。29可編程I/O接口芯片概述3.芯片外部特性與CPU連接引腳:片選、內(nèi)部端口選擇線(尋址內(nèi)部端口)、讀/寫(xiě)控制等;與外設(shè)連接引腳:數(shù)據(jù)I/O線、控制輸出、外設(shè)狀態(tài)輸入等。4.命令字與初始化編程將命令字寫(xiě)入命令口,芯片內(nèi)部邏輯解釋命令字后即可實(shí)現(xiàn)芯片功能的配置;正常操作芯片前一般要求初始化芯片。3082C55內(nèi)部結(jié)構(gòu)82C55內(nèi)部共有四個(gè)獨(dú)立編址端口一個(gè)命令口;三個(gè)相互獨(dú)立的輸入/輸出數(shù)據(jù)端口(即端口A、B和C);數(shù)據(jù)口具有可編程選擇的多種功能;內(nèi)部結(jié)構(gòu)圖。3182C55內(nèi)部邏輯框圖

端口AA組

C口高四位

C口低四位 端口B數(shù)據(jù)總線緩沖 讀/寫(xiě) 控制 邏輯

控制8位內(nèi)部數(shù)據(jù)總線

B組 控制I/OPA7~PA0

I/O PC7~PC4

I/O PC3~PC0

I/OPB7~PB0WR

數(shù)據(jù)總線

D7~D0

A0 A1RESET CS RD外設(shè)接口內(nèi)部控制邏輯CPU接口NEXT32與外設(shè)連接端口端口A、B和C可與外部設(shè)備相連接,用于數(shù)據(jù)輸出時(shí)具有鎖存/緩沖器功能,數(shù)據(jù)輸入時(shí)具有鎖存功能。端口C可作為外設(shè)控制和狀態(tài)信息的端口。它可以分成為兩個(gè)4位的端口,每個(gè)端口包含一個(gè)4位的輸入/輸出引腳。分別與端口A和B配合使用,作為控制信號(hào)輸出,或作為狀態(tài)信號(hào)輸入。返回33內(nèi)部控制邏輯內(nèi)部邏輯包括A組和B組控制電路。這是兩組根據(jù)CPU的命令字控制82C55工作方式的電路。每組控制電路從讀/寫(xiě)控制邏輯接受各種命令,從內(nèi)部數(shù)據(jù)總線接收控制字并發(fā)出適當(dāng)?shù)拿畹较鄳?yīng)的端口返回34與CPU接口1.數(shù)據(jù)總線緩沖器;2.讀/寫(xiě)控制邏輯。返回PA4與CPU連接的引腳3582C55引腳圖

PA3

PA2

PA1

PA0

RD CSGND

A1

A0

PC7

PC6

PC5

PC4

PC0

PC1

PC2

PC3

PB0

PB1

PB21402393384375366357348339321082C55311130122913281427152616251724182319222021與外設(shè)連接的引腳PA5雙向、三態(tài)PA6PA7WRRESETD0D1D2D3連數(shù)據(jù)總線D4D5D6D7VccPB7PB6PB5PB4PB33682C55外部特性1.引腳圖2.與外設(shè)連接的引腳分為PA7~PA0、PB7~PB0和PC7~PC0三組,分別對(duì)應(yīng)于A、B、C三個(gè)端口,全為雙向、三態(tài)引腳。3.與CPU連接的引腳RESET——復(fù)位輸入信號(hào),高電平有效。復(fù)位時(shí)清零所有內(nèi)部寄存器,置A、B、C三個(gè)端口為輸入方式,對(duì)應(yīng)的PA7~PA0、PB7~PB0、PC7~PC0引腳均為高阻狀態(tài)。3782C55外部特性CS#——芯片選擇信號(hào),輸入低電平有效。低電平時(shí),82C55才能被CPU操作。A0和A1——芯片內(nèi)部寄存器地址選擇信號(hào),當(dāng)82C55被選中時(shí),再由A0、A1的編碼決定是選端口A、B、C還是控制寄存器。RD#——讀信號(hào),輸入低電平有效。低電平時(shí),82C55內(nèi)部A、B和C可輸出到數(shù)據(jù)引腳D7~D0。WR#——寫(xiě)信號(hào),輸入低電平有效。為低電平時(shí),數(shù)據(jù)引腳D7~D0上的數(shù)據(jù)或命令被寫(xiě)入82C55。CSA1A0RDWR操作說(shuō)明1××××芯片未選中,數(shù)據(jù)總線為高阻態(tài)×××11數(shù)據(jù)總線為高阻態(tài)01101非法操作,讀控制寄存器無(wú)意義00001讀A口數(shù)據(jù)00101讀B口數(shù)據(jù)01001讀C口數(shù)據(jù)00010寫(xiě)A口數(shù)據(jù)00110寫(xiě)B(tài)口數(shù)據(jù)01010寫(xiě)C口數(shù)據(jù)01110命令寫(xiě)入控制口寄存器3882C55操作邏輯真值表3982C55的控制字1.82C55方式選擇控制字格式

標(biāo)識(shí)位

D7=1A組方式選擇

00—方式0 01—方式1 1×—方式2 A口:

0—輸出

1—輸入

PC3~PC0

0—輸出

1—輸入

B口:

0—輸出

1—輸入

B組方式選擇

0—方式0 1—方式1PC7~PC40—輸出1—輸入D7D6D5D4D3D2D1D0A組B組4082C55的初始化編程舉例例1:要求82C55端口A以方式0輸出,端口B以方式1輸入,C口以方式0輸入,設(shè)計(jì)其初始化程序。設(shè)控制口地址為PORT_CON,程序如下:MOVDX,PORT_CONMOVAL,10001111BOUTDX,AL初始化后,如要從A口輸出數(shù)據(jù),只需執(zhí)行MOVDX,PORT_AMOVAL,DATAOUTDX,AL選中位操作1——置10——清0標(biāo)識(shí)位

D7=0未使用

C口位選擇000—選PC0001—選PC1010—選PC2011—選PC3100—選PC4101—選PC5110—選PC6111—選PC7

4182C55的控制字

2.82C55按位置位/復(fù)位的控制字

D7D6D5D4D3D2D1D04282C55的初始化編程舉例

例2:端口C的PC0位要求清0,則控制字為00000000B,

即00H;而端口C的PC7位要求置1,則控制字為

00001111B(0FH)。設(shè)82C55的控制寄存器的端 口地址為PORT_CON,則下面的程序段可實(shí)現(xiàn)PC7

輸出高電平,PC0輸出低電平。

MOVDX,PORT_CON;控制口地址送DXMOVAL,0FHOUTDX,ALMOVAL,00HOUTDX,AL;PC7置1控制字

;PC7置1操作;PC0清0控制字

;PC0清0操作4382C55工作方式0方式0下,各端口實(shí)際上工作于無(wú)條件傳輸方式。方式0的工作特點(diǎn)1.兩個(gè)8位端口:端口A和端口B;兩個(gè)四位端口:端口C的高4位和低4位;2.任何一個(gè)端口都可編程設(shè)置為輸入或輸出;3.輸出鎖存、輸入只是緩沖;4.在方式0時(shí)各個(gè)端口的輸入/輸出可以有16種組合方式。44方式0輸入時(shí)的等效模型設(shè)三個(gè)端口都工作于方式0輸入PA7~PA0

A組控制數(shù)據(jù)總線緩沖 讀/寫(xiě) 控制 邏輯8位內(nèi)部數(shù)據(jù)總線

B組 控制

PC7~PC0PB7~PB0數(shù)據(jù)總線D7~D0

A0

A1RESET CS RD WR外設(shè)接口內(nèi)部控制邏輯CPU接口輸入緩沖45PC7~PC0PA7~PA0A組控制DQ

B組控制數(shù)據(jù)總線緩沖讀/寫(xiě) 控制 邏輯8位內(nèi)部數(shù)據(jù)總線PB7~PB0D7~D0數(shù)據(jù)總線WRA0

A1RESET CS RD外設(shè)接口內(nèi)部控制邏輯DQDQ方式0輸出時(shí)的等效模型

假定三個(gè)端口都被設(shè)定為方式0輸出輸出鎖存46方式0應(yīng)用舉例

例:某8086最小系統(tǒng)中用82C55擴(kuò)展8位LED顯示器,

設(shè)82C55占用I/O端口地址0FFF8H~0FFFFH,編 程顯示數(shù)字“76543210”。 解題分析: 82C55內(nèi)部有四個(gè)端口,為何在8086系統(tǒng)中要占用

0FFF8H~0FFFFH共8個(gè)端口地址? 82C55與CPU的連接圖; 8位LED顯示器采用動(dòng)態(tài)顯示方式; LED數(shù)碼管的功率驅(qū)動(dòng)問(wèn)題;

位選擇碼與段選擇碼。NEXTPB7~PB04782C55與8086的連接電路&A15A14A13A12A11A10

A9

A8

A7

A6

A5

A4

A3≥1

A1接系統(tǒng)復(fù)位WRRD A2A0CSPC口RESETD7~D0思考:此處接系統(tǒng)D15~D8是否可以?應(yīng)如何接?如接D15~D8應(yīng)如何編程?

D7~D0

WR RDPA7~PA0

PA口

82C55

A1PB口PC7~PC0M/IO A0返回48數(shù)碼管顯示器驅(qū)動(dòng)電路(共陰極)COMCOMagagPA6PA0PB7PB0VCCVCC位選擇碼段選擇碼返回49共陰極接法段選擇碼:gfedcba0111111→‘0’<3FH>0000110→‘1’<06H>1011011→‘2’<5BH>

┇┇┇1101111→‘9’<6FH>

共陽(yáng)極接法段選擇碼:gfedcba1000000→‘0’<40H>1111001→‘1’<79H> 0100100→‘2’<24H>

0010000→‘9’<10H>返回bc

feg dag

ag+5V七段LED共陰極接法共陽(yáng)極接法COM七段LED及其接法

a50顯示控制程序:假定在顯示器上顯示數(shù)字‘76543210’;51Datasegment;定義段顯示碼表(共陽(yáng)極) ;位選擇碼(最低位)tableposdatacodedb40H,79H,24H,…db0fehendssegment

assumecs:code,ds:dataDisprocfarstart:movax,data movds,ax moval,10000000B;初始化字,所有端口為方式0輸出;A1A0為11,命令寫(xiě)入控制口寄存器 ;輸出初始化字 ;顯示8位 ;表首址

movdx,0fffeh

outdx,alla0:movcx,8 leasi,table movbl,pos0、1、2、…la1:moval,[si]movdx,0fff8houtdx,almovdx,0fffahmoval,bloutdx,alincsirolbl,1calldelayloopla1movah,4ch

;A1A0為00,寫(xiě)A口數(shù)據(jù) ;A口輸出段選碼 ;A1A0為01,寫(xiě)B(tài)口數(shù)據(jù) ;B口輸出位選碼 ;位選碼前移一位 ;顯示延時(shí);4c號(hào)功能調(diào)用返回DOS

int21hdisendpcodeends endstart

5253工作方式1工作方式1的特點(diǎn)1.方式1是一種選通I/O方式(需使用“握手”控制信號(hào));2.只有A和B口能夠工作于方式1,此時(shí)C口的部分 引腳作為A、B口的“握手”信號(hào),其余引腳可工 作于方式0輸入或輸出;3.A、B端口設(shè)定為方式1時(shí),其工作過(guò)程類似中 斷式數(shù)據(jù)傳輸,C口有關(guān)位表征A、B口的狀態(tài)。54方式1輸入的有關(guān)控制信號(hào)

方式1輸入結(jié)構(gòu)圖(以端口A為例說(shuō)明)PA7~PA0PC4PC5PC3&I/OSTBA

IBFAPC7~PC6鎖存緩沖D7~D0RD選通輸入 輸入緩沖器滿INTRA中斷請(qǐng)求中斷允許(PC4) INTEANEXT外設(shè)55方式1輸入控制信號(hào)STB#(Strobe)——選通輸入。由外設(shè)產(chǎn)生的數(shù)據(jù)選通信號(hào),送入端口C的PC4或PC2。當(dāng)有效低電平時(shí),將端口引腳上的數(shù)據(jù)選通并鎖存到相應(yīng)的輸入鎖存器中。返回56方式1輸入控制信號(hào)IBF(InputBufferFull)——輸入緩沖器滿狀態(tài)指示信號(hào)。由82C55的PC5或PC1位發(fā)出的應(yīng)答信號(hào),高電平有效。表明82C55在其輸入緩沖區(qū)中存放了一個(gè)新的數(shù)據(jù),以備CPU讀取,同時(shí)還將數(shù)據(jù)已鎖存到82C55輸入口的信息通知外設(shè)。返回57方式1輸入控制信號(hào)INTR(InterruptRequest)——中斷請(qǐng)求信號(hào)(PC3或PC0),高電平有效。當(dāng)82C55的輸入端口有新數(shù)據(jù)時(shí),INTR信號(hào)將變?yōu)楦唠娖健MǔW鰿PU的查詢信號(hào)或82C55向CPU發(fā)出的中斷請(qǐng)求信號(hào)。返回58方式1輸入控制信號(hào)INTE(InterruptEnable)——中斷允許。只有當(dāng)INTE=1時(shí),端口A或B才可能向CPU發(fā)出中斷請(qǐng)求INTR。INTE由軟件通過(guò)對(duì)C口(PC4和PC2)的置位或復(fù)位指令來(lái)實(shí)現(xiàn)對(duì)中斷的控制。注意:此時(shí)PC4和PC2的置位/復(fù)位操作是82C55的內(nèi)部操作。操作時(shí)對(duì)PC4和PC2引腳的邏輯狀態(tài)完全沒(méi)有影響返回D7D6D5D4D3D2D1D0I/OI/OIBFAINTEAINTRAINTEBIBFBINTRB59方式1輸入時(shí)的狀態(tài)字端口A和端口B工作于方式1輸入時(shí),端口C的內(nèi)容表征A、B口的狀態(tài),其各位的意義如下:程序可通過(guò)讀入C口內(nèi)容查詢方式1時(shí)A、B口的狀態(tài)。②方式1輸入工作時(shí)序

STB①IBFINTR③④

RDPA或PB口

來(lái)自外設(shè)的數(shù)據(jù)

方式1輸入過(guò)程由外設(shè)發(fā)起,到CPU讀出數(shù)據(jù)結(jié)束。

6061方式1輸出的有關(guān)控制信號(hào)

端口A方式1輸出結(jié)構(gòu)示意圖WRACKAOBFAPA7~PA0PC6PC7PC3&I/OPC4~PC5

(PC6)INTEAINTRA鎖存緩沖D7~D0

響應(yīng)輸入輸出緩沖器滿中斷請(qǐng)求信號(hào)中斷允許信號(hào)NEXT62方式1輸出時(shí)的控制信號(hào)OBF#(OutputBufferFull)——輸出緩沖器滿。表明CPU已將待輸出的數(shù)據(jù)寫(xiě)入指定端口的數(shù)據(jù)寄存器中,通知外設(shè)可從指定端口讀取數(shù)據(jù)。 由82C55送給外設(shè),外設(shè)的應(yīng)答ACK#信號(hào)有效時(shí)使它恢復(fù)為高電平。返回63方式1輸出時(shí)的控制信號(hào)ACK#(Acknowledge)——響應(yīng)輸入。外設(shè)給出的響應(yīng)信號(hào),外設(shè)收到數(shù)據(jù)后應(yīng)送出,作為對(duì)82C55的響應(yīng)。低電平有效。返回64方式1輸出時(shí)的控制信號(hào)INTR——用于向CPU發(fā)出中斷請(qǐng)求信號(hào),通知CPU外設(shè)已將數(shù)據(jù)取走,可輸出新數(shù)據(jù)。返回65方式1輸出時(shí)的控制信號(hào)INTE——82C55中斷允許信號(hào),用于控制是否能向CPU發(fā)INTR信號(hào)。返回D7D6D5D4D3D2D1D0OBFAINTEAI/OI/OINTRAINTEBOBFBINTRB66方式1輸出時(shí)的狀態(tài)字端口C的內(nèi)容表征端口A和端口B工作于方式1輸出時(shí)的狀態(tài),其各位的意義如下:方式1輸出的工作時(shí)序方式1輸出由CPU執(zhí)行輸出指令開(kāi)始,至外設(shè)讀走數(shù)據(jù)結(jié)束。

67送外設(shè)的數(shù)據(jù)WR①INTRACK③④

②OBF端口(PA或PB口)數(shù)據(jù)有效工作方式2(不常用,自學(xué))

工作方式2的特點(diǎn)1.方式2是一種雙向選通I/O方式(需使用“握手”

控制信號(hào)),82C55A口能自動(dòng)轉(zhuǎn)換為輸入或輸 出,無(wú)需象方式1時(shí)需初始化設(shè)置;2.只有A口能夠工作于方式2,此時(shí)C口的部分引 腳作為A口的“握手”信號(hào),其余引腳可工作于方 式0輸入或輸出;B口可工作于方式0或方式1;3.方式2可近似看作是A口工作于方式1時(shí)輸入與 輸出的組合;4.方式2的工作狀態(tài)可由C口讀出,具體含義參考 教材。

6869應(yīng)用舉例[例]

設(shè)計(jì)雙機(jī)并行通信接口。要求在A、B兩臺(tái)微 機(jī)之間并行傳送1K字節(jié)數(shù)據(jù),A機(jī)發(fā)送,B機(jī)接收。

A機(jī)一側(cè)的82C55采用方式1工作,B機(jī)一側(cè)的

82C55采用方式0工作。兩機(jī)的CPU與82C55之 間都采用查詢方式工作(設(shè)CPU為8088)。解:(1)硬件連接圖OBF70硬件連接

雙機(jī)并行通信接口電路示意圖PC4PC0PC5~7PC3未使用CPU數(shù)據(jù) 總線CPU數(shù)據(jù) 總線

A機(jī)

82C55PA0~7

B機(jī)82C55 PA0~7

輸出緩沖器滿

PC7

ACKPC6響應(yīng)輸入PC0~5PB0~7

方式1輸出

PC1~3

PB0~7方式0輸入71硬件連接A機(jī)的82C55工作于方式1,選A口輸出,PC7和PC6引腳固定作為聯(lián)絡(luò)控制線OBF#和ACK#。B機(jī)的82C55工作于方式0,選A口輸入,引腳PC4和PC0作聯(lián)絡(luò)控制線。雖然兩側(cè)的82C55都設(shè)置了聯(lián)絡(luò)控制線,但有本質(zhì)的區(qū)別,前者的聯(lián)絡(luò)控制線是固定的,沒(méi)有選擇余地,后者的聯(lián)絡(luò)控制線并不固定,實(shí)際上有多種選擇方式,如可選PC4和PC2或PC5和PC3等。72軟件設(shè)計(jì) 假定A、B兩機(jī)中82C55的端口地址都為300H~303H,程序如下:A口B口C口命令口300H301H302H 303H73(1)A機(jī)發(fā)送程序MOVDX,303H;82C55命令口MOVAL,10100000B;A口方式1輸出OUTDX,ALMOVAX,DATAMOVES,AXMOVBX,00MOVCX,3FFHMOVDX,300H

;寫(xiě)工作方式字;建立數(shù)據(jù)塊的段基址

;數(shù)據(jù)塊的偏移地址

;發(fā)送數(shù)據(jù)塊長(zhǎng)度1K;82C55的A口MOVAL,ES:[BX];取第一個(gè)數(shù)據(jù)OUTDX,ALINCBX;輸出第一個(gè)數(shù)據(jù);數(shù)據(jù)塊地址指針調(diào)整74L:MOVDX,302H

INAL,DX TESTAL,80H JNZL

;82C55的C口;輸入C口狀態(tài)字

;查詢PC7狀態(tài)(OBF輸入緩沖器滿);輸出數(shù)據(jù)未被取走,繼續(xù)MOVDX,300H;數(shù)據(jù)被取走,A口準(zhǔn)備下一個(gè)數(shù)據(jù)MOVAL,ES:[BX]OUTDX,ALINCBXDECCXJNZL;再輸出一個(gè)數(shù)據(jù)

;數(shù)據(jù)塊地址指針調(diào)整

;數(shù)據(jù)塊長(zhǎng)度減1;傳送未完,繼續(xù)MOVAX,4C00HINT21H;傳送完畢,退回DOS75(2)B機(jī)接收程序MOVDX,303H;82C55命令口MOVAL,10011000BOUTDX,ALMOVAL,00000001BOUTDX,ALMOVAX,DATAMOVES,AXMOVBX,00MOVCX,400H

;A口方式0輸入;寫(xiě)工作方式字;C口置位復(fù)位控制字;PC0=1響應(yīng)輸入信號(hào)ACK;建立數(shù)據(jù)塊的段基址;數(shù)據(jù)塊的偏移地址;接收數(shù)據(jù)塊長(zhǎng)度寫(xiě)工作方式字 寫(xiě)C口 控制字76MOVDX,302H

INAL,DX TESTAL,10H JNZL MOVDX,300H

INAL,DX MOVES:[BX],AL MOVDX,303H

;82C55的C口地址

;輸入C口狀態(tài)字

;查詢A機(jī)狀態(tài)(PC4)OBF#

;沒(méi)有輸出新數(shù)據(jù),繼續(xù)查詢

;有新數(shù)據(jù),本機(jī)準(zhǔn)備A口輸入數(shù)據(jù);輸入一個(gè)數(shù)據(jù)

;存數(shù)據(jù)

;命令口地址MOVAL,00000000B;C口置位復(fù)位控制字OUTDX,AL;使PC0=0NOPMOVAL,00000001B;置PC0=1,產(chǎn)生低電平脈沖信號(hào);數(shù)據(jù)塊地址指針調(diào)整;數(shù)據(jù)塊長(zhǎng)度減1;接收未完,繼續(xù)OUTDX,ALINCBXDECCXJNZLMOVAX,4C00HINT21H;接收完畢,退回DOS

L:查詢A機(jī)狀態(tài)存數(shù)據(jù)響應(yīng)輸出有效ACK#77第三節(jié)可編程計(jì)數(shù)器/定時(shí)器8253/82548253/8254芯片功能;8253/8254芯片引腳及其擴(kuò)展方法;8253/8254初始化字及其工作方式;掌握8253/8254的使用方法。788253/8254功能概述可編程硬件定時(shí)器/計(jì)數(shù)器芯片;內(nèi)部集成了三個(gè)獨(dú)立的16位計(jì)數(shù)器;每個(gè)計(jì)數(shù)器都有自己的時(shí)鐘輸入端CLK、計(jì)數(shù)輸出端OUT和控制信號(hào)端GATE;每個(gè)計(jì)數(shù)器有6種工作方式,可程控選擇。內(nèi)部結(jié)構(gòu)框圖數(shù)據(jù)總線 緩沖器

讀/寫(xiě)邏輯控制字寄存器計(jì)數(shù)器通道0計(jì)數(shù)器通道1計(jì)數(shù)器通道2CLK0GATE0OUT0

CLK1

GATE1

OUT1CLK2GATE2OUT2

79A0

A1RD WR CSD0~D716位當(dāng)前計(jì)數(shù)值鎖存器16位減1計(jì)數(shù)值&

CLKGATEOUT內(nèi)部數(shù)據(jù)總線內(nèi)部計(jì)數(shù)器的結(jié)構(gòu)

鎖存后讀出可隨時(shí)訪問(wèn)

16位計(jì)數(shù)初值鎖存器

80D7D5D4OUT07818253/8254引腳及其功能1.引腳圖242322212019181716151413123456

82538(8254)9101112

輸 入D6

輸 出 總 線D3

D2

D1

D0

時(shí)鐘輸入CLK0計(jì)數(shù)器輸出門選通輸入GATE0

GNDVccWRRDCSA1端口選A0擇輸入CLK2OUT2GATE2CLK1GATE1OUT1828253/8254引腳及其功能2.與CPU連接的引腳功能D7~D0

——三態(tài)數(shù)據(jù)輸入輸出總線,用于將8253與系統(tǒng)數(shù)據(jù)總線相連,CPU通過(guò)它向8253讀寫(xiě)數(shù)據(jù)、命令和狀態(tài)信息;RD#——讀控制輸入信號(hào),低電平有效。由CPU發(fā)出,用于控制8253寄存器的讀操作;WR#——寫(xiě)控制輸入信號(hào),低電平有效。由CPU發(fā)出,用于控制8253寄存器的寫(xiě)操作;838253/8254引腳及其功能CS#——片選,輸入信號(hào),低電平有效。為低電平時(shí)CPU選中8253,可以向8253進(jìn)行讀寫(xiě)操作;A1~A0

——端口選擇輸入線,用于選擇8253內(nèi)部寄存器,以便對(duì)它們進(jìn)行讀寫(xiě)操作。848253/8254控制邏輯CS

0 0 0 0 0 0 0

0 1 0A1

0 0 1 1 0 0 1

1

× ×A0

0 1 0 1 0 1 0

1

× ×RD

1 1 1 1 0 0 0

0

×

1WR

0 0 0 0 1 1 1

1

×

1

寄存器選擇與操作

寫(xiě)計(jì)數(shù)器0“計(jì)數(shù)初值”

寫(xiě)計(jì)數(shù)器1“計(jì)數(shù)初值”

寫(xiě)計(jì)數(shù)器2“計(jì)數(shù)初值”

寫(xiě)“控制字”到控制寄存器讀計(jì)數(shù)器0“當(dāng)前計(jì)數(shù)初值”讀計(jì)數(shù)器1“當(dāng)前計(jì)數(shù)初值”讀計(jì)數(shù)器2“當(dāng)前計(jì)數(shù)初值”

無(wú)操作,三態(tài) 禁止 無(wú)操作,三態(tài)858253/8254引腳及其功能3.計(jì)數(shù)器引腳功能GATE——門選通輸入信號(hào)(GATE0、GATE1、GATE2)。用來(lái)禁止、允許或開(kāi)始計(jì)數(shù)過(guò)程;CLK——時(shí)鐘輸入信號(hào)(CLK0、CLK1、CLK2)。CLK引腳每輸入一個(gè)時(shí)鐘脈沖,計(jì)數(shù)值減1,是計(jì)量的基本時(shí)鐘信號(hào);OUT——計(jì)數(shù)器輸出信號(hào)(OUT0、OUT1、OUT2)。OUT是8253向外輸出定時(shí)或計(jì)數(shù)結(jié)果的信號(hào)。8253/8254的控制字格式D7D6D5D4D3D2D1D0SC1SC0RL1RL0M2M1M0BCD計(jì)數(shù)器選擇位00—計(jì)數(shù)器001—計(jì)數(shù)器110—計(jì)數(shù)器211—非法選擇00—計(jì)數(shù)值鎖存01—讀/寫(xiě)低字節(jié)10—讀/寫(xiě)高字節(jié)11—讀/寫(xiě)兩字節(jié) 先低后高000—方式0001—方式1010—方式2011—方式3100—方式4101—方式5

86讀寫(xiě)字節(jié)數(shù)工作方式選擇位碼制選擇0—二進(jìn)制計(jì)數(shù)1—十進(jìn)制計(jì)數(shù)878253/8254的初始化操作每個(gè)計(jì)數(shù)器需要單獨(dú)初始化;各計(jì)數(shù)器的控制字都寫(xiě)入同一控制字寄存器;8位計(jì)數(shù)初值只寫(xiě)一次到計(jì)數(shù)器端口;16位計(jì)數(shù)初值應(yīng)連續(xù)兩次寫(xiě)入同一計(jì)數(shù)器端口(先低后高)88初始化操作舉例

例:選擇2號(hào)計(jì)數(shù)器,工作在方式2,計(jì)數(shù)初值為

1000(3E8H,2個(gè)字節(jié)),采用二進(jìn)制計(jì)數(shù),8253定時(shí)計(jì) 數(shù)器通道0的端口地址為TIMER,則其程序段為(系統(tǒng)

CPU為8088):

TIMEREQU040HMOVAL,10110100BOUTTIMER+3,ALMOVAX,3E8HOUTTIMER+2,ALMOVAL,AH;2號(hào)計(jì)數(shù)器的方式控制字

;寫(xiě)入控制寄存器

;計(jì)數(shù)初值

;先送低字節(jié)到2號(hào)計(jì)數(shù)器

;取高字節(jié)OUTTIMER+2,AL;后送高字節(jié)到2號(hào)計(jì)數(shù)器89讀當(dāng)前計(jì)數(shù)值操作(鎖存后讀)

先寫(xiě)鎖存控制字,再執(zhí)行讀操作。 例:讀出1號(hào)計(jì)數(shù)器的當(dāng)前計(jì)數(shù)值(假定計(jì)數(shù)值為兩字 節(jié)),其程序段為(系統(tǒng)CPU為8088):

MOVAL,01000000B;1號(hào)計(jì)數(shù)器的鎖存命令OUTTIMER+3,AL;寫(xiě)入控制寄存器INAL,TIMER+1;讀當(dāng)前計(jì)數(shù)值(低字節(jié))MOVBL,AL;暫存INAL,TIMER+1;讀當(dāng)前計(jì)數(shù)值(高字節(jié))MOVBH,AL;結(jié)果存BX寄存器90讀計(jì)數(shù)初值操作

對(duì)選定的計(jì)數(shù)器執(zhí)行輸入指令即可。 例:讀出0號(hào)計(jì)數(shù)器的計(jì)數(shù)初值(假定計(jì)數(shù)值為兩字 節(jié)),其程序段為(系統(tǒng)CPU為8088):INAL,TIMER;讀計(jì)數(shù)初值低字節(jié)MOVBL,AL;暫存INAL,TIMER;讀計(jì)數(shù)初值高字節(jié)MOVBH,AL;結(jié)果存BX寄存器91工作方式概述

不同點(diǎn):1.2.3.1.2.3.輸出波形不同;啟動(dòng)計(jì)數(shù)器的觸發(fā)方式不同;計(jì)數(shù)過(guò)程中門控信號(hào)GATE對(duì)計(jì)數(shù)器操作的影響不同。共同點(diǎn):控制字寫(xiě)入計(jì)數(shù)器時(shí),計(jì)數(shù)器控制邏輯復(fù)位,輸出端OUT進(jìn)入初始態(tài);初值寫(xiě)入后,要經(jīng)過(guò)一個(gè)時(shí)鐘信號(hào)的上升沿和下降沿才開(kāi)始減一計(jì)數(shù);門控信號(hào)GATE是在時(shí)鐘脈沖的上升沿被采樣,工作方式不同,GATE作用方式不同。92方式0——計(jì)數(shù)結(jié)束后中斷方式0特點(diǎn):1.當(dāng)向計(jì)數(shù)器寫(xiě)完計(jì)數(shù)初值后,開(kāi)始計(jì)數(shù),相 應(yīng)的輸出信號(hào)OUT由高變低。當(dāng)計(jì)數(shù)器減 到零時(shí),OUT立即輸出高電平。2.門控信號(hào)GATE為高電平時(shí),計(jì)數(shù)器工作,當(dāng)

GATE為低電平時(shí),計(jì)數(shù)器停止工作,其計(jì)數(shù)

值保持不變。3.在計(jì)數(shù)器工作期間,如果寫(xiě)入新的計(jì)數(shù)值,

則計(jì)數(shù)器將按新寫(xiě)入的計(jì)數(shù)值重新啟動(dòng)一 次計(jì)數(shù)。93方式0工作波形圖返回94方式0編程舉例

例:使計(jì)數(shù)器1工作在方式0,按16位二進(jìn)制計(jì)數(shù),

設(shè)8254三個(gè)計(jì)數(shù)器及控制口地址分別為

40H~43H,其程序段為:MOVMOVOUTMOVMOVOUTMOVOUT

DX,43 AL,01110000BDX,AL DX,41H AL,BYTELDX,AL AL,BYTEHDX,AL;控制口地址;方式字;寫(xiě)控制字;計(jì)數(shù)器1數(shù)據(jù)口地址;寫(xiě)計(jì)數(shù)初值低字節(jié);寫(xiě)計(jì)數(shù)初值高字節(jié)95方式1——可程控單穩(wěn)方式1.設(shè)定方式1后,輸出OUT就變成高電平,寫(xiě)入 計(jì)數(shù)初值且門控信號(hào)GATE出現(xiàn)上升沿后的 一個(gè)時(shí)鐘周期的下降沿,開(kāi)始計(jì)數(shù),同時(shí)輸 出OUT變成低電平。計(jì)數(shù)值回零后,輸出變 高,如圖中①所示。2.在計(jì)數(shù)器工作期間,如果GATE端又出現(xiàn)一 個(gè)上升沿,計(jì)數(shù)器重新裝入原計(jì)數(shù)初值并重 新啟動(dòng)計(jì)數(shù),如圖中②所示。3.對(duì)計(jì)數(shù)期間寫(xiě)入的新計(jì)數(shù)初值,要等到當(dāng)前 的計(jì)數(shù)值計(jì)滿回零且門控信號(hào)再次出現(xiàn)上 升沿后,才按新寫(xiě)入的計(jì)數(shù)值開(kāi)始工作,如

圖中③所示。方式1工作波形圖WRCLK②T1T2T3T4T5T6T7T8T9T1043①GATE43 42 3

120 1311020③0N=3N=2

2N=4OUT GATEOUT

WR GATEOUT返回

9697方式2——頻率發(fā)生器方式該方式相當(dāng)于自動(dòng)裝入時(shí)間常數(shù)的N分頻器,計(jì)數(shù)期間,輸出OUT為高電平,計(jì)數(shù)器回零后,輸出一個(gè)時(shí)鐘周期的低電平后,如圖①。計(jì)數(shù)器工作期間,如果寫(xiě)入新的計(jì)數(shù)值,則計(jì)數(shù)器仍按原計(jì)數(shù)值計(jì)數(shù),直到計(jì)數(shù)器回零并輸出一個(gè)時(shí)鐘周期的低電平之后,才按新寫(xiě)入的計(jì)數(shù)值計(jì)數(shù),如圖②。門控GATE為高電平時(shí)允許計(jì)數(shù),若在計(jì)數(shù)期間GATE變?yōu)榈碗娖?則停止計(jì)數(shù),GATE恢復(fù)高電平后,計(jì)數(shù)器將按原設(shè)定的計(jì)數(shù)值重新啟動(dòng)下一次計(jì)數(shù),如圖③。1方式2工作波形圖T1T2T3T4T5T6T7T8T9T10CLK

①②43323221031③N=3GATE OUT

N=4N=3

2N=2

110(4)32 0(2)10(2)1

00(2)0(3)0WR

WROUT WR OUT返回

9899方式3——方波頻率發(fā)生器方式方式3與方式2基本相同,也具有自動(dòng)裝入時(shí)間常數(shù)的能力,但其輸出為方波;計(jì)數(shù)初值為偶數(shù)時(shí),輸出方波高低電平所占時(shí)間為1∶1;計(jì)數(shù)初值為奇數(shù)時(shí),輸出方波的高電平持續(xù)時(shí)間比低電平持續(xù)時(shí)間多一個(gè)時(shí)鐘周期。100方式3工作波形圖①②543143212N=40(4)3210N=50(5)432WR OUTWR OUTT1T2T3T4T5T6T7T8T9T10CLK101方式4——軟件觸發(fā)工作方式計(jì)數(shù)初值裝入后,計(jì)數(shù)器開(kāi)始計(jì)數(shù),計(jì)數(shù)完畢,輸出一個(gè)時(shí)鐘周期的低電平后恢復(fù)高電平,且計(jì)數(shù)器不再計(jì)數(shù),其時(shí)序如圖①所示。GATE為高電平時(shí),允許計(jì)數(shù)器工作,為低電平時(shí),計(jì)數(shù)器停止計(jì)數(shù)。當(dāng)恢復(fù)高電平后,計(jì)數(shù)器從原設(shè)定的計(jì)數(shù)初值開(kāi)始作減1計(jì)數(shù),如圖②所示。計(jì)數(shù)器工作期間寫(xiě)入新的計(jì)數(shù)值,則不影響當(dāng)前的計(jì)數(shù)狀態(tài),當(dāng)前計(jì)數(shù)值回零時(shí),計(jì)數(shù)器再按新寫(xiě)入的計(jì)數(shù)值開(kāi)始計(jì)數(shù),計(jì)數(shù)完畢后計(jì)數(shù)器將停止工作,如圖③所示。方式4工作波形圖N=3WR①③14432 413

023N=40N=2②210210T1T2T3T4T5T6T7T8T9T10WROUT GATE OUTOUTCLK返回

102103方式5——硬件觸發(fā)工作方式方式5與方式4相類似,特點(diǎn)在于由GATE信號(hào)上升沿觸發(fā)計(jì)數(shù)。如圖①所示。寫(xiě)入計(jì)數(shù)初值后,計(jì)數(shù)器并不立即計(jì)數(shù),由門控信號(hào)的上升沿啟動(dòng)計(jì)數(shù)。計(jì)數(shù)器計(jì)數(shù)回零后,輸出一個(gè)時(shí)鐘周期的低電平即恢復(fù)高電平。如圖①所示。在計(jì)數(shù)過(guò)程中(或者計(jì)數(shù)結(jié)束后),如果門控再次出現(xiàn)上升沿,則計(jì)數(shù)器將從原設(shè)定的計(jì)數(shù)初值重新計(jì)數(shù)。如圖2所示。方式5工作波形圖②T1T2T3T4T5T6T7T8T9T10143432①432100N=4GATEWROUTCLKGATEOUT返回

104105應(yīng)用舉例

例:用8253測(cè)量連續(xù)脈沖信號(hào)的周期。1.測(cè)量原理圖(設(shè)系統(tǒng)CPU為8088)2.測(cè)量方法PC1=0時(shí),GATE1=0,此時(shí)禁止測(cè)量,可初始化8253;PC1=1時(shí),允許測(cè)量;被測(cè)信號(hào)第一個(gè)上升沿使GATE1=1,8253開(kāi)始計(jì)數(shù)(基準(zhǔn)時(shí)鐘信號(hào)頻率為2MHz,測(cè)量分辨率為0.5微秒);被測(cè)信號(hào)第二個(gè)上升沿使GATE1=0,8253停止計(jì)數(shù);此時(shí)計(jì)數(shù)器的值即為被測(cè)信號(hào)周期(T=N×0.5μs)。106應(yīng)用舉例3.測(cè)量控制程序設(shè)8253口地址為40H~43H,82C55口地址為60H~63H。設(shè)置8253的計(jì)數(shù)器1工作于方式0。通過(guò)查詢8255的PA0位確定一次測(cè)量計(jì)數(shù)是否完成。NEXTD1QD2測(cè)量原理圖輸入脈沖CLK1

8253GATE12MHz時(shí)鐘CPU數(shù)據(jù)總線PA082C55DQ

#

CLRDQ

#

CLRPC1

返回

107108MOVAL,01110000B;8253計(jì)數(shù)器1方式0控制字OUT43H,ALMOVAL,00000010B

;82C55按位置位/復(fù)位控制字OUT63H,ALMOVAL,0OUT42H,ALOUT42H,AL;準(zhǔn)備測(cè)量(PC1=0);計(jì)數(shù)初值設(shè)置為0MOVAL,00000011B;82C55按位置位/復(fù)位控制字;允許計(jì)數(shù)(PC1=1);從82C55端口A輸入;等待一次計(jì)數(shù)結(jié)束;鎖存后讀操作命令

OUT63H,ALLOOP:INAL,60H TESTAL,01H JNZLOOP MOVAL,01000000B OUT43H,AL INAL,41H MOVBL,AL INAL,41HMOVBH,AL;測(cè)量結(jié)果保存在BX寄存器中1098253/8254芯片小結(jié)芯片功能——計(jì)數(shù)器與定時(shí)器;芯片的核心部件——可程控減1計(jì)數(shù)器、讀寫(xiě)控制邏輯;引腳及其功能——與CPU的接口引腳、計(jì)數(shù)器連接引腳(CLK、GATE、OUT);工作方式——六種;控制字格式及其初始化方法——初始化即規(guī)定可編程芯片的工作方式;與CPU的連接方法——注意區(qū)分8位系統(tǒng)與16位系統(tǒng)中的不同連接方法。110A1A0CLK0~2與8位的8088最小系統(tǒng)的連接

A15A3IO/MWRRDCSA1A0

8253/54

D7┇

D0

RDWR

地址鎖存器譯碼器AD7~AD0

ALEAD7~AD0

8088GATE0~2OUT0~2111與16位的8086最小系統(tǒng)的連接(1)A2A1GATE0~2OUT0~2CLK0~2A15A3M/IOWRRDCSA1A0

8253/54

D7┇

D0

RDWR

地址鎖存器譯碼器AD7~AD0A0

ALEAD15~AD0

8086112與16位的8086最小系統(tǒng)的連接(2)A2A1GATE0~2OUT0~2CLK0~2A15A3M/IOWRRDCSA1A0

8253/54

D7┇

D0

RDWR

地址鎖存器譯碼器AD15~AD8BHE

ALEAD15~AD0

8086113分析兩種連接方法的異同1.端口地址;2.初始化程序編寫(xiě);3.思考如果執(zhí)行INAX,PORT(DX)或

OUTPORT(DX),AX之類指令時(shí)會(huì)有什么 結(jié)果?4.如果要充分利用8086系統(tǒng)的端口地址資源

(每各地址都映射到芯片的一個(gè)物理端口)

擴(kuò)充8位I/O芯片,電路該如何設(shè)計(jì)?114此后為選學(xué)內(nèi)容115第四節(jié)8259A可編程中斷控制器1.2.3.4.8259A芯片功能及其與CPU連接方法;8259A芯片對(duì)中斷申請(qǐng)信號(hào)的處理;8259A初始化及其工作方式;8259A芯片的使用方法。1168259A芯片功能80X86系統(tǒng)專用中斷控制芯片;8級(jí)優(yōu)先權(quán)管理能力;可多片級(jí)聯(lián)管理多達(dá)64個(gè)中斷源;多種優(yōu)先權(quán)管理方式;自動(dòng)提供中斷類型碼;具有可程控的中斷屏蔽能力。1178259A引腳圖12345678910111213142827262524232221201918171615

CSWR RD

D7

D6

D5

D4

D3

D3

D1

D0CAS0CAS1

GNDVccA0INTAIR7IR6IR5IR4IR3IR3IR1IR0INTSP/ENCAS28259A118芯片外部特性1.與CPU連接的引腳D0~D7

;RD#、WR#;CS#、A0;INT、INTA#2.中斷輸入引腳IR0~I(xiàn)R73.級(jí)聯(lián)控制引腳SP/EN#、CAS0~CAS2119內(nèi)部結(jié)構(gòu)框圖數(shù)據(jù)總線緩沖數(shù)據(jù)總線D7~D0

讀/寫(xiě) 控制 邏輯級(jí)聯(lián)緩 沖/比 較器

A0

CS RD WRCAS0CAS1CAS2SP/ENIR0IR1IR2IR3IR4IR5IR6IR7中斷服務(wù)寄存 器

ISR中斷請(qǐng)求寄存 器

IRR

優(yōu)先 權(quán)分 析器

PR中斷屏蔽寄存器IMR控制邏輯INTINTANEXT120中斷請(qǐng)求寄存器IRR:8位具有鎖存功能的寄存器,用于記錄IR0

~I(xiàn)R7引腳產(chǎn)生的有效中斷請(qǐng)求信號(hào)。中斷服務(wù)寄存器ISR:8位寄存器,用來(lái)標(biāo)記CPU正在處理中的所有中斷申請(qǐng)信號(hào)。中斷屏蔽寄存器IMR:8位寄存器,用于對(duì)8個(gè)中斷源的中斷請(qǐng)求信號(hào)進(jìn)行屏蔽控制。優(yōu)先權(quán)分析器PR:用于比較多個(gè)中斷請(qǐng)求信號(hào)之間的優(yōu)先級(jí)別,以決定中斷響應(yīng)的優(yōu)先級(jí)別或是否產(chǎn)生多重中斷或中斷嵌套。121內(nèi)部部件功能控制邏輯:控制邏輯電路解釋8259A的初始化命令字與操作命令字,按設(shè)定工作方式管理8259A的全部工作。根據(jù)IRR的內(nèi)容和PR的判斷結(jié)果向CPU發(fā)出中斷請(qǐng)求信號(hào)INT,并接受中斷響應(yīng)信號(hào)INTA#,使8259A進(jìn)入中斷服務(wù)狀態(tài)。數(shù)據(jù)總線緩沖器:8位的雙向三態(tài)緩沖器,是8259A與CPU之間進(jìn)行數(shù)據(jù)交換的通道。122內(nèi)部部件功能級(jí)聯(lián)緩沖器/比較器:為實(shí)現(xiàn)級(jí)聯(lián)方式的主——從結(jié)構(gòu)而設(shè)計(jì)的一個(gè)功能模塊。讀/寫(xiě)邏輯:讀/寫(xiě)邏輯根據(jù)CPU發(fā)出的控制信號(hào)(RD#、WR#、CS#、A0)完成規(guī)定的輸入輸出操作(寫(xiě)入初始化命令字,讀出8259A工作狀態(tài)及中斷狀態(tài)等)。CSA0D4D3RDWR操作0001讀IRR、ISR或中斷狀態(tài)0101讀IMR000010寫(xiě)OCW2000110寫(xiě)OCW3001×10寫(xiě)ICW101××10寫(xiě)ICW2~I(xiàn)CW4、OCW10×××11數(shù)據(jù)總線高阻態(tài)1×××××數(shù)據(jù)總線高阻態(tài)1238259A讀/寫(xiě)控制邏輯真值表

為尋址8259A內(nèi)部的多個(gè)寄存器,有關(guān)信息 中需加特征位、或規(guī)定相關(guān)操作順序來(lái)區(qū)分不同的輸入/輸出信息。1248259A中斷處理過(guò)程1.當(dāng)一個(gè)或多個(gè)中斷請(qǐng)求輸入(IR7~I(xiàn)R0)有效時(shí),則IRR的相應(yīng)位置1。2.可用IMR對(duì)IRR進(jìn)行屏蔽。通過(guò)優(yōu)先級(jí)分析 電路PR,把當(dāng)前具有最高優(yōu)先級(jí)的中斷請(qǐng)求 從INT輸出,送CPU的INTR引腳。3.若CPU處于開(kāi)中斷狀態(tài),則在現(xiàn)行指令執(zhí)行 完后響應(yīng)中斷,進(jìn)入中斷響應(yīng)周期,輸出

INTA#。8259A收到第一個(gè)信號(hào)后,將ISR

中中斷優(yōu)先級(jí)最高的那一位置1,而將IRR的 相應(yīng)位清除。1258259A中斷處理過(guò)程4.8259A收到第二個(gè)INTA#信號(hào)后,輸出相應(yīng) 中斷類型號(hào),CPU讀入該中斷類型號(hào)即可執(zhí) 行相應(yīng)的中斷服務(wù)子程序。5.結(jié)束當(dāng)前中斷,8259A有兩種方式:自動(dòng)結(jié)束中斷(AEOI)方式,8259A會(huì)將ISR中第一個(gè)INTA#到來(lái)時(shí)設(shè)置的1在第二個(gè)INTA#時(shí)自動(dòng)清除;普通中斷結(jié)束方式(EOI),則ISR中相應(yīng)位的1狀態(tài)一直保留,需CPU發(fā)出中斷結(jié)束(EOI)命令才會(huì)復(fù)位;中斷結(jié)束方式需初始化編程時(shí)選定。126處理方式——中斷申請(qǐng)觸發(fā)電平觸發(fā)指8259A依靠IRi引腳上的有效高電平觸發(fā)中斷,與有效電平的出現(xiàn)方式和時(shí)間無(wú)關(guān)??赡芤鹬貜?fù)觸發(fā)現(xiàn)象。邊沿觸發(fā)指8259A依靠IRi引腳上的上升沿觸發(fā)中斷,

只有當(dāng)IRi變?yōu)闊o(wú)效低電平后,信號(hào)的邊沿檢測(cè)電路才能重新進(jìn)入待命狀態(tài),接受新的中斷請(qǐng)求。不會(huì)引起重復(fù)觸發(fā)現(xiàn)象。127處理方式——中斷屏蔽方式普通屏蔽方式:編程設(shè)置IMR寄存器中相應(yīng)位為1,則相應(yīng)中斷請(qǐng)求不能送達(dá)CPU;特殊屏蔽方式:當(dāng)IMR中某個(gè)屏蔽位置位時(shí),即禁止相應(yīng)中斷源產(chǎn)生中斷,而允許各個(gè)未被屏蔽的中斷源(具有較高或較低的優(yōu)先級(jí))產(chǎn)生中斷。特殊屏蔽一般在中斷處理程序中使用,用了這種方式之后,盡管系統(tǒng)正在處理高級(jí)中斷,但對(duì)外界來(lái)講,只有同級(jí)中斷被屏蔽,而允許其它任何級(jí)別的中斷請(qǐng)求。128處理方式——中斷優(yōu)先權(quán)的管理1.完全嵌套方式——8259A的中斷優(yōu)先權(quán)順序 固定為IR0→IR7,IR0優(yōu)先權(quán)最高,IR7優(yōu)先權(quán) 最低。是825

溫馨提示

  • 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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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)論