微型計(jì)算機(jī)原理及應(yīng)用:第7章 微型計(jì)算機(jī)中斷系統(tǒng)_第1頁
微型計(jì)算機(jī)原理及應(yīng)用:第7章 微型計(jì)算機(jī)中斷系統(tǒng)_第2頁
微型計(jì)算機(jī)原理及應(yīng)用:第7章 微型計(jì)算機(jī)中斷系統(tǒng)_第3頁
微型計(jì)算機(jī)原理及應(yīng)用:第7章 微型計(jì)算機(jī)中斷系統(tǒng)_第4頁
微型計(jì)算機(jī)原理及應(yīng)用:第7章 微型計(jì)算機(jī)中斷系統(tǒng)_第5頁
已閱讀5頁,還剩65頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、第七章第七章 微型計(jì)算機(jī)中斷系統(tǒng)微型計(jì)算機(jī)中斷系統(tǒng)概述:概述:中斷中斷:CPUCPU在運(yùn)行程序期間,遇到某些特殊情況(被內(nèi)部或外部事件所在運(yùn)行程序期間,遇到某些特殊情況(被內(nèi)部或外部事件所打斷),暫時(shí)中止原先程序的執(zhí)行,而轉(zhuǎn)去執(zhí)行一段特定的處理程序,打斷),暫時(shí)中止原先程序的執(zhí)行,而轉(zhuǎn)去執(zhí)行一段特定的處理程序,這一過程就叫這一過程就叫中斷中斷。 這段特定的處理程序叫做這段特定的處理程序叫做中斷服務(wù)程序中斷服務(wù)程序。中斷方式:中斷方式:當(dāng)外設(shè)作好傳送準(zhǔn)備后,主動(dòng)向當(dāng)外設(shè)作好傳送準(zhǔn)備后,主動(dòng)向CPUCPU請求中斷,請求中斷,CPUCPU響應(yīng)中斷后在中斷處理程序中與外設(shè)交換數(shù)據(jù)。響應(yīng)中斷后在中斷處理

2、程序中與外設(shè)交換數(shù)據(jù)。若外設(shè)未準(zhǔn)備好,若外設(shè)未準(zhǔn)備好,CPUCPU可以執(zhí)行其他程序,提高了可以執(zhí)行其他程序,提高了CPUCPU的利用率的利用率每條指令完成后,每條指令完成后,CPUCPU均可響應(yīng)中斷均可響應(yīng)中斷,因此當(dāng)設(shè)備準(zhǔn)備好時(shí),可及,因此當(dāng)設(shè)備準(zhǔn)備好時(shí),可及時(shí)與時(shí)與CPUCPU交換數(shù)據(jù),提高了實(shí)時(shí)性交換數(shù)據(jù),提高了實(shí)時(shí)性二、中斷處理過程二、中斷處理過程不論哪種中斷都遵循同樣的中斷處理過程不論哪種中斷都遵循同樣的中斷處理過程中斷源中斷源中斷中斷請求請求 當(dāng)當(dāng) 前前 程程 序序中斷中斷服務(wù)服務(wù)程序程序程序斷點(diǎn)程序斷點(diǎn)中斷返回中斷返回中斷響應(yīng)中斷響應(yīng)中斷:中斷:處理器暫停執(zhí)行當(dāng)前處理器暫停執(zhí)行當(dāng)

3、前程序,轉(zhuǎn)而處理隨機(jī)發(fā)生的程序,轉(zhuǎn)而處理隨機(jī)發(fā)生的事件,處理完畢后再返回到事件,處理完畢后再返回到斷點(diǎn)處繼續(xù)執(zhí)行原來程序的斷點(diǎn)處繼續(xù)執(zhí)行原來程序的過程。過程。中斷基本過程:中斷基本過程:(1)中斷請求中斷請求(2)中斷判優(yōu)中斷判優(yōu)(3)中斷響應(yīng)中斷響應(yīng)(4)中斷處理中斷處理(5)中斷返回中斷返回(1)中斷請求:中斷請求:中斷源發(fā)出中斷請求(不同中斷源發(fā)出中斷請求的條件不同)中斷源發(fā)出中斷請求(不同中斷源發(fā)出中斷請求的條件不同)(2)中斷判優(yōu):中斷判優(yōu):當(dāng)多個(gè)中斷源同時(shí)提出中斷請求時(shí),當(dāng)多個(gè)中斷源同時(shí)提出中斷請求時(shí),CPU首先響應(yīng)優(yōu)先級最首先響應(yīng)優(yōu)先級最高的中斷并決定是否能實(shí)現(xiàn)中斷嵌套。高的中斷

4、并決定是否能實(shí)現(xiàn)中斷嵌套。通常一個(gè)系統(tǒng)有多個(gè)中斷源,而通常一個(gè)系統(tǒng)有多個(gè)中斷源,而CPU同一時(shí)刻只能響應(yīng)一個(gè)中斷源的同一時(shí)刻只能響應(yīng)一個(gè)中斷源的請求,那么當(dāng)多個(gè)中斷源同時(shí)請求中斷服務(wù)時(shí),應(yīng)該先響應(yīng)哪一個(gè),請求,那么當(dāng)多個(gè)中斷源同時(shí)請求中斷服務(wù)時(shí),應(yīng)該先響應(yīng)哪一個(gè),有一個(gè)次序安排的問題。按中斷源的輕重緩急程度確定的優(yōu)先級別,有一個(gè)次序安排的問題。按中斷源的輕重緩急程度確定的優(yōu)先級別,稱為稱為優(yōu)先級優(yōu)先級。除法錯(cuò)除法錯(cuò) INT0指令指令 INT n溢出溢出 INTONMIINTR單步單步 INT1優(yōu)先級遞增優(yōu)先級遞增高高低低當(dāng)當(dāng)CPU正在響應(yīng)正在響應(yīng)某一中斷源的請求,執(zhí)行為其服務(wù)的中斷服務(wù)程序時(shí),

5、如果有某一中斷源的請求,執(zhí)行為其服務(wù)的中斷服務(wù)程序時(shí),如果有優(yōu)先級更高優(yōu)先級更高的中斷源的中斷源發(fā)出請求發(fā)出請求,CPU將中止正在執(zhí)行的中斷服務(wù)程序而轉(zhuǎn)入新將中止正在執(zhí)行的中斷服務(wù)程序而轉(zhuǎn)入新的中斷源服務(wù),等新的中斷服務(wù)程序執(zhí)行完后,再返回到被中止的中斷服務(wù)程的中斷源服務(wù),等新的中斷服務(wù)程序執(zhí)行完后,再返回到被中止的中斷服務(wù)程序,這一過程稱為序,這一過程稱為中斷嵌套中斷嵌套。中斷嵌套可以有。中斷嵌套可以有多級多級,具體級數(shù)原則上不限,只,具體級數(shù)原則上不限,只取決于堆棧深度取決于堆棧深度1#中斷請求中斷請求響應(yīng)響應(yīng)返回返回1#中斷中斷服務(wù)程序服務(wù)程序2#中斷請求中斷請求響應(yīng)響應(yīng)返回返回2#中斷

6、中斷服務(wù)程序服務(wù)程序3#中斷請求中斷請求響應(yīng)響應(yīng)返回返回3#中斷中斷服務(wù)程序服務(wù)程序原主程序原主程序中斷優(yōu)先級中斷優(yōu)先級3#2#1#(3)中斷響應(yīng)中斷響應(yīng)除除(1)(2)外還需中斷允許標(biāo)志位(外還需中斷允許標(biāo)志位(IF)為)為1才可以響應(yīng)中斷。才可以響應(yīng)中斷。注:注:(1)CPU在復(fù)位時(shí),在復(fù)位時(shí),IF復(fù)位為復(fù)位為0,因此在,因此在使用中斷時(shí)要開中斷使用中斷時(shí)要開中斷 (2)CPU在響應(yīng)中斷后自動(dòng)關(guān)閉中斷在響應(yīng)中斷后自動(dòng)關(guān)閉中斷,要實(shí)現(xiàn)中斷,要實(shí)現(xiàn)中斷嵌套嵌套需要在進(jìn)入中斷服需要在進(jìn)入中斷服務(wù)子程序后務(wù)子程序后開中斷開中斷STI開中斷指令開中斷指令將標(biāo)志寄存器中的中斷標(biāo)志位將標(biāo)志寄存器中的中斷

7、標(biāo)志位IF置置1,允許允許CPU響應(yīng)來自響應(yīng)來自INTR引引腳的中斷請求腳的中斷請求CLI關(guān)中斷指令關(guān)中斷指令將標(biāo)志寄存器中的中斷標(biāo)志位將標(biāo)志寄存器中的中斷標(biāo)志位IF清清0,使,使CPU不響應(yīng)來自不響應(yīng)來自INTR引引腳的中斷請求腳的中斷請求響應(yīng)中斷時(shí)響應(yīng)中斷時(shí)自動(dòng)自動(dòng)進(jìn)行相應(yīng)的處理:進(jìn)行相應(yīng)的處理:保護(hù)狀態(tài)標(biāo)志保護(hù)狀態(tài)標(biāo)志、保護(hù)斷點(diǎn)保護(hù)斷點(diǎn)、獲獲取中斷向量取中斷向量(中斷服務(wù)程序的入口地址)(中斷服務(wù)程序的入口地址)(4)中斷處理中斷處理(1)(1)保護(hù)現(xiàn)場:保護(hù)現(xiàn)場:將中斷服務(wù)程序中要用到的寄存器的內(nèi)容壓入堆棧保存。將中斷服務(wù)程序中要用到的寄存器的內(nèi)容壓入堆棧保存。(2)(2)開中斷;開中

8、斷;(3)(3)執(zhí)行中斷服務(wù)處理程序;執(zhí)行中斷服務(wù)處理程序;(4)(4)關(guān)中斷;關(guān)中斷;(5)(5)恢復(fù)現(xiàn)場:恢復(fù)現(xiàn)場:將相關(guān)寄存器的內(nèi)容彈出堆棧。將相關(guān)寄存器的內(nèi)容彈出堆棧。(5)(5)中斷返回中斷返回IRETIRET中斷返回指令中斷返回指令中斷服務(wù)程序的出口指令,從棧頂彈出中斷服務(wù)程序的出口指令,從棧頂彈出6 6個(gè)字節(jié)依次寫入個(gè)字節(jié)依次寫入IPIP、CSCS和和標(biāo)志寄存器標(biāo)志寄存器1.1. POP IPPOP IP2.2. POP CSPOP CS3.3. POPFPOPF注注: :在執(zhí)行在執(zhí)行IRETIRET之前必須保證棧頂是斷點(diǎn)地址,否則執(zhí)行之前必須保證棧頂是斷點(diǎn)地址,否則執(zhí)行IRET

9、IRET指令指令將導(dǎo)致系統(tǒng)癱瘓將導(dǎo)致系統(tǒng)癱瘓中斷的類型中斷的類型中斷的類型中斷的類型PCPC系列微機(jī)最多可以支持系列微機(jī)最多可以支持256256種中斷,它們被分為四種類型:種中斷,它們被分為四種類型:1.1.內(nèi)部中斷和異常內(nèi)部中斷和異常: : 被零除、單步、溢出、斷點(diǎn)被零除、單步、溢出、斷點(diǎn)2.2.軟件中斷軟件中斷: : 指令中斷指令中斷 INT nINT n3.3.外部可屏蔽中斷外部可屏蔽中斷:INTR :INTR (CPU(CPU可以控制是否響應(yīng)中斷可以控制是否響應(yīng)中斷) )4.4.外部非屏蔽中斷外部非屏蔽中斷:NMI :NMI (有中斷請求(有中斷請求CPUCPU就需響應(yīng))就需響應(yīng)) 1

10、 1、2 2屬于內(nèi)部中斷,屬于內(nèi)部中斷,3 3、4 4屬于外部中斷。屬于外部中斷。外部中斷源有:外部中斷源有:(1 1)I/OI/O設(shè)備,如鍵盤,顯示器(設(shè)備,如鍵盤,顯示器(CRTCRT),打印機(jī)等;),打印機(jī)等;(2 2)數(shù)據(jù)通道,如磁盤,磁帶等;)數(shù)據(jù)通道,如磁盤,磁帶等;(3 3)實(shí)時(shí)鐘,如外部所需的定時(shí)電路等;)實(shí)時(shí)鐘,如外部所需的定時(shí)電路等;(4 4)故障源,如掉電、存儲(chǔ)器奇偶校驗(yàn)錯(cuò)。)故障源,如掉電、存儲(chǔ)器奇偶校驗(yàn)錯(cuò)。每個(gè)中斷和異常都指定了一個(gè)類型號(hào)代表不同的優(yōu)先級。每個(gè)中斷和異常都指定了一個(gè)類型號(hào)代表不同的優(yōu)先級。1. 內(nèi)部中斷和異常內(nèi)部中斷和異常處理器執(zhí)行某些操作而引起的中斷

11、,包括除法錯(cuò)誤異常、單步調(diào)試中斷、斷點(diǎn)處理器執(zhí)行某些操作而引起的中斷,包括除法錯(cuò)誤異常、單步調(diào)試中斷、斷點(diǎn)中斷等中斷等這類中斷使用了這類中斷使用了00H07H中的若干個(gè)中斷號(hào)中的若干個(gè)中斷號(hào)INT0-除法錯(cuò)誤除法錯(cuò)誤, 沒有沒有INT0形式的指令,形式的指令, CPU自動(dòng)產(chǎn)生自動(dòng)產(chǎn)生INT1-單步中斷,同樣也沒有單步中斷,同樣也沒有INT1形式的指令,形式的指令,TF1時(shí)產(chǎn)生時(shí)產(chǎn)生INT2 -NMI,CPU處理外部緊急事件,硬件中斷處理外部緊急事件,硬件中斷INT3-格式:格式:INT, 斷點(diǎn)中斷斷點(diǎn)中斷INT4-格式:格式:INTO,溢出中斷,溢出中斷,OF1時(shí)配合時(shí)配合INTO執(zhí)行執(zhí)行 中

12、斷的類型中斷的類型2.軟件中斷軟件中斷執(zhí)行執(zhí)行有定義的有定義的INT nINT n指令而引發(fā)的中斷,稱為指令而引發(fā)的中斷,稱為軟件中斷軟件中斷,它的形式,它的形式是是INT n, INT n, 包括包括BIOSBIOS中斷和中斷和DOSDOS中斷,以及用戶自定義中斷等中斷,以及用戶自定義中斷等有定義的有定義的 INT nINT n :并非所有的中斷號(hào)都有對應(yīng)的中斷:并非所有的中斷號(hào)都有對應(yīng)的中斷 服務(wù)程序,服務(wù)程序,沒有定義的中斷的沒有定義的中斷的INT n INT n 是無意義的。是無意義的。定義定義 INT n INT n 包含三個(gè)內(nèi)容:包含三個(gè)內(nèi)容:1 1。確定合適的中斷號(hào)。確定合適的中

13、斷號(hào)n n2 2。用過程的形式完成中斷服務(wù)子程序。用過程的形式完成中斷服務(wù)子程序 3 3。將此過程的邏輯地址植入相應(yīng)的中斷矢量。將此過程的邏輯地址植入相應(yīng)的中斷矢量中斷的類型中斷的類型3.外部可屏蔽中斷外部可屏蔽中斷 外部可屏蔽中斷是處理器響應(yīng)各種外部硬件中斷的外部可屏蔽中斷是處理器響應(yīng)各種外部硬件中斷的最常用最常用的方法,的方法,通過通過CPUCPU的的INTRINTR引腳引腳產(chǎn)生產(chǎn)生外部可屏蔽中斷,受處理器內(nèi)部的中斷允許標(biāo)外部可屏蔽中斷,受處理器內(nèi)部的中斷允許標(biāo)志位志位IFIF的控制,處理器以電平觸發(fā)方式接受的控制,處理器以電平觸發(fā)方式接受INTRINTR請求,當(dāng)每條指令結(jié)請求,當(dāng)每條指令

14、結(jié)束時(shí),若束時(shí),若INTRINTR為為高高電平且電平且IF=1IF=1,則,則CPUCPU響應(yīng)相應(yīng)響應(yīng)相應(yīng)I/OI/O接口的中斷請求。接口的中斷請求。處理器只有一個(gè)處理器只有一個(gè)INTRINTR引腳可以接受外部可屏蔽中斷請求,為了引腳可以接受外部可屏蔽中斷請求,為了管理管理眾眾多的外部中斷源,微機(jī)系統(tǒng)中采用多的外部中斷源,微機(jī)系統(tǒng)中采用可編程中斷控制器可編程中斷控制器82598259。PCPC系列機(jī)系列機(jī)通過通過兩片兩片82598259級連可以響應(yīng)級連可以響應(yīng)1515個(gè)外部中斷源個(gè)外部中斷源。中斷的類型中斷的類型4.外部非屏蔽中斷外部非屏蔽中斷為外部為外部緊急請求緊急請求提供服務(wù)的中斷,通過處

15、理器的提供服務(wù)的中斷,通過處理器的NMINMI引腳產(chǎn)生引腳產(chǎn)生NMINMI輸入是上升沿觸發(fā)的,輸入是上升沿觸發(fā)的,只要只要NMINMI輸入端上出現(xiàn)由輸入端上出現(xiàn)由0 0到到1 1的跳變,一的跳變,一個(gè)中斷服務(wù)請求就被鎖存在個(gè)中斷服務(wù)請求就被鎖存在CPUCPU中,中,與與IFIF標(biāo)志的狀態(tài)無關(guān)標(biāo)志的狀態(tài)無關(guān)NMINMI有一個(gè)專用的類型號(hào)有一個(gè)專用的類型號(hào)0202H H使用非屏蔽中斷的典型例子是使用非屏蔽中斷的典型例子是電源故障電源故障中斷中斷中斷的類型中斷的類型中斷響應(yīng)過程中斷響應(yīng)過程 一、內(nèi)部中斷響應(yīng)過程一、內(nèi)部中斷響應(yīng)過程對于專用中斷,中斷類型碼自動(dòng)產(chǎn)生,對于對于專用中斷,中斷類型碼自動(dòng)產(chǎn)生

16、,對于INT n指令。指令。N為中斷類型碼,為中斷類型碼,獲取類型碼后的處理過程如下:獲取類型碼后的處理過程如下:類型碼乘以類型碼乘以4后,得到中斷向量地址;后,得到中斷向量地址;將標(biāo)志寄存器壓棧將標(biāo)志寄存器壓棧 (PUSH F)將將TF置置0(TF=0),禁止單步操作,禁止單步操作, 將將IF置置0 (IF=0) ,使,使CPU處于關(guān)中斷狀態(tài)處于關(guān)中斷狀態(tài)斷點(diǎn)的斷點(diǎn)的CS、IP壓棧壓棧(PUSH CS PUSH IP)從中斷向量表取從中斷向量表取n號(hào)中斷向量號(hào)中斷向量 IP、CS (CS=n*4+2, IP=n*4 )轉(zhuǎn)向轉(zhuǎn)向n號(hào)中斷服務(wù)程序號(hào)中斷服務(wù)程序二、外部中斷響應(yīng)過程二、外部中斷響應(yīng)

17、過程1、非屏蔽中斷響應(yīng):、非屏蔽中斷響應(yīng):CPU檢測到非屏蔽中斷請求,自動(dòng)產(chǎn)生中斷類型碼,檢測到非屏蔽中斷請求,自動(dòng)產(chǎn)生中斷類型碼,得到中斷向量地址。得到中斷向量地址。后續(xù)的處理同內(nèi)部中斷。后續(xù)的處理同內(nèi)部中斷。2、可屏蔽中斷響應(yīng):、可屏蔽中斷響應(yīng): 通過通過IF來決定,來決定,IF1可以響應(yīng)中斷??梢皂憫?yīng)中斷。中斷響應(yīng)過程中斷響應(yīng)過程中斷的優(yōu)先級中斷的優(yōu)先級 8088在內(nèi)存的前在內(nèi)存的前1k字節(jié)建立了一個(gè)字節(jié)建立了一個(gè)中斷向量表,可存儲(chǔ)中斷向量表,可存儲(chǔ)256個(gè)中斷向量,個(gè)中斷向量,每個(gè)中斷向量占用每個(gè)中斷向量占用4個(gè)字節(jié),分別存放個(gè)字節(jié),分別存放中斷服務(wù)程序入口地址的段地址和偏中斷服務(wù)程序

18、入口地址的段地址和偏移量。移量。每個(gè)中斷向量以類型碼加以區(qū)別,如:每個(gè)中斷向量以類型碼加以區(qū)別,如: Int 21h DOS系統(tǒng)功能中斷系統(tǒng)功能中斷 Int 10h 屏幕顯示屏幕顯示 鍵盤中斷鍵盤中斷 類型碼類型碼 9 當(dāng)執(zhí)行中斷時(shí),當(dāng)執(zhí)行中斷時(shí),CPU將中斷類型碼乘以將中斷類型碼乘以4后,后,得到中斷向量地址,進(jìn)而得到得到中斷向量地址,進(jìn)而得到IP和和CS的值,的值,它就是中斷服務(wù)程序的入口地址,程序由此轉(zhuǎn)它就是中斷服務(wù)程序的入口地址,程序由此轉(zhuǎn)入中斷服務(wù)程序執(zhí)行。入中斷服務(wù)程序執(zhí)行。000000000C00013C1F1F3C:0100 (1F4C0)PUSH AXPUSH BX003FF

19、中中斷斷向向量量表表INT 3中中斷斷服服務(wù)務(wù)程程序序中斷向量中斷向量中斷向量表中斷向量表中斷向量表中斷向量表 03 0 除以除以0 47 1 單步單步 8B 2 非屏蔽非屏蔽 C CF F 3 斷點(diǎn)斷點(diǎn) 1013 4 溢出溢出 1417 5 打印屏幕打印屏幕 181B 6 保留保留 1D1F 7 保留保留 2023 8 定時(shí)器定時(shí)器 2427 9 鍵盤鍵盤 282B A 保留的硬中斷保留的硬中斷 2C2F B 異步通信(異步通信(COM2) 3033 C 異步通信(異步通信(COM1) 3437 D 硬盤硬盤 383B E 軟盤軟盤 3C3F F 并行打印機(jī)并行打印機(jī)4043 10 視頻顯示

20、視頻顯示I/O調(diào)用調(diào)用4447 11 設(shè)備檢測調(diào)用設(shè)備檢測調(diào)用484B 12 存儲(chǔ)器容量檢測存儲(chǔ)器容量檢測4C4F 13 軟軟/硬盤硬盤I/O調(diào)用調(diào)用5053 14 通信通信I/O調(diào)用調(diào)用5457 15 盒式磁帶盒式磁帶I/O調(diào)用調(diào)用585B 16 鍵盤鍵盤I/O調(diào)用調(diào)用5C5F 17 打印機(jī)打印機(jī)I/O調(diào)用調(diào)用6063 18 ROM BASIC6467 19 引導(dǎo)程序入口引導(dǎo)程序入口686B 1A 時(shí)間調(diào)用時(shí)間調(diào)用6C6F 1B 鍵盤鍵盤CTRL-BREAK控制控制7073 1C 定時(shí)器報(bào)時(shí)定時(shí)器報(bào)時(shí)7477 1D 顯示器參數(shù)表顯示器參數(shù)表787B 1E 軟盤參數(shù)表軟盤參數(shù)表7C7F 1F

21、字符點(diǎn)陣結(jié)構(gòu)參數(shù)表字符點(diǎn)陣結(jié)構(gòu)參數(shù)表8083 20 程序結(jié)束,返回程序結(jié)束,返回DOS8487 21 DOS系統(tǒng)功能調(diào)用系統(tǒng)功能調(diào)用888B 22 程序結(jié)束地址程序結(jié)束地址8C8F 23 CTRL_BREAK退出地址退出地址9093 24 標(biāo)準(zhǔn)錯(cuò)誤出口地址標(biāo)準(zhǔn)錯(cuò)誤出口地址9497 25 絕對磁盤讀絕對磁盤讀989B 26 絕對磁盤寫絕對磁盤寫9C9F 27 程序結(jié)束,駐留內(nèi)存程序結(jié)束,駐留內(nèi)存A0FF 283F 為為DOS保留保留10017F 405F 保留保留18019F 6067 為用戶軟中斷保留為用戶軟中斷保留1A01FF 687F 不用不用200217 8085 BASIC使用使用21

22、83C3 86F0 BASIC運(yùn)行時(shí),用于解釋運(yùn)行時(shí),用于解釋3C43FF F1FF 未用未用中斷向量表的操作中斷向量表的操作 當(dāng)當(dāng)CPUCPU響應(yīng)中斷,便從中斷向量表中相繼取出響應(yīng)中斷,便從中斷向量表中相繼取出偏移地址偏移地址和段地址作為中斷服務(wù)和段地址作為中斷服務(wù)程序的入口地址,而轉(zhuǎn)移去執(zhí)行中斷服務(wù)程序。程序的入口地址,而轉(zhuǎn)移去執(zhí)行中斷服務(wù)程序。因此,當(dāng)用戶要編寫因此,當(dāng)用戶要編寫自己自己的中斷的中斷服務(wù)程序時(shí),必須將服務(wù)程序的服務(wù)程序時(shí),必須將服務(wù)程序的入口地址入口地址填入系統(tǒng)的填入系統(tǒng)的中斷向量表中斷向量表中。中。 下面所示程序表示怎樣填寫下面所示程序表示怎樣填寫中斷向量表中斷向量表,

23、以實(shí)現(xiàn)用戶所定義的,以實(shí)現(xiàn)用戶所定義的60H60H中斷。中斷。 CLICLI MOV AX,0 MOV AX,0 MOV ES,AX MOV ES,AX MOV DI,4 MOV DI,4* *60H 60H ;中斷向量表中位置;中斷向量表中位置 MOV AX,OFFSET INTREMOV AX,OFFSET INTRE STOSW STOSW ; ;存入偏移量自動(dòng)修改存入偏移量自動(dòng)修改DIDI MOV AX,SEG INTRE MOV AX,SEG INTRE STOSW STOSW ;存入段基址;存入段基址 STISTIINTRE PROC PUSH AX PUSH BX . . . P

24、OP BX POP AX IRETINTRE ENDPINT 60H 也可以也可以DOSDOS功能調(diào)用實(shí)現(xiàn)這一功能。功能調(diào)用實(shí)現(xiàn)這一功能。 CLICLIPUSH DSPUSH DSMOV MOV AX,SEG INTRAX,SEG INTRMOV MOV DSDS,AX,AXMOV MOV DX,OFFSET INTRDX,OFFSET INTR ;中斷服務(wù)程序入口地;中斷服務(wù)程序入口地址放入址放入DS:DXDS:DX中中MOV AH,25H MOV AH,25H ;功能號(hào);功能號(hào)25H25H送入送入AHAH中中 MOV AL,60H MOV AL,60H ;類型碼放入;類型碼放入ALALIN

25、T 21H INT 21H ;調(diào)用;調(diào)用21H 21H 中斷中斷POP DSPOP DSSTI STI INTRE PROC PUSH AX PUSH BX . . . POP BX POP AX IRETINTRE ENDP中斷向量表的操作中斷向量表的操作可調(diào)用相應(yīng)的可調(diào)用相應(yīng)的DOS功能,讀寫中斷向量表功能,讀寫中斷向量表取中斷向量取中斷向量預(yù)置預(yù)置AH=35H, AL=中斷類型號(hào)中斷類型號(hào)執(zhí)行執(zhí)行INT 21H把類型號(hào)為把類型號(hào)為AL的中斷向量取出到的中斷向量取出到ES:BX中中設(shè)置中斷向量設(shè)置中斷向量預(yù)置預(yù)置AH=25H, AL=中斷類型號(hào)中斷類型號(hào),DS:DX=中斷向量中斷向量執(zhí)行執(zhí)

26、行INT 21H把把DS:DX指向的中斷向量放置到中斷向量表中類型號(hào)為指向的中斷向量放置到中斷向量表中類型號(hào)為AL的中斷向量處的中斷向量處例:用戶定義的例:用戶定義的中斷服務(wù)程序置換系統(tǒng)原有的中斷服務(wù)程序置換系統(tǒng)原有的nXX中斷服務(wù)中斷服務(wù)程序程序DATA SEGMENT OLD_INT_SEG DW ?OLD_INT_OFF DW ?DATA ENDS.MOV AL, XXMOV AH, 35HINT 21HMOV OLD_INT_SEG, ESMOV OLD_INT_OFF, BXCLIPUSH DSMOV AX, SEG NEW_INTMOV DS, AXMOV DX, OFFSET N

27、EW_INTMOV AH, 25HMOV AL, XXINT 21HPOP DSSTICLIPUSH DSMOV AX, SEG OLD_INT_SEGMOV DS, AXMOV DX, OFFSET OLD_INT_OFFMOV AH, 25HMOV AL, XXINT 21H.中斷向量表的操作中斷向量表的操作8259A可編程中斷控制器可編程中斷控制器8259A內(nèi)部結(jié)構(gòu)和引腳內(nèi)部結(jié)構(gòu)和引腳8259A的工作過程的工作過程8259A的工作方式的工作方式 8259A內(nèi)部結(jié)構(gòu)和引腳內(nèi)部結(jié)構(gòu)和引腳 Intel 8259A是兼容于是兼容于8080/8085和和8086/8088系列的可編程中斷控制器,系

28、列的可編程中斷控制器,其功能主要有:其功能主要有:1) 單片單片8259A可管理可管理8級中斷;級中斷;2) 通過級連,可管理多于通過級連,可管理多于8級的中斷,在不增加其它電路的前提下,可使級的中斷,在不增加其它電路的前提下,可使 用用9片片8259A構(gòu)成構(gòu)成64級主從式中斷系統(tǒng);級主從式中斷系統(tǒng);3) 每一級中斷都可通過編程使之被屏蔽或被允許;每一級中斷都可通過編程使之被屏蔽或被允許;4) 8259A可通過編程被設(shè)定為幾種不同的工作方式;可通過編程被設(shè)定為幾種不同的工作方式;5) 8259采用采用NMOS工藝,只需要一組工藝,只需要一組5V電源。電源。CS WRRDD7D6D5D4D3D2

29、D1D0CAS0CAS1GNDVccA0INTAIR7IR6IR5IR4IR3IR2IR1IR0INTSP/ENCAS2D7D7D0 D0 三態(tài)數(shù)據(jù)總線(雙向)三態(tài)數(shù)據(jù)總線(雙向)RD RD 讀輸入讀輸入WR WR 寫輸入寫輸入A0 A0 選擇內(nèi)部寄存器地址選擇內(nèi)部寄存器地址CS CS 片選片選CAS0CAS0CAS2 CAS2 級連線級連線SP/EN SP/EN 從程序從程序/ /允許緩沖允許緩沖INT INT 中斷請求輸出中斷請求輸出INTA INTA 中斷響應(yīng)輸入中斷響應(yīng)輸入IR0IR0IR7 IR7 中斷請求輸入中斷請求輸入 8259管腳對照表管腳對照表1 282 273 264 25

30、5 246 237 228 219 2010 1911 1812 1713 1614 15管腳信號(hào)管腳信號(hào)數(shù)據(jù)總線數(shù)據(jù)總線 緩沖器緩沖器讀讀/寫寫邏輯邏輯 級聯(lián)緩沖級聯(lián)緩沖 比較器比較器控控 制制 邏邏 輯輯在服在服務(wù)寄務(wù)寄存器存器 ISR優(yōu)先優(yōu)先權(quán)電權(quán)電路路 中斷中斷請 求請 求寄 存寄 存器器 IRR中斷屏蔽寄存器中斷屏蔽寄存器IMRIR0IR7D7D0INTA INTRDWRA0CSCAS0CAS1CAS2SP/EN內(nèi)部數(shù)據(jù)總線IR18位雙向三態(tài)。是與位雙向三態(tài)。是與CPU進(jìn)行數(shù)據(jù)進(jìn)行數(shù)據(jù)交換的數(shù)據(jù)通道,交換的數(shù)據(jù)通道,CPU對它的讀出對它的讀出和寫入都是通過該緩沖器進(jìn)行的。和寫入都是通

31、過該緩沖器進(jìn)行的。用于用于CPU對對8259A進(jìn)進(jìn)行讀寫控制行讀寫控制用于多片用于多片8259A進(jìn)行級連進(jìn)行級連根據(jù)設(shè)定的工作方式根據(jù)設(shè)定的工作方式管理整個(gè)芯片的工作管理整個(gè)芯片的工作8位寄存器。用于存放來位寄存器。用于存放來自外設(shè)的中斷請求信號(hào),自外設(shè)的中斷請求信號(hào),當(dāng)某引腳有中斷請求信號(hào)當(dāng)某引腳有中斷請求信號(hào)時(shí),相應(yīng)的位被置時(shí),相應(yīng)的位被置1。0 0 0 1 0 1 1 0IRR8位寄存器。用于存放正在處位寄存器。用于存放正在處理的中斷請求信號(hào),理的中斷請求信號(hào),8259A在接收到在接收到CPU的響應(yīng)信號(hào)的響應(yīng)信號(hào)(INTA)后,使相應(yīng)位置)后,使相應(yīng)位置1。0 0 0 1 0 10 0I

32、SR用于識(shí)別和管理各種中用于識(shí)別和管理各種中斷請求信號(hào)的優(yōu)先級別。斷請求信號(hào)的優(yōu)先級別。8位寄存器用于存放對中斷請求位寄存器用于存放對中斷請求的屏蔽信息。當(dāng)某位被編程設(shè)的屏蔽信息。當(dāng)某位被編程設(shè)置為置為1 時(shí),則相應(yīng)的中斷請求時(shí),則相應(yīng)的中斷請求信號(hào)被屏蔽,不會(huì)被送到信號(hào)被屏蔽,不會(huì)被送到CPU.1 0 0 0 0 0 0 1IMR8259A的工作過程的工作過程 1。硬件有中斷請求,IRR置位 2。INT 向INTR發(fā)中斷請求 3。若IF=1,則第一個(gè)INTA響應(yīng),最高優(yōu)先級的 ISR置位,IRR復(fù)位 5。第二個(gè)INTA脈沖,送中斷類型碼。若為自動(dòng)中斷結(jié)束方式,則ISR相應(yīng)位復(fù)位,執(zhí)行中斷服務(wù)

33、子程序。 6。對非AEOI ,發(fā)EOI指令使得ISR相應(yīng)的位清0??善帘沃袛囗憫?yīng)周期可屏蔽中斷響應(yīng)周期8088響應(yīng)中斷,到轉(zhuǎn)入中斷處理,要經(jīng)過兩個(gè)中斷響應(yīng)周期。響應(yīng)中斷,到轉(zhuǎn)入中斷處理,要經(jīng)過兩個(gè)中斷響應(yīng)周期。T1 T2 T3 T4 T1 T2 T3 T4第一個(gè)中斷響應(yīng)周期第一個(gè)中斷響應(yīng)周期第二個(gè)中斷響應(yīng)周期第二個(gè)中斷響應(yīng)周期CLKALEINTAAD7AD0向量類型碼向量類型碼第一個(gè)第一個(gè)INTA信號(hào):信號(hào):將在將在服務(wù)寄存器服務(wù)寄存器ISR相應(yīng)位置位,表示正在為響應(yīng)的那相應(yīng)位置位,表示正在為響應(yīng)的那一級服務(wù);同時(shí)將中斷請求觸發(fā)器復(fù)位。為本級再次中斷請求做好準(zhǔn)備。一級服務(wù);同時(shí)將中斷請求觸發(fā)器

34、復(fù)位。為本級再次中斷請求做好準(zhǔn)備。第二個(gè)第二個(gè)INTA信號(hào):要求信號(hào):要求8259A輸入中斷向量類型碼。輸入中斷向量類型碼。8259A的工作方式的工作方式中斷觸發(fā)方式中斷觸發(fā)方式普通全嵌套方式普通全嵌套方式特殊全嵌套方式特殊全嵌套方式自動(dòng)循環(huán)方式自動(dòng)循環(huán)方式特殊循環(huán)方式特殊循環(huán)方式優(yōu)先權(quán)固定方式優(yōu)先權(quán)固定方式優(yōu)先權(quán)循環(huán)方式優(yōu)先權(quán)循環(huán)方式設(shè)置優(yōu)先權(quán)方式設(shè)置優(yōu)先權(quán)方式普通中斷結(jié)束方式普通中斷結(jié)束方式特殊中斷結(jié)束方式特殊中斷結(jié)束方式自動(dòng)中斷結(jié)束方式自動(dòng)中斷結(jié)束方式非自動(dòng)中斷結(jié)束方式非自動(dòng)中斷結(jié)束方式結(jié)束中斷處理方式結(jié)束中斷處理方式屏蔽中斷源方式屏蔽中斷源方式普通屏蔽方式普通屏蔽方式特殊屏蔽方式特殊屏

35、蔽方式邊沿觸發(fā)方式邊沿觸發(fā)方式電平觸發(fā)方式電平觸發(fā)方式返回到初始化返回到初始化優(yōu)先級控制方式優(yōu)先級控制方式兩類優(yōu)先級控制方式:兩類優(yōu)先級控制方式:固定優(yōu)先級固定優(yōu)先級和和循環(huán)優(yōu)先級循環(huán)優(yōu)先級固定優(yōu)先級方式(固定優(yōu)先級方式(普通全嵌套普通全嵌套方式和方式和特殊全嵌套特殊全嵌套方式)方式)所有中斷請求所有中斷請求IRi的中斷優(yōu)先級固定不變的中斷優(yōu)先級固定不變優(yōu)先級排列順序可編程改變優(yōu)先級排列順序可編程改變加電后加電后8259A的默認(rèn)方式,默認(rèn)優(yōu)先級順序從高到低為的默認(rèn)方式,默認(rèn)優(yōu)先級順序從高到低為IR0IR7IR7IR6IR5IR4IR3IR2IR1IR07654321032107654最低級最高

36、級最高級最低級優(yōu)先級優(yōu)先級IR7IR6IR5IR4IR3IR2IR1IR0默認(rèn)優(yōu)先級默認(rèn)優(yōu)先級優(yōu)先級可編程改變優(yōu)先級可編程改變固定優(yōu)先級的中斷嵌套固定優(yōu)先級的中斷嵌套在中斷處理過程中允許被更高優(yōu)先級的事件所中斷稱為在中斷處理過程中允許被更高優(yōu)先級的事件所中斷稱為中斷嵌套中斷嵌套。8259A有兩種中斷嵌套方式:有兩種中斷嵌套方式:普通全嵌套方式普通全嵌套方式(默認(rèn)方式)(默認(rèn)方式) 中斷請求優(yōu)先級順序是中斷請求優(yōu)先級順序是IRQ 0IRQ7。當(dāng)一個(gè)中斷被響應(yīng)時(shí),中斷服務(wù)寄存器當(dāng)一個(gè)中斷被響應(yīng)時(shí),中斷服務(wù)寄存器ISR相應(yīng)位被置為相應(yīng)位被置為“1”,且保持到中斷服務(wù)程序,且保持到中斷服務(wù)程序在返回前

37、發(fā)中斷結(jié)束命令為止。在返回前發(fā)中斷結(jié)束命令為止。在在ISR位置位期間,位置位期間,禁止再發(fā)生同級或較低級的中斷禁止再發(fā)生同級或較低級的中斷,較高級的中斷請求仍能產(chǎn)生中斷。,較高級的中斷請求仍能產(chǎn)生中斷。每個(gè)中斷請求可分別由每個(gè)中斷請求可分別由IMR相應(yīng)位屏蔽。(相應(yīng)位屏蔽。(OCW1)特殊全嵌套方式特殊全嵌套方式 中斷正被處理時(shí),允許中斷正被處理時(shí),允許同級或更高優(yōu)先級同級或更高優(yōu)先級的事件可以打斷當(dāng)前的中的事件可以打斷當(dāng)前的中斷處理過程而被服務(wù)。斷處理過程而被服務(wù)。注注: 特殊全嵌套僅用于多個(gè)特殊全嵌套僅用于多個(gè)8259A級聯(lián)系統(tǒng)中的主片級聯(lián)系統(tǒng)中的主片8259A ,而不,而不能用于從能用于

38、從8259A或單或單8259A系統(tǒng)。系統(tǒng)。D.主主8259AIR0IR1IR2IR3IR4IR5IR6IR7普通嵌套方式:普通嵌套方式:從片的從片的INT被主片封被主片封鎖,故更鎖,故更高高級別的級別的IR0-IR2中斷也無法中斷也無法得到響應(yīng)得到響應(yīng)特殊嵌套方式:特殊嵌套方式:因主片不封鎖從片的因主片不封鎖從片的INT,故級別高的,故級別高的IR0-IR2中斷可以得到響應(yīng)。中斷可以得到響應(yīng)。( (但但I(xiàn)R3-IR7仍被本從仍被本從片封鎖片封鎖) )C.假定假定IR3發(fā)生中發(fā)生中斷斷,并獲得服務(wù)并獲得服務(wù)普通嵌套方式:普通嵌套方式:IR4的中斷被服務(wù)的中斷被服務(wù)時(shí),這些中斷將時(shí),這些中斷將被封

39、鎖。被封鎖。B.特殊嵌套方式:特殊嵌套方式:IR4的中斷被服的中斷被服務(wù) 時(shí) , 只 封 鎖務(wù) 時(shí) , 只 封 鎖IR5-IR7。A.INTE.從從8259AINTIR0IR1IR2IR3IR4IR5IR6IR7n普通全嵌套方式與特殊全嵌套方式的區(qū)別普通全嵌套方式與特殊全嵌套方式的區(qū)別 去去CPU循環(huán)優(yōu)先級方式循環(huán)優(yōu)先級方式(1)優(yōu)先權(quán)自動(dòng)循環(huán)方式)優(yōu)先權(quán)自動(dòng)循環(huán)方式 一般用于系統(tǒng)中有多個(gè)優(yōu)先級相等的中斷源的情況。一般用于系統(tǒng)中有多個(gè)優(yōu)先級相等的中斷源的情況。 在這種方式下,優(yōu)先級在這種方式下,優(yōu)先級隊(duì)列是變化的,一個(gè)設(shè)備受到服務(wù)后,其優(yōu)先級自動(dòng)降到最低。隊(duì)列是變化的,一個(gè)設(shè)備受到服務(wù)后,其優(yōu)

40、先級自動(dòng)降到最低。初始優(yōu)先級隊(duì)列是固定的,為:初始優(yōu)先級隊(duì)列是固定的,為: IRQ0 IRQ1 IRQ2 IRQ3 IRQ4 IRQ5 IRQ6 IRQ7 (由高到低)。如果這時(shí)(由高到低)。如果這時(shí)IRQ1有中斷請求,則在完成其中斷服務(wù)后,優(yōu)有中斷請求,則在完成其中斷服務(wù)后,優(yōu)先級隊(duì)列變?yōu)椋ㄓ筛叩降停合燃夑?duì)列變?yōu)椋ㄓ筛叩降停?IRQ2 IRQ3 IRQ4 IRQ5 IRQ6 IRQ7 IRQ0 IRQ1 (2)優(yōu)先級特殊循環(huán)方式優(yōu)先級特殊循環(huán)方式初始優(yōu)先級順序可用編程改變(特殊循環(huán)方式)初始優(yōu)先級順序可用編程改變(特殊循環(huán)方式)IR7IR6IR5IR4IR3IR2IR1IR0765432

41、1021076543最低級最高級最高級最低級ISR內(nèi)容內(nèi)容IR7IR6IR5IR4IR3IR2IR1IR0IR4的服務(wù)結(jié)束以前的服務(wù)結(jié)束以前0101000001000000IR4的服務(wù)結(jié)束以后的服務(wù)結(jié)束以后ISRi結(jié)束中斷處理方式結(jié)束中斷處理方式 當(dāng)某一當(dāng)某一IRi中斷被服務(wù)時(shí),中斷被服務(wù)時(shí),ISR中的相應(yīng)位中的相應(yīng)位ISRi=1。當(dāng)服務(wù)。當(dāng)服務(wù)結(jié)束后,則必須清零該結(jié)束后,則必須清零該ISRi位。使位。使ISRi=0是通過向是通過向8259A發(fā)出中斷結(jié)束命令(發(fā)出中斷結(jié)束命令(EOI命令)實(shí)現(xiàn)的。命令)實(shí)現(xiàn)的。三種三種EOI命令命令 (1)自動(dòng)自動(dòng)EOI(AEOI)在第在第2個(gè)個(gè)INTA#結(jié)束

42、時(shí),由結(jié)束時(shí),由8259A使使ISRi自動(dòng)復(fù)位自動(dòng)復(fù)位; 注:注:因不保留當(dāng)前正在服務(wù)的中斷的狀態(tài),故因不保留當(dāng)前正在服務(wù)的中斷的狀態(tài),故AEOI不能用于中斷嵌套方式不能用于中斷嵌套方式(2)非指定非指定EOI(NSEOI)由)由CPU發(fā)出正常發(fā)出正常EOI命令命令,該,該EOI命令使命令使ISRi=1的的位中位中優(yōu)先級最高的那一位復(fù)位優(yōu)先級最高的那一位復(fù)位。用于。用于普通全嵌套普通全嵌套方式方式(3)指定指定EOI(SEOI)(特殊(特殊EOI方式方式)由)由CPU發(fā)出一條發(fā)出一條SEOI命令,該命令,該EOI命令中指出了所要復(fù)位的命令中指出了所要復(fù)位的ISR的位號(hào)的位號(hào)。用于用于特殊全嵌套

43、特殊全嵌套方式方式中斷服務(wù)程序向從PIC發(fā)EOI命令讀從PIC的ISR全0?向主PIC發(fā)EOI命令YIRET恢復(fù)現(xiàn)場N特殊全嵌套方式下的特殊全嵌套方式下的EOI處理處理只有當(dāng)只有當(dāng)從從PIC的中斷全部處理完后的中斷全部處理完后,才能向主才能向主PIC發(fā)發(fā)EOI命令命令屏蔽中斷源的方式屏蔽中斷源的方式 普通屏蔽方式:普通屏蔽方式:IMR屏蔽字決定了屏蔽字決定了允許或禁止允許或禁止某位某位IRi所對應(yīng)的中斷所對應(yīng)的中斷:IMi=1 禁止,禁止, IMi=0 允許。允許。 特殊屏蔽方式:特殊屏蔽方式:提供了允許較低優(yōu)先級的中斷能夠得到響應(yīng)的特殊手提供了允許較低優(yōu)先級的中斷能夠得到響應(yīng)的特殊手段。段。

44、原理原理:假定當(dāng)前正在處理:假定當(dāng)前正在處理IR6,先,先進(jìn)入特殊屏蔽方式,進(jìn)入特殊屏蔽方式,然后設(shè)置然后設(shè)置IM6=1。這時(shí),除。這時(shí),除IR6外的所有中斷請求均能外的所有中斷請求均能得到響應(yīng)。得到響應(yīng)。(ISR中相應(yīng)的位將被清零中相應(yīng)的位將被清零)特殊屏蔽方式中只能用特殊屏蔽方式中只能用SEOI命令結(jié)束中斷。命令結(jié)束中斷。中斷觸發(fā)方式中斷觸發(fā)方式邊沿觸發(fā)邊沿觸發(fā)IRi出現(xiàn)上升沿表示有中斷請求出現(xiàn)上升沿表示有中斷請求 電平觸發(fā)電平觸發(fā)IRi出現(xiàn)高電平表示有中斷請求出現(xiàn)高電平表示有中斷請求在第在第1個(gè)個(gè)INTA#結(jié)束前,結(jié)束前,IRi必須保持高電平必須保持高電平 級聯(lián)方式:級聯(lián)方式:一個(gè)一個(gè)8

45、259A主片至多帶主片至多帶8個(gè)從片,因此可擴(kuò)展控制個(gè)從片,因此可擴(kuò)展控制64個(gè)中斷源。所有的個(gè)中斷源。所有的主片和從片均分別進(jìn)行初始化,且可設(shè)定為不同的工作方式。主片和從片均分別進(jìn)行初始化,且可設(shè)定為不同的工作方式。緩沖方式:緩沖方式: 緩沖方式緩沖方式:在多片在多片8259A級連的大系統(tǒng)中,級連的大系統(tǒng)中,8259A通過總線驅(qū)動(dòng)器通過總線驅(qū)動(dòng)器和數(shù)據(jù)總線相連,這就是緩沖方式。和數(shù)據(jù)總線相連,這就是緩沖方式。 非緩沖方式:非緩沖方式:當(dāng)系統(tǒng)中只有單片當(dāng)系統(tǒng)中只有單片8259A時(shí),一般將它直接與數(shù)據(jù)時(shí),一般將它直接與數(shù)據(jù)總線相連;另外,在一些不太大的系統(tǒng)中,即使有幾片總線相連;另外,在一些不太

46、大的系統(tǒng)中,即使有幾片8259A級連工級連工作,也可以將作,也可以將8259A直接與數(shù)據(jù)總線連。這種連接即為非緩沖方式。直接與數(shù)據(jù)總線連。這種連接即為非緩沖方式。1 初始化命令字初始化命令字初 始 化 命 令 字初 始 化 命 令 字 I C W( I n i t i al i z at i o n Command Word)通常是通常是系統(tǒng)開機(jī)系統(tǒng)開機(jī)時(shí),時(shí),由初始化程序填寫,由初始化程序填寫,且在且在整個(gè)系統(tǒng)工作過整個(gè)系統(tǒng)工作過程 中 保 持 不 變程 中 保 持 不 變 。8259A初始化命令字初始化命令字必須必須按順按順 序序填寫。填寫。 順序?qū)懭腠樞驅(qū)懭?4個(gè)字個(gè)字節(jié)的初始化命令字節(jié)

47、的初始化命令字ICW1ICW2ICW3ICW4 級 連 方 式級 連 方 式?需要需要ICW4?準(zhǔn)備接受中斷請求準(zhǔn)備接受中斷請求No(SGNL=1) Yes (SGNL=0) No(ICW4=0) Yes (ICW4=1)8259A初始化過程的流程圖初始化過程的流程圖(1) ICW1 (初始化字)(初始化字) (設(shè)定具體功能,同時(shí)(設(shè)定具體功能,同時(shí)系統(tǒng)內(nèi)部初始化系統(tǒng)內(nèi)部初始化) 1 初始化命令字初始化命令字1需要需要ICW40不需要不需要ICW41單片單片8259A0級連級連調(diào)用地址間距(僅用于MCS80 / 85模式)1電平觸發(fā)方式電平觸發(fā)方式0邊沿觸發(fā)方式邊沿觸發(fā)方式中斷向量地址(僅用于

48、MCS80 / 85模式)對于8086/8088通常置為0A0 D7 D6 D5 D4 D3 D2 D1 D0 0A7 A6 A5 1 LTIM ADI SNGL ICW4I C W 1識(shí)別位識(shí)別位偶地址偶地址1 T7 T6 T5 T4 T3 中斷向量地址的A15A8位 (MCS8080 / 8085 模式)中斷類型碼的中斷類型碼的T7T3位(位(8086 / 8088模式)模式)A0 D7 D6 D5 D4 D3 D2 D1 D01(2) ICW2 (中斷類型碼)(中斷類型碼) 注:注: T7T3 中斷類型碼高位,中斷類型碼高位, 由編程決定,用于由編程決定,用于 PX8686系統(tǒng)。系統(tǒng)。

49、低三位低三位自動(dòng)設(shè)置為自動(dòng)設(shè)置為 IR0 IR7 的類型編碼。的類型編碼。 D7 D6 D5 D4 D3 D2 D1 D0IR7T7 T6 T5 T4 T3 1 1 1IR6T7 T6 T5 T4 T3 1 1 0IR5T7 T6 T5 T4 T3 1 0 1IR4T7 T6 T5 T4 T3 1 0 0IR3T7 T6 T5 T4 T3 0 1 1IR2T7 T6 T5 T4 T3 0 1 0IR1T7 T6 T5 T4 T3 0 0 1IR0T7 T6 T5 T4 T3 0 0 08259A傳送的中斷類型碼傳送的中斷類型碼 1 S7 S6 S5 S4 S3 S2 S1 S0 1IR輸入帶有

50、一個(gè)從控制器輸入帶有一個(gè)從控制器 0IR輸入不帶一個(gè)從控制器輸入不帶一個(gè)從控制器A0 D7 D6 D5 D4 D3 D2 D1 D01 1 0 0 0 0 0 ID2 ID1 ID0從控制器從控制器ID,編碼,編碼000111分別對應(yīng)從片接入主片分別對應(yīng)從片接入主片的的IR0IR7。A0 D7 D6 D5 D4 D3 D2 D1 D01(3) ICW3 (主控制器)(主控制器) 級聯(lián)控制字級聯(lián)控制字 ICW3 (從控制器)(從控制器)系統(tǒng)怎樣區(qū)分主片和從片?不同的從片怎樣區(qū)分?系統(tǒng)怎樣區(qū)分主片和從片?不同的從片怎樣區(qū)分? 186 / 88模式模式080 / 85模式模式1自動(dòng)自動(dòng)EOI0非自動(dòng)

51、非自動(dòng)EOI 0 X 非緩沖方式非緩沖方式 1 0 緩沖方式緩沖方式/從控制從控制器器 1 1 緩沖方式緩沖方式/主控制主控制器器1特殊全嵌套方式特殊全嵌套方式0非特殊全嵌套方式非特殊全嵌套方式A0 D7 D6 D5 D4 D3 D2 D1 D01(4) ICW4 中斷結(jié)束方式字中斷結(jié)束方式字0 0 0 SFNM BUF M / S AEOI PMPM初始化編程初始化編程 例例1 (P261)PC機(jī)中使用單片機(jī)中使用單片8259A,定義地址為:,定義地址為:20H、21H,8259A的工作方式設(shè)置如下:的工作方式設(shè)置如下: (1) 固定優(yōu)先權(quán)級別,普通全嵌套:固定優(yōu)先權(quán)級別,普通全嵌套:IR0

52、最高,最高,IR7最低最低 ; (2) 8個(gè)中斷類型碼分別是個(gè)中斷類型碼分別是 08H 0FH; (3) 中斷請求信號(hào)采用邊沿觸發(fā)方式,非緩沖方式;中斷請求信號(hào)采用邊沿觸發(fā)方式,非緩沖方式; (4) 中斷服務(wù)結(jié)束時(shí),采用普通中斷結(jié)束命令(中斷服務(wù)結(jié)束時(shí),采用普通中斷結(jié)束命令(EOI);); (5) 采用普通屏蔽方式。采用普通屏蔽方式。 MOV AL,13H ;初始化;初始化ICW1 OUT 20H,AL ;偶地址;偶地址 MOV AL, 08H ;初始化初始化ICW2 OUT 21H, AL ;奇地址;奇地址 MOV AL, 01H ;初始化初始化ICW4 OUT 21H, AL ;奇地址;奇

53、地址 0 0 0 1 0 0 1 1 B 13H ;邊緣觸發(fā),單片,需要;邊緣觸發(fā),單片,需要ICW40 0 0 0 1 0 0 0 B 08H ;IR0中斷類型碼為中斷類型碼為08H 0 0 0 0 0 0 0 1 B 01H ;8086/8088 普通普通EOI 非緩沖,全嵌套非緩沖,全嵌套 ICW1: ICW2: ICW4: 8259A應(yīng)用舉例應(yīng)用舉例初始化編程初始化編程:例:例2PC/AT中,中,8259的使用情況為:的使用情況為:1. 2片片8259級聯(lián),提供級聯(lián),提供15級向量中斷。從片的級向量中斷。從片的INT接主片的接主片的IR2。2. 端口地址:主片端口地址:主片20H、21

54、H,從片,從片A0H、A1H。3. 主片和從片均采用邊沿觸發(fā)。主片和從片均采用邊沿觸發(fā)。4. 采用全嵌套優(yōu)先級排列方式采用全嵌套優(yōu)先級排列方式5.采用非緩沖方式采用非緩沖方式6.主片的類型碼為主片的類型碼為08H0FH,從片的類型碼為,從片的類型碼為70H77H。ICW1A EQU 20H ;主片端口地址;主片端口地址ICW2A EQU ICW1A+1ICW3A EQU ICW2AICW4A EQU ICW2AICW1B EQU 0A0H ;從片端口地址;從片端口地址ICW2B EQU ICW1B+1ICW3B EQU ICW2BICW4B EQU ICW2B;- 主片主片8259A-MOV

55、AL,11H ;ICW1,邊沿觸發(fā),多片,邊沿觸發(fā),多片,需需ICW4OUT ICW1A,ALNOP ;I/O端口延時(shí)端口延時(shí)MOV AL,08H ;ICW2,中斷類型碼,中斷類型碼OUT ICW2A,ALNOPMOV AL,04H ;ICW3,00000100,IR2接從片接從片OUT ICW3A,ALNOPMOV AL,01H ;ICW4,非緩沖,全嵌,非緩沖,全嵌套,非自動(dòng)結(jié)束套,非自動(dòng)結(jié)束OUT ICW4A,ALNOP;- 從片從片8259A-MOV AL,11H ;ICW1,邊沿觸發(fā),多片,需,邊沿觸發(fā),多片,需ICW4OUT ICW1B,ALNOPMOV AL,70H ;ICW2,

56、中斷類型碼,中斷類型碼OUT ICW2B,ALNOPMOV AL,02H ;ICW3,INT接主片的接主片的IR2OUT ICW3B,ALNOPMOV AL,01H ;ICW4,非緩沖,全嵌套,非自動(dòng)結(jié)束,非緩沖,全嵌套,非自動(dòng)結(jié)束OUT ICW4B,ALNOPPC/AT機(jī)主、從機(jī)主、從8259的初始化程序的初始化程序5. 8259A應(yīng)用舉例應(yīng)用舉例 由由CPU向向8259A送三個(gè)字節(jié)的操作命令字送三個(gè)字節(jié)的操作命令字OCW(Operation Command Word),), 用以規(guī)定用以規(guī)定8259A的工作方式,如:的工作方式,如: 中斷屏蔽中斷屏蔽 結(jié)束中斷結(jié)束中斷 優(yōu)先權(quán)循環(huán)優(yōu)先權(quán)循環(huán)

57、 中斷狀態(tài)中斷狀態(tài) 等。等。 操作命令字是在應(yīng)用程序中設(shè)置的,且操作命令字是在應(yīng)用程序中設(shè)置的,且可設(shè)置多次可設(shè)置多次。設(shè)置時(shí),。設(shè)置時(shí),順序上沒有嚴(yán)格的要求順序上沒有嚴(yán)格的要求。但。但對對端口地址端口地址有要求,如有要求,如OCW1寫入奇地址寫入奇地址,其余兩個(gè)寫入偶,其余兩個(gè)寫入偶 地址。地址。2 操作命令字操作命令字OCW(當(dāng)不寫入時(shí),表示全嵌套(當(dāng)不寫入時(shí),表示全嵌套 ) 1 M7 M6 M5 M4 M3 M2 M1 M0中斷屏蔽中斷屏蔽1置屏蔽置屏蔽0復(fù)位屏蔽復(fù)位屏蔽A0 D7 D6 D5 D4 D3 D2 D1 D01(1)OCW1 (中中斷屏蔽命令字)斷屏蔽命令字)命令字中的命令

58、字中的M7M0對應(yīng)對應(yīng)IMR的各位。的各位。Mi=1表示該中斷被表示該中斷被屏蔽屏蔽,Mi=0表示該中斷表示該中斷開放開放。命令格式如圖。命令格式如圖。 R、SL、EOI的不同組合決定了的不同組合決定了8259A的幾種工作方式。的幾種工作方式。 L2L0 這幾位確定當(dāng)這幾位確定當(dāng)SL=1時(shí)指定的特殊結(jié)束或特殊循環(huán)時(shí)的中斷優(yōu)先級。時(shí)指定的特殊結(jié)束或特殊循環(huán)時(shí)的中斷優(yōu)先級。 D4 D3 是特征位是特征位 0 R SL EOI 0 0 L2 L1 L00 0 1 普通普通EOI命令,全嵌套方式命令,全嵌套方式0 1 1 特殊特殊EOI,L2L1 ISR位位清零清零1 0 1 普通普通EOI,自動(dòng)循環(huán)

59、,自動(dòng)循環(huán)1 0 0 自動(dòng)自動(dòng)EOI,自動(dòng)循環(huán)(置位),自動(dòng)循環(huán)(置位) 自動(dòng)循環(huán)自動(dòng)循環(huán) 0 0 0 自動(dòng)自動(dòng)EOI,取消優(yōu)先級自動(dòng)循環(huán),取消優(yōu)先級自動(dòng)循環(huán)1 1 1 普通普通EOI,特殊循環(huán)(置位),特殊循環(huán)(置位)1 1 0 優(yōu)先權(quán)特殊循環(huán)(優(yōu)先權(quán)特殊循環(huán)(置位置位)0 1 0 無操作無操作0 0 0 0 有有 0 0 1 1 效效 0 1 0 2 的的 0 1 1 3 中中1 0 0 4 斷斷1 0 1 5 請請 1 1 0 6 求求 1 1 1 7 級級 別別(2)OCW2 中斷結(jié)束和優(yōu)先權(quán)循環(huán)控制字中斷結(jié)束和優(yōu)先權(quán)循環(huán)控制字A0 D7 D6 D5 D4 D3 D2 D1 D00中斷

60、結(jié)束中斷結(jié)束特殊循環(huán)特殊循環(huán)MOV AL,20HOUT 20H,AL 0 0 ESMM SMM 0 1 P RR RIS用于控制用于控制8259A的運(yùn)行方式。命令格式如圖。的運(yùn)行方式。命令格式如圖。(3)OCW3屏蔽和讀中斷控制字屏蔽和讀中斷控制字A0 D7 D6 D5 D4 D3 D2 D1 D00X 0 1 XX 1 1 01 0 0 0下一個(gè)下一個(gè)指令讀查指令讀查詢字詢字下一個(gè)下一個(gè)指令指令讀讀IRR下一個(gè)下一個(gè)指令指令讀讀ISR特殊屏蔽方式特殊屏蔽方式0 0 1 10 1 0 1無作用無作用復(fù)位復(fù)位特殊特殊屏蔽屏蔽置置特殊特殊屏蔽屏蔽 當(dāng)送出當(dāng)送出OCW3且且P0,隨后對同一地址(隨后

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論