重大計算機硬件技術(shù)基礎(chǔ)課件第六章_第1頁
重大計算機硬件技術(shù)基礎(chǔ)課件第六章_第2頁
重大計算機硬件技術(shù)基礎(chǔ)課件第六章_第3頁
重大計算機硬件技術(shù)基礎(chǔ)課件第六章_第4頁
重大計算機硬件技術(shù)基礎(chǔ)課件第六章_第5頁
已閱讀5頁,還剩161頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第六章輸入/輸出方式與接口芯片第一節(jié)輸入/輸出方式

第二節(jié)中斷及中斷控制器8259A第三節(jié)DMA及DMA控制器8237A第四節(jié)可編程定時/計數(shù)器8254及其應(yīng)用第五節(jié)可編程并行I/O接口芯片8255A及其應(yīng)用第六節(jié)串行通訊及可編程串行接口芯片16550

第七節(jié)多功能接口芯片82380第一節(jié)輸入/輸出方式●教學目標介紹I/O接口的基本概念●學習要求掌握I/O接口的基本功能,了解接口的一般結(jié)構(gòu)

介紹CPU與外設(shè)間的數(shù)據(jù)傳送關(guān)系介紹I/O端口的編址方式掌握微機與外設(shè)的各種傳送方式,了解DMA傳送過程

熟悉I/O端口的編址方式,了解IN/OUT指令的執(zhí)行過程一、I/O接口1)I/O接口的基本概念I(lǐng)/O接口是連接CPU與外設(shè)的邏輯控制部件,它主要在CPU與外設(shè)間起著傳輸狀態(tài)與命令信息,實現(xiàn)數(shù)據(jù)的緩沖、數(shù)據(jù)格式轉(zhuǎn)換等作用。主要功能有:選擇外設(shè)對外設(shè)進行控制和監(jiān)視進行數(shù)據(jù)寄存和緩沖進行數(shù)據(jù)格式轉(zhuǎn)換進行信號電平轉(zhuǎn)換I/O接口的分類:并行I/O接口和串行I/O接口可編程接口和不可編程接口專用接口和通用接口2)I/O接口的基本結(jié)構(gòu)

主要包含有數(shù)據(jù)端口、狀態(tài)端口和控制端口。

數(shù)據(jù)端口用于存放數(shù)據(jù)信息,包括數(shù)據(jù)輸入寄存器和數(shù)據(jù)輸出寄存器,主要作用是協(xié)調(diào)CPU和外設(shè)之間的數(shù)據(jù)傳輸速度。控制端口用于存放控制信息,控制信息是CPU通過接口傳送給外設(shè)的,其主要作用是控制外設(shè)工作,如控制輸入輸出裝置的啟/停等。狀態(tài)端口用于存放狀態(tài)信息,即反映外設(shè)當前工作的狀態(tài)信息,CPU可通過讀取這些信息,了解外設(shè)當前的工作情況。3)I/O端口的尋址方式在一個微機系統(tǒng)中既有存儲單元地址又有I/O端口地址,根據(jù)兩者地址的不同安排可分為以下兩種尋址方式。存儲器統(tǒng)一編址

在這種方式中,把I/O端口作為存儲器的一個單元來對待,即每個端口占用一個存儲單元地址。此時,對I/O端口操作可以使用全部的存儲器指令,而不必另設(shè)專門的I/O指令。由于該方式是將I/O地址映射到了存儲器地址空間,所以也稱為存儲器映像方式。

I/O端口獨立編址

在這種方式下,I/O端口與存儲器各自獨立編址,這樣存儲器地址和I/O端口地址可以重疊。此時,CPU利用專門的I/O指令來操作I/O端口以防混淆。4)IN/OUT指令的執(zhí)行過程①IN指令的執(zhí)行過程指令格式:INAL,端口地址執(zhí)行過程:●端口地址送上A15~A0●CPU采樣DB,獲取數(shù)據(jù)●M/IO為低,W/R為低,選中的端口將數(shù)據(jù)送上DBAYEN三態(tài)門A:輸入端Y:輸出端EN:三態(tài)使能端D:輸入端Q:輸出端CLK:控制端QDCLKRD觸發(fā)器R:清零端當清零端有效時(R=0):Q=0當使能端有效時(EN=0):Y=A使能端無效時(EN=1):Y呈高阻狀態(tài)當控制端有效時(CLK=1):Q=D控制端無效時(CLK=0):Q不變即CLK的下降沿鎖存。也有上升沿鎖存的D觸發(fā)器。例1:一組開關(guān)狀態(tài)的檢測MOVDX,210HINAL,DX

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

DBD0D7210HIOR與非門IORW/RM/IO與非門┅+5VK0K1K2K3K4K5K6K7電阻三態(tài)門74LS244AYYYYYYYYAAAAAAAENENENENENENENEN2.OUT指令的執(zhí)行過程指令格式:OUT端口地址,AL執(zhí)行過程:●端口地址送上A15~A0●欲送至端口的數(shù)據(jù)送上數(shù)據(jù)總線●M/IO為低,W/R為高,將數(shù)據(jù)鎖入端口例2利用微機控制發(fā)光二極管LED的狀態(tài)。IOW212HMOVDX,212HMOVAL,00HOUTDX,ALIOWW/RM/IOLED0LED1LED2LED3LED5LED6LED7+5V××××××××LED4RRRRRRRR數(shù)據(jù)總線D0D7DQCLK74LS273DQCLKDQCLKDQCLKDQCLKDQCLKDQCLKDQCLKDQCLKIORIOW例3:利用開關(guān)Ki控制小燈LEDi的狀態(tài)。設(shè)開關(guān)Ki閉合,小燈LEDi亮開關(guān)Ki斷開,小燈LEDi滅INAL,90HOUT91H,ALSTART:或:INAL,DXOUTDX,ALSTART:MOVDX,90HINCDXD0D7數(shù)據(jù)總線91H90H××R×R+5V┋RLED0LED1LED774LS273CLKD0D1D7Q0Q1Q7┋┋┋+5VRRRK0K1K7┋┅EN74LS244A0A1A7Y0Y1Y7┋┋┋二、CPU與外設(shè)之間的數(shù)據(jù)傳送方式

在CPU與外設(shè)之間進行數(shù)據(jù)傳送的方式有:無條件傳送、查詢傳送、中斷控制、直接存儲器存?。―irectMemoryAccess,簡稱DMA)傳送方式和I/O處理機方式。無條件傳送方式適用于隨時準備就緒的簡單外設(shè)。接口電路中僅需數(shù)據(jù)端口。無條件傳送方式的輸入接口電路無條件傳送方式的輸出接口電路2.查詢方式適用于CPU與慢速的外設(shè)間的數(shù)據(jù)傳送。查詢式接口電路一般有:數(shù)據(jù)端口、狀態(tài)端口、控制端口。讀外設(shè)狀態(tài)準備好?Y數(shù)據(jù)輸入/輸出N查詢輸入方式例:假定數(shù)據(jù)端口地址為210H,狀態(tài)端口地址為211H,如何編程控制該輸入設(shè)備?答:MOV DX,211HIN AL,DX;設(shè)置狀態(tài)端口地址;輸入狀態(tài)信息AND AL,10HJZ NOTRDY;只保留D4位;判斷外設(shè)是否準備好MOV DX,210HIN AL,DX;設(shè)置數(shù)據(jù)端口地址;從外設(shè)輸入數(shù)據(jù)NOTRDY:查詢輸出方式例:假定數(shù)據(jù)端口地址為310H,狀態(tài)端口地址為311H,如何編程控制該輸出設(shè)備?答:MOV DX,311HIN AL,DX;設(shè)置狀態(tài)端口地址;輸入狀態(tài)信息AND AL,01HJNZ BUSY;只保留D0位;判斷外設(shè)是否忙碌MOV AL,0MOV DX,310HOUT DX,AL;設(shè)置數(shù)據(jù)端口地址;輸出數(shù)據(jù)到外設(shè)BUSY:3.中斷控制方式適用對象與程序查詢方式相同

微機與外設(shè)并行工作,外設(shè)有請求時,對其進行服務(wù),否則不對該外設(shè)進行任何操作??纱蟠筇岣逤PU的利用率。中斷方式輸入接口電路4.DMA方式在主存與外設(shè)間建立直接數(shù)據(jù)通道,進行數(shù)據(jù)傳送。特點:傳送過程不需CPU干預(yù),速度快。其傳送過程受專用硬件DMAC控制。無條件、查詢、中斷均屬于程控式,而DMA方式是非程控方式。區(qū)別如下:CPUM

外設(shè)MOVINOUT直接通道DMAC聯(lián)絡(luò)MOV程控5.I/O處理機傳送方式

該方式中,IO處理機用自己專門的指令和程序,負責輸入輸出。此時主CPU將只負責“數(shù)據(jù)處理”工作。第二節(jié)中斷及中斷控制器8259A●教學目標介紹中斷的有關(guān)基本概念●學習要求了解什么是中斷及中斷類型介紹可編程中斷控制器8259A了解中斷響應(yīng)的條件及中斷響應(yīng)的過程了解多中斷源時的中斷識別與管理方法了解什么是中斷向量,熟悉中斷向量表的設(shè)置方式掌握8259A的結(jié)構(gòu)、工作過程掌握8259A與CPU的連接方法及使用方法一、中斷的基本概念1.什么是中斷中斷服務(wù)程序1中斷服務(wù)程序

2非預(yù)料事件1非預(yù)料事件

2CPU執(zhí)行流程

在CPU正常運行程序時,由于內(nèi)部或外部某個非預(yù)料事件的發(fā)生,使CPU暫停正在運行的程序,而轉(zhuǎn)去執(zhí)行處理引起中斷事件的程序,然后再返回被中斷的程序,繼續(xù)執(zhí)行。這個過程就是中斷。2.中斷源與中斷向量表

1)中斷源

能夠引發(fā)CPU中斷的信息源,稱為中斷源。80X86微機系統(tǒng)中最多允許有256種中斷源,中斷源類型編號為0~255。

按中斷源的性質(zhì)可以把中斷分為內(nèi)中斷和外中斷兩類。內(nèi)中斷(軟中斷)

指CPU執(zhí)行某些特殊操作或由INT指令引起的中斷,通常分為以下三類:①CPU在執(zhí)行程序過程中,出現(xiàn)某些需要處理的異常而產(chǎn)生的中斷;中斷類型0——

除法錯中斷;中斷類型4——

即INTO指令中斷;②使用調(diào)試程序中的單步或斷點設(shè)置操作引起;使TF=1時,CPU便工作在單步方式下;而斷點是將指令I(lǐng)NT3插入在程序中,CPU執(zhí)行到該指令時引起中斷。③執(zhí)行INTn指令引起;外中斷(硬中斷)

指外部芯片通過CPU的INTR、NMI兩條外部中斷請求輸入線向CPU申請中斷請求而引起的中斷。①非屏蔽中斷通過CPU的NMI引腳產(chǎn)生,當NMI上有正跳變信號時,產(chǎn)生一個內(nèi)部引導的類型2中斷。此外,NMI引腳上的中斷請求不受IF標志的控制,IF不能屏蔽NMI引腳上的中斷請求。②可屏蔽中斷

通過CPU的INTR引腳產(chǎn)生,當INTR上有高電平信號且中斷允許標志位IF置“1”時即產(chǎn)生中斷。

CPU是否響應(yīng)INTR引腳上的中斷請求取決于IF標志:

IF=1,CPU響應(yīng)INTR引腳上的中斷請求;

IF=0,CPU不響應(yīng)INTR引腳上的中斷請求。即當IF=0時,將INTR引腳上的中斷申請屏蔽。2)中斷向量表

實模式下中斷向量就是中斷服務(wù)程序入口地址。內(nèi)存中斷向量表0:0~0:3FFH1000:150h3000:200h0:N×40:N×4+20:0000::

0200h3000h::

MOVAX,0ADDAX,DXMOV[DI],AX::

MOVBX,CX::

IRET:類型N中斷子程某中斷源申請中斷,申請執(zhí)行類型號為N的中斷子程響應(yīng)中斷前

SS:SP響應(yīng)中斷后SS:SP

堆棧

01501000

(F)(IP)=0200h(CS)=3000h0:3FFH0:0

從中斷子程序返回斷點處,靠的是執(zhí)行中斷子程序最后的指令I(lǐng)RET;

從堆棧中取出斷點地址給CS:IP,繼續(xù)執(zhí)行被中斷的程序。故中斷子程序最后要安排IRET

指令。SS:SP

堆棧執(zhí)行IRET后

(IP)(CS)(F)01501000(F)SS:SP1000:150h3000:200h0:N×40:N×4+20:0000::

0200h3000h::MOVAX,0ADDAX,DXMOV[DI],AX、::MOVBX,CX::

IRET:內(nèi)存3)中斷向量表的設(shè)置當CPU響應(yīng)中斷時,將從中斷向量表中讀取中斷向量送給CS和IP,轉(zhuǎn)去執(zhí)行中斷服務(wù)程序。因此,用戶必須將中斷服務(wù)程序的入口地址填入系統(tǒng)的中斷向量表中,填入的方法有兩種。①用程序設(shè)置中斷向量表假設(shè)中斷類型號為32H,中斷服務(wù)程序的名稱為INTSUB。CLI ;關(guān)中斷MOV AX,0MOV ES,AXMOV DI,4*32HLEA AX,INTSUBCLDSTOSWMOV AX,SEGINTSUBSTOSWSTI ;開中斷

②用DOS功能設(shè)置中斷向量表

利用INT21H的35H號功能可實現(xiàn)取原中斷向量,所取得中斷向量放在ES:BX中。MOV AL,N ;N為中斷類型號MOV AH,35H INT 21H ;ES:BX中為N號中斷的原中斷向量PUSH ESPUSH BX

利用INT21H的25H號功能可實現(xiàn)設(shè)置新中斷向量,新中斷向量應(yīng)放在DS:DX中。CLI ;關(guān)中斷PUSH DS MOV AX,SEGINTSUB ;INTSUB的段基址存入DSMOV DS,AXLEA DX,INTSUB ;INTSUB偏移地址存入DXMOV AL,N ;中斷類型號NMOV AH,25HINT 21H ;將DS:DX放置中斷向量表中POP DSSTI ;開中斷

在主程序結(jié)束前恢復原中斷向量,可采用以下程序段實現(xiàn):

……

;將保存于堆棧的原中斷向量彈出DS:DXPOP DX POP DS ;調(diào)用21H中斷的25H功能裝填中斷矢量

MOV AL,N MOV AH,25H INT 21H

……4)中斷描述符表80486工作在保護模式下時,采用“中斷描述符”來描述中斷服務(wù)程序,從中斷描述符表(IDT)中取得中斷描述符。

IDT可位于線性地址空間中的任何地方,CPU通過中斷描述符表寄存器IDTR確定IDT的基地址,該寄存器保存有32位的基地址和IDT界限。中斷描述符的格式中斷描述符存放在IDT中,每個中斷描述符由8個字節(jié)組成(0字節(jié)~7字節(jié))。80486保護方式下中斷/異常處理程序進入過程3.中斷優(yōu)先級與中斷嵌套1)

中斷優(yōu)先級當有多個中斷源同時產(chǎn)生中斷申請時,CPU先響應(yīng)優(yōu)先權(quán)最高的中斷源,再響應(yīng)優(yōu)先級較低的中斷源。2)中斷嵌套

當CPU正在響應(yīng)某個中斷請求,有優(yōu)先權(quán)更高的中斷源發(fā)出請求,CPU會中斷正在執(zhí)行的服務(wù)程序而轉(zhuǎn)去為高級別的中斷源服務(wù),這個中斷套中斷的過程稱為嵌套。

中斷嵌套可以有多級,具體級數(shù)原則上不限,主要取決于堆棧區(qū)的大小(因為中斷處理前后均需要保護斷點和現(xiàn)場,而斷點信息和現(xiàn)場數(shù)據(jù)的保護是通過堆棧來完成的)。4.CPU響應(yīng)INTR中斷的條件①

CPU內(nèi)部中斷是開放的。②現(xiàn)行指令內(nèi)無總線請求,沒有更高優(yōu)先級別的中斷請求正在被響應(yīng)或正發(fā)出、正掛起。③CPU在現(xiàn)行指令結(jié)束后,即運行到最后一個機器周期的最后一個T狀態(tài)時,才能采樣INTR線而響應(yīng)可能提出了的外中斷請求。內(nèi)中斷處理過程①CPU自動產(chǎn)生中斷類型號n;②SP–2→SP,標志寄存器F內(nèi)容入棧;③SP-2→SP,當前代碼段CS內(nèi)容入棧;④SP–2→SP,當前指令計數(shù)器IP內(nèi)容入棧;⑤禁止外部中斷IF=0,禁止單步中斷TF=0;⑥從中斷向量表中取中斷服務(wù)程序入口地址(4*N單元的字內(nèi)容送IP,4*N+2單元里的內(nèi)容送CS);⑦轉(zhuǎn)中斷服務(wù)程序;⑧執(zhí)行中斷服務(wù)程序并返回,彈出IP,CS,F(xiàn),返回斷點,繼續(xù)執(zhí)行。5.中斷處理過程外中斷(INTR)執(zhí)行過程①CPU發(fā)出兩個中斷響應(yīng)信號INTA,第二個INTA時,CPU從當前數(shù)據(jù)總線上取中斷類型碼N(通常由管理INTR的控制器8259A提供);②SP–2→SP,標志寄存器F內(nèi)容入棧;③SP–2→SP,當前代碼段CS內(nèi)容入棧;④SP–2→SP,當前指令計數(shù)器IP內(nèi)容入棧;⑤禁止外部中斷IF=0,禁止單步中斷TF=0;⑥首先從中斷向量表中取4*N單元的字內(nèi)容送IP,然后再取4*N+2單元里的內(nèi)容送CS;⑦轉(zhuǎn)中斷服務(wù)程序;⑧執(zhí)行中斷服務(wù)程序并返回,彈出IP,CS,F(xiàn),返回斷點,繼續(xù)執(zhí)行。6.多中斷源的中斷源識別與優(yōu)先級管理優(yōu)先級編碼器RDY7RDY6RDY5RDY4RDY3RDY2RDY1RDY0b0b1b2

中斷優(yōu)先級編碼電路菊花環(huán)(或稱為鏈式)排隊電路二、中斷控制器8259A1.8259A的內(nèi)部結(jié)構(gòu)與引腳功能1).引腳概述②D0~D7、①IR0~IR7、INTAA0

、RDCS、WR、③EN、SP/CAS0~CAS2INT、2).內(nèi)部結(jié)構(gòu)①中斷請求寄存器IRRIRR0IRR7IRRi=1,有請求IRR41IRR21②中斷屏蔽寄存器IMRIMR7IMR0IMRi=1,屏蔽中斷請求IMR40IMR20③中斷服務(wù)寄存器ISRISRi=1,該請求正在被響應(yīng)ISR0ISR7ISR4111④優(yōu)先級分析器PR用于對各中斷請求進行擇優(yōu)◆擇優(yōu)的對象是:沒被屏蔽的IRi◆擇優(yōu)的方式:由編程決定◆擇優(yōu)的結(jié)果:找出優(yōu)先權(quán)最高的中斷源,送出中斷類型號,并將ISR對應(yīng)位置1。⑤控制邏輯⑥讀/寫電路⑦數(shù)據(jù)總線緩沖器⑧級聯(lián)緩沖器/比較器⑨初始化命令寄存器組和操作命令寄存器組用于設(shè)定或改變8259A的工作方式2.8259A與總線的連接方波鍵盤保留串口2

硬盤軟盤打印機IOWA0CS8259A總線A0數(shù)據(jù)線IORRDWR片選譯碼IR0IR1IR2IR3IR4IR5IR6IR7A5~A9D0~D7D0~D7VccSP/ENCAS0CAS1CAS2GND+5V20H~3FH用于多片8259A級連情況INTAINTINTAINTR串口1

A9~A6A5A4~A1A00~01××××A0●只有在G1=1且G2A=0且

G2B=0時,該芯片才能工作?!裨谌魏螘r候,8個輸出只能有一個可以為低電平,其余全為高電平?!窀鶕?jù)選擇輸入端C、B、A的不同狀態(tài)組合,確定哪一個輸出引腳變?yōu)榈碗娖健?00001010011100101110111CBA輸出為0Y0Y1Y2Y3Y4Y5Y6Y7地址譯碼器(74LS138)G1G2BG2ABCAY0Y1Y2Y3Y4Y5Y6Y7允許輸入端選擇輸入端輸出端74LS138G1G2BG2ABCAY0Y1Y774LS138A9A8A7A6A5AENCS20H~3FH地址:3.8259A的中斷優(yōu)先權(quán)管理方式8259A有五種優(yōu)先級管理方式,所有的優(yōu)先級管理方式均可通過編程來設(shè)置。8259AIR0IR1IR2IR3IR4IR5IR6IR7INT8259AIR0IR1IR2IR3IR4IR5IR6IR7INT(主片)(從片)INTR①全嵌套方式

即固定優(yōu)先級方式,它是一種最普通的工作方式。該方式屏蔽同級和低級的中斷請求。優(yōu)先級順序為:IR0IR7高低

適用于多片8259A級連且響應(yīng)的中斷優(yōu)先級保存在各從片中的大系統(tǒng)。該方式只屏蔽低級的中斷請求。②特殊全嵌套方式與普通全嵌套方式相比,特殊全嵌套方式的特殊性表現(xiàn)在:●當從片的中斷請求被響應(yīng)后,主片并不封鎖從片的INT輸入端,以便從片優(yōu)先級更高的請求可得到響應(yīng);●在從片中斷服務(wù)程序結(jié)束前要檢查其ISR內(nèi)容,檢測剛執(zhí)行完的中斷是否是該從片唯一的中斷請求源,如是,則分別向主片和從片發(fā)送非特殊EOI命令,使從片、主片相繼結(jié)束中斷;否則,只向從片發(fā)一個EOI命令,主片仍不結(jié)束中斷。③自動循環(huán)方式高

其優(yōu)先級自動循環(huán),即已服務(wù)的中斷源自動降為最低優(yōu)先級;如原優(yōu)先級順序為:

IR0→IR1→IR2→IR3→IR4→IR5→IR6→IR7

若IR2已被響應(yīng),則優(yōu)先級順序自動變?yōu)椋?/p>

IR3→IR4→IR5→IR6→IR7→IR0→IR1→IR2高

④特殊循環(huán)方式——

指定優(yōu)先級方式

通過程序指定某中斷源為最低優(yōu)先級后,其它順延。如指定IR6為最低優(yōu)先級,此時優(yōu)先級順序為:

IR7→IR0→IR1→IR2→IR3→IR4→IR5→IR6⑤特殊屏蔽方式——

允許低級中斷嵌套高級中斷的方式普通屏蔽方式下,中斷嵌套受IMR、ISR兩重控制;特殊屏蔽方式下,中斷嵌套僅受IMR控制。①中斷請求寄存器IRR鎖存外部的中斷請求。4.8259A處理過程②中斷屏蔽寄存器IMR決定IRR中的中斷請求是否進入優(yōu)先級裁決器PR。③中斷服務(wù)寄存器ISR中記錄CPU正在響應(yīng)的中斷。ISR中的某位為1,表示CPU正在響應(yīng)此級中斷,即正在執(zhí)行此中斷源的中斷子程;ISR中的某位為0,表示CPU沒有或已響應(yīng)完此級中斷,即沒有執(zhí)行此中斷源的中斷子程序。IMR對應(yīng)位為0,允許中斷請求進入優(yōu)先級裁決器。IMR對應(yīng)位為1,不允許進入,中斷請求被IMR屏蔽。④優(yōu)先級裁決器PR根據(jù)IRR和ISR的內(nèi)容,決定是否發(fā)出中斷請求信號INT。

如果IRR比ISR中記錄的中斷優(yōu)先級高,則通過8259A的INT引腳向CPU發(fā)出中斷請求信號;如果進入的中斷申請不比ISR中記錄的中斷優(yōu)先級高,同級或低級,則不向CPU發(fā)中斷請求信號。IORIOW總線數(shù)據(jù)線D0~D7INTAA0片選譯碼A5~A9CSA0RD

INTAWRINTD0~D7

ICW1

芯片控制

ICW2

中斷類型號

ICW3

主從片關(guān)系

ICW4

方式控制00100000

ISR當前中斷服務(wù)寄存器IR0IR1IR2IR3IR4IR5IR6IR7OCW1

中斷屏蔽寄存器IMR

00

OCW2

優(yōu)先級、發(fā)EOI

OCW3特殊屏蔽設(shè)置PR優(yōu)先級裁決器IRR中斷請求寄存器10000001

10010100INTR

若8259A向CPU發(fā)中斷請求信號,且CPU響應(yīng),則8259A在CPU的中斷響應(yīng)周期送出中斷類型號。CPU接收到INTR上的中斷申請信號后:如果IF標志為0,則CPU不響應(yīng)此中斷請求信號,即中斷請求被IF屏蔽。如果IF標志為1,則處理完當前的指令后,進入中斷響應(yīng)周期通過INTA引腳發(fā)出兩個負脈沖信號后,從數(shù)據(jù)總線上獲取中斷類型號,進入中斷響應(yīng)的過程。將ISR中對應(yīng)位置1,表示CPU響應(yīng)該中斷,執(zhí)行此中斷源的中斷服務(wù)程序。將IRR中對應(yīng)的位清0,清除IRR中鎖存的中斷請求信號。8259A在接收到第一個INTA中斷響應(yīng)信號后:001

00000

ISR當前中斷服務(wù)寄存器IR0IR1IR2IR3IR4IR5IR6IR7PR優(yōu)先級裁決器IRR中斷請求寄存器10000001

ICW1

芯片控制

ICW2

中斷類型號

ICW3

主從片關(guān)系

ICW4

方式控制OCW1

中斷屏蔽寄存器IMR

00

OCW2

優(yōu)先級、發(fā)EOI

OCW3特殊屏蔽設(shè)置10010100IORIOW總線數(shù)據(jù)線D0~D7INTAA0片選譯碼A5~A9CSA0RDWR

INTAINTD0~D7INTR018259A在接收到第二個INTA中斷響應(yīng)信號前:

將被響應(yīng)中斷申請的中斷類型號放上數(shù)據(jù)總線,類型號由ICW2提供,在初始化8259A時已設(shè)定好。CPU無條件的從數(shù)據(jù)總線上讀取中斷類型號,進入CPU響應(yīng)中斷的過程,轉(zhuǎn)去執(zhí)行相應(yīng)的中斷服務(wù)程序。CPU在發(fā)出第二個INTA中斷響應(yīng)信號后:(2)中斷結(jié)束命令EOI

由8259A的工作過程可知,ISR中的內(nèi)容是優(yōu)先級裁決器進行裁決的重要依據(jù),CPU響應(yīng)某級中斷后,8259A自動將ISR的對應(yīng)位置1。如果CPU已執(zhí)行完中斷服務(wù)程序,而ISR中的對應(yīng)位仍為1,8259A的優(yōu)先級裁決器仍會據(jù)ISR的內(nèi)容做裁決,從而會屏蔽低級或同級的中斷申請。因此,在中斷服務(wù)程序返回之前,將ISR中對應(yīng)位清0,它是8259A認為中斷結(jié)束的標志。①自動結(jié)束方式

8259A在接收到第二個中斷響應(yīng)脈沖INTA時就會自動清除ISR中的相應(yīng)位。該方式只能用在系統(tǒng)中只有一片8259A且多個中斷不會嵌套的情況下。②非自動結(jié)束方式※一般結(jié)束方式

8259A在接收到一般結(jié)束命令時,就會將ISR中優(yōu)先級最高的位清0,結(jié)束當前正在處理的中斷。該方式適用于8259A工作在全嵌套方式下的情況?!厥饨Y(jié)束方式當8259A工作在非全嵌套方式下,可選特殊結(jié)束方式。該方式下,通過命令將ISR中的指定位清0,結(jié)束當前中斷。除零

固定類型號00HOF為1執(zhí)行INTO指令固定類型號04H②使用DEBUG下的單步和斷點操作固定類型號01H固定類型號03H內(nèi)中斷由指令中給出

指令中指定類型號N①非屏蔽中斷引腳NMI上有中斷申請信號(上升沿信號)①CPU執(zhí)行除零或OF為1執(zhí)行INTO指令外中斷單步斷點③執(zhí)行中斷調(diào)用指令I(lǐng)NTN非屏蔽中斷固定類型號02H②可屏蔽中斷當IF=1,引腳INTR上有中斷申請信號(高電平信號)CPU從數(shù)據(jù)總線上獲取中斷類型號可屏蔽中斷外部接口送上類型號根據(jù)80x86CPU對中斷的分類,各中斷獲取類型號的方法IRR0IRR7從8259A的INT引腳接到主8259A的IR2上。從8259AIRR41ISR0ISR7IRR0IRR7主8259AISR0ISR7IRR21ISR21ISR41IRR0IRR7IRR40IRR0IRR7IRR20IRR21IRR21IRR21ISR0ISR7ISR41ISR21IRR20ISR20ISR40ISR20從片的中斷服務(wù)程序結(jié)束時程序流程圖如下:向從片發(fā)出EOI結(jié)束命令(將從片ISR中相應(yīng)位清零)讀從片的ISR寄存器→ALAL=0?向主片發(fā)出EOI結(jié)束命令(將主片ISR中相應(yīng)位清零)YIRETN5.8259A的編程4個初始化命令寄存器

ICW1、ICW2ICW3、ICW4

3個操作命令寄存器

OCW1(IMR)

OCW2、OCW3當前中斷服務(wù)寄存器ISR中斷申請寄存器IRR

8259A中斷控制器內(nèi)部有9個可讀寫的寄存器。

I3I4ICW1

芯片控制

ICW2

中斷類型號

ICW3

主從片關(guān)系

ICW4

方式控制處理部分控制部分00000000

ISR當前中斷服務(wù)寄存器PR優(yōu)先級裁決器IRR中斷申請寄存器00000000

中斷屏蔽寄存器IMROCW2

10010100

00

01

OCW3OCW18259A有兩個I/O端口地址A0=0偶地址端口A0=1奇地址端口

對9個寄存器的讀寫均通過這兩個端口實現(xiàn)。根據(jù)寫入數(shù)據(jù)的特征位或?qū)懭氲南群箜樞?,區(qū)分是對哪個寄存器進行操作。

I3I4ICW1

芯片控制

ICW2

中斷類型號

ICW3

主從片關(guān)系

ICW4

方式控制處理部分控制部分00000000

ISR當前中斷服務(wù)寄存器PR優(yōu)先級裁決器IRR中斷申請寄存器00000000

中斷屏蔽寄存器OCW2

10010100

00

01

OCW3OCW1D0~D7A0CSRDWR80111A0100A08259A的初始化編程8259A的初始化編程的順序及內(nèi)容①ICW1

A0D7D6D5D4D3D2D1D00×1LTIMSNGLIC4×××D4—

特征位,=1;D3—

規(guī)定觸發(fā)方式,

1是高電平,0是上升沿;D1—

規(guī)定是單片還是級連,

1為單片,0為級連;D0—

規(guī)定是否要寫ICW4,

1要寫,0不寫;②ICW2③ICW3A0D7D6D5D4D3D2D1D01T7T6T5T4T3×××A0D7D6D5D4D3D2D1D01D7~D3表示中斷類型號的高5位,D2~D0無效。

假設(shè)該8259A的IR0~IR7的中斷類型號為50H~57H,則初始化該8259A時ICW2應(yīng)該為:01010000BICW3是8259A的級連控制字,只有多片8259A級連時才需要寫ICW3。

對于主片8259A,若IR0~IR7上連接有從片8259A,則主片ICW3的相應(yīng)位置1。對于從片8259A,只有D0~D2有效,其INT信號連接到主片的某根IR信號上,則從片ICW3的D0~D2為IR序號。

若只有兩片8259級連,且從片8259的INT信號接到了主片8259的IR2上。主片ICW3:00000100B從片ICW3:00000010B④ICW40001SFNMBUFM/SAEOIUPMA0D7D6D5D4D3D2D1D0D4—

指定中斷嵌套方式,

0是全嵌套方式,1是特殊全嵌套方式;D3—

數(shù)據(jù)緩沖選擇,

1有緩沖,0是無緩沖;D3=1時,8259A的D0~D7同系統(tǒng)總線之間有三態(tài)緩沖器,SP/EN用來控制三態(tài)門。另外用D2位來說明8259的主從關(guān)系。有多片8259A級聯(lián)時,只能由D2位來說明主從關(guān)系。

只有兩片8259A級聯(lián)時,主片的SP接高電平,從片的SP接低電平。D2—D3=1時才有效,1為主片,0為從片;D1—

規(guī)定中斷結(jié)束方式,

1為自動結(jié)束,0為一般結(jié)束方式;D0—

為CPU型號,8086以上的CPU,D0為1;④ICW40001SFNMBUFM/SAEOIUPMA0D7D6D5D4D3D2D1D08259A的操作編程①

OCW1

②OCW2D7D6D5000001010011100101110111功能清除自動循環(huán)優(yōu)先級命令發(fā)出EOI無操作發(fā)出SEOI設(shè)置自動循環(huán)優(yōu)先級命令設(shè)置自動循環(huán)優(yōu)先級并發(fā)EOI設(shè)置特殊循環(huán)優(yōu)先級命令設(shè)置特殊循環(huán)優(yōu)先級并發(fā)SEOIOCW2的D7~D5位的功能說明A0D7D6D5D4D3D2D1D01M7M6M5M4M3M2M1M0A0D7D6D5D4D3D2D1D00RSLEOI00L2L1L0OCW1為中斷屏蔽字,某位為1時則屏蔽相應(yīng)的IR中斷請求。OCW2可以改變優(yōu)先級結(jié)構(gòu)和發(fā)出EOI中斷結(jié)束命令。D3,D4—

標志位,為00;③OCW3A0D7D6D5D4D3D2D1D000ESMMSMM01PRRRISD3,D4—

標志位,為01;D6,D5—

為10時,禁止特殊屏蔽方式; 為11時,允許特殊屏蔽方式;D2D1D0=010——

對8259A偶地址的讀指令可讀入中斷請求寄存器IRR內(nèi)容;D2D1D0=011——

對8259A偶地址的讀指令可讀入中斷服務(wù)寄存器ISR內(nèi)容;對8259A奇地址的讀指令可讀入中斷屏蔽寄存器IMR的內(nèi)容。D2=1——

8259A工作于查詢方式,讀8259A的偶地址可獲得狀態(tài)字,若狀態(tài)字的D7=1,表示有中斷請求發(fā)生,D2~D0給出了優(yōu)先級最高的中斷請求的編碼。③OCW3A0D7D6D5D4D3D2D1D000ESMMSMM01PRRRIS

新增允許IR2的中斷申請IN AL,21H ;讀入IMR的內(nèi)容ANDAL,1111

1011B;D2清0,允許IR2的中斷申請OUT21H,AL ;寫OCW1

禁止IR4的中斷申請IN AL,21H ;讀入IMR的內(nèi)容ORAL,00010000B;D4置1,禁止IR4的中斷申請OUT21H,AL;寫OCW1例:已知IBMPC/XT系統(tǒng)中主8259A的奇端口地址為21H。8259A在PC中的基本應(yīng)用從8259AIRQ8IRQ9IRQ10IRQ11IRQ12IRQ13IRQ14IRQ15主8259AIRQ0IRQ1IRQ3IRQ4IRQ5IRQ6IRQ7INT至CPUINT中斷路由器IRQ7IRQ6IRQ5IRQ4IRQ3IRQ2ISA總線PCI總線PCI總線系統(tǒng)時鐘鍵盤主、從8259A級連的中斷控制邏輯主片的端口地址:

20H,21H從片的端口地址:

A0H,A1H

8259A在PC中的基本應(yīng)用8259AIR0IR1IR2IR3IR4IR5IR6IR7INT8259AIR0IR1IR2IR3IR4IR5IR6IR7INT(主片)(從片)INTR主8259A占用的端口地址范圍:20H~3FH;從8259A占用的端口地址范圍:A0H~BFH;8259A各中斷請求的功能分配情況中斷申請引腳IRQ0IRQ1IRQ2IRQ3IRQ4IRQ5IRQ6IRQ7IRQ8IRQ9IRQ10IRQ11IRQ12IRQ13IRQ14IRQ15中斷類型號08h09h0Ah0Bh0Ch0Dh0Eh0Fh70h71h72h73h74h75h76h77h哪個設(shè)備使用系統(tǒng)時鐘(8254)鍵盤連接從8259COM2串口2COM1串口1保留軟盤控制器LPT1并口實時時鐘(RTC)保留(軟件指向0Ah類型)保留顯卡鼠標數(shù)值協(xié)處理器硬盤控制器保留主、從8259A中斷服務(wù)程序的中斷結(jié)束命令對主8259A的中斷服務(wù)程序有:

MOV AL,20H ;EOI命令

OUT 20H,AL ;寫主片的OCW2 IRET對從8259A的中斷服務(wù)程序有:

MOV AL,20H ;EOI命令,

OUT 0A0H,AL ;寫從片的OCW2 MOV AL,00001011B OUT 0A0H,AL ;寫從片的OCW3 IN AL,0A0H ;讀入從片的ISR的內(nèi)容

CMP AL,0 JNZ IEXIT MOV AL,20H ;EOI命令

OUT 20H,20H ;寫主片的OCW2IEXIT:IRET5.8255綜合應(yīng)用舉例

利用8254和8255實現(xiàn)對A口所接的八個發(fā)光二極管的定時控制(PAi接Li),讓8個發(fā)光二極管任何時刻都只有一個點亮,每隔1s改變一次狀態(tài),且從L1到L8依次循環(huán)點亮。(PAi=1,Li亮;PAi=0,Li滅)定時1s的功能可通過8254的兩個通道級聯(lián)實現(xiàn):8254通道0定時20ms,CLK0上的時鐘脈沖頻率為2MHz,OUT0接到CLK1,通道1計數(shù)50次,OUT1接到系統(tǒng)主8259A的IR3。8255的地址為208H~20BH,8254的地址為20CH~20FH,主8259A的地址為20H~21H,中斷類型號為08H~0FH。程序流程圖:8255初始化LED狀態(tài)初始化8254初始化中斷邏輯初始化開中斷等待中斷主程序中斷服務(wù)程序改變LED狀態(tài)送中斷結(jié)束命令中斷返回CODESEGMENT ASSUMECS:CODESTART:

;8255的初始化

MOVDX,20BH MOVAL,80H OUTDX,AL ;建立LED初始狀態(tài)

MOVDX,208H MOVAL,01H OUTDX,AL MOVBH,AL;8254的初始化MOVDX,20FHMOVAL,00110100BOUTDX,AL;計數(shù)器0初始化—方式2MOVDX,20CHMOVAX,40000OUTDX,AL;計數(shù)器0送TCMOVAL,AHOUTDX,AL;先寫低字節(jié);后寫高字節(jié)MOVDX,20FHMOVAL,01010001BOUTDX,AL;計數(shù)器1初始化—方式0MOVDX,20DHMOVAL,50HOUTDX,AL;計數(shù)器1送TC;中斷初始化INAL,21HANDAL,11110111BOUT21H,AL;開放IR3中斷CLIXORAX,AXMOVES,AXMOVBX,OFFSETINTPROCMOVAX,SEGINTPROCMOVDI,0BHSHLDI,2MOVES:[DI],BXMOVES:[DI+2],AX;填充中斷矢量表STI;等待中斷WAIT1:HLT JMPWAIT1PRO_END:MOVAH,4CH INT21H;中斷服務(wù)程序INTPROCPROCFAR ;保存小燈的當前狀態(tài);改變小燈狀態(tài);向8259A發(fā)出EOI命令I(lǐng)NTPROCPROCFARCODE ENDS END STARTMOVDX,20HMOVAL,20HOUTDX,ALIRETMOVDX,20DHMOVAL,50HOUTDX,AL;計數(shù)器1送TCMOVAL,BHROLAL,01HMOVDX,208HOUTDX,ALMOVBH,AL附錄4:BIOS中斷16H號中斷的1號功能:讀鍵盤緩沖區(qū)字符;有鍵按下時,ZF=0,AL=按鍵的ASCII碼;無鍵按下時,ZF=1。NOKEY:MOV AH,1 INT 16H JZ NOKEY ;無鍵按下時就循環(huán)等待退出循環(huán)時,ZF=0,AL=按鍵的ASCII碼。系統(tǒng)中斷綜合應(yīng)用舉例

系統(tǒng)主板上集成有8254芯片,其計數(shù)器0是產(chǎn)生時鐘信號的系統(tǒng)計時器,OUT0產(chǎn)生的是18.206Hz的方波信號。OUT0端接到了8259A的IRQ0,用作中斷請求信號,也就是每秒鐘產(chǎn)生18.206次IRQ0中斷。例:在屏幕上顯示當前秒數(shù),按任意鍵退出程序。Data setmentsecdb0hsecchgdb 0 ;當sec改變時置為0FFHdstrdb30h,30h,0dh,'$'dsegdw0dipdw0cuntdb0Data endsCode segment assumecs:code,ds:dataStart:mov ax,data mov ds,axmoval,08hmovah,35hint21h ;取系統(tǒng)中斷向量movdseg,esmovdip,bx ;保存系統(tǒng)中斷向量cli ;關(guān)中斷push dsmovdx,offsetmytimermovax,segmytimermovds,axmovax,2508hint21h ;設(shè)置中斷向量pop ds sti ;開中斷disp_sec:;在屏幕上顯示當前計數(shù)值

mov secchg,0 ;將標志清零

moval,secmovdstr,alanddstr,0f0hshrdstr,4adddstr,30h ;轉(zhuǎn)換十位

moval,secmovdstr+1,alanddstr+1,0fhadddstr+1,30h ;轉(zhuǎn)換個位

leadx,dstrmovah,09hint21hpkey: movah,01hint16h jnzexit_pro;有鍵按下結(jié)束程序

cmp secchg,0ffh jz disp_sec jmp pkeyexit_pro:cli movdx,dipmovax,dsegmovds,axmovax,2508hint21h ;恢復中斷向量

movah,4chint21h ;返回DOSmytimerprocfarmovax,datamovds,ax ;數(shù)據(jù)段賦值

inccuntcmpcunt,18 ;是否延時滿1秒

jnzexit_intmovcunt,0 ;計數(shù)器清零

mov secchg,0FFH;設(shè)置標志位

moval,sec incal ;秒數(shù)加1daa ;BCD碼調(diào)整

movsec,alcmpsec,60h ;是否滿60秒

jnzexit_intmovsec,0 ;滿60秒,清零exit_int: moval,20hout20h,al ;向系統(tǒng)主8259A發(fā)出 ;EOI中斷結(jié)束命令

iret ;中斷服務(wù)程序返回mytimerendpcodeendsendstart●教學目標介紹定時器/計數(shù)器的基本概念●學習要求了解定時器/計數(shù)器的基本工作原理介紹可編程定時器/計數(shù)器芯片8254熟悉8254的主要功能、基本結(jié)構(gòu)及工作過程掌握8254的使用方法第四節(jié)可編程定時器/計數(shù)器8254及其應(yīng)用

微機系統(tǒng)實現(xiàn)定時功能,主要有三種方法:軟件定時、不可編程硬件定時和可編程硬件定時。軟件定時是通過執(zhí)行一個固定的程序段來實現(xiàn)定時。由于CPU執(zhí)行每條指令都需要一定時間,因此執(zhí)行一個固定的程序段就需要一個固定的時間。定時或延時時間的長短可通過改變循環(huán)次數(shù)來控制。不可編程的硬件定時常采用中小規(guī)模集成電路實現(xiàn)。如使用555定時器等,硬件定時方案不占用CPU時間,但電路連接好后,定時值就不能改變??删幊逃布〞r用可編程定時器/計數(shù)器來實現(xiàn),本節(jié)主要介紹IBMPC系列微機使用的Intel8254可編程定時器/計數(shù)器。一、概述二、8254的內(nèi)部結(jié)構(gòu)和引腳功能計數(shù)器0、1、2的內(nèi)部結(jié)構(gòu)16位初值寄存器由CPU分兩次寫入16位減1計數(shù)器:在CLK的作用下,對計數(shù)初值N進行減1,當減為0時,在OUT引腳上產(chǎn)生回零時間到信號16位鎖存器其值隨減1計數(shù)器改變而改變〃8D7D0~A1IOWIOR地址:20CH~20FHA0GATE0CLK0OUT0D7D0~A1WRRDCS8254A0GATE1CLK1OUT1GATE2CLK2OUT2三、8254接口設(shè)計A15...200000010000011BA15A14A13A12A11A10A9A8A7A6A5A4A3A2CS與門A15...A200000010000011B四、8254的工作方式五、8254的編程1.方式控制字計數(shù)時:計數(shù)初值N即為所需脈沖數(shù)2.計數(shù)初值(N)定時時間T=CLK時鐘周期tCL×計數(shù)初值(N)N=T/tCL

機房的實驗板上集成了一個8254芯片,其端口地址分配如下:

計數(shù)器0的地址——20CH;計數(shù)器1的地址——20DH;計數(shù)器2的地址——20EH;控制字寄存器地址——20FH;初始化步驟:1、設(shè)置計數(shù)器的工作方式;2、設(shè)置計數(shù)初值; (向控制地址寫控制字)(向計數(shù)器地址寫初值)例:選計數(shù)器0為計數(shù)方式,每計50個脈沖中斷一次;計數(shù)器1為定時方式,定時時間為20ms(設(shè)CLK0和CLK1引入的時鐘頻率都為2MHZ),請編制出有關(guān)的初始化程序。①通道0的方式控制字②通道0的計數(shù)初值③通道1的方式控制字00010100B(只讀/寫低字節(jié)、方式2、二進制計數(shù))N=5001110100B④通道1的計數(shù)初值20ms=0.5μs×NN=20ms/0.5μs=40000初始化程序如下:MOVDX,20FHMOVAL,00010100BOUTDX,ALMOVDX,20CHMOVAL,50OUTDX,ALMOVDX,20FHMOVAL,01110100BOUTDX,ALMOVDX,20DHMOVAX,40000OUTDX,ALMOVAL,AHOUTDX,AL;設(shè)置計數(shù)器0方式;向計數(shù)器0送計數(shù)初值;設(shè)置計數(shù)器1方式;向計數(shù)器1送計數(shù)初值;先寫低字節(jié),后寫高字節(jié)例如:在時鐘頻率為2MHZ前提下,要求利用8254完成1秒鐘的定時。16位計數(shù)器,TC的最大值為:0(65536次)最大定時時間TT=65536×0.5us≈33ms<1s六、計數(shù)器量程的擴展定時1s所需的時間初值為TC=1s/0.5us=1×106/0.5=2,000,000

硬件法——

級聯(lián)GATE0CLK0OUT0D7D0~A1WRRDCS8254A0GATE1CLK1OUT1時鐘信號(2MHZ)+5V系統(tǒng)總線此時,通道0定時20ms通道1計數(shù)50次可完成1s定時!TC=TC0*TC1計數(shù)器0和計數(shù)器1必須工作于頻率發(fā)生方式或方波方式

軟件延時

——

利用CPU執(zhí)行每一條指令需要耗費一定時間,利用循環(huán)程序?qū)崿F(xiàn)延時功能。 MOV CX,0FFFFHAGN: NOP ;空指令

NOP LOOP AGN MOV ECX,0FFFFFFHAGN: NOP ;空指令

NOP

LOOPD AGN七、8254在PC中的應(yīng)用PC使用一片8254,其3個計數(shù)通道分別用于日時鐘計時、DRAM刷新定時和控制揚聲器發(fā)聲聲調(diào),定時中斷和定時刷新MOVAL,36H;計數(shù)器0為方式3,采用二進制計數(shù),先低后高寫入計數(shù)值OUT43H,AL;寫入方式控制字MOVAL,0;計數(shù)值為0OUT40H,AL;寫入低字節(jié)計數(shù)值OUT40H,AL;寫入高字節(jié)計數(shù)值MOVAL,54H;計數(shù)器工作為方式2,采用二進制計數(shù),只寫低8位計數(shù)值OUT43H,AL;寫入方式控制字MOVAL,18;計數(shù)初值為18OUT41H,AL;寫入計數(shù)值揚聲器控制

;發(fā)音頻率設(shè)置子程序,入口參數(shù):AX=1.19318×106÷發(fā)音頻率SPEAKER PROC PUSHAX MOVAL,0B6H;定時器2為方式3,先低后高寫16位計數(shù)值

OUT43H,AL POPAX OUT42H,AL;寫入低8位計數(shù)值

MOVAL,AH OUT42H,AL;寫入高8位汁數(shù)值

RETSPEAKERENDPSPEAKON PROC;揚聲器開子程序

PUSHAX INAL,61H;讀取61H端口的原控制信息

ORAL,03H;D1D0=PB1PB0=11B,其他位不變

OUT61H,AL;直接控制發(fā)聲

POPAXRETSPEAKONENDPSPEAKOFFPROC;揚聲器關(guān)子程序

PUSHAX INAL,61H ANDAL,0FCH;D1D0=PB1PB0=00B,其他位不變

OUT61H,AL;直接控制閉音

POPAXRETSPEAKOFFENDP可編程硬件延時

;延時開始

MOVAH,0;讀取日時鐘功能調(diào)用(附錄5)

INT1AHADDDX,90;加5秒(5×18=90)

MOVBX,DX;期望值送BXL1:INT1AH;再讀日時鐘

CMPBX,DX;與期望值比較

INEL1;不等,則循環(huán)

……

;相等,則延時結(jié)束MOVCX,OMOVDX,1952;延時1.952MS=2×976USMOVAH,86HINT15H;功能調(diào)用返回時,定時時間到●

教學目標介紹并行與串行接口的基本概念●

學習要求了解并行與串行接口的基本功能介紹可編程并行接口芯片8255A熟悉并行接口8255A的主要功能、基本結(jié)構(gòu)及工作過程掌握8255A的使用方法第五節(jié)可編程并行I/O接口芯片8255及其應(yīng)用●并行/串行接口概念

按數(shù)據(jù)傳送方式劃分,I/O接口只有兩種:★并行接口:多位數(shù)據(jù)同時傳送,又分為字并行和字節(jié)并行兩種;★串行接口:多位數(shù)據(jù)一位一位分時傳送;

注意:兩者僅在I/O接口與I/O設(shè)備間有并行、串行之分,CPU與I/O接口間都是并行的。CPUI/O接口I/O外設(shè)

串或并一、概述●并行/串行接口在結(jié)構(gòu)和功能上的異同主要區(qū)別:串行接口要實現(xiàn)并—串轉(zhuǎn)換;并行接口則不需要?!駜烧邇?yōu)缺點及適用場合★串行口所需連線少,傳輸速度低,適于速度要求不高或傳輸距離較遠場合?!锊⑿锌趥鬏斔俣雀?,但所需連線多,適于短距離高速傳輸場合。二、8255的內(nèi)部結(jié)構(gòu)和引腳功能●只有在G1=1且G2A=0且G2B=0時,該芯片才能工作;●在任何時候,8個輸出只能有一個可以為低電平,其余全為高電平;●根據(jù)選擇輸入端C、B、A的不同狀態(tài)組合,確定哪一個輸出引腳變?yōu)榈碗娖?。地址譯碼器(74LS138)允許輸入端選擇輸入端輸出端G1G2BG2ABCAY0Y1Y2Y3Y4Y5Y6Y774LS138000001010011100101110111CBA輸出為0有效Y0Y1Y2Y3Y4Y5Y6Y7三、接口電路地址:208H~20BH〃8D7D0~A1IOWIORA0G1G2BG2ABCAY174LS138A9A8A5A4A3A7A6A2RESETPA0PA7D7D0~A1WRRDCS8255A0PB0PB7PC0PC7~~~RESET外設(shè)外設(shè)外設(shè)四、8255的工作方式8255A有三種工作方式:方式0、方式1、方式21、方式0:基本輸入輸出方式

這種方式下,端口與外設(shè)間不需要聯(lián)絡(luò)信號。8255A的3個端口都可以工作在該方式下,并由控制字規(guī)定為輸入或輸出。當8255A的端口工作在方式0時,CPU只要用輸入或輸出指令就可以與外設(shè)進行數(shù)據(jù)交換。因此,方式0也稱為無條件的輸入/輸出方式。2、方式1:選通輸入輸出方式

這種方式下,只有A口和B口可以作為8位的輸入或輸出端口,C口主要作為A、B兩個端口輸入/輸出時的聯(lián)絡(luò)信號。且A口和B口無論輸入或輸出都有數(shù)據(jù)鎖存功能。該方式下CPU與8255A間可以用查詢方式或中斷方式進行信息交換。

●查詢輸入:外設(shè)接口CPUSTBIBF●選通輸入(查詢方式):將8255鎖存的數(shù)據(jù)送入

CPU將外設(shè)數(shù)據(jù)鎖存入8255端口中輸入緩沖器滿信號:輸入鎖存器已有數(shù)CPU執(zhí)行IN指令RD輸入選通信號:例:8255A的端口地址是208~20BH,其中A口地址為208H,B口地址為209H,C口地址為20AH,假設(shè)當前A口工作于方式1輸入,如何編程從A口讀入外設(shè)送來的數(shù)據(jù)?MOV DX,20AHIN AL,DXTEST AL,20HJZ NOTRDYNOTRDY:MOV DX,208HIN AL,DX;查詢狀態(tài)--IBFA為PC5;從A口讀入外設(shè)送來的數(shù)據(jù)INTR●

溫馨提示

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

最新文檔

評論

0/150

提交評論