第7章_中斷系統(tǒng)和中斷控制器8259A.ppt_第1頁
第7章_中斷系統(tǒng)和中斷控制器8259A.ppt_第2頁
第7章_中斷系統(tǒng)和中斷控制器8259A.ppt_第3頁
第7章_中斷系統(tǒng)和中斷控制器8259A.ppt_第4頁
第7章_中斷系統(tǒng)和中斷控制器8259A.ppt_第5頁
已閱讀5頁,還剩120頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、微機(jī)原理及應(yīng)用,2020/7/21,微機(jī)原理及應(yīng)用,2,第7(9)章 中斷系統(tǒng)和中斷控制器8259A,一、中斷的基本概念 二、8086/8088的中斷系統(tǒng) 三、中斷控制器8259A,2020/7/21,微機(jī)原理及應(yīng)用,3,一、中斷的基本概念,1、中斷及中斷源 2、中斷處理過程 3、中斷優(yōu)先權(quán)管理,2020/7/21,微機(jī)原理及應(yīng)用,4,1、中斷及中斷源,中斷是一種讓CPU掛起正在執(zhí)行的程序而轉(zhuǎn)去處理特殊事件的操作。 CPU暫時(shí)停止執(zhí)行原來的程序而轉(zhuǎn)去中斷處理,處理好中斷服務(wù)后再返回繼續(xù)執(zhí)行原來的程序,這樣一個過程就是一個中斷過程 。 能夠引起CPU中斷的事件稱為中斷源 。 CPU中斷系統(tǒng)的基本

2、功能 。,2020/7/21,微機(jī)原理及應(yīng)用,5,中斷源,(1)一般的輸入輸出設(shè)備。如鍵盤,打印機(jī)等; (2)數(shù)據(jù)通道中斷源。如磁盤,光驅(qū)等直接與存儲器交換數(shù)據(jù)所要求的中斷; (3)實(shí)時(shí)時(shí)鐘。在控制系統(tǒng)中使用外部硬件電路實(shí)現(xiàn)時(shí)間控制,當(dāng)定時(shí)時(shí)間到時(shí)向CPU發(fā)出中斷申請; (4)故障引起的中斷。如電源掉電等; (5)由中斷指令或軟件故障引起的中斷。如系統(tǒng)功能調(diào)用,除數(shù)為0,或者在程序調(diào)試時(shí)設(shè)置斷點(diǎn)等引起的中斷。,2020/7/21,微機(jī)原理及應(yīng)用,6,中斷分類,根據(jù)中斷與CPU的相對關(guān)系,中斷分為內(nèi)部中斷和外部中斷。 內(nèi)部中斷可以是中斷指令設(shè)置的中斷,調(diào)試程序時(shí)設(shè)置的中斷,或是程序運(yùn)行過程中發(fā)生

3、的非預(yù)期情況而產(chǎn)生的中斷; 外部中斷則是由直接連到CPU引腳上的信號引起的中斷,如外部設(shè)備請求服務(wù)中斷,實(shí)時(shí)時(shí)鐘定時(shí)到中斷,電源掉電等等。,2020/7/21,微機(jī)原理及應(yīng)用,7,CPU中斷系統(tǒng)的功能,(1)實(shí)現(xiàn)中斷及返回 (2)實(shí)現(xiàn)優(yōu)先權(quán)排隊(duì),以確定優(yōu)先處理的中斷源。 (3)優(yōu)先權(quán)高的中斷源能中斷優(yōu)先權(quán)低的中斷處理,2020/7/21,微機(jī)原理及應(yīng)用,8,(1)實(shí)現(xiàn)中斷及返回,當(dāng)有一中斷源提出中斷請求時(shí),CPU首先判斷是否響應(yīng)該中斷? * 如果CPU正在執(zhí)行的是重要的程序,可以暫不響應(yīng),即關(guān)中斷; *當(dāng)CPU完成了當(dāng)前的重要程序后,開中斷予以響應(yīng),同時(shí),保存斷點(diǎn),轉(zhuǎn)入中斷處理; * 當(dāng)中斷處

4、理完后,恢復(fù)斷點(diǎn)從而回到被中斷運(yùn)行的原程序繼續(xù)執(zhí)行;,2020/7/21,微機(jī)原理及應(yīng)用,9,(1)實(shí)現(xiàn)中斷及返回,* 通過設(shè)置CPU內(nèi)部的中斷允許觸發(fā)器(IFF),開關(guān)中斷 。 當(dāng)IFF1,使中斷允許(開中斷); 當(dāng)IFF0,使中斷不允許(關(guān)中斷)。 注意: 不可屏蔽中斷,要求CPU立即處理。不受中斷允許觸發(fā)器(IFF)的控制。 可屏蔽中斷,受中斷允許觸發(fā)器(IFF)的控制。,2020/7/21,微機(jī)原理及應(yīng)用,10,(2)實(shí)現(xiàn)優(yōu)先權(quán)排隊(duì),以確定優(yōu)先處理的中斷源,一個系統(tǒng)中有多個中斷源,存在著幾個中斷源同時(shí)請求的可能; 因此,必須事先根據(jù)中斷源的重要性,給每個中斷源確定一個中斷優(yōu)先級別優(yōu)先權(quán)

5、。 中斷響應(yīng)時(shí),CPU應(yīng)能首先響應(yīng)優(yōu)先權(quán)級別高的中斷源。,2020/7/21,微機(jī)原理及應(yīng)用,11,在中斷服務(wù)處理過程中: 若新的中斷申請其優(yōu)先級別更高,則CPU應(yīng)再一次中斷,轉(zhuǎn)去優(yōu)先權(quán)更高的中斷源服務(wù)。處理完后,再回到原來的中斷服務(wù)中,這也稱為中斷嵌套。 若新的中斷源優(yōu)先權(quán)級別為同級或低級,則CPU暫不理會,繼續(xù)正在處理的中斷服務(wù),直到當(dāng)前中斷處理結(jié)束后再去處理新的中斷申請。,(3)優(yōu)先權(quán)高的中斷源能中斷優(yōu)先權(quán)低的中斷處理,2020/7/21,微機(jī)原理及應(yīng)用,12,2、中斷處理過程,一個中斷過程應(yīng)該包含以下五個過程: (1)中斷請求 (2)中斷排隊(duì) (3)中斷響應(yīng) (4)中斷服務(wù) (5)中斷

6、返回,2020/7/21,微機(jī)原理及應(yīng)用,13,(1)中斷請求,當(dāng)中斷源需要CPU為其服務(wù)時(shí),首先送出中斷請求信號。 中斷信號可以由中斷指令或是某些特定條件產(chǎn)生,也可以是通過CPU引腳(INTR)向CPU發(fā)出中斷請求信號而產(chǎn)生。 實(shí)際系統(tǒng)中一般都有多個中斷源, 為了增加控制的靈活性,每個中斷源接口電路中,設(shè)置一個中斷請求觸發(fā)器和一個中斷屏蔽觸發(fā)器。,2020/7/21,微機(jī)原理及應(yīng)用,14,(1)中斷請求,當(dāng)中斷源有請求時(shí),將中斷請求觸發(fā)器置1: * 若中斷屏蔽觸發(fā)器為“0”狀態(tài),表示允許該中斷源向CPU發(fā)出中斷請求“信號”; * 若中斷屏蔽觸發(fā)器為“1”狀態(tài),表示禁止該中斷源向CPU發(fā)出中斷

