微機(jī)原理第七章1_第1頁
微機(jī)原理第七章1_第2頁
微機(jī)原理第七章1_第3頁
微機(jī)原理第七章1_第4頁
微機(jī)原理第七章1_第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第一節(jié)第一節(jié) 中斷的基本概念中斷的基本概念一、什么是中斷一、什么是中斷二、中斷源和中斷優(yōu)先權(quán)二、中斷源和中斷優(yōu)先權(quán)三、中斷服務(wù)程序三、中斷服務(wù)程序四、斷點(diǎn)和中斷現(xiàn)場(chǎng)四、斷點(diǎn)和中斷現(xiàn)場(chǎng)五、硬件中斷和軟件中斷五、硬件中斷和軟件中斷第二節(jié)第二節(jié) 8088CPU的中斷系統(tǒng)的中斷系統(tǒng)一、一、8088CPU的中斷分類的中斷分類二、二、8088CPU的中斷優(yōu)先權(quán)的中斷優(yōu)先權(quán)三、三、8088CPU響應(yīng)中斷的過程響應(yīng)中斷的過程四、四、8088CPU如何獲取中斷類型號(hào)如何獲取中斷類型號(hào)第三節(jié)第三節(jié) 可編程中斷控制器可編程中斷控制器8259A一、引言一、引言二、二、8259A的引腳、編程結(jié)構(gòu)和工作過程的引腳、編程

2、結(jié)構(gòu)和工作過程三、三、8259A的編程的編程1設(shè)置中斷屏蔽字設(shè)置中斷屏蔽字2發(fā)中斷結(jié)束命令發(fā)中斷結(jié)束命令EOI四、四、8259A在在IBM PC/XT系統(tǒng)中的應(yīng)用系統(tǒng)中的應(yīng)用五、五、 8259A在在 Pentium機(jī)機(jī)中中的應(yīng)用的應(yīng)用第四節(jié)第四節(jié) 中斷程序設(shè)計(jì)中斷程序設(shè)計(jì)一、中斷向量的保存、設(shè)置和恢復(fù)一、中斷向量的保存、設(shè)置和恢復(fù)二、軟中斷程序設(shè)計(jì)二、軟中斷程序設(shè)計(jì)三、可屏蔽硬中斷程序設(shè)計(jì)三、可屏蔽硬中斷程序設(shè)計(jì)四、問題討論四、問題討論1.中斷嵌套問題中斷嵌套問題2.中斷向量的保存、恢復(fù)問題中斷向量的保存、恢復(fù)問題第七章第七章 中斷技術(shù)中斷技術(shù)2聽課思考聽課思考1、中斷類型中斷類型 3、內(nèi)部(

3、軟)和外部(硬)中斷類型號(hào)怎樣取得?、內(nèi)部(軟)和外部(硬)中斷類型號(hào)怎樣取得? 2、內(nèi)部(軟)和外部(硬)中斷執(zhí)行過程不同點(diǎn)與、內(nèi)部(軟)和外部(硬)中斷執(zhí)行過程不同點(diǎn)與 相同點(diǎn)相同點(diǎn); 4、CPU在響應(yīng)中斷自動(dòng)完成哪幾件事?在響應(yīng)中斷自動(dòng)完成哪幾件事? 5、中斷向量如何設(shè)置?、中斷向量如何設(shè)置? 6 6、從外設(shè)的中斷請(qǐng)求到、從外設(shè)的中斷請(qǐng)求到CPUCPU響應(yīng)中斷,有哪兩個(gè)控制條件?響應(yīng)中斷,有哪兩個(gè)控制條件? 7 7、每次硬中斷結(jié)束后為什么要發(fā)中斷結(jié)束命令字?軟中斷需、每次硬中斷結(jié)束后為什么要發(fā)中斷結(jié)束命令字?軟中斷需 要嗎?要嗎?8、屏蔽字的作用是什么?、屏蔽字的作用是什么?3第七章第七

4、章 中斷技術(shù)中斷技術(shù)第一節(jié)第一節(jié) 中斷的基本概念中斷的基本概念第二節(jié)第二節(jié) 8088CPU的中斷系統(tǒng)的中斷系統(tǒng)第三節(jié)第三節(jié) 可編程中斷控制器可編程中斷控制器8259A第四節(jié)第四節(jié) 中斷程序設(shè)計(jì)中斷程序設(shè)計(jì)4第一節(jié)第一節(jié) 中斷的基本概念中斷的基本概念一、什么是中斷一、什么是中斷二、中斷源和中斷優(yōu)先權(quán)二、中斷源和中斷優(yōu)先權(quán)三、中斷服務(wù)程序三、中斷服務(wù)程序四、斷點(diǎn)和中斷現(xiàn)場(chǎng)四、斷點(diǎn)和中斷現(xiàn)場(chǎng)五、硬件中斷和軟件中斷五、硬件中斷和軟件中斷5一、什么是中斷一、什么是中斷在在CPU正常運(yùn)行程序時(shí),正常運(yùn)行程序時(shí),由于內(nèi)部或外部某個(gè)由于內(nèi)部或外部某個(gè)非預(yù)料事件非預(yù)料事件的發(fā)生,的發(fā)生,使使CPU暫停正在運(yùn)行的

5、程序,暫停正在運(yùn)行的程序,而轉(zhuǎn)去執(zhí)行而轉(zhuǎn)去執(zhí)行處理引起中斷事件的程序處理引起中斷事件的程序,然后再返回被中斷了的程序,繼續(xù)執(zhí)行。然后再返回被中斷了的程序,繼續(xù)執(zhí)行。這個(gè)過程就是這個(gè)過程就是中斷中斷。6中斷服務(wù)程序中斷服務(wù)程序1中斷服務(wù)程序中斷服務(wù)程序 2非預(yù)料事件非預(yù)料事件1CPU執(zhí)行流程執(zhí)行流程非預(yù)料事件非預(yù)料事件 27二、中斷源和中斷優(yōu)先權(quán)二、中斷源和中斷優(yōu)先權(quán)q 引起中斷的因素很多,引起中斷的因素很多, 將發(fā)出中斷申請(qǐng)的外設(shè)或內(nèi)部原因?qū)l(fā)出中斷申請(qǐng)的外設(shè)或內(nèi)部原因, ,稱為稱為中斷源中斷源q 給每個(gè)中斷源指定一個(gè)優(yōu)先權(quán),稱為給每個(gè)中斷源指定一個(gè)優(yōu)先權(quán),稱為中斷優(yōu)先權(quán)中斷優(yōu)先權(quán)q 當(dāng)多個(gè)中

6、斷源同時(shí)發(fā)出中斷請(qǐng)求時(shí),當(dāng)多個(gè)中斷源同時(shí)發(fā)出中斷請(qǐng)求時(shí), CPU按照中斷優(yōu)先權(quán)的高低順序按照中斷優(yōu)先權(quán)的高低順序, ,依次響應(yīng)。依次響應(yīng)。8三、中斷服務(wù)程序三、中斷服務(wù)程序 處理中斷源,完成其所要求功能的程序,處理中斷源,完成其所要求功能的程序, 稱稱中斷服務(wù)程序中斷服務(wù)程序(中斷例行程序、中斷子程)。(中斷例行程序、中斷子程)。CPU執(zhí)行流程執(zhí)行流程中斷服務(wù)程序中斷服務(wù)程序1 1中斷服務(wù)程序中斷服務(wù)程序2非預(yù)料事件非預(yù)料事件2非預(yù)料事件非預(yù)料事件19非預(yù)料事件是指事件發(fā)生的時(shí)間無法預(yù)知,非預(yù)料事件是指事件發(fā)生的時(shí)間無法預(yù)知, 即中斷源何時(shí)產(chǎn)生中斷不確定,是隨機(jī)的。即中斷源何時(shí)產(chǎn)生中斷不確定,

7、是隨機(jī)的。但事件的性質(zhì)及處理方法則是已知的,但事件的性質(zhì)及處理方法則是已知的, 確定的,確定的, 即中斷服務(wù)程序是事先編寫好的即中斷服務(wù)程序是事先編寫好的, 只是何時(shí)執(zhí)行未知。只是何時(shí)執(zhí)行未知。中斷源產(chǎn)生中斷的隨機(jī)性,中斷源產(chǎn)生中斷的隨機(jī)性,使中斷服務(wù)程序的執(zhí)行也具有隨機(jī)性,使中斷服務(wù)程序的執(zhí)行也具有隨機(jī)性,即何時(shí)執(zhí)行中斷服務(wù)程序不是在程序中安排好的。即何時(shí)執(zhí)行中斷服務(wù)程序不是在程序中安排好的。10四、斷點(diǎn)和中斷現(xiàn)場(chǎng)四、斷點(diǎn)和中斷現(xiàn)場(chǎng)斷點(diǎn)斷點(diǎn): : 是指是指CPU執(zhí)行的現(xiàn)行程序執(zhí)行的現(xiàn)行程序被中斷時(shí)的下一條指令被中斷時(shí)的下一條指令的地址的地址, ,又稱又稱斷點(diǎn)地址斷點(diǎn)地址。中斷現(xiàn)場(chǎng)中斷現(xiàn)場(chǎng):

8、: 是指是指CPU轉(zhuǎn)去執(zhí)行中斷服務(wù)程序前的轉(zhuǎn)去執(zhí)行中斷服務(wù)程序前的運(yùn)行狀態(tài)運(yùn)行狀態(tài),包括包括CPU內(nèi)部各寄存器、斷點(diǎn)地址內(nèi)部各寄存器、斷點(diǎn)地址等。等。111000:150H 、 、 、 、 、MOV AX, 0ADD AX, DXMOV DI , AX、 PUSH AX 、 、 IRETCPU在執(zhí)行此指令時(shí),在執(zhí)行此指令時(shí),某中斷源發(fā)申請(qǐng)中斷某中斷源發(fā)申請(qǐng)中斷;CPU在執(zhí)行完該指令后,在執(zhí)行完該指令后,轉(zhuǎn)去執(zhí)行中斷子程轉(zhuǎn)去執(zhí)行中斷子程地址地址1000:150H為斷點(diǎn)為斷點(diǎn)斷點(diǎn)概念斷點(diǎn)概念: :12l早期早期中斷概念的引入,中斷概念的引入, 是為解決是為解決CPU與外設(shè)間的速度匹配問題,與外設(shè)間

9、的速度匹配問題, 提高提高CPU CPU 的工作效率。的工作效率。 中斷源主要是由外部硬件產(chǎn)生。中斷源主要是由外部硬件產(chǎn)生。l當(dāng)今的中斷技術(shù),當(dāng)今的中斷技術(shù), 不再限于外部硬件產(chǎn)生中斷不再限于外部硬件產(chǎn)生中斷( (稱稱硬件中斷硬件中斷或或外中斷外中斷 ) ), 還可由還可由CPU內(nèi)部產(chǎn)生內(nèi)部產(chǎn)生 ( (如被零除操作如被零除操作) ), 或者由程序預(yù)先安排,即由指令調(diào)用中斷服務(wù)程序?;蛘哂沙绦蝾A(yù)先安排,即由指令調(diào)用中斷服務(wù)程序。 (稱(稱軟件中斷軟件中斷或或內(nèi)中斷內(nèi)中斷)五、硬件中斷和軟件中斷五、硬件中斷和軟件中斷131000:150H 、 、 、 、 、MOV AH, 01INT 21HCMP

10、 AL, 0Dh、 PUSH AX 、 、IRET用指令調(diào)用中斷程序用指令調(diào)用中斷程序軟件中斷軟件中斷用指令用指令調(diào)用中斷程序調(diào)用中斷程序14第二節(jié)第二節(jié) 8088CPU的中斷系統(tǒng)的中斷系統(tǒng)一、一、8088CPU的中斷分類的中斷分類二、二、8088CPU的中斷優(yōu)先權(quán)的中斷優(yōu)先權(quán)三、三、8088CPU響應(yīng)中斷的過程響應(yīng)中斷的過程四、四、8088CPU如何獲取中斷類型號(hào)如何獲取中斷類型號(hào)15一、一、 8088CPU的中斷分類的中斷分類按中斷源的不同,中斷分為按中斷源的不同,中斷分為內(nèi)中斷內(nèi)中斷和和外中斷外中斷。1、內(nèi)中斷(軟中斷)、內(nèi)中斷(軟中斷) 指指CPU執(zhí)行某些特殊操作或由執(zhí)行某些特殊操作或

11、由INT指令引起的中斷指令引起的中斷 被零除被零除操作或操作或OF=1時(shí)執(zhí)行時(shí)執(zhí)行INTO指令引起指令引起 使用使用DEBUG中的單步或斷點(diǎn)設(shè)置操作引起中的單步或斷點(diǎn)設(shè)置操作引起 執(zhí)行執(zhí)行INTn 指令引起指令引起16指外部芯片通過指外部芯片通過CPU的的INTR引腳或引腳或NMI引腳引腳發(fā)出中斷申請(qǐng)引起的中斷。發(fā)出中斷申請(qǐng)引起的中斷。當(dāng)當(dāng)INTR上有高電平信號(hào)上有高電平信號(hào)當(dāng)當(dāng)NMI上有上升沿信號(hào)上有上升沿信號(hào)2、外中斷(硬中斷)外中斷(硬中斷)8088GNDA14A13A12A11A10A9A8AD7AD6AD5AD4AD3AD2AD1AD0NMIINTRCLKGND最大組態(tài)(最小組態(tài))最

12、大組態(tài)(最小組態(tài))VCCA15A16/S3A17/S4A18/S5A19/S6(HIGH)(SSO)MN/MXRDRQ/GT0(HOLD)RQ/GT1(HLDA)LOCK(WR)S2(IO/M)S1(DT/R)S0(DEN)QS0(ALE)QS1(INTA)TESTREADYRESET17l 可屏蔽中斷可屏蔽中斷 由由INTR引腳引起的中斷,稱引腳引起的中斷,稱可屏蔽中斷可屏蔽中斷。 CPU是否響應(yīng)是否響應(yīng)INTR引腳上的中斷請(qǐng)求取決于引腳上的中斷請(qǐng)求取決于IF標(biāo)志:標(biāo)志: IF=1,CPU響應(yīng)響應(yīng)INTR引腳上的中斷請(qǐng)求引腳上的中斷請(qǐng)求 IF=0,CPU不響應(yīng)不響應(yīng)INTR引腳上的中斷請(qǐng)求引

13、腳上的中斷請(qǐng)求 即當(dāng)即當(dāng)IF=0時(shí),將時(shí),將INTR引腳上的中斷申請(qǐng)屏蔽引腳上的中斷申請(qǐng)屏蔽。 l 非屏蔽中斷非屏蔽中斷 由由NMI引腳引起的中斷,稱引腳引起的中斷,稱非屏蔽中斷非屏蔽中斷。 當(dāng)當(dāng)NMI引腳上產(chǎn)生上升沿信號(hào),引腳上產(chǎn)生上升沿信號(hào),CPU必響應(yīng)此中斷請(qǐng)求,即必響應(yīng)此中斷請(qǐng)求,即NMI引腳上的中引腳上的中斷請(qǐng)求斷請(qǐng)求不受不受IF標(biāo)志的控制標(biāo)志的控制, IF不能屏蔽不能屏蔽NMI引腳上的中斷請(qǐng)求。引腳上的中斷請(qǐng)求。但在系統(tǒng)通電瞬間或屏蔽寄存器最高位置但在系統(tǒng)通電瞬間或屏蔽寄存器最高位置“0 0”可屏蔽可屏蔽NMINMI。將最高位置。將最高位置“1 1”又可以開放又可以開放NMINMI

14、。MOV DXMOV DX,A0HA0H;A0HBFHA0HBFH為屏蔽寄存器為屏蔽寄存器 MOV DXMOV DX,A0HA0H MOV AL MOV AL,00H 00H MOV AL MOV AL,80H80H OUT DX OUT DX,ALAL;屏蔽;屏蔽NMI NMI OUT DX OUT DX,ALAL;開放;開放NMINMI18保留保留(ALT(ALT打印機(jī)打印機(jī)) )中斷邏輯中斷邏輯INTnINTn指令指令I(lǐng)NTOINTO指令指令除法除法錯(cuò)誤錯(cuò)誤單步單步TF=1TF=1非屏蔽中斷請(qǐng)求非屏蔽中斷請(qǐng)求IRIR0IRIR6IRIR5IRIR4IRIR3IRIR2IRIR1IRIR7

15、可編程可編程中中 斷斷控制器控制器(PIC)(PIC)8259A8259AINTINTn n4 40 01 12 2CPUCPUINTRINTRNMINMI080809090A0A0B0B0C0C0D0D0E0E0F0F系統(tǒng)定時(shí)器系統(tǒng)定時(shí)器鍵盤鍵盤保留保留( (打印機(jī)打印機(jī)) )軟盤軟盤串行通信接口串行通信接口保留保留( (通信通信) )彩色彩色/ /圖形接口圖形接口8086/8088中斷源中斷源19當(dāng)有多個(gè)中斷源同時(shí)產(chǎn)生中斷申請(qǐng)時(shí),當(dāng)有多個(gè)中斷源同時(shí)產(chǎn)生中斷申請(qǐng)時(shí),CPU先響應(yīng)優(yōu)先權(quán)最高的中斷源,先響應(yīng)優(yōu)先權(quán)最高的中斷源,再響應(yīng)優(yōu)先級(jí)較低的中斷源。再響應(yīng)優(yōu)先級(jí)較低的中斷源。二、二、8088C

16、PU的中斷優(yōu)先權(quán)的中斷優(yōu)先權(quán)優(yōu)先級(jí)優(yōu)先級(jí) 高高 低低 內(nèi)中斷內(nèi)中斷 ( 除零,除零,INT 指令,斷點(diǎn),指令,斷點(diǎn),INTO指令指令 ) 非屏蔽中斷非屏蔽中斷 可屏蔽中斷可屏蔽中斷 低低 內(nèi)中斷內(nèi)中斷( 單步單步 ) 20三、三、8088CPU響應(yīng)中斷的過程響應(yīng)中斷的過程當(dāng)中斷源產(chǎn)生當(dāng)中斷源產(chǎn)生中斷申請(qǐng)(中斷申請(qǐng)(INTR)后,后,不論是內(nèi)中斷、非屏蔽中斷,還是可屏蔽中斷不論是內(nèi)中斷、非屏蔽中斷,還是可屏蔽中斷,只要只要滿足響應(yīng)條件滿足響應(yīng)條件,在執(zhí)行完當(dāng)前指令后,在執(zhí)行完當(dāng)前指令后,響應(yīng)中斷,給出響應(yīng)中斷,給出INTAINTACPU內(nèi)部硬件會(huì)自動(dòng)完成下列響應(yīng)中斷的過程:內(nèi)部硬件會(huì)自動(dòng)完成下列

17、響應(yīng)中斷的過程: 取中斷類型號(hào)取中斷類型號(hào)N 當(dāng)前當(dāng)前PSW的內(nèi)容入棧的內(nèi)容入棧 清清IF、TF標(biāo)志為標(biāo)志為0 當(dāng)前當(dāng)前CS的內(nèi)容入棧的內(nèi)容入棧 當(dāng)前當(dāng)前IP的內(nèi)容入棧的內(nèi)容入棧 取內(nèi)存單元取內(nèi)存單元( 0 : N 4 )字字內(nèi)容送內(nèi)容送IP 取內(nèi)存單元取內(nèi)存單元( 0 : N 4 + 2 )字內(nèi)容送字內(nèi)容送CS 此時(shí)此時(shí), CPU, CPU中的指令地址寄存器中的指令地址寄存器CS:IPCS:IP指向中斷程序的入指向中斷程序的入口,在下一個(gè)總線周期,開始執(zhí)行中斷程序??冢谙乱粋€(gè)總線周期,開始執(zhí)行中斷程序。保存現(xiàn)場(chǎng)保存現(xiàn)場(chǎng)中斷服務(wù)程中斷服務(wù)程序入口地址序入口地址 21當(dāng)前指令執(zhí)行完的含義當(dāng)前指

18、令執(zhí)行完的含義 CPU正在執(zhí)行一條指令,執(zhí)行完本條指令,響應(yīng)中斷;正在執(zhí)行一條指令,執(zhí)行完本條指令,響應(yīng)中斷; 對(duì)于帶重復(fù)前綴的串指令(如對(duì)于帶重復(fù)前綴的串指令(如REP MOVSB),執(zhí)行一次),執(zhí)行一次重復(fù)和串指令即可響應(yīng)中斷;重復(fù)和串指令即可響應(yīng)中斷; 對(duì)對(duì)MOV和和POP指令,處理對(duì)象為段寄存器,指令,處理對(duì)象為段寄存器,以及以及STI和和IRET指令執(zhí)行完本條指令后,指令執(zhí)行完本條指令后,再執(zhí)行一條指令才響應(yīng)中斷。再執(zhí)行一條指令才響應(yīng)中斷。22內(nèi)內(nèi) 存存中斷向量表中斷向量表0:0 3FFH1000:150h3000:200h0: N40: N4+20: 0000 、 、 0200h

19、3000h 、 、 、 MOV AX, 0 ADD AX, DX MOV DI, AX、 MOV BX,CX、 IRET、類型類型N中斷子程中斷子程 某中斷源發(fā)申請(qǐng)中斷,某中斷源發(fā)申請(qǐng)中斷,申請(qǐng)執(zhí)行類型號(hào)為申請(qǐng)執(zhí)行類型號(hào)為N的中斷子程的中斷子程響應(yīng)中斷前響應(yīng)中斷前 SS:SP 響應(yīng)中斷后響應(yīng)中斷后SS:SP 堆棧堆棧執(zhí)行執(zhí)行IRET后后 (IP) (CS)(PSW)01501000(PSW)SS:SP (IP)=0200h(CS)=3000h0:3FFH0:023從中斷子程返回?cái)帱c(diǎn)處,從中斷子程返回?cái)帱c(diǎn)處,靠的是執(zhí)行中斷子程最后的指令靠的是執(zhí)行中斷子程最后的指令I(lǐng)RET,從堆棧中取出斷點(diǎn)地址給

20、從堆棧中取出斷點(diǎn)地址給CS:IP,繼續(xù)執(zhí)行被中斷的程序。繼續(xù)執(zhí)行被中斷的程序。故中斷子程最后應(yīng)安排故中斷子程最后應(yīng)安排 IRET 指令。指令。1000:150h3000:200h0: N40: N4+20: 0000 、 、 0200h 3000h 、 、 、 MOV AX, 0 ADD AX, DX MOV DI, AX、 MOV BX,CX、 IRET、響應(yīng)中斷前響應(yīng)中斷前 SS:SP 響應(yīng)中斷后響應(yīng)中斷后SS:SP 堆棧堆棧執(zhí)行執(zhí)行IRET后后 (IP) (CS)(PSW)01501000(PSW)SS:SP (IP)=0200h(CS)=3000h24四、四、8088CPU如何獲取中斷

21、類型號(hào)如何獲取中斷類型號(hào)由前面介紹知,當(dāng)中斷源產(chǎn)生由前面介紹知,當(dāng)中斷源產(chǎn)生中斷請(qǐng)求中斷請(qǐng)求后,后,不論是內(nèi)中斷、非屏蔽中斷,還是可屏蔽中斷不論是內(nèi)中斷、非屏蔽中斷,還是可屏蔽中斷,只要只要滿足響應(yīng)條件滿足響應(yīng)條件,在執(zhí)行完當(dāng)前指令后,在執(zhí)行完當(dāng)前指令后,CPU內(nèi)部硬件會(huì)自動(dòng)完成響應(yīng)中斷的過程內(nèi)部硬件會(huì)自動(dòng)完成響應(yīng)中斷的過程, ,共七個(gè)步驟共七個(gè)步驟而而第一步就是獲取中斷類型號(hào)。第一步就是獲取中斷類型號(hào)。不同的中斷源,不同的中斷源,8088CPU獲取中斷類型號(hào)的方法不同獲取中斷類型號(hào)的方法不同。25根據(jù)根據(jù)8088CPU對(duì)中斷的分類,各中斷獲取類型號(hào)的方法對(duì)中斷的分類,各中斷獲取類型號(hào)的方法C

22、PU 執(zhí)執(zhí)行行除除零零或或 OF 為為 1 執(zhí)執(zhí)行行 INTO 指指令令 除除零零 固固定定類類型型號(hào)號(hào) 00H OF 為為 1 執(zhí)執(zhí)行行 INTO 指指令令 固固定定類類型型號(hào)號(hào) 04H使使用用 DEBUG 下下的的單單步步和和斷斷點(diǎn)點(diǎn)操操作作 單單步步 固固定定類類型型號(hào)號(hào) 01H 斷斷點(diǎn)點(diǎn) 固固定定類類型型號(hào)號(hào) 03H內(nèi)內(nèi)中中斷斷執(zhí)執(zhí)行行中中斷斷調(diào)調(diào)用用指指令令 INT N 由由指指令令中中給給出出 指指令令中中指指定定類類型型號(hào)號(hào) N非非屏屏蔽蔽中中斷斷 引引腳腳 NMI 上上有有中中斷斷申申請(qǐng)請(qǐng)信信號(hào)號(hào)(上上升升沿沿信信號(hào)號(hào)) 非非屏屏蔽蔽中中斷斷 固固定定類類型型號(hào)號(hào) 02H外外中

23、中斷斷可可屏屏蔽蔽中中斷斷(參參看看中中斷斷響響應(yīng)應(yīng)時(shí)時(shí)序序圖圖) 當(dāng)當(dāng) IF=1,引引腳腳 INTR 上上有有中中斷斷申申請(qǐng)請(qǐng)信信號(hào)號(hào)( (高高電電平平信信號(hào)號(hào)) ) CPU 按按中中斷斷響響應(yīng)應(yīng)周周期期時(shí)時(shí)序序,從從數(shù)數(shù)據(jù)據(jù)總總線線上上獲獲取取中中斷斷類類型型號(hào)號(hào) 可可屏屏蔽蔽中中斷斷 外外部部接接口口送送上上類類型型號(hào)號(hào)26向量類型向量類型 INTACLKAD7AD0T1T2T3T4第第 一一 個(gè)個(gè)中斷響應(yīng)周期中斷響應(yīng)周期T1T2T3T4第第 二二 個(gè)個(gè)中斷響應(yīng)周期中斷響應(yīng)周期 中斷響應(yīng)周期時(shí)序中斷響應(yīng)周期時(shí)序 CPU從引腳從引腳 INTA 發(fā)中斷響應(yīng)信號(hào),發(fā)中斷響應(yīng)信號(hào), 接口芯片接收

24、此信號(hào),把中斷類型號(hào)準(zhǔn)備好;同時(shí)接口芯片接收此信號(hào),把中斷類型號(hào)準(zhǔn)備好;同時(shí)ISRi=1,IRRi=0。 CPU再從引腳再從引腳 INTA 發(fā)中斷響應(yīng)信號(hào),發(fā)中斷響應(yīng)信號(hào), 接口芯片接此信號(hào)后,將中斷類型號(hào)送至數(shù)據(jù)總線上;接口芯片接此信號(hào)后,將中斷類型號(hào)送至數(shù)據(jù)總線上; CPU從數(shù)據(jù)總線獲取中斷類型號(hào)從數(shù)據(jù)總線獲取中斷類型號(hào)。27第三節(jié)第三節(jié) 可編程中斷控制器可編程中斷控制器8259A 一、一、引言引言 二、二、8259A的引腳、編程結(jié)構(gòu)和工作過程的引腳、編程結(jié)構(gòu)和工作過程 三、三、8259A的編程的編程 1. 設(shè)置中斷屏蔽字設(shè)置中斷屏蔽字 2. 發(fā)中斷結(jié)束命令發(fā)中斷結(jié)束命令EOI 四、四、8

25、259A在在IBM PC/XT系統(tǒng)中的應(yīng)用系統(tǒng)中的應(yīng)用五、五、 8259A在在 Pentium機(jī)機(jī)中中的應(yīng)用的應(yīng)用28一、引言一、引言中斷申請(qǐng)中斷申請(qǐng)管理接口管理接口INT中斷申請(qǐng)中斷申請(qǐng)接口接口1網(wǎng)絡(luò)網(wǎng)絡(luò)接口接口2硬盤硬盤接口接口3軟盤軟盤接口接口4打印機(jī)打印機(jī)8088CPUINTRIF291. 向向CPU的引腳的引腳INTR發(fā)中斷申請(qǐng)信號(hào)發(fā)中斷申請(qǐng)信號(hào)當(dāng)有多個(gè)外設(shè)同時(shí)發(fā)出中斷請(qǐng)求時(shí),當(dāng)有多個(gè)外設(shè)同時(shí)發(fā)出中斷請(qǐng)求時(shí),能按照一定的優(yōu)先級(jí)順序,向能按照一定的優(yōu)先級(jí)順序,向CPU發(fā)出中斷申請(qǐng),發(fā)出中斷申請(qǐng),使使CPU能優(yōu)先響應(yīng)優(yōu)先級(jí)最高的外部設(shè)備的中斷申請(qǐng)。能優(yōu)先響應(yīng)優(yōu)先級(jí)最高的外部設(shè)備的中斷申請(qǐng)

26、。2. 送中斷類型號(hào)送中斷類型號(hào) 在在CPU中斷響應(yīng)周期,針對(duì)不同外設(shè)的中斷請(qǐng)求,中斷響應(yīng)周期,針對(duì)不同外設(shè)的中斷請(qǐng)求, 向向CPU傳送不同的中斷類型號(hào),傳送不同的中斷類型號(hào), 使使CPU執(zhí)行相應(yīng)的中斷子程執(zhí)行相應(yīng)的中斷子程。中斷申請(qǐng)管理接口的主要功能中斷申請(qǐng)管理接口的主要功能: :在在IBM PC機(jī)由機(jī)由8259A可編程中斷控制器可編程中斷控制器(PIC)來完成。來完成。30二、二、 8259A的引腳、編程結(jié)構(gòu)和工作過程的引腳、編程結(jié)構(gòu)和工作過程1. 8259A的引腳的引腳2. 8259A的編程結(jié)構(gòu)的編程結(jié)構(gòu)3. 8259A的工作過程的工作過程311. 8259A的引腳的引腳 雙列直插式芯片

27、,雙列直插式芯片,28個(gè)引腳個(gè)引腳 (參看教材圖(參看教材圖6-37)方方 波波鍵鍵 盤盤保保 留留串串 口口2 硬硬 盤盤軟軟 盤盤打印機(jī)打印機(jī)IOW18.2HzA0CS8259A總線總線A0數(shù)數(shù) 據(jù)據(jù) 線線 IORRDWR片片選選譯譯碼碼IR0IR1IR2IR3IR4IR5IR6IR7A5A9D0D7D0D7VccSP/ENCA0CA1CA2GND+ 5V203FH用于多片用于多片8259A級(jí)連情況級(jí)連情況INTAINT INTA INTR串串 口口1 定時(shí)器定時(shí)器3228259A的編程結(jié)構(gòu)的編程結(jié)構(gòu)(參看教材圖(參看教材圖6-36)SP/ENCA0CA1CA2IORIOW總線總線D0D7

28、數(shù)數(shù) 據(jù)據(jù) 線線D0D7INTAINTRA0片片選選譯譯碼碼A5A9CSA0RD INTAWRINT 1 I3 I4ICW1 芯片控制芯片控制 ICW2 中斷類型號(hào)中斷類型號(hào) ICW3 主從片連接關(guān)系主從片連接關(guān)系 ICW4 方式控制方式控制0111A01 0 0 1 0 1 0 0OCW1 中斷屏蔽寄存器中斷屏蔽寄存器 IMR 0 0 OCW2 優(yōu)先級(jí)設(shè)置、發(fā)優(yōu)先級(jí)設(shè)置、發(fā)EOI 0 1 OCW3特殊屏蔽特殊屏蔽,查詢方式設(shè)置查詢方式設(shè)置處理部分處理部分控制部分控制部分000 0 0 0 0 0 ISR當(dāng)前當(dāng)前中斷中斷服務(wù)服務(wù)寄存器寄存器PR優(yōu)先級(jí)優(yōu)先級(jí)裁決器裁決器VCCGND1 10 00

29、 0A0IR0IR1IR2IR3IR4IR5IR6IR7IRR中斷中斷申請(qǐng)申請(qǐng)寄存器寄存器000 0 0 0 0 0 334個(gè)初始化命令寄存器個(gè)初始化命令寄存器 ICW1、ICW2 ICW3、ICW4 3個(gè)操作命令寄存器個(gè)操作命令寄存器 OCW1(IMR) OCW2、OCW3當(dāng)前中斷服務(wù)寄存器當(dāng)前中斷服務(wù)寄存器 ISR中斷申請(qǐng)寄存器中斷申請(qǐng)寄存器 IRR 8259A內(nèi)部有內(nèi)部有9個(gè)個(gè) 可讀寫的寄存器可讀寫的寄存器8259A的編程結(jié)構(gòu)的編程結(jié)構(gòu) 1 I3 I4ICW1 芯片控制芯片控制 ICW2 中斷類型號(hào)中斷類型號(hào) ICW3 主從片關(guān)系主從片關(guān)系 ICW4 方式控制方式控制處理部分處理部分控制

30、部分控制部分000 0 0 0 0 0 ISR當(dāng)前當(dāng)前中斷中斷服務(wù)服務(wù)寄存器寄存器PR優(yōu)先級(jí)優(yōu)先級(jí)裁決器裁決器IRR中斷申請(qǐng)中斷申請(qǐng)寄存器寄存器000 0 0 0 0 0 中斷屏蔽寄存器中斷屏蔽寄存器 IMROCW2 1 0 0 1 0 1 0 0 0 0 0 1 OCW3OCW18259A中斷控制器中斷控制器34(1) 初始化命令字初始化命令字(ICW1- - ICW4) 決定決定8259A的工作方式的工作方式 通常是在計(jì)算機(jī)系統(tǒng)啟動(dòng)時(shí)在初始程序設(shè)置,通常是在計(jì)算機(jī)系統(tǒng)啟動(dòng)時(shí)在初始程序設(shè)置, 一旦設(shè)定,一般在系統(tǒng)工作過程不再改變。一旦設(shè)定,一般在系統(tǒng)工作過程不再改變。例例 開機(jī)后,開機(jī)后,B

31、IOS將將8259A初始化為:初始化為: IR0IR7中斷申請(qǐng)信號(hào)為上升沿觸發(fā)方式;中斷申請(qǐng)信號(hào)為上升沿觸發(fā)方式; IR0IR7對(duì)應(yīng)的中斷類型號(hào)分別為對(duì)應(yīng)的中斷類型號(hào)分別為08H0FH; 優(yōu)先級(jí)優(yōu)先級(jí)IR0最高最高, IR7最低;最低;(2) 操作命令字操作命令字(OCW1,OCW2,OCW3) 在應(yīng)用程序中設(shè)定,動(dòng)態(tài)地控制在應(yīng)用程序中設(shè)定,動(dòng)態(tài)地控制CPU處理中斷的過程處理中斷的過程(3) ISR和和IRR存放當(dāng)前存放當(dāng)前8259A的狀態(tài)的狀態(tài) 通過讀取通過讀取 ISR 和和 IRR 的內(nèi)容,可了解當(dāng)前的內(nèi)容,可了解當(dāng)前8259A工作情況工作情況35分兩步分兩步: (1)處理外設(shè)中斷申請(qǐng),決

32、定是否向處理外設(shè)中斷申請(qǐng),決定是否向CPU發(fā)中斷申請(qǐng)信號(hào)。發(fā)中斷申請(qǐng)信號(hào)。(2)若發(fā)中斷申請(qǐng)信號(hào),且若發(fā)中斷申請(qǐng)信號(hào),且CPU響應(yīng),響應(yīng), 則在則在CPU中斷響應(yīng)周期送出中斷類型號(hào)。中斷響應(yīng)周期送出中斷類型號(hào)。3. 8259A 的工作過程的工作過程36(1) 處理外設(shè)中斷申請(qǐng),決定是否向處理外設(shè)中斷申請(qǐng),決定是否向CPU發(fā)中斷申請(qǐng)信號(hào)發(fā)中斷申請(qǐng)信號(hào) 中斷屏蔽寄存器中斷屏蔽寄存器 IMR 決定決定 IRR 中的中斷申請(qǐng)中的中斷申請(qǐng) 是否進(jìn)入優(yōu)先級(jí)裁決器是否進(jìn)入優(yōu)先級(jí)裁決器 PR。 IMR對(duì)應(yīng)位為對(duì)應(yīng)位為 0,允許中斷申請(qǐng)進(jìn)入優(yōu)先級(jí)裁決器,允許中斷申請(qǐng)進(jìn)入優(yōu)先級(jí)裁決器, 為為 1,不允許進(jìn)入,中斷

33、申請(qǐng)被,不允許進(jìn)入,中斷申請(qǐng)被IMR屏蔽。屏蔽。 中斷申請(qǐng)寄存器中斷申請(qǐng)寄存器IRR 鎖存外部的中斷申請(qǐng)。鎖存外部的中斷申請(qǐng)。 若若 IR0IR7 引腳上有中斷申請(qǐng),則將引腳上有中斷申請(qǐng),則將 IRR 相應(yīng)位置相應(yīng)位置1 當(dāng)前中斷服務(wù)寄存器當(dāng)前中斷服務(wù)寄存器 ISR 記錄記錄CPU正在響應(yīng)的中斷。正在響應(yīng)的中斷。 ISR中的某位為中的某位為1,表示,表示CPU正在響應(yīng)此級(jí)中斷,正在響應(yīng)此級(jí)中斷, ISR中的某位為中的某位為 0,表示,表示CPU沒有或已響應(yīng)完此級(jí)中斷,沒有或已響應(yīng)完此級(jí)中斷, 優(yōu)先級(jí)裁決器優(yōu)先級(jí)裁決器PR 據(jù)新進(jìn)入的中斷申請(qǐng)和據(jù)新進(jìn)入的中斷申請(qǐng)和 ISR的內(nèi)容的內(nèi)容, 決定是否

34、發(fā)中斷申請(qǐng)信號(hào)。決定是否發(fā)中斷申請(qǐng)信號(hào)。 如果進(jìn)入的中斷申請(qǐng)比如果進(jìn)入的中斷申請(qǐng)比 ISR 中記錄的中斷優(yōu)先級(jí)高,中記錄的中斷優(yōu)先級(jí)高, 則通過則通過 8259A 的的 INT 引腳向引腳向 CPU發(fā)出中斷請(qǐng)求信號(hào);發(fā)出中斷請(qǐng)求信號(hào); 如果進(jìn)入的中斷申請(qǐng)不比如果進(jìn)入的中斷申請(qǐng)不比 ISR 中記錄的中斷優(yōu)先級(jí)高,中記錄的中斷優(yōu)先級(jí)高, 同級(jí)或低級(jí),則不向同級(jí)或低級(jí),則不向 CPU 發(fā)中斷請(qǐng)求信號(hào)。發(fā)中斷請(qǐng)求信號(hào)。37 中斷申請(qǐng)寄存器中斷申請(qǐng)寄存器IRR 鎖存外部的中斷申請(qǐng)。鎖存外部的中斷申請(qǐng)。 若若 IR0IR7 引腳上有中斷申請(qǐng),則將引腳上有中斷申請(qǐng),則將 IRR 相應(yīng)位置相應(yīng)位置1IORIO

35、W總線總線數(shù)數(shù) 據(jù)據(jù) 線線D0D7INTAA0片片選選譯譯碼碼A5A9CSA0RD INTAWRINTD0D7 ICW1 芯片控制芯片控制 ICW2 中斷類型號(hào)中斷類型號(hào) ICW3 主從片關(guān)系主從片關(guān)系 ICW4 方式控制方式控制000 0 0 0 0 0 ISR當(dāng)前當(dāng)前中斷中斷服務(wù)服務(wù)寄存器寄存器IR0IR1IR2IR3IR4IR5IR6IR7OCW1 中斷屏蔽寄存器中斷屏蔽寄存器 IMR 0 0 OCW2 優(yōu)先級(jí)、發(fā)優(yōu)先級(jí)、發(fā)EOI OCW3 特殊屏蔽設(shè)置特殊屏蔽設(shè)置PR優(yōu)先級(jí)優(yōu)先級(jí)裁決器裁決器IRR中斷中斷申請(qǐng)申請(qǐng)寄存器寄存器000 0 0 0 0 0 1 0 0 1 0 1 0 0IN

36、TR1138 中斷屏蔽寄存器中斷屏蔽寄存器 IMR 決定決定 IRR 中的中斷申請(qǐng)中的中斷申請(qǐng) 是否進(jìn)入優(yōu)先級(jí)裁決器是否進(jìn)入優(yōu)先級(jí)裁決器 PR。 IMR對(duì)應(yīng)位對(duì)應(yīng)位為為 0,允許允許中斷申請(qǐng)進(jìn)入優(yōu)先級(jí)裁決器,中斷申請(qǐng)進(jìn)入優(yōu)先級(jí)裁決器, 為為 1,不允許不允許進(jìn)入,中斷申請(qǐng)被進(jìn)入,中斷申請(qǐng)被IMR屏蔽。屏蔽。IORIOW總線總線數(shù)數(shù) 據(jù)據(jù) 線線D0D7INTAA0片片選選譯譯碼碼A5A9CSA0RD INTAWRINTD0D7 ICW1 芯片控制芯片控制 ICW2 中斷類型號(hào)中斷類型號(hào) ICW3 主從片關(guān)系主從片關(guān)系 ICW4 方式控制方式控制000 0 0 0 0 0 ISR當(dāng)前當(dāng)前中斷中斷服

37、務(wù)服務(wù)寄存器寄存器IR0IR1IR2IR3IR4IR5IR6IR7OCW1 中斷屏蔽寄存器中斷屏蔽寄存器 IMR 0 0 OCW2 優(yōu)先級(jí)、發(fā)優(yōu)先級(jí)、發(fā)EOI OCW3 特殊屏蔽設(shè)置特殊屏蔽設(shè)置PR優(yōu)先級(jí)優(yōu)先級(jí)裁決器裁決器IRR中斷中斷申請(qǐng)申請(qǐng)寄存器寄存器100 0 0 0 0 1 1 0 0 1 0 1 0 0INTR39 當(dāng)前中斷服務(wù)寄存器當(dāng)前中斷服務(wù)寄存器 ISR 記錄記錄CPU正在響應(yīng)的中斷。正在響應(yīng)的中斷。ISR中的某位中的某位為為1,表示,表示CPU正在響應(yīng)正在響應(yīng)此級(jí)中斷,此級(jí)中斷, 即正在執(zhí)行此中斷源的中斷子程;即正在執(zhí)行此中斷源的中斷子程;ISR中的某位中的某位為為 0,表示

38、,表示CPU沒有或已響應(yīng)完沒有或已響應(yīng)完此級(jí)中斷,此級(jí)中斷, 即不在執(zhí)行此中斷源的中斷子程即不在執(zhí)行此中斷源的中斷子程IORIOW總線總線數(shù)數(shù) 據(jù)據(jù) 線線D0D7INTAA0片片選選譯譯碼碼A5A9CSA0RD INTAWRINTD0D7 ICW1 芯片控制芯片控制 ICW2 中斷類型號(hào)中斷類型號(hào) ICW3 主從片關(guān)系主從片關(guān)系 ICW4 方式控制方式控制001 0 0 0 0 0 ISR當(dāng)前當(dāng)前中斷中斷服務(wù)服務(wù)寄存器寄存器IR0IR1IR2IR3IR4IR5IR6IR7OCW1 中斷屏蔽寄存器中斷屏蔽寄存器 IMR 0 0 OCW2 優(yōu)先級(jí)、發(fā)優(yōu)先級(jí)、發(fā)EOI OCW3 特殊屏蔽設(shè)置特殊屏蔽

39、設(shè)置PR優(yōu)先級(jí)優(yōu)先級(jí)裁決器裁決器IRR中斷中斷申請(qǐng)申請(qǐng)寄存器寄存器100 0 0 0 0 1 1 0 0 1 0 1 0 0INTR40 優(yōu)先級(jí)裁決器優(yōu)先級(jí)裁決器PR據(jù)新進(jìn)入的中斷申請(qǐng)和據(jù)新進(jìn)入的中斷申請(qǐng)和 ISR的內(nèi)容的內(nèi)容, 決定是否發(fā)中斷申請(qǐng)信號(hào)。決定是否發(fā)中斷申請(qǐng)信號(hào)。 如果進(jìn)入的中斷申請(qǐng)比如果進(jìn)入的中斷申請(qǐng)比 ISR 中記錄的中記錄的中斷優(yōu)先級(jí)高中斷優(yōu)先級(jí)高, 則通過則通過 8259A 的的 INT 引腳向引腳向 CPU發(fā)出中斷請(qǐng)求信號(hào);發(fā)出中斷請(qǐng)求信號(hào); 如果進(jìn)入的中斷申請(qǐng)不比如果進(jìn)入的中斷申請(qǐng)不比 ISR 中記錄的中斷優(yōu)先級(jí)高,中記錄的中斷優(yōu)先級(jí)高,同級(jí)或低級(jí)同級(jí)或低級(jí), 則不向

40、則不向 CPU 發(fā)中斷請(qǐng)求信號(hào)。發(fā)中斷請(qǐng)求信號(hào)。IORIOW總線總線數(shù)數(shù) 據(jù)據(jù) 線線D0D7INTAA0片片選選譯譯碼碼A5A9CSA0RD INTAWRINTD0D7 ICW1 芯片控制芯片控制 ICW2 中斷類型號(hào)中斷類型號(hào) ICW3 主從片關(guān)系主從片關(guān)系 ICW4 方式控制方式控制001 0 0 0 0 0 ISR當(dāng)前當(dāng)前中斷中斷服務(wù)服務(wù)寄存器寄存器IR0IR1IR2IR3IR4IR5IR6IR7OCW1 中斷屏蔽寄存器中斷屏蔽寄存器 IMR 0 0 OCW2 優(yōu)先級(jí)、發(fā)優(yōu)先級(jí)、發(fā)EOI OCW3 特殊屏蔽設(shè)置特殊屏蔽設(shè)置PR優(yōu)先級(jí)優(yōu)先級(jí)裁決器裁決器IRR中斷中斷申請(qǐng)申請(qǐng)寄存器寄存器10

41、0 0 0 0 0 1 1 0 0 1 0 1 0 0INTR41(2) 若發(fā)中斷申請(qǐng)信號(hào),且若發(fā)中斷申請(qǐng)信號(hào),且CPU響應(yīng),響應(yīng), 則在則在CPU中斷響應(yīng)周期送出中斷類型號(hào)中斷響應(yīng)周期送出中斷類型號(hào) CPU接收到接收到 INTR上的中斷申請(qǐng)信號(hào)后:上的中斷申請(qǐng)信號(hào)后:l如果如果 IF 標(biāo)志為標(biāo)志為0,則,則CPU不響應(yīng)此中斷申請(qǐng)信號(hào)不響應(yīng)此中斷申請(qǐng)信號(hào), 即中斷申請(qǐng)被即中斷申請(qǐng)被IF屏蔽。屏蔽。l如果如果 IF 標(biāo)志為標(biāo)志為1, 則處理完當(dāng)前的指令后則處理完當(dāng)前的指令后, 進(jìn)入中斷響應(yīng)周期進(jìn)入中斷響應(yīng)周期 通過通過 INTA 引腳發(fā)出兩個(gè)負(fù)脈沖信號(hào),引腳發(fā)出兩個(gè)負(fù)脈沖信號(hào), 從數(shù)據(jù)總線上獲取

42、中斷類型號(hào),從數(shù)據(jù)總線上獲取中斷類型號(hào), 進(jìn)入中斷響應(yīng)的過程。進(jìn)入中斷響應(yīng)的過程。42向量類型向量類型 INTACLKAD7AD0T1T2T3T4第第 一一 個(gè)個(gè)中斷響應(yīng)周期中斷響應(yīng)周期T1T2T3T4第第 二二 個(gè)個(gè)中斷響應(yīng)周期中斷響應(yīng)周期 8088CPU中斷響應(yīng)周期時(shí)序中斷響應(yīng)周期時(shí)序43 將將 ISR 中相應(yīng)位置中相應(yīng)位置1, 表示表示 CPU 響應(yīng)此級(jí)中斷,執(zhí)行此中斷源的中斷子程。響應(yīng)此級(jí)中斷,執(zhí)行此中斷源的中斷子程。8259A在接收到第一個(gè)在接收到第一個(gè)INTA中斷響應(yīng)信號(hào)后中斷響應(yīng)信號(hào)后:001 0 0 0 0 0 ISR當(dāng)前當(dāng)前中斷中斷服務(wù)服務(wù)寄存器寄存器IR0IR1IR2IR3

43、IR4IR5IR6IR7PR優(yōu)先級(jí)優(yōu)先級(jí)裁決器裁決器IRR中斷中斷申請(qǐng)申請(qǐng)寄存器寄存器100 0 0 0 0 1 ICW1 芯片控制芯片控制 ICW2 中斷類型號(hào)中斷類型號(hào) ICW3 主從片關(guān)系主從片關(guān)系 ICW4 方式控制方式控制OCW1 中斷屏蔽寄存器中斷屏蔽寄存器 IMR 0 0 OCW2 優(yōu)先級(jí)、發(fā)優(yōu)先級(jí)、發(fā)EOI OCW3 特殊屏蔽設(shè)置特殊屏蔽設(shè)置1 0 0 1 0 1 0 0IORIOW總線總線數(shù)數(shù) 據(jù)據(jù) 線線D0D7INTAA0片片選選譯譯碼碼A5A9CSA0RDWR INTAINTD0D7INTR01 把把 IRR中對(duì)應(yīng)的位清中對(duì)應(yīng)的位清0,清除,清除IRR中鎖存的中斷申請(qǐng)信號(hào)

44、。中鎖存的中斷申請(qǐng)信號(hào)。44 通過數(shù)據(jù)線,將被響應(yīng)申請(qǐng)的中斷類型號(hào)送給通過數(shù)據(jù)線,將被響應(yīng)申請(qǐng)的中斷類型號(hào)送給CPU。類型號(hào)由類型號(hào)由ICW2提供,在初始化提供,在初始化8259A時(shí)已設(shè)定好。時(shí)已設(shè)定好。8259A在接收到第二個(gè)在接收到第二個(gè)INTA中斷響應(yīng)信號(hào)后:中斷響應(yīng)信號(hào)后:001 0 0 0 0 0 ISR當(dāng)前當(dāng)前中斷中斷服務(wù)服務(wù)寄存器寄存器IR0IR1IR2IR3IR4IR5IR6IR7PR優(yōu)先級(jí)優(yōu)先級(jí)裁決器裁決器IRR中斷中斷申請(qǐng)申請(qǐng)寄存器寄存器100 0 0 0 0 1 ICW1 芯片控制芯片控制 ICW2 中斷類型號(hào)中斷類型號(hào) ICW3 主從片關(guān)系主從片關(guān)系 ICW4 方式控制

45、方式控制OCW1 中斷屏蔽寄存器中斷屏蔽寄存器 IMR 0 0 OCW2 優(yōu)先級(jí)、發(fā)優(yōu)先級(jí)、發(fā)EOI OCW3 特殊屏蔽設(shè)置特殊屏蔽設(shè)置1 0 0 1 0 1 0 0IORIOW總線總線數(shù)數(shù) 據(jù)據(jù) 線線D0D7INTAA0片片選選譯譯碼碼A5A9CSA0RDWR INTAINTD0D7INTR01 CPU獲得中斷類型號(hào)后,進(jìn)入獲得中斷類型號(hào)后,進(jìn)入CPU響應(yīng)中斷的過程響應(yīng)中斷的過程, 執(zhí)行中斷子程,處理中斷源申請(qǐng)的功能執(zhí)行中斷子程,處理中斷源申請(qǐng)的功能。45 取中斷類型號(hào)取中斷類型號(hào)N 當(dāng)前當(dāng)前PSW的內(nèi)容入棧的內(nèi)容入棧 清清IF、TF標(biāo)志為標(biāo)志為0 當(dāng)前當(dāng)前CS的內(nèi)容入棧的內(nèi)容入棧 當(dāng)前當(dāng)前

46、IP的內(nèi)容入棧的內(nèi)容入棧 取內(nèi)存單元取內(nèi)存單元( 0 : N 4 )字內(nèi)容送字內(nèi)容送IP 取中斷子程取中斷子程 取內(nèi)存單元取內(nèi)存單元( 0 : N 4 + 2 )字內(nèi)容送字內(nèi)容送CS 入口地址入口地址 此時(shí)此時(shí)CS:IP指向中斷程序的入口,開始執(zhí)行中斷程序。指向中斷程序的入口,開始執(zhí)行中斷程序。保存現(xiàn)場(chǎng)保存現(xiàn)場(chǎng)CPU響應(yīng)中斷過程:響應(yīng)中斷過程: 執(zhí)行完中斷子程中最后一條指令執(zhí)行完中斷子程中最后一條指令I(lǐng)RET后,后,返回被中斷處,繼續(xù)執(zhí)行被中斷的程序。返回被中斷處,繼續(xù)執(zhí)行被中斷的程序。46三、三、8259A的編程的編程1. 8259A的編程的編程2. 8259A的編程方法的編程方法 (1)

47、設(shè)置中斷屏蔽字設(shè)置中斷屏蔽字 (2) 發(fā)中斷結(jié)束命令發(fā)中斷結(jié)束命令EOI474個(gè)初始化命令寄存器個(gè)初始化命令寄存器 ICW1、ICW2 ICW3、ICW4 3個(gè)操作命令寄存器個(gè)操作命令寄存器 OCW1(IMR) OCW2、OCW3當(dāng)前中斷服務(wù)寄存器當(dāng)前中斷服務(wù)寄存器 ISR中斷申請(qǐng)寄存器中斷申請(qǐng)寄存器 IRR 8259A內(nèi)部有內(nèi)部有9個(gè)個(gè) 可讀寫的寄存器可讀寫的寄存器1. 8259A的編程的編程 1 I3 I4ICW1 芯片控制芯片控制 ICW2 中斷類型號(hào)中斷類型號(hào) ICW3 主從片關(guān)系主從片關(guān)系 ICW4 方式控制方式控制處理部分處理部分控制部分控制部分000 0 0 0 0 0 ISR當(dāng)

48、前當(dāng)前中斷中斷服務(wù)服務(wù)寄存器寄存器PR優(yōu)先級(jí)優(yōu)先級(jí)裁決器裁決器IRR中斷申請(qǐng)中斷申請(qǐng)寄存器寄存器000 0 0 0 0 0 中斷屏蔽寄存器中斷屏蔽寄存器 IMROCW2 1 0 0 1 0 1 0 0 0 0 0 1 OCW3OCW18259A中斷控制器中斷控制器488259A有兩個(gè)有兩個(gè)I/O端口地址端口地址A0=0 偶地址端口偶地址端口A0=1 奇地址端口奇地址端口 對(duì)對(duì) 9個(gè)寄存器的讀寫個(gè)寄存器的讀寫 均通過這兩個(gè)端口實(shí)現(xiàn)均通過這兩個(gè)端口實(shí)現(xiàn) 寫入數(shù)據(jù)的特征位寫入數(shù)據(jù)的特征位 寫入的先后順序?qū)懭氲南群箜樞?區(qū)分是對(duì)哪個(gè)寄存器區(qū)分是對(duì)哪個(gè)寄存器 進(jìn)行操作進(jìn)行操作根據(jù)根據(jù) 1 I3 I4IC

49、W1 芯片控制芯片控制 ICW2 中斷類型號(hào)中斷類型號(hào) ICW3 主從片關(guān)系主從片關(guān)系 ICW4 方式控制方式控制處理部分處理部分控制部分控制部分000 0 0 0 0 0 ISR當(dāng)前當(dāng)前中斷中斷服務(wù)服務(wù)寄存器寄存器PR優(yōu)先級(jí)優(yōu)先級(jí)裁決器裁決器IRR中斷申請(qǐng)中斷申請(qǐng)寄存器寄存器000 0 0 0 0 0 中斷屏蔽寄存器中斷屏蔽寄存器OCW2 1 0 0 1 0 1 0 0 0 0 0 1 OCW3OCW18259A中斷控制器中斷控制器D0D7A0CSRDWR80111A0100A049(1)通過中斷屏蔽寄存器通過中斷屏蔽寄存器IMR的讀寫,的讀寫,設(shè)置中斷屏蔽字設(shè)置中斷屏蔽字(2) 通過通過O

50、CW2操作命令寄存器,操作命令寄存器,發(fā)中斷結(jié)束發(fā)中斷結(jié)束EOI命令命令由于課時(shí)所限,只要求掌握如下編程:由于課時(shí)所限,只要求掌握如下編程:2. 8259A的編程方法的編程方法8259A有多種工作方式,有多種工作方式,這些工作方式均可編程選擇,這些工作方式均可編程選擇,使用相當(dāng)靈活。使用相當(dāng)靈活。50l通過往寄地址端口寫入通過往寄地址端口寫入IMR內(nèi)容實(shí)現(xiàn)內(nèi)容實(shí)現(xiàn) 對(duì)應(yīng)位對(duì)應(yīng)位為為0,允許允許該級(jí)中斷申請(qǐng)進(jìn)入該級(jí)中斷申請(qǐng)進(jìn)入 對(duì)應(yīng)位對(duì)應(yīng)位為為1,禁止禁止該級(jí)中斷申請(qǐng)進(jìn)入該級(jí)中斷申請(qǐng)進(jìn)入(1)設(shè)置中斷屏蔽字設(shè)置中斷屏蔽字IORIOW總線總線數(shù)數(shù) 據(jù)據(jù) 線線D0D7INTAA0片片選選譯譯碼碼A5

51、A9CSA0RD INTAWRINTD0D7 ICW1 芯片控制芯片控制 ICW2 中斷類型號(hào)中斷類型號(hào) ICW3 主從片關(guān)系主從片關(guān)系 ICW4 方式控制方式控制000 0 0 0 0 0 ISR當(dāng)前當(dāng)前中斷中斷服務(wù)服務(wù)寄存器寄存器IR0IR1IR2IR3IR4IR5IR6IR7OCW1 中斷屏蔽寄存器中斷屏蔽寄存器 IMR 0 0 OCW2 優(yōu)先級(jí)、發(fā)優(yōu)先級(jí)、發(fā)EOI OCW3 特殊屏蔽設(shè)置特殊屏蔽設(shè)置PR優(yōu)先級(jí)優(yōu)先級(jí)裁決器裁決器IRR中斷中斷申請(qǐng)申請(qǐng)寄存器寄存器100 0 0 0 0 1 1 0 0 1 0 1 0 0INTR51l 新增允許新增允許 IR2 的中斷申請(qǐng)的中斷申請(qǐng) IN

52、AL, 21H ;讀入原讀入原IMR的內(nèi)容的內(nèi)容 AND AL, 1111 1011B ;D2=0,允許允許IR2的中斷申請(qǐng)的中斷申請(qǐng) OUT 21H, AL ;寫入寫入IMRl 禁止禁止 IR4 的中斷申請(qǐng)的中斷申請(qǐng) IN AL, 21H ;讀入原讀入原IMR的內(nèi)容的內(nèi)容 OR AL, 0001 0000B ;D4=1,禁止禁止IR4的中斷申請(qǐng)的中斷申請(qǐng) OUT 21H, AL ;寫入寫入IMR例例 已知已知 IBM PC/XT系統(tǒng)中系統(tǒng)中 8259A的奇地址端口地址為的奇地址端口地址為21H52設(shè)置完成后的結(jié)果設(shè)置完成后的結(jié)果: :IORIOW總線總線數(shù)數(shù) 據(jù)據(jù) 線線D0D7INTAA0片

53、片選選譯譯碼碼A5A9CSA0RD INTAWRINTD0D7 ICW1 芯片控制芯片控制 ICW2 中斷類型號(hào)中斷類型號(hào) ICW3 主從片關(guān)系主從片關(guān)系 ICW4 方式控制方式控制000 0 0 0 0 0 ISR當(dāng)前當(dāng)前中斷中斷服務(wù)服務(wù)寄存器寄存器IR0IR1IR2IR3IR4IR5IR6IR7OCW1 中斷屏蔽寄存器中斷屏蔽寄存器 IMR 0 0 OCW2 優(yōu)先級(jí)、發(fā)優(yōu)先級(jí)、發(fā)EOI OCW3 特殊屏蔽設(shè)置特殊屏蔽設(shè)置PR優(yōu)先級(jí)優(yōu)先級(jí)裁決器裁決器IRR中斷中斷申請(qǐng)申請(qǐng)寄存器寄存器100 0 0 0 0 1 1 0 0 1 0 0 0 0INTR53(2) 發(fā)中斷結(jié)束命令發(fā)中斷結(jié)束命令 E

54、OI由由 8259A 的工作過程可知的工作過程可知:lISR中的內(nèi)容是優(yōu)先級(jí)裁決器進(jìn)行裁決的重要依據(jù)中的內(nèi)容是優(yōu)先級(jí)裁決器進(jìn)行裁決的重要依據(jù) CPU響應(yīng)某級(jí)中斷后,響應(yīng)某級(jí)中斷后,8259A自動(dòng)將自動(dòng)將ISR的對(duì)應(yīng)位置的對(duì)應(yīng)位置1,如果如果CPU已執(zhí)行完中斷子程,而已執(zhí)行完中斷子程,而ISR中的對(duì)應(yīng)位仍為中的對(duì)應(yīng)位仍為1, 8259A的優(yōu)先級(jí)裁決器仍會(huì)據(jù)的優(yōu)先級(jí)裁決器仍會(huì)據(jù)ISR的內(nèi)容做裁決,的內(nèi)容做裁決, 從而會(huì)屏蔽同級(jí)或低級(jí)的中斷申請(qǐng)。從而會(huì)屏蔽同級(jí)或低級(jí)的中斷申請(qǐng)。l在中斷響應(yīng)后,對(duì)在中斷響應(yīng)后,對(duì) ISR中相應(yīng)位的清中相應(yīng)位的清0很重要,很重要, 它是它是8259A認(rèn)為中斷結(jié)束的標(biāo)志。

55、認(rèn)為中斷結(jié)束的標(biāo)志。54IORIOW總線總線數(shù)數(shù) 據(jù)據(jù) 線線D0D7INTAA0片片選選譯譯碼碼A5A9CSA0RD INTAWRINTD0D7 ICW1 芯片控制芯片控制 ICW2 中斷類型號(hào)中斷類型號(hào) ICW3 主從片關(guān)系主從片關(guān)系 ICW4 方式控制方式控制101 0 0 0 0 0 ISR當(dāng)前當(dāng)前中斷中斷服務(wù)服務(wù)寄存器寄存器IR0IR1IR2IR3IR4IR5IR6IR7OCW1 中斷屏蔽寄存器中斷屏蔽寄存器 IMR 0 0 OCW2 優(yōu)先級(jí)、發(fā)優(yōu)先級(jí)、發(fā)EOI OCW3 特殊屏蔽設(shè)置特殊屏蔽設(shè)置PR優(yōu)先級(jí)優(yōu)先級(jí)裁決器裁決器IRR中斷中斷申請(qǐng)申請(qǐng)寄存器寄存器100 0 0 0 0 1

56、1 0 0 1 0 1 0 0INTR55一、一、 初始化初始化8259A時(shí),設(shè)置時(shí),設(shè)置8259A工作方式為自動(dòng)清工作方式為自動(dòng)清0方式,方式, 則在則在CPU響應(yīng)中斷后,硬件自動(dòng)將響應(yīng)中斷后,硬件自動(dòng)將ISR的對(duì)應(yīng)位清的對(duì)應(yīng)位清0。清清 ISR 內(nèi)容的方法有兩種:內(nèi)容的方法有兩種:二、二、 初始化初始化8259A時(shí),設(shè)置時(shí),設(shè)置8259A工作方式為非自動(dòng)清工作方式為非自動(dòng)清0方式,方式, 需在中斷子程中,通過軟件方式清需在中斷子程中,通過軟件方式清0。方法是:方法是:通過往通過往OCW2寫入寫入20H實(shí)現(xiàn),即由偶地址端口寫入:實(shí)現(xiàn),即由偶地址端口寫入: EOI00100000特征位,表示對(duì)

57、特征位,表示對(duì)OCW2操作操作20H56編程在中斷子程編程在中斷子程 IRET 返回前,發(fā)中斷結(jié)束命令返回前,發(fā)中斷結(jié)束命令EOI例例 已知已知 IBM PC系統(tǒng)中系統(tǒng)中, 8259A的偶地址端口地址為的偶地址端口地址為 20H; BIOS 初始化初始化 8259A 時(shí),設(shè)置時(shí),設(shè)置 8259A 工作方式為非自動(dòng)清工作方式為非自動(dòng)清 0 方式。方式。intsub PROC 、 、 、 MOV AL, 20H ;將中斷結(jié)束命令字將中斷結(jié)束命令字20H 送送AL OUT 20H, AL ;寫入寫入OCW2中中 IRET ;中斷返回中斷返回 intsub ENDP57四、四、8259A在在IBM P

58、C/XT系統(tǒng)中的應(yīng)用系統(tǒng)中的應(yīng)用18259A與系統(tǒng)的連線。與系統(tǒng)的連線。2BIOS初始化程序?qū)Τ跏蓟绦驅(qū)?259A的設(shè)置。的設(shè)置。581與系統(tǒng)的連線與系統(tǒng)的連線+5V CLKRESETREADYMN/MXVCCRDQS0QS1LOCKTESTHIGHNMIGNDGND地址鎖存器地址鎖存器8282(兩片兩片)STB 數(shù)據(jù)收發(fā)器數(shù)據(jù)收發(fā)器OE 8286T T MRDC 8288 MWTC 總線總線 IORC控制器控制器 IOWC INTA8259A及有關(guān)電路及有關(guān)電路DT/RDENALE地址總線地址總線數(shù)據(jù)總線數(shù)據(jù)總線控制總線控制總線PC總總線線A15A8S6S3/A19A16AD7AD0808

59、8CPUS0S1S2INTRRQ/GT0RQ/GT1內(nèi)內(nèi)存存I/O接口接口注意:注意:8259A在連線中的位置在連線中的位置59 8259A的片選地址范圍為的片選地址范圍為 20 3F H 偶、奇端口地址通常取用偶、奇端口地址通常取用20H、21H方方 波波鍵鍵 盤盤保保 留留串串 口口2 硬硬 盤盤軟軟 盤盤打印機(jī)打印機(jī)IOW18.2HzA0CS8259A總線總線A0數(shù)數(shù) 據(jù)據(jù) 線線 IORRDWR片片選選譯譯碼碼IR0IR1IR2IR3IR4IR5IR6IR7A5A9D0D7D0D7VccSP/ENCA0CA1CA2GND+ 5V203FH用于多片用于多片8259A級(jí)連情況級(jí)連情況INTA

60、INT INTA INTR串串 口口1 60IR0 接一個(gè)頻率為接一個(gè)頻率為18.2Hz的方波;的方波; 若若CPU對(duì)該申請(qǐng)給予響應(yīng)對(duì)該申請(qǐng)給予響應(yīng), 則每秒執(zhí)行則每秒執(zhí)行18.2次該申請(qǐng)對(duì)應(yīng)的中斷子程。次該申請(qǐng)對(duì)應(yīng)的中斷子程。 IR1接鍵盤接口發(fā)出的中斷申請(qǐng);接鍵盤接口發(fā)出的中斷申請(qǐng); 每按下一鍵,若每按下一鍵,若CPU對(duì)該申請(qǐng)給予響應(yīng)對(duì)該申請(qǐng)給予響應(yīng), 則執(zhí)行一次該申請(qǐng)對(duì)應(yīng)的中斷子程。則執(zhí)行一次該申請(qǐng)對(duì)應(yīng)的中斷子程。 IR2IR7通過系統(tǒng)總線引出,通過系統(tǒng)總線引出, 對(duì)應(yīng)引腳信號(hào)為對(duì)應(yīng)引腳信號(hào)為IRQ2IRQ7。18.2Hz時(shí)鐘信號(hào)時(shí)鐘信號(hào) 8259A的的8個(gè)中斷申請(qǐng)與外設(shè)的連接個(gè)中斷申請(qǐng)

溫馨提示

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