7、請求“信號”。 盡管該中斷源有中斷請求,也不能被送出,稱該中斷請求被屏蔽了。,2020/7/21,微機(jī)原理及應(yīng)用,15,(2)中斷排隊(duì)和(3)中斷響應(yīng),中斷排隊(duì)是確定當(dāng)前所有中斷請求中優(yōu)先級最高的那個中斷源。 因?yàn)镃PU一次只能響應(yīng)一個中斷,所以必須首先處理最緊急最重要的中斷。 根據(jù)中斷源的輕重緩急給予一個中斷優(yōu)先權(quán)級別,優(yōu)先權(quán)級別最高的中斷源將首先得到響應(yīng)。,2020/7/21,微機(jī)原理及應(yīng)用,16,(2)中斷排隊(duì)和(3)中斷響應(yīng),CPU通過中斷排隊(duì)確定了要響應(yīng)的中斷源后,進(jìn)入中斷響應(yīng),自動完成以下步驟: 關(guān)中斷; 保護(hù)斷點(diǎn),將正在執(zhí)行的程序地址(斷點(diǎn))入棧; 保護(hù)現(xiàn)場,標(biāo)志寄存器FR自動入

8、棧; 形成中斷服務(wù)程序入口地址。,2020/7/21,微機(jī)原理及應(yīng)用,17,(4)中斷服務(wù)和(5)中斷返回,中斷服務(wù)是指CPU執(zhí)行中斷服務(wù)程序。 中斷服務(wù)程序應(yīng)包括: 保護(hù)現(xiàn)場,CPU響應(yīng)中斷時(shí)自動保護(hù)斷點(diǎn),寄存器則由程序員決定是否要入棧; 開中斷,CPU響應(yīng)中斷時(shí),自動執(zhí)行關(guān)中斷操作。要實(shí)現(xiàn)中斷嵌套,必須在中斷服務(wù)程序中開中斷;,2020/7/21,微機(jī)原理及應(yīng)用,18,(4)中斷服務(wù)和(5)中斷返回,中斷處理,對中斷源作相應(yīng)的處理,是中斷服務(wù)程序的核心; 關(guān)中斷,若中斷服務(wù)程序設(shè)置了開中斷,則此時(shí)應(yīng)該關(guān)中斷,以保證恢復(fù)現(xiàn)場的操作不被打斷; 恢復(fù)現(xiàn)場,按后進(jìn)先出的原則,PUSH和POP應(yīng)配對

9、使用; 中斷返回,從堆棧中彈出斷點(diǎn),返回主程序。,2020/7/21,微機(jī)原理及應(yīng)用,19,3、中斷優(yōu)先權(quán)管理,中斷優(yōu)先權(quán)是事先根據(jù)中斷源的重要性給每個中斷源確定一個中斷優(yōu)先級別優(yōu)先權(quán)。 中斷優(yōu)先權(quán)管理就是判別和確定各個中斷源的中斷優(yōu)先權(quán)。 中斷優(yōu)先權(quán)判別方法有軟件和硬件兩種方法。,2020/7/21,微機(jī)原理及應(yīng)用,20,3、中斷優(yōu)先權(quán)管理,(1)軟件確定中斷優(yōu)先權(quán) 軟件法是在CPU響應(yīng)中斷后,用軟件查詢確定哪個中斷源申請中斷,先被查詢的先響應(yīng)。 查詢次序決定了中斷優(yōu)先權(quán)次序,最先被查詢的中斷源具有最高的優(yōu)先權(quán)。,2020/7/21,微機(jī)原理及應(yīng)用,21,3、中斷優(yōu)先權(quán)管理,如圖,8個外設(shè)只

10、要有中斷請求,CPU檢測到中斷請求信號,響應(yīng)中斷;,讀入端口80H的內(nèi)容,逐位判別確定當(dāng)前申請中斷的優(yōu)先權(quán)最高的中斷源,從而進(jìn)入相應(yīng)的中斷服務(wù)程序。,2020/7/21,微機(jī)原理及應(yīng)用,22,3、中斷優(yōu)先權(quán)管理,(1)軟件確定中斷優(yōu)先權(quán),軟件查詢流程圖,軟件查詢程序: IN AL,80H ;端口讀入狀態(tài) TEST AL,80H; JNZ SERVE_A TEST AL,40H JNZ SERVE_B TEST AL,01H JNZ SERVE_H HLT,* 軟件查詢次序就是優(yōu)先權(quán)高低的次序; * 軟件確定中斷優(yōu)先權(quán)不需復(fù)雜的硬件電路,簡單易實(shí)現(xiàn); * 中斷源較多時(shí),查詢時(shí)間較長,中斷響應(yīng)較慢

11、。,2020/7/21,微機(jī)原理及應(yīng)用,23,3、中斷優(yōu)先權(quán)管理,(2)硬件確定中斷優(yōu)先權(quán) 由硬件實(shí)現(xiàn)中斷優(yōu)先權(quán)的判別。 * 常用的硬件電路有:中斷優(yōu)先權(quán)編碼電路,鏈?zhǔn)絻?yōu)先權(quán)排隊(duì)電路及專用硬件電路等。 * 利用中斷控制器8259A,它具有8個優(yōu)先權(quán)控制,可以通過級聯(lián),擴(kuò)展至64級優(yōu)先權(quán)控制,且每級中斷都可設(shè)置為允許或屏蔽 。,2020/7/21,微機(jī)原理及應(yīng)用,24,二、8086/8088的中斷系統(tǒng),8086/8088CPU具有一個功能很強(qiáng)、管理高效且簡便靈活的中斷系統(tǒng),可以處理多達(dá)256種中斷源。 采用向量中斷方法,對256種中斷只需一次間接訪問就可獲得任一中斷源的中斷服務(wù)程序的入口地址,中

12、斷響應(yīng)快速。 8086/8088CPU有兩類中斷: * 內(nèi)部中斷 由執(zhí)行中斷指令或特殊事件引起; * 外部中斷 由外圍設(shè)備接口向CPU的中斷請求引腳INTR和NMI發(fā)出中斷請求信號而引起的。,2020/7/21,微機(jī)原理及應(yīng)用,25,二、8086/8088的中斷系統(tǒng),1、8086/8088的中斷指令 2、8086/8088的中斷分類 3、中斷向量表 4、8086/8088中斷處理過程,2020/7/21,微機(jī)原理及應(yīng)用,26,1、8086/8088的中斷指令,(1)中斷指令 指令格式: INT n ;n=0255,中斷類型碼 指令操作: SP2 SP(修改堆棧指針), FR入棧, IF=0(中

13、斷標(biāo)志置0,關(guān)中斷,CPU不響應(yīng)可屏蔽中斷) , TF=0(陷阱標(biāo)志,TF0,CPU正常執(zhí)行程序) , SP2 SP (修改堆棧指針), CS入棧 SP2 SP (修改堆棧指針),IP入棧 n4 IP n4+2 CS,2020/7/21,微機(jī)原理及應(yīng)用,27,1、8086/8088的中斷指令,中斷向量就是中斷服務(wù)程序的入口地址; 中斷類型碼 n4 即為該中斷向量的存放地址; 低字是IP,高字是CS,CPU取出CS和IP,轉(zhuǎn)去執(zhí)行中斷服務(wù)程序。 INT n 指令除了使IF0和TF0,對其他標(biāo)志位沒有影響; INT指令(即n=3),稱為斷點(diǎn)中斷指令,用于軟件調(diào)試。,2020/7/21,微機(jī)原理及應(yīng)

14、用,28,1、8086/8088的中斷指令,(2)溢出中斷指令 指令格式:INTO;與INT 4等價(jià) 指令操作: 溢出中斷指令用于帶符號數(shù)加減法運(yùn)算后,由于運(yùn)算溢出而產(chǎn)生中斷。 通常,寫在一條算術(shù)運(yùn)算指令后: 若運(yùn)算結(jié)果使OF=1,進(jìn)入中斷類型碼為4的中斷; 否則,按順序執(zhí)行下一條指令。,n4 0010H,中斷向量存放地址為:,2020/7/21,微機(jī)原理及應(yīng)用,29,1、8086/8088的中斷指令,(3)中斷返回指令 指令格式:IRET 指令操作:IP,CS,F(xiàn)R依此出棧,SP+6SP 所有中斷服務(wù)程序,無論是軟件中斷,還是硬件中斷,最后執(zhí)行的指令一定是IRET,用以退出中斷,返回?cái)帱c(diǎn)。,

15、2020/7/21,微機(jī)原理及應(yīng)用,30,2、8086/8088的中斷分類,8086/8088的中斷系統(tǒng)可以處理256種不同的中斷。 所有可能產(chǎn)生的中斷源有:可屏蔽中斷INTR、非屏蔽中斷NMI、指令中斷INT n和特定條件下的中斷,分為兩類:,內(nèi)部中斷,外部中斷,2020/7/21,微機(jī)原理及應(yīng)用,31,2、8086/8088的中斷分類,內(nèi)部中斷 CPU不是通過外部中斷請求而是通過內(nèi)部邏輯進(jìn)入中斷,調(diào)用相應(yīng)的中斷服務(wù)程序,是CPU自啟動的中斷。 除單步中斷外,所有內(nèi)部中斷為非屏蔽型的。 內(nèi)部中斷主要用于解決程序運(yùn)行中發(fā)生的一些意外情況、程序調(diào)試、用戶定義的中斷或者調(diào)用系統(tǒng)提供的一些標(biāo)準(zhǔn)中斷服

16、務(wù)程序。 (1)除法出錯中斷 (類型0) ; (2)單步中斷(類型1); (3)斷點(diǎn)中斷(類型3); (4)溢出中斷(類型4); (5)軟件中斷,返回,2020/7/21,微機(jī)原理及應(yīng)用,32,2、8086/8088的中斷分類,內(nèi)部中斷,(1)除法出錯中斷 (類型0) CPU在執(zhí)行觸發(fā)指令DIV和IDIV時(shí),若發(fā)現(xiàn)除數(shù)為0,或商超過了寄存器所能表達(dá)的范圍,就立即產(chǎn)生一個類型為0的內(nèi)部中斷,CPU轉(zhuǎn)入除法錯誤中斷處理程序。 注意:此中斷是由CPU自身產(chǎn)生,并沒有對應(yīng)的中斷指令。,2020/7/21,微機(jī)原理及應(yīng)用,33,2、8086/8088的中斷分類,內(nèi)部中斷,(2)單步中斷 (類型1) 此中

17、斷也是由CPU自身產(chǎn)生,沒有對應(yīng)的中斷指令,它是由CPU對狀態(tài)標(biāo)志寄存器中的陷阱標(biāo)志TF的測試而引起的。 TF1,自動單步中斷,用于程序調(diào)試。,2020/7/21,微機(jī)原理及應(yīng)用,34,2、8086/8088的中斷分類,內(nèi)部中斷,(3)斷點(diǎn)中斷 (類型3) 執(zhí)行INT指令就產(chǎn)生一個類型為3的內(nèi)部中斷,稱為斷點(diǎn)中斷 。 和單步中斷類似,用于程序調(diào)試。,2020/7/21,微機(jī)原理及應(yīng)用,35,2、8086/8088的中斷分類,內(nèi)部中斷,(4)溢出中斷 (類型4) 溢出中斷是由CPU執(zhí)行一條INTO指令實(shí)現(xiàn)的: 當(dāng)OF1時(shí),執(zhí)行INTO就會進(jìn)入類型碼為4的內(nèi)部中斷; 否則,按順序執(zhí)行。,2020/

18、7/21,微機(jī)原理及應(yīng)用,36,2、8086/8088的中斷分類,內(nèi)部中斷,(5)軟件中斷 當(dāng)執(zhí)行INT n指令時(shí),形成中斷,類型碼由指令提供。 從功能上來說,類似于調(diào)用子程序,但入口地址在中斷向量表里。,2020/7/21,微機(jī)原理及應(yīng)用,37,2、8086/8088的中斷分類,外部中斷 通過外部的硬件產(chǎn)生,由送至CPU引腳NMI和INTR上的信號引起中斷。 分為兩類: (1)非屏蔽中斷(n=2) 一旦在NMI引腳有中斷請求,CPU立即響應(yīng)。,返回,2020/7/21,微機(jī)原理及應(yīng)用,38,2、8086/8088的中斷分類,(2)可屏蔽中斷, 從INTR腳引入,必須滿足IF=1,且沒有非屏蔽

19、中斷,CPU可以響應(yīng)中斷。 中斷請求信號是由電平觸發(fā),必須保存到CPU響應(yīng)中斷請求后才能撤除。 中斷允許標(biāo)志IF的標(biāo)志,可由指令設(shè)置: STI 開中斷,將IF置1; CLI 關(guān)中斷,將IF置0 。 當(dāng)系統(tǒng)復(fù)位,或CPU響應(yīng)中斷后,都使IF置0。,2020/7/21,微機(jī)原理及應(yīng)用,39,3、中斷向量表,中斷向量即中斷服務(wù)程序的入口地址,用兩個字表示,低字是IP,高字是CS。 將所有中斷源的中斷向量集中存儲在內(nèi)存的指定空間內(nèi),這樣一個指定的存儲區(qū)稱為中斷向量表; 8086/8088的中斷類型碼用8位二進(jìn)制表示,共有從n=0FFh, 256個中斷向量; 中斷向量表建立在內(nèi)存空間最低1K地址; 地址

20、范圍:00000H 003FFH(即CS=0000H)。 注意:中斷類型碼只能決定存放中斷向量的地址,并不能決定中斷向量本身和中斷服務(wù)程序的功能。,2020/7/21,微機(jī)原理及應(yīng)用,40,3、中斷向量表,在IBMPC/XT機(jī)中,n=40H0FFH,可以供用戶設(shè)置中斷向量。 向中斷向量表中寫入中斷向量,就是中斷向量表的設(shè)置。 (1)使用INT 21H (2)用傳送指令,2020/7/21,微機(jī)原理及應(yīng)用,41,(1)使用INT 21H,設(shè)置中斷向量,操作步驟: AH中預(yù)置功能號, AH=25H; AL中預(yù)置要設(shè)置的中斷類型碼; DS:DX中預(yù)置中斷服務(wù)程序的入口地址; (DS內(nèi)是段地址,DX內(nèi)

21、是偏移地址) 執(zhí)行INT 21H 例題,2020/7/21,微機(jī)原理及應(yīng)用,42,使用INT 21H,設(shè)置中斷向量,設(shè)中斷服務(wù)程序的入口地址標(biāo)號為INTSUB,中斷類型碼為40H, 編寫程序段設(shè)置中斷向量。 解: PUSH DS ;將DS入棧,保存DS MOV DX, OFFSET INTSUB;取INTSUB的偏移地址 MOV AX,SEG INTSUB;取INTSUB的段基址 MOV DS,AX;段基址送DS MOV AL, 40H;送中斷類型碼 MOV AH, 25H;送功能號 INT 21H;系統(tǒng)功能調(diào)用 POP DS;恢復(fù)DS ,2020/7/21,微機(jī)原理及應(yīng)用,43,用傳送指令設(shè)

22、置中斷向量,設(shè)中斷服務(wù)程序的入口地址標(biāo)號為INTSUB,中斷類型碼為40H, 編寫程序段設(shè)置中斷向量。 解: 數(shù)據(jù)段 DATA SEGMENT AT 0000 ;設(shè)置數(shù)據(jù)段DATA段 ;從最低內(nèi)存開始 ORG 100H;確定中斷向量的位置在 ;40H4=100H INT_SUB DW 2DUP(?) ;預(yù)留兩字內(nèi)存 DATA ENDS,2020/7/21,微機(jī)原理及應(yīng)用,44,用傳送指令設(shè)置中斷向量代碼段,CODE SEGMENT CLI ;設(shè)置IF=0, 關(guān)中斷 PUSH DS ;DS入棧 MOV AX, DATA MOV DS, AX ;取DATA的段基址 MOV INT_SUB ,OFF

23、SET INTSUB ;取INTSUB的偏移 ;地址送到INT_SUB MOV INT_SUB+2,SEG INTSUB ;取INTSUB的段基址 ;送到INT_SUB+2 POP DS ;恢復(fù)DS STI ;設(shè)置IF=1, 開中斷 CODE ENDS,2020/7/21,微機(jī)原理及應(yīng)用,45,4、8086/8088的中斷處理過程,8086/8088中斷處理過程包含: 中斷請求、中斷排隊(duì)、中斷響應(yīng)、中斷服務(wù)和中斷返回。 討論: (1)中斷響應(yīng)條件 (2)中斷處理順序 (3)中斷類型碼的獲取 (4)中斷響應(yīng)過程,2020/7/21,微機(jī)原理及應(yīng)用,46,(1)中斷響應(yīng)條件,任何一種中斷,都要待C

24、PU執(zhí)行完當(dāng)前指令后方能響應(yīng)中斷。 當(dāng)CPU執(zhí)行LOCK時(shí),要等后面的指令完成后才能響應(yīng)中斷; 設(shè)置段寄存器內(nèi)容的指令和下條指令之間不允許中斷; 在等待指令和重復(fù)串操作指令執(zhí)行過程中,可響應(yīng)中斷,但必須在一個基本操作完成以后。 當(dāng)上述情況滿足后,有內(nèi)部中斷、NMI、INTR(且IF1),CPU將暫時(shí)終止現(xiàn)行程序,進(jìn)入中斷響應(yīng)。,2020/7/21,微機(jī)原理及應(yīng)用,47,(2)中斷處理順序,中斷處理順序即按中斷優(yōu)先權(quán)從高到低的排隊(duì)順序?qū)χ袛嘣催M(jìn)行響應(yīng)。 8086/8088系統(tǒng)的中斷處理次序如下: 除法錯誤中斷、溢出中斷、INT n; NMI(非屏蔽中斷); INTR(可屏蔽中斷,需判斷IF1?)

25、; 單步中斷。,2020/7/21,微機(jī)原理及應(yīng)用,48,(2)中斷處理順序,當(dāng)CPU進(jìn)入中斷響應(yīng)時(shí),保護(hù)FR,TF送暫存TEMP,然后清除IF和TF,以保護(hù)本中斷服務(wù)不被可屏蔽中斷打斷;中斷返回時(shí),F(xiàn)R恢復(fù); NMI的請求擁有最高優(yōu)先權(quán),需要立即處理; 沒有NMI,查看TEMP,以確定是否單步執(zhí)行? 一個中斷被響應(yīng),CPU進(jìn)入中斷服務(wù)程序; 在中斷服務(wù)程序中,設(shè)置了開中斷,即設(shè)置IF1,則不但可以響應(yīng)NMI,也可響應(yīng)優(yōu)先權(quán)更高的INTR; 多個中斷同時(shí)發(fā)生,按優(yōu)先權(quán)從高到低響應(yīng)。,2020/7/21,微機(jī)原理及應(yīng)用,49,(3)中斷類型碼的獲取,8086/8088的中斷系統(tǒng)是根據(jù)中斷類型碼從

26、中斷向量表中取得中斷服務(wù)程序的入口地址的。 專用中斷0 4,由硬件邏輯電路自動提供; INT n指令的第二字節(jié)為中斷類型碼,因而軟件中斷指令是從指令中直接獲得; 外部可屏蔽中斷由外部硬件電路在中斷響應(yīng)時(shí)向CPU提供中斷類型碼。,2020/7/21,微機(jī)原理及應(yīng)用,50,(4)中斷響應(yīng)過程,2020/7/21,微機(jī)原理及應(yīng)用,51,(4)中斷響應(yīng)過程,INTR被響應(yīng)時(shí),CPU實(shí)際執(zhí)行的過程如下: CPU取得中斷類型碼后,左移兩位,存入內(nèi)部暫存器; FR入棧; IF置零,TF置零; CS入棧; IP入棧; 中斷向量低字送IP; 中斷向量高字送CS。,2020/7/21,微機(jī)原理及應(yīng)用,52,三、中

27、斷控制器8259A,1、8259A基本構(gòu)成與引腳信號 2、8259A工作過程 3、8259A的工作方式 4、8259A編程方法,2020/7/21,微機(jī)原理及應(yīng)用,53,1、8259A基本構(gòu)成與引腳信號,(1)8259A是一種功能很強(qiáng)的可編程中斷控制器,是28腳芯片,具有很強(qiáng)的功能。 (2)8259A的基本構(gòu)成和引腳功能,2020/7/21,微機(jī)原理及應(yīng)用,54,8259A的基本構(gòu)成,IRR是一個8位寄存器,用于鎖存所有從IRi引腳輸入的中斷請求信號。 輸入線IR7IR0 分別連接8個中斷源的中斷請求信號,當(dāng)中斷源有中斷請求時(shí),在相應(yīng)的IR引腳上送入有效信號,IRR中相應(yīng)的位就置位,以鎖存該中

28、斷請求信號。,中斷請求 寄存器IRR,中斷源,2020/7/21,微機(jī)原理及應(yīng)用,55,8259A的基本構(gòu)成,* PR用于識別各中斷請求的優(yōu)先權(quán)級別,并進(jìn)行優(yōu)先權(quán)管理。 * 各中斷請求的優(yōu)先權(quán)級別可以由CPU定義或修改。 * 若IRR有幾位被置位,且未被屏蔽,表明有多個中斷源同時(shí)申請中斷。則由PR經(jīng)過判斷確定最高優(yōu)先權(quán)的中斷請求,并在CPU響應(yīng)周期內(nèi),將它送入ISR中相應(yīng)的位。,優(yōu)先權(quán) 判別器PR,中斷源,2020/7/21,微機(jī)原理及應(yīng)用,56,8259A的基本構(gòu)成,*中斷服務(wù)寄存器ISR為8位寄存器,用于記錄已被CPU響應(yīng)的中斷。 *在中斷響應(yīng)周期里,由PR根據(jù)IRR和IMR的狀態(tài),確定先

29、被響應(yīng)的中斷請求,送至ISR,使相應(yīng)的位被置位,并一直保持(自動EOI方式例外)。由EOI命令復(fù)位。,中斷服務(wù) 寄存器ISR,中斷源,若ISR中有多個位被置位,是什么原因?,2020/7/21,微機(jī)原理及應(yīng)用,57,8259A的基本構(gòu)成,*中斷屏蔽寄存器IMR也是8位寄存器,用于存放對中斷請求的屏蔽信息,其內(nèi)容可編程設(shè)定。 *IMR中的8個位對應(yīng)IR7IR0這8個中斷請求,當(dāng)IMR中某位被置位,對應(yīng)的中斷請求就被屏蔽。 則,IRR對應(yīng)的位雖被置位,但不能送出它的中斷請求信號給CPU,由此實(shí)現(xiàn)對各中斷有選擇的屏蔽。,中斷屏蔽 寄存器IMR,中斷源,2020/7/21,微機(jī)原理及應(yīng)用,58,825

30、9A的基本構(gòu)成,*數(shù)據(jù)總線緩沖器為8位雙向三態(tài)緩沖器,是8259A與CPU間數(shù)據(jù)傳輸?shù)耐ǖ馈?*CPU通過數(shù)據(jù)總線緩沖器向8259A送初始化命令和操作命令字,或是讀取狀態(tài)信息。 *在中斷響應(yīng)周期,8259A通過數(shù)據(jù)總線緩沖器向CPU送出中斷類型碼。,數(shù)據(jù)總線緩沖器,2020/7/21,微機(jī)原理及應(yīng)用,59,8259A的基本構(gòu)成,*讀/寫控制電路的邏輯功能就是負(fù)責(zé)接收CPU發(fā)來的控制信號,完成規(guī)定的寫入命令操作以及讀IRR、ISR和IMR的操作。 *該片8259A的操作過程中,片選CS必須有效。,讀/寫 控制邏輯,2020/7/21,微機(jī)原理及應(yīng)用,60,8259A的基本構(gòu)成,*級聯(lián)緩沖/比較器

31、用于實(shí)現(xiàn)8259A的級聯(lián),構(gòu)成主從式中斷管理系統(tǒng),使中斷源由8級擴(kuò)展到64級。 *級聯(lián)線CAS2CAS0 在主從式中斷管理系統(tǒng)中,全部8259A對應(yīng)相連;主片8259A,其為輸出線,CPU響應(yīng)中斷時(shí),輸出級聯(lián)設(shè)備編碼,選中對應(yīng)的從片;從片的8259A,其為輸入線,接收來自主片的設(shè)備編碼。,級聯(lián)緩沖/比較器,2020/7/21,微機(jī)原理及應(yīng)用,61,8259A的基本構(gòu)成,*控制電路邏輯根據(jù)CPU編程設(shè)定的工作方式產(chǎn)生片內(nèi)控制信號,控制片內(nèi)的工作; *同時(shí),根據(jù)IRR、IMR的內(nèi)容和PR判斷結(jié)果,向CPU發(fā)出中斷請求,接受來自CPU的中斷響應(yīng)信號。,控制邏輯,2020/7/21,微機(jī)原理及應(yīng)用,6

32、2,引腳功能,1、中斷請求輸入線IR7IR0接受來自外設(shè)或8259A從片的中斷請求信號。 可設(shè)置為上升沿觸發(fā)或高電平觸發(fā)。,中斷請求輸入線,2020/7/21,微機(jī)原理及應(yīng)用,63,引腳功能,*雙向三態(tài)數(shù)據(jù)線D7D0 可與系統(tǒng)數(shù)據(jù)總線直接相連,稱為非緩沖方式工作; *也可通過總線緩沖器與系統(tǒng)數(shù)據(jù)總線相連,稱為緩沖方式工作。,雙向三態(tài)數(shù)據(jù)線,2020/7/21,微機(jī)原理及應(yīng)用,64,引腳功能,中斷請求線INT,輸出信號,通常與CPU的可屏蔽中斷輸入端INTR相連,向CPU發(fā)送中斷請求信號。,中斷請求線,2020/7/21,微機(jī)原理及應(yīng)用,65,引腳功能,*接收CPU在中斷響應(yīng)周期發(fā)來的中斷響應(yīng)信

33、號,8259A接到此信號后,送上中斷類型碼; *中斷類型碼由編程設(shè)定。,中斷響應(yīng)線,中斷響應(yīng)線,2020/7/21,微機(jī)原理及應(yīng)用,66,引腳功能,*由CPU的高位地址線控制,低電平時(shí),表示8259A被選中,允許CPU對8259A進(jìn)行讀或?qū)懖僮鳎?*高電平時(shí),表示未選中該片。,片選信號線,片選線,2020/7/21,微機(jī)原理及應(yīng)用,67,引腳功能,地址線A0用以選擇8259A內(nèi)部不同寄存器。 *在8088系統(tǒng)中,A0與CPU的A0相連; *在8086系統(tǒng)中,8259A的D7D0與系統(tǒng)數(shù)據(jù)線低8位相連,而CPU與偶地址傳遞低8位數(shù)據(jù)信息,所以A0應(yīng)與8086 CPU的A1相連。,地址線,2020

34、/7/21,微機(jī)原理及應(yīng)用,68,引腳功能,當(dāng)讀信號低電平時(shí),允許8259A將中斷請求寄存器IRR、中斷服務(wù)寄存器ISR、中斷屏蔽寄存器IMR的內(nèi)容送上數(shù)據(jù)總線,供CPU讀取。,讀信號,讀信號,2020/7/21,微機(jī)原理及應(yīng)用,69,引腳功能,寫信號低電平時(shí),允許CPU將命令字寫入8259A。,寫信號,寫信號,2020/7/21,微機(jī)原理及應(yīng)用,70,引腳功能,*級聯(lián)線CAS2CAS0 在主從式中斷管理系統(tǒng)中,全部8259A的CAS2CAS0與對應(yīng)端相連。 *作為主片的8259A,其CAS2CAS0為輸出線,在CPU響應(yīng)中斷時(shí),用來輸出級聯(lián)設(shè)備編碼,選中對應(yīng)的從片; *作為從片的8259A,

35、其CAS2CAS0為輸入線,接收來自主片的設(shè)備編碼。,級聯(lián)線,2020/7/21,微機(jī)原理及應(yīng)用,71,引腳功能,非緩沖方式工作時(shí),作為輸入線, *高電平時(shí),表示該8259A為主片; *低電平時(shí),表示該8259A為從片。 緩沖方式下工作時(shí),作為輸出線,用于控制緩沖器接收和發(fā)送。,從片編程/ 緩沖使能,2020/7/21,微機(jī)原理及應(yīng)用,72,8259A的主要功能,(1) 每一片8259A可管理8級中斷,通過級聯(lián), 最多可以管理64級中斷; (2)每級中斷源都可單獨(dú)進(jìn)行屏蔽或允許; (3) 在中斷響應(yīng)周期,能向CPU提供中斷類型碼,從而使CPU獲得相應(yīng)的中斷向量; (4) 允許多級中斷嵌套; (

36、5) 可設(shè)置多種中斷優(yōu)先權(quán)管理方式, (6) 8259A是可編程芯片,用戶可通過編程選擇不同的工作方式; (7) 具有中斷查詢方式功能,使CPU以查詢方式與各外設(shè)進(jìn)行I/O操作。,2020/7/21,微機(jī)原理及應(yīng)用,73,2、8259A工作過程,當(dāng)有外部中斷請求時(shí),8259A處理過程: (1)中斷請求寄存器IRR接受外部中斷請求并鎖存,當(dāng)中斷屏蔽寄存器IMR為0時(shí),則中斷請求進(jìn)入優(yōu)先權(quán)判別器PR,由PR判斷是否當(dāng)前優(yōu)先權(quán)最高? 如果是,則8259A的INT為1,向CPU的INTR發(fā)出中斷請求;,2020/7/21,微機(jī)原理及應(yīng)用,74,2、8259A工作過程,8259A使中斷服務(wù)寄存器ISR的

37、相應(yīng)位置1,并將中斷請求寄存器IRR的相應(yīng)位清零,再送出中斷類型碼;,2020/7/21,微機(jī)原理及應(yīng)用,75,2、8259A工作過程,(3)若允許中斷嵌套,則由8259A的PR依據(jù)ISR中的狀態(tài),判斷新的中斷請求優(yōu)先權(quán)是否高于正在服務(wù)的中斷。 若是,則送出INT=1,向CPU的INTR發(fā)中斷請求信號,從而實(shí)現(xiàn)中斷嵌套。 (4)當(dāng)中斷服務(wù)結(jié)束時(shí),CPU送出中斷結(jié)束命令,使8259A清除ISR的相應(yīng)位,從而結(jié)束一個中斷服務(wù)。,2020/7/21,微機(jī)原理及應(yīng)用,76,3、8259A的工作方式,8259A具有十分靈活的運(yùn)行方式,可以通過編程設(shè)定工作方式,滿足用戶對中斷管理的不同要求。 主要工作方式

38、: (1)中斷請求觸發(fā)方式 (2)屏蔽中斷源方式 (3)中斷優(yōu)先權(quán)設(shè)置方式 (4)中斷結(jié)束(EOI)方式 (5)連接系統(tǒng)總線方式 (6)中斷查詢方式 (7)級聯(lián)方式,2020/7/21,微機(jī)原理及應(yīng)用,77,(1)中斷請求觸發(fā)方式,*電平觸發(fā) *邊沿觸發(fā),2020/7/21,微機(jī)原理及應(yīng)用,78,電平觸發(fā),8259A將中斷請求輸入線上出現(xiàn)高電平作為有效的中斷請求信號。 注意:當(dāng)中斷請求輸入端出現(xiàn)一個高電平并得到CPU響應(yīng)時(shí),應(yīng)及時(shí)撤消信號。 否則,在CPU進(jìn)入中斷處理過程,開放中斷后,會引起錯誤的第二次中斷。,2020/7/21,微機(jī)原理及應(yīng)用,79,邊沿觸發(fā),8259A將中斷請求輸入線出現(xiàn)的

39、上升沿作為中斷請求信號。上升沿觸發(fā)后,可一直保持高電平,而不會產(chǎn)生重復(fù)觸發(fā)。 通常用負(fù)脈沖的后沿實(shí)現(xiàn)邊沿觸發(fā)。,2020/7/21,微機(jī)原理及應(yīng)用,80,(2)屏蔽中斷源方式,*普通屏蔽方式 *特殊屏蔽方式,2020/7/21,微機(jī)原理及應(yīng)用,81,普通屏蔽方式,CPU對8259A的中斷屏蔽寄存器IMR寫入命令字OCWl,使IMR中的某個位或幾個位置1,對應(yīng)的中斷請求就被屏蔽,從而不能被8259A送到CPU。 而IMR中被置0的那些位對應(yīng)的中斷請求允許從8259A送到CPU。 對中斷屏蔽可以隨時(shí)修改,即通過對命令字OCWl的重新設(shè)置,實(shí)現(xiàn)對某些中斷的屏蔽。,2020/7/21,微機(jī)原理及應(yīng)用,

40、82,特殊屏蔽方式,是在中斷服務(wù)程序中使用,用于中斷嵌套,實(shí)現(xiàn)在高優(yōu)先權(quán)的中斷服務(wù)程序中開放低優(yōu)先權(quán)的中斷請求。 實(shí)現(xiàn):在中斷服務(wù)程序中,用命令字OCW1對中斷屏蔽寄存器IMR中相應(yīng)的位置1,且清除當(dāng)前中斷服務(wù)寄存器ISR對應(yīng)的位,從而開放低優(yōu)先權(quán)的中斷請求。,2020/7/21,微機(jī)原理及應(yīng)用,83,(3)中斷優(yōu)先權(quán)設(shè)置方式,*普通全嵌套方式 *特殊全嵌套方式 *優(yōu)先權(quán)自動循環(huán)方式 *優(yōu)先權(quán)特殊循環(huán)方式,2020/7/21,微機(jī)原理及應(yīng)用,84,普通全嵌套方式,這是8259A最基本、最常用的工作方式,若對8259A初始化后沒有設(shè)置其它優(yōu)先權(quán)方式,則默認(rèn)為此方式。 普通全嵌套方式中,8259A

41、的8個中斷源請求的優(yōu)先權(quán)級別,按照IR0優(yōu)先權(quán)最高、IR7優(yōu)先權(quán)最低的固定優(yōu)先權(quán)順序。 當(dāng)一個中斷被響應(yīng)后,只有比它高優(yōu)先權(quán)的中斷請求才會被響應(yīng)。,2020/7/21,微機(jī)原理及應(yīng)用,85,特殊全嵌套方式,與普通全嵌套方式基本相同,優(yōu)先權(quán)順序按照IR0優(yōu)先權(quán)最高、IR7優(yōu)先權(quán)最低的固定順序。 唯一不同在于:若CPU正在處理某一級中斷時(shí),如果有同級的中斷請求,8259A也會送出中斷請求給CPU。 特殊全嵌套方式是對同級中斷的一種中斷嵌套。 一般用在8259A級聯(lián)的系統(tǒng)中,設(shè)定主片為特殊全嵌套方式。 當(dāng)某一從片的中斷請求正在被處理時(shí),既開放主片上其他優(yōu)先權(quán)高的中斷請求,同時(shí)也開放了同一從片上的較高

42、優(yōu)先權(quán)的中斷請求。,2020/7/21,微機(jī)原理及應(yīng)用,86,優(yōu)先權(quán)自動循環(huán)方式,一個系統(tǒng)的幾個中斷源的重要性差別不大,因而希望它的優(yōu)先權(quán)不是固定不變的。 優(yōu)先權(quán)自動循環(huán)方式下,優(yōu)先權(quán)順序是在變化的: 初始時(shí),IR0為最高優(yōu)先權(quán),IR7為最低優(yōu)先權(quán); 當(dāng)一個中斷被CPU響應(yīng)后,它的優(yōu)先權(quán)自動降為最低的; 原在其下一級的中斷升為最高優(yōu)先權(quán),其余循環(huán)類推。 假設(shè),初始時(shí)有IR3中斷請求,且被CPU響應(yīng),當(dāng)IR3的中斷服務(wù)結(jié)束后,IR3降為最低優(yōu)先權(quán)。 此時(shí)的優(yōu)先權(quán)順序變?yōu)椋篒R4、IR5、IR6、IR7、IR0、IRl、IR2、IR3。,2020/7/21,微機(jī)原理及應(yīng)用,87,優(yōu)先權(quán)特殊循環(huán)方式

43、,與優(yōu)先權(quán)自動循環(huán)方式相似,優(yōu)先權(quán)的順序是變化的,當(dāng)一個中斷被CPU響應(yīng),它的優(yōu)先權(quán)自動降為最低。 優(yōu)先權(quán)特殊循環(huán)方式中,初始最低優(yōu)先權(quán)是由編程設(shè)定的。 設(shè)編程時(shí)設(shè)定IR4為最低,則初始優(yōu)先權(quán)順序由高至低為:IR5、IR6、IR7、IR0、IRl、IR2、IR3、IR4。 優(yōu)先權(quán)順序還可在執(zhí)行EOI命令時(shí)指明最低優(yōu)先權(quán)。,2020/7/21,微機(jī)原理及應(yīng)用,88,(4)中斷結(jié)束(EOI)方式,當(dāng)一個中斷請求被響應(yīng),8259A在中斷服務(wù)寄存器ISR的相應(yīng)位置l。 當(dāng)中斷服務(wù)結(jié)束時(shí),必須將ISR中相應(yīng)的位清0,進(jìn)行中斷結(jié)束操作。 * 自動中斷結(jié)束方式 * 普通中斷結(jié)束方式 * 特殊中斷結(jié)束方式,2

44、020/7/21,微機(jī)原理及應(yīng)用,89,自動中斷結(jié)束方式,CPU一旦進(jìn)入中斷響應(yīng)周期,8259A就自動將當(dāng)前中斷服務(wù)寄存器ISR中相應(yīng)的位清0。 這時(shí),盡管CPU正在為某個中斷源服務(wù),但在8259A的ISR中沒有對應(yīng)位置1,優(yōu)先權(quán)判別器PR不能依據(jù)ISR正確判別是否接收新的中斷請求,就會出現(xiàn)低優(yōu)先權(quán)中斷打斷高優(yōu)先權(quán)中斷的情況。 自動中斷結(jié)束方式通常用在不允許中斷嵌套的場合。,2020/7/21,微機(jī)原理及應(yīng)用,90,普通中斷結(jié)束方式,普通中斷結(jié)束方式用在普通全嵌套情況下。 在中斷服務(wù)結(jié)束時(shí),必須由CPU用OUT指令發(fā)來一個普通EOI命令,8259A收到后,將當(dāng)前中斷服務(wù)寄存器ISR中的已置1的

45、最高優(yōu)先權(quán)的位復(fù)位。,2020/7/21,微機(jī)原理及應(yīng)用,91,特殊中斷結(jié)束方式,特殊中斷結(jié)束方式多用于優(yōu)先權(quán)循環(huán)情況下。 由CPU在中斷服務(wù)結(jié)束時(shí),發(fā)出一條特殊EOI命令,指明要清除ISR中的哪一位。 注意:在級聯(lián)方式下,一般不用自動EOI方式,而用普通中斷結(jié)束或特殊中斷結(jié)束方式。 一個中斷結(jié)束可能要發(fā)兩次EOI命令,一次對主片,一次對從片,分別清除主、從片的ISR中相應(yīng)位。,2020/7/21,微機(jī)原理及應(yīng)用,92,(5)連接系統(tǒng)總線方式,2020/7/21,微機(jī)原理及應(yīng)用,93,(6)中斷查詢方式,8259A提供了中斷查詢方式。 這種方式下,外設(shè)仍然靠中斷請求要求服務(wù),但CPU不是通過對

46、中斷請求的響應(yīng),而是靠主動查詢實(shí)現(xiàn)對外設(shè)的服務(wù)。 在CPU為關(guān)中斷情況下,外設(shè)的中斷請求信號不被響應(yīng),但CPU可以通過查詢方式檢查請求中斷的外設(shè),獲取中斷請求信號,從而進(jìn)入中斷服務(wù)。,2020/7/21,微機(jī)原理及應(yīng)用,94,(7)級聯(lián)方式,8259A可以級聯(lián)使用,一個主8259A可以最多帶8個從8259A,將中斷源擴(kuò)展到64級。,2020/7/21,微機(jī)原理及應(yīng)用,95,(7)級聯(lián)方式,通常主片采用特殊全嵌套方式,允許同一從片上優(yōu)先權(quán)高的中斷請求打斷優(yōu)先權(quán)低的中斷請求。 其余的工作方式、寄存器讀取方法與單片系統(tǒng)基本相同。,2020/7/21,微機(jī)原理及應(yīng)用,96,4、8259A編程方法,82

47、59A為可編程的中斷控制器,它的工作狀態(tài)和操作是由接收CPU的命令而確定的。 8259A在開始使用前,首先寫入 初始化命令字,使其處于預(yù)定的初始狀態(tài);初始化命令字設(shè)定后,在整個系統(tǒng)工作過程中保持不變; 操作命令字用來控制8259A執(zhí)行不同的操作方式。初始化命令字設(shè)置后,在8259A工作期間的任何時(shí)刻都可設(shè)置操作命令字,且允許重置操作命令字動態(tài)地改變8259A的操作方式。,2020/7/21,微機(jī)原理及應(yīng)用,97,初始化命令字,初始化命令字有4個 : ICW1格式 ICW2格式 ICW3格式 ICW4格式,8259A在使用前首先必須對它進(jìn)行初始化,使其處于預(yù)定的初始狀態(tài),初始化命令字設(shè)定后,整個

48、工作過程中保持不變。,例題,2020/7/21,微機(jī)原理及應(yīng)用,98,ICW1格式,D41,A00表示設(shè)置的是ICW1 注意: A00,表示輸入8259A低地址端口;,2020/7/21,微機(jī)原理及應(yīng)用,99,ICW2格式,ICW2用于設(shè)置中斷類型碼。 注意: A01,表示輸入8259A高地址端口。,2020/7/21,微機(jī)原理及應(yīng)用,100,ICW3格式,ICW3是在級聯(lián)方式下設(shè)置的初始化命令字。 當(dāng)ICW1中D11,單片使用,不需要ICW3; 當(dāng)ICW1中D10 ,表示8259A工作于級聯(lián)方式,必須設(shè)置ICW3。,2020/7/21,微機(jī)原理及應(yīng)用,101,ICW3格式,* 假設(shè),主片IC

49、W30101 0011,,表示該從片的INT連至主片的IR7,表示IR6、 IR4、 IR1、 IR0上接有從片,* 假設(shè),從片ICW30000 0111,,2020/7/21,微機(jī)原理及應(yīng)用,102,ICW4格式,當(dāng)ICW1的D0 =1,需要設(shè)置ICW4。,D7 D6 D5 = 000 ICW4的標(biāo)志,SFNM1,用于指明是否選擇特殊全嵌套方式,一般在使用多片8259A中使用,主片即選用特殊全嵌套方式。,2020/7/21,微機(jī)原理及應(yīng)用,103,例題,解:其初始化程序如下: MOV AL,13H;設(shè)置ICW1=0001 0011,即采用邊沿 ;觸發(fā),單片,需要ICW4 OUT 80H,AL

50、;ICW1寫入地址A0=0 MOV AL,18H;ICW2=0001 1000,確定ICW2的高5位 OUT 81H,AL;ICW2寫入地址A0 =1 MOV AL,0DH;ICW4=0000 1101,即普通嵌套方式, ;緩沖方式,非自動中斷結(jié)束方式,用 ;于8086/8088 OUT 81H,AL;ICW4寫入地址A0 =1 ,單片8259A的端口地址是80H和81H,采用邊沿觸發(fā),普通嵌套方式,緩沖方式,非自動中斷結(jié)束方式,需要ICW4,中斷類型碼是18H1FH,請對8259A進(jìn)行初始化。,2020/7/21,微機(jī)原理及應(yīng)用,104,操作命令字,向8259A寫入初始化命令字后,8259A

51、就處于設(shè)定的工作狀態(tài),隨時(shí)準(zhǔn)備接受中斷請求信號,按要求管理中斷; 自動進(jìn)入操作命令狀態(tài),在任何時(shí)刻都可以設(shè)置操作命令字,選擇其不同的操作方式; 操作命令字用于規(guī)定中斷屏蔽、中斷結(jié)束、優(yōu)先權(quán)循環(huán)和中斷狀態(tài)的讀出和查詢等等。 操作命令字有三個,根據(jù)需要輸入,無需按順序。 OCW1 OCW2 OCW3,例題,2020/7/21,微機(jī)原理及應(yīng)用,105,OCW1,OCW1的功能用來動態(tài)地設(shè)置中斷源的屏蔽狀態(tài)。,CPU也可以從8259A的高地址端口讀取中斷屏蔽寄存器IMR的內(nèi)容。,假設(shè),OCW133H, 表示IR5、 IR4、 IR1、 IR0引腳上的中斷被屏蔽,其余中斷請求允許;,2020/7/21,

52、微機(jī)原理及應(yīng)用,106,OCW2,D4D300:可作為OCW2的標(biāo)志位。 D5: 即EOI,中斷結(jié)束命令位。,OCW2的功能 就是用于控制中斷結(jié)束,優(yōu)先權(quán)循環(huán)等操作方式。,2020/7/21,微機(jī)原理及應(yīng)用,107,OCW2,若ICW4中AEOI0,表明設(shè)置非自動中斷結(jié)束方式,則在中斷服務(wù)程序最后中斷返回前必須設(shè)置中斷結(jié)束(EOI)命令。 EOI置1為一個EOI命令,執(zhí)行此命令將清除8259A的中斷服務(wù)寄存器ISR具有最高優(yōu)先權(quán)的位或由L2L0指定的位; R、SL、EOI三位配合使用選擇中斷結(jié)束和優(yōu)先權(quán)循環(huán)的操作方式。,2020/7/21,微機(jī)原理及應(yīng)用,108,OCW2,假設(shè),OCW2011

53、0 0011, 是特殊EOI命令,清除ISR指定的位(即D3); OCW21000 0000, 設(shè)置為工作于中斷優(yōu)先權(quán)自動循環(huán)方式。優(yōu)先權(quán)初始次序由高至低為IR0IR7,當(dāng)一個中斷被處理返回后,自動降為最低級,其下一級作為最高級,其余依次類推。 OCW21110 0010, 清除ISR中當(dāng)前中斷對應(yīng)的位,指定當(dāng)前系統(tǒng)的最低優(yōu)先權(quán)級(IR2 ) 。中斷返回后,優(yōu)先權(quán)次序改為IR3、IR4、IR5、IR6、IR7、IR0、IRl、IR2。,2020/7/21,微機(jī)原理及應(yīng)用,109,OCW3,OCW3用于控制8259A的運(yùn)行方式。 包括設(shè)置或撤銷特殊屏蔽方式和查詢方式, 可讀出8259A的中斷請求

54、寄存器IRR ,中斷服務(wù)寄存器ISR等。,P1,查詢,D4D301 OCW3的標(biāo)志,2020/7/21,微機(jī)原理及應(yīng)用,110,OCW3,當(dāng)CPU發(fā)來一個OCW3查詢命令(P1): 假設(shè),此時(shí)優(yōu)先權(quán)次序?yàn)镮R3、IR4、IR5、IR6、IR7、IR0、IRl、IR2 ,且IR5、IRl有中斷請求。 隨后,CPU執(zhí)行一條輸入指令,便可得到查詢字: 85H,查詢字格式,1, 有中斷請求,優(yōu)先權(quán) 最高位,2020/7/21,微機(jī)原理及應(yīng)用,111,OCW3,CPU不必設(shè)置OCW3,可隨時(shí)在高地址讀取IMR的值; 而讀取IRR和ISR之前,必須先發(fā)一個OCW3命令字。,D1D0:讀取8259A 的IR

55、R或ISR的值,2020/7/21,微機(jī)原理及應(yīng)用,112,OCW3,假設(shè),8259A的端口地址為20H,21H, MOV AL,0AH; 設(shè)置OCW3,其中D1D0=10 OUT 20H,AL;從低端口輸出 NOP;等待 IN AL,20H;讀入IRR的內(nèi)容,如果需要讀入ISR的內(nèi)容,如何修改?,2020/7/21,微機(jī)原理及應(yīng)用,113,R、SL、EOI組合,注:有信號的組合,OCW2的L2L0有效,2020/7/21,微機(jī)原理及應(yīng)用,114,例題(1),1、已知8259A的端口地址是20H,21H,讀取其中斷請求寄存器IRR和中斷服務(wù)寄存器ISR的內(nèi)容。 解: MOV AL,0AH;OC

56、W3=0000 1010,讀IRR寄存器 OUT 20H,AL;OCW3輸出到8259A的低地址 NOP;空操作,等待3個時(shí)鐘周期 IN AL,20H;從低地址讀入IRR的內(nèi)容 ,2020/7/21,微機(jī)原理及應(yīng)用,115,例題(2),2、修改中斷屏蔽寄存器IMR內(nèi)容,使IR5的中斷請求被屏蔽,開放IR3的中斷請求,其余不變,8259A的端口地址60H,62H。 解:OCW1對應(yīng)位為0,開中斷;對應(yīng)位為1,禁止中斷;CPU從8259A高地址讀取的內(nèi)容就是中斷屏蔽寄存器IMR的內(nèi)容。 IN AL,62H;從高地址讀入IMR AND AL,0F7H;讀入的IMR與1111 0111,即IR3置0

57、OR AL,20H;以上IMR的值或0010 0000,即IR5置1 OUT 62H,AL;從高地址寫入IMR ,2020/7/21,微機(jī)原理及應(yīng)用,116,例題(3),3、8259A當(dāng)前中斷服務(wù)寄存器ISR的內(nèi)容代表什么?在中斷嵌套和單個中斷情況下,ISR的內(nèi)容有什么不同? 解:中斷服務(wù)寄存器ISR記錄了正被CPU響應(yīng)的中斷(在非自動EOI方式下)。ISR是8位寄存器,8個位分別對應(yīng)8個中斷源IRi,若某個中斷源的中斷請求被CPU響應(yīng),則對應(yīng)位置1。 單個中斷被響應(yīng)時(shí),ISR中只有一個位為1。 中斷嵌套時(shí)ISR中有兩個以上的位為1,表明一個中斷未處理結(jié)束,又轉(zhuǎn)入更高優(yōu)先權(quán)的中斷處理中。所以I

58、SR表示當(dāng)前有哪些正在響應(yīng)的中斷存在。,2020/7/21,微機(jī)原理及應(yīng)用,117,例題(4),4、8259A按中斷結(jié)束方式分有哪幾種?若初始化時(shí)設(shè)置為非自動中斷結(jié)束方式,則在中斷服務(wù)程序未尾應(yīng)設(shè)置什么操作命令?不設(shè)置將會對中斷系統(tǒng)產(chǎn)生什么影響? 解:8259A按中斷結(jié)束方式分有3種:自動中斷結(jié)束方式、普通中斷結(jié)束方式、特殊中斷結(jié)束方式。 初始化時(shí)設(shè)置為非自動中斷結(jié)束方式,則在中斷服務(wù)程序末尾應(yīng)設(shè)置中斷結(jié)束命令即EOI命令(即寫OCW2),將ISR中對應(yīng)的置1位清0,表示該中斷源的中斷處理結(jié)束了。 若在中斷服務(wù)程序末尾沒有執(zhí)行EOI命令,則ISR中對應(yīng)的置1位一直保持。 當(dāng)對應(yīng)的中斷源的中斷處理結(jié)束,而ISR中仍記錄該中斷正在處理,因此,將影響優(yōu)先權(quán)判別器PR的正確判別,導(dǎo)致比該中斷源優(yōu)先權(quán)低的中斷請求不能被響應(yīng)。,2020/7/21,微機(jī)原理及應(yīng)用,118,例題(5),5、設(shè)目前系統(tǒng)的最高優(yōu)先權(quán)為IR5,若執(zhí)行OCW2命令,且命令中EOI0,R1,SL1,L2L1L0011。請指出OCW2命令執(zhí)行后,8259A的優(yōu)先權(quán)順序。 解:因?yàn)镺CW2命令中R1,SL1,EOI0,則該命令是指定優(yōu)先權(quán)特殊循環(huán)方式的最低級; 由L2L1L

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論