第八章中斷技術(shù)_第1頁(yè)
第八章中斷技術(shù)_第2頁(yè)
第八章中斷技術(shù)_第3頁(yè)
第八章中斷技術(shù)_第4頁(yè)
第八章中斷技術(shù)_第5頁(yè)
已閱讀5頁(yè),還剩72頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、8.1 中斷技術(shù)概述中斷技術(shù)概述8.2 8086/8088中斷系統(tǒng)中斷系統(tǒng)8.3 可編程中斷控制器可編程中斷控制器8259A8.4 8259A的應(yīng)用的應(yīng)用 中斷是微型計(jì)算機(jī)系統(tǒng)中非常重要的一項(xiàng)技術(shù)中斷是微型計(jì)算機(jī)系統(tǒng)中非常重要的一項(xiàng)技術(shù)是對(duì)微處理器功能的有效擴(kuò)展是對(duì)微處理器功能的有效擴(kuò)展 中斷技術(shù)是微型計(jì)算機(jī)系統(tǒng)的核心技術(shù)之一中斷技術(shù)是微型計(jì)算機(jī)系統(tǒng)的核心技術(shù)之一在當(dāng)代計(jì)算機(jī)中具有重要作用在當(dāng)代計(jì)算機(jī)中具有重要作用是用以提高計(jì)算機(jī)工作效率的一項(xiàng)重要技術(shù)是用以提高計(jì)算機(jī)工作效率的一項(xiàng)重要技術(shù) 一、中斷的基本概念一、中斷的基本概念 中斷及中斷源中斷及中斷源 中斷中斷是指是指CPU正在運(yùn)行程序時(shí),由

2、于某些事件或狀態(tài)的出正在運(yùn)行程序時(shí),由于某些事件或狀態(tài)的出現(xiàn),使現(xiàn),使CPU暫時(shí)停止正在運(yùn)行的程序,轉(zhuǎn)到為這些事情或狀暫時(shí)停止正在運(yùn)行的程序,轉(zhuǎn)到為這些事情或狀態(tài)服務(wù)的程序中去,服務(wù)完畢后,再返回被打斷的程序繼續(xù)態(tài)服務(wù)的程序中去,服務(wù)完畢后,再返回被打斷的程序繼續(xù)執(zhí)行。執(zhí)行。 引起中斷的事件或狀態(tài)稱(chēng)為引起中斷的事件或狀態(tài)稱(chēng)為中斷源中斷源 2. 中斷服務(wù)程序中斷服務(wù)程序 CPU在處理中斷事件時(shí)必須針對(duì)不同中斷源的要求給以不同在處理中斷事件時(shí)必須針對(duì)不同中斷源的要求給以不同的解決方案,這需要有一個(gè)中斷處理程序的解決方案,這需要有一個(gè)中斷處理程序(中斷服務(wù)程序中斷服務(wù)程序)來(lái)解來(lái)解決。決。從程序的邏

3、輯關(guān)系來(lái)看,中斷的實(shí)質(zhì)就是程序的轉(zhuǎn)移。從程序的邏輯關(guān)系來(lái)看,中斷的實(shí)質(zhì)就是程序的轉(zhuǎn)移。 一個(gè)中斷過(guò)程包含兩次轉(zhuǎn)移一個(gè)中斷過(guò)程包含兩次轉(zhuǎn)移 響應(yīng)響應(yīng) 返回返回3. 中斷系統(tǒng)中斷系統(tǒng) 微機(jī)的中斷系統(tǒng)是由微處理器及其外圍支持芯片中斷控制微機(jī)的中斷系統(tǒng)是由微處理器及其外圍支持芯片中斷控制器及相關(guān)程序組成器及相關(guān)程序組成 1)微處理器應(yīng)有處理中斷請(qǐng)求的機(jī)制與相關(guān)硬件電路)微處理器應(yīng)有處理中斷請(qǐng)求的機(jī)制與相關(guān)硬件電路 接收請(qǐng)求、響應(yīng)請(qǐng)求、保護(hù)現(xiàn)場(chǎng)、轉(zhuǎn)向中斷服務(wù)程接收請(qǐng)求、響應(yīng)請(qǐng)求、保護(hù)現(xiàn)場(chǎng)、轉(zhuǎn)向中斷服務(wù)程序以及中斷處理完畢后的返回等機(jī)制序以及中斷處理完畢后的返回等機(jī)制 。2)微處理器的外圍電路)微處理器的

4、外圍電路中斷控制器中斷控制器 管理多個(gè)中斷源,進(jìn)行優(yōu)先級(jí)排隊(duì),屏蔽中斷源以管理多個(gè)中斷源,進(jìn)行優(yōu)先級(jí)排隊(duì),屏蔽中斷源以及提供中斷信息等功能。及提供中斷信息等功能。 3)中斷處理程序)中斷處理程序 二、中斷的基本原理與概念二、中斷的基本原理與概念 1. 中斷屏蔽中斷屏蔽 中斷分為兩大類(lèi):中斷分為兩大類(lèi): 不可屏蔽中斷不可屏蔽中斷 (NMI) 可屏蔽中斷(可屏蔽中斷(INTR )IF:STI 、CLI 2. 中斷優(yōu)先級(jí)中斷優(yōu)先級(jí) 系統(tǒng)根據(jù)引起中斷事件的重要性和緊迫程度,系統(tǒng)根據(jù)引起中斷事件的重要性和緊迫程度,硬件將中斷源分為若干個(gè)級(jí)別,稱(chēng)作中斷優(yōu)先硬件將中斷源分為若干個(gè)級(jí)別,稱(chēng)作中斷優(yōu)先級(jí)級(jí) 。

5、CPU按照由高到低的順序響應(yīng)。高級(jí)中斷可以按照由高到低的順序響應(yīng)。高級(jí)中斷可以打斷低級(jí)中斷處理程序的運(yùn)行,優(yōu)先執(zhí)行高級(jí)中打斷低級(jí)中斷處理程序的運(yùn)行,優(yōu)先執(zhí)行高級(jí)中斷處理程序。斷處理程序。 3. 中斷嵌套中斷嵌套優(yōu)先級(jí)更高的中斷打斷當(dāng)前正在執(zhí)行的級(jí)別較低的中斷優(yōu)先級(jí)更高的中斷打斷當(dāng)前正在執(zhí)行的級(jí)別較低的中斷 三、中斷的過(guò)程三、中斷的過(guò)程 中斷是一個(gè)軟硬件協(xié)調(diào)工作的過(guò)程,整個(gè)工作過(guò)中斷是一個(gè)軟硬件協(xié)調(diào)工作的過(guò)程,整個(gè)工作過(guò)程可分為中斷請(qǐng)求、中斷響應(yīng)和中斷處理。程可分為中斷請(qǐng)求、中斷響應(yīng)和中斷處理。中斷請(qǐng)求中斷請(qǐng)求 中斷請(qǐng)求是由中斷源發(fā)出并送給中斷請(qǐng)求是由中斷源發(fā)出并送給CPU的控制信的控制信號(hào),由

6、中斷源設(shè)備通過(guò)置號(hào),由中斷源設(shè)備通過(guò)置1設(shè)置在接口卡上的設(shè)置在接口卡上的中中斷觸發(fā)器斷觸發(fā)器完成。完成。 中斷源的中斷屏蔽觸發(fā)器可以設(shè)置是否發(fā)出中斷源的中斷屏蔽觸發(fā)器可以設(shè)置是否發(fā)出這一請(qǐng)求這一請(qǐng)求 2. 中斷響應(yīng)中斷響應(yīng)響應(yīng)中斷請(qǐng)求的響應(yīng)中斷請(qǐng)求的條件條件:這一請(qǐng)求的中斷優(yōu)先級(jí)最高;這一請(qǐng)求的中斷優(yōu)先級(jí)最高; CPU允許中斷允許中斷 且且CPU執(zhí)行完當(dāng)前指令執(zhí)行完當(dāng)前指令這一請(qǐng)求沒(méi)有被中斷管理機(jī)構(gòu)屏蔽這一請(qǐng)求沒(méi)有被中斷管理機(jī)構(gòu)屏蔽這一請(qǐng)求沒(méi)有超過(guò)系統(tǒng)允許嵌套的層數(shù)這一請(qǐng)求沒(méi)有超過(guò)系統(tǒng)允許嵌套的層數(shù)響應(yīng)時(shí)系統(tǒng)的操作:響應(yīng)時(shí)系統(tǒng)的操作: 執(zhí)行中斷隱指令執(zhí)行中斷隱指令 保存程序計(jì)數(shù)器保存程序計(jì)數(shù)器

7、PC和標(biāo)志寄存器內(nèi)容和標(biāo)志寄存器內(nèi)容 3. 中斷處理中斷處理用戶(hù)編程完成的操作:用戶(hù)編程完成的操作: 關(guān)中斷、保護(hù)現(xiàn)場(chǎng)關(guān)中斷、保護(hù)現(xiàn)場(chǎng)2)開(kāi)中斷)開(kāi)中斷允許嵌套允許嵌套3)中斷服務(wù))中斷服務(wù)4)關(guān)中斷)關(guān)中斷恢復(fù)斷點(diǎn)和現(xiàn)場(chǎng)時(shí)不被中斷恢復(fù)斷點(diǎn)和現(xiàn)場(chǎng)時(shí)不被中斷 5)恢復(fù)現(xiàn)場(chǎng)、中斷結(jié)束)恢復(fù)現(xiàn)場(chǎng)、中斷結(jié)束6)中斷返回)中斷返回8086/8088系統(tǒng)的中斷類(lèi)型可以有系統(tǒng)的中斷類(lèi)型可以有256個(gè),個(gè),用一個(gè)用一個(gè)8位二進(jìn)制碼表示。位二進(jìn)制碼表示。劃分為劃分為硬件中斷(外部中斷)硬件中斷(外部中斷)軟件中斷(內(nèi)部中斷)軟件中斷(內(nèi)部中斷)兩類(lèi)兩類(lèi)外部中斷又有外部中斷又有不可屏蔽中斷不可屏蔽中斷和和可屏蔽中

8、斷可屏蔽中斷請(qǐng)求,請(qǐng)求,分別通過(guò)分別通過(guò)NMI引腳和引腳和INTR引腳輸入到引腳輸入到CPU。 圖8-1 8086/88系統(tǒng)的中斷分類(lèi)一、中斷類(lèi)型一、中斷類(lèi)型 硬件中斷硬件中斷可屏蔽中斷可屏蔽中斷 不可屏蔽中斷不可屏蔽中斷 2. 軟件中斷軟件中斷二、中斷優(yōu)先級(jí)二、中斷優(yōu)先級(jí) 為了使系統(tǒng)的各類(lèi)中斷有序地進(jìn)行,需對(duì)中斷劃分優(yōu)先級(jí)為了使系統(tǒng)的各類(lèi)中斷有序地進(jìn)行,需對(duì)中斷劃分優(yōu)先級(jí) 內(nèi)部中斷內(nèi)部中斷的優(yōu)先級(jí)別最高(單步中斷除外),其次是的優(yōu)先級(jí)別最高(單步中斷除外),其次是不可屏不可屏蔽中斷蔽中斷(NMI)和)和可屏蔽中斷可屏蔽中斷,單步中斷單步中斷的優(yōu)先級(jí)別最低。的優(yōu)先級(jí)別最低。 三、中斷向量表三、

9、中斷向量表 中斷向量與中斷向量表中斷向量與中斷向量表 如何根據(jù)不同的中斷源進(jìn)入相應(yīng)的中斷服務(wù)子程如何根據(jù)不同的中斷源進(jìn)入相應(yīng)的中斷服務(wù)子程序,每一個(gè)中斷服務(wù)程序都有一個(gè)唯一確定的入口序,每一個(gè)中斷服務(wù)程序都有一個(gè)唯一確定的入口地址。地址。 中斷向量:中斷向量:中斷服務(wù)程序入口地址的段基地址和段中斷服務(wù)程序入口地址的段基地址和段內(nèi)偏移地址,內(nèi)偏移地址,CS:IP。 中斷向量中斷向量存儲(chǔ)時(shí)占用存儲(chǔ)時(shí)占用4個(gè)字節(jié)個(gè)字節(jié) 中斷類(lèi)型號(hào)中斷類(lèi)型號(hào):系統(tǒng)為每個(gè)中斷源指定的一個(gè)編號(hào)系統(tǒng)為每個(gè)中斷源指定的一個(gè)編號(hào)一個(gè)中斷類(lèi)型號(hào)與一個(gè)中斷服務(wù)子程序(中斷向量)相對(duì)應(yīng)一個(gè)中斷類(lèi)型號(hào)與一個(gè)中斷服務(wù)子程序(中斷向量)相

10、對(duì)應(yīng) 中斷向量表:中斷向量表:所有中斷向量按類(lèi)型號(hào)集中存放在存所有中斷向量按類(lèi)型號(hào)集中存放在存儲(chǔ)器的某個(gè)區(qū)域內(nèi),形成中斷向量表。儲(chǔ)器的某個(gè)區(qū)域內(nèi),形成中斷向量表。圖8-2 8086/88的中斷向量表8086/8088 中斷系統(tǒng)有中斷系統(tǒng)有256個(gè)中斷,個(gè)中斷,每個(gè)中斷向量占每個(gè)中斷向量占四個(gè)存儲(chǔ)單元四個(gè)存儲(chǔ)單元,共需占用,共需占用1K字節(jié)的存儲(chǔ)空間來(lái)存放字節(jié)的存儲(chǔ)空間來(lái)存放中斷向量。中斷向量。PC系列微機(jī)把中斷向量表存入系列微機(jī)把中斷向量表存入存儲(chǔ)器的存儲(chǔ)器的最低端最低端1K字節(jié),即從字節(jié),即從00000H003FFH的存儲(chǔ)空間的存儲(chǔ)空間中。中。 中斷類(lèi)型號(hào)中斷類(lèi)型號(hào)n4 查表,從低到高地址取

11、連續(xù)查表,從低到高地址取連續(xù)4個(gè)字節(jié)個(gè)字節(jié) 從高到底的這從高到底的這4個(gè)字節(jié)即為個(gè)字節(jié)即為CS:IP 中斷號(hào)中斷號(hào)名名 稱(chēng)稱(chēng)XT型向量型向量AT型向量型向量控制權(quán)控制權(quán)8日時(shí)鐘中斷日時(shí)鐘中斷0BA9:00AB0BF7:00ABDOS-STACKS9鍵盤(pán)中斷鍵盤(pán)中斷0BA9:01250BF7:0125DOS-STACKS0A保留保留/從片中斷從片中斷F000:FF23F000:EF6FROM-BIOS0B串口串口2中斷中斷F000:FF23F000:EF6FROM-BIOS0C串口串口1中斷中斷F000:FF23F000:EF6FROM-BIOS0D硬盤(pán)硬盤(pán)/并口并口2中斷中斷 0BA9:03B

12、2 F000:EF6FROM-BIOS0E軟盤(pán)中斷軟盤(pán)中斷0BA9:043A 0BF7:043ADOS-STACKS0F打印機(jī)打印機(jī)/并口并口1中中斷斷0070:075C0070:075CROM-BIOS外部硬中斷外部硬中斷 2. 中斷向量的裝入中斷向量的裝入系統(tǒng)系統(tǒng)設(shè)置的中斷服務(wù)程序,其中斷向量由設(shè)置的中斷服務(wù)程序,其中斷向量由系統(tǒng)負(fù)責(zé)裝入。系統(tǒng)負(fù)責(zé)裝入。 用戶(hù)用戶(hù)開(kāi)發(fā)的中斷系統(tǒng),在編寫(xiě)中斷服務(wù)程序開(kāi)發(fā)的中斷系統(tǒng),在編寫(xiě)中斷服務(wù)程序時(shí),其中斷向量由用戶(hù)負(fù)責(zé)裝入。時(shí),其中斷向量由用戶(hù)負(fù)責(zé)裝入。 用戶(hù)程序三種方式裝入中斷向量用戶(hù)程序三種方式裝入中斷向量 :1)使用)使用MOV指令直接裝入指令直接

13、裝入 MOVAX, 0 ;中斷向量表的段基址為;中斷向量表的段基址為0000HMOVDS, AXMOVBX, 60H*4 ;60H號(hào)中斷向量在向量表中存放的單號(hào)中斷向量在向量表中存放的單;元地址;元地址MOVAX, OFFSET INT_PROMOVBX, AX ;裝入;裝入INT_PRO子程序的偏移地址子程序的偏移地址MOVAX, SEG INT_PROMOVBX+2, AX ;裝入;裝入INT_PRO子程序的段地址子程序的段地址2)使用串存指令直接裝入)使用串存指令直接裝入 CLDCLD ; ;方向標(biāo)志置方向標(biāo)志置DF=0DF=0,串操作時(shí),修改地址指針,串操作時(shí),修改地址指針 ; ;增量

14、增量MOVMOVAX,0 ;AX,0 ; 中斷向量表的段基址為中斷向量表的段基址為0000H0000HMOVMOVES,AXES,AXMOVMOVDI,60HDI,60H* *4 4 ;60H60H號(hào)中斷向量在向量表中存放的單元地址號(hào)中斷向量在向量表中存放的單元地址MOVMOVAX,OFFSET AX,OFFSET INT_PROINT_PROSTOSW STOSW ;裝入;裝入INT_PROINT_PRO子程序的偏移地址子程序的偏移地址MOVMOVAX,SEG AX,SEG INT_PROINT_PROSTOSW ; STOSW ; 裝入裝入INT_PROINT_PRO子程序的段地址子程序的

15、段地址3)使用)使用DOS系統(tǒng)功能調(diào)用裝入系統(tǒng)功能調(diào)用裝入 INT 21H的的25H/35H號(hào)功能也提供了號(hào)功能也提供了裝入裝入/保存中斷向量的功能。保存中斷向量的功能。 PUSH DSMOV AX, SEG INT_PRO ;取;取INT_PRO子程序的段基址子程序的段基址MOV DS, AXMOV DX, OFFSET INT_PRO ;?。蝗NT_PRO子程序的偏移地址子程序的偏移地址MOV AL, 60H ;中斷類(lèi)型號(hào);中斷類(lèi)型號(hào)MOV AH, 25H ;25H號(hào)號(hào)DOS功能調(diào)用功能調(diào)用 INT21HPOPDS3中斷向量的修改中斷向量的修改用戶(hù)利用系統(tǒng)中斷資源來(lái)開(kāi)發(fā)可屏蔽中斷服務(wù)程序

16、的常用方法用戶(hù)利用系統(tǒng)中斷資源來(lái)開(kāi)發(fā)可屏蔽中斷服務(wù)程序的常用方法 用戶(hù)編程實(shí)現(xiàn)把系統(tǒng)提供的中斷服務(wù)程序入口地址用戶(hù)編程實(shí)現(xiàn)把系統(tǒng)提供的中斷服務(wù)程序入口地址指向自己開(kāi)發(fā)的中斷服務(wù)程序。指向自己開(kāi)發(fā)的中斷服務(wù)程序。方法:用戶(hù)中斷服務(wù)程序的方法:用戶(hù)中斷服務(wù)程序的 CS:IP加入中斷向量表加入中斷向量表 PC采用中斷控制器采用中斷控制器8259A協(xié)助協(xié)助CPU完完成對(duì)外部硬件中斷的管理成對(duì)外部硬件中斷的管理 工作工作 具有三個(gè)主要方面的功能:具有三個(gè)主要方面的功能: 1)接收外部設(shè)備的中斷請(qǐng)求接收外部設(shè)備的中斷請(qǐng)求 2)實(shí)現(xiàn)優(yōu)先級(jí)排隊(duì)管理實(shí)現(xiàn)優(yōu)先級(jí)排隊(duì)管理 3)提供中斷類(lèi)型號(hào)提供中斷類(lèi)型號(hào) 一、一、

17、8259A內(nèi)部結(jié)構(gòu)和引腳功能內(nèi)部結(jié)構(gòu)和引腳功能 控 制 邏 輯數(shù)據(jù)總線緩沖器讀/寫(xiě)控制電路級(jí)聯(lián)緩沖/比較器中 斷服 務(wù)寄存器(ISR)優(yōu)先權(quán)判 決電 路中斷請(qǐng)求寄存器(IRR)中斷屏蔽寄存器(IMR)IR0IR1IR2IR3IR4IR5IR6IR7D7D0RDWRCS0ACAS0CAS1CAS2EN/SPINTAINT圖8- 3 8259A的內(nèi)部結(jié)構(gòu) 1)數(shù)據(jù)總線緩沖器)數(shù)據(jù)總線緩沖器 2)讀)讀/寫(xiě)控制邏輯寫(xiě)控制邏輯 3)級(jí)聯(lián)緩沖)級(jí)聯(lián)緩沖/比較器比較器 4)中斷控制邏輯)中斷控制邏輯 5)中斷請(qǐng)求寄存器()中斷請(qǐng)求寄存器(IRR) 6)中斷服務(wù)寄存器()中斷服務(wù)寄存器(ISR) 7)中斷屏

18、蔽寄存器()中斷屏蔽寄存器(IMR) 8)優(yōu)先權(quán)判決器()優(yōu)先權(quán)判決器(PR) 圖8- 6 8259A引腳圖D0D7 RDWRCSA0 SP/ENINT INTACAS2CAS0 IR7IR0 VCC GND 8259ACSWRRDD7D6D5D4D3D2D1D0CAS0CAS1GNDINTAIR7INTCAS2A0VCCIR6IR5IR4IR3IR2IR1IR0EN/SP28272625242322212019171815161234567891012111413 二、二、8259A的中斷管理方式的中斷管理方式 1中斷優(yōu)先權(quán)方式中斷優(yōu)先權(quán)方式 1)固定優(yōu)先權(quán)方式)固定優(yōu)先權(quán)方式 8259A的

19、中斷管理功能很強(qiáng),單片可以管理的中斷管理功能很強(qiáng),單片可以管理8級(jí)外部級(jí)外部中斷,還可以多片級(jí)聯(lián)使用。具有中斷優(yōu)先權(quán)設(shè)置、中斷,還可以多片級(jí)聯(lián)使用。具有中斷優(yōu)先權(quán)設(shè)置、中斷嵌套、中斷屏蔽和中斷結(jié)束等多種中斷管理方式。中斷嵌套、中斷屏蔽和中斷結(jié)束等多種中斷管理方式。 固定優(yōu)先權(quán)方式和自動(dòng)循環(huán)優(yōu)先權(quán)方式固定優(yōu)先權(quán)方式和自動(dòng)循環(huán)優(yōu)先權(quán)方式 由高到低的優(yōu)先級(jí)順序是:由高到低的優(yōu)先級(jí)順序是:IR0, IR1, IR2, , IR7 2)自動(dòng)循環(huán)優(yōu)先權(quán)方式)自動(dòng)循環(huán)優(yōu)先權(quán)方式 IR0IR7的優(yōu)先權(quán)級(jí)別可以改變的優(yōu)先權(quán)級(jí)別可以改變 2中斷嵌套方式中斷嵌套方式 一般完全嵌套和特殊完全嵌套一般完全嵌套和特殊完全

20、嵌套 1)一般完全嵌套方式)一般完全嵌套方式中斷優(yōu)先權(quán)管理為固定方式,中斷優(yōu)先權(quán)管理為固定方式,即即IR0優(yōu)先權(quán)最高,優(yōu)先權(quán)最高,IR7優(yōu)先權(quán)最低優(yōu)先權(quán)最低 不利于多片級(jí)聯(lián)不利于多片級(jí)聯(lián)2)特殊完全嵌套方式)特殊完全嵌套方式 在在CPU中斷服務(wù)期間,除了允許高級(jí)中斷請(qǐng)求進(jìn)中斷服務(wù)期間,除了允許高級(jí)中斷請(qǐng)求進(jìn)入外,還允許同級(jí)中斷請(qǐng)求進(jìn)入,從而實(shí)現(xiàn)了對(duì)同入外,還允許同級(jí)中斷請(qǐng)求進(jìn)入,從而實(shí)現(xiàn)了對(duì)同級(jí)中斷請(qǐng)求的特殊嵌套。級(jí)中斷請(qǐng)求的特殊嵌套。 用于多片級(jí)聯(lián)用于多片級(jí)聯(lián)8259的多片級(jí)聯(lián)的多片級(jí)聯(lián)CAS0CAS1CAS2INTIR0IR7IR0IR7CAS0CAS1CAS2INTEN/SPEN/SPE

21、N/SPINT5 VINTA8259ACPUINTAINTA8259A8259ACAS0CAS1CAS2IR0IR1IR2IR3IR4IR5IR6IR7主控主控8259A向向CPU申請(qǐng)申請(qǐng)從控從控8259的的INT輸出端接輸出端接到主控制器的到主控制器的IR輸入端。輸入端。 如果某一從屬如果某一從屬8259A的的中斷請(qǐng)求被中斷請(qǐng)求被CPU響應(yīng),在響應(yīng),在中斷響應(yīng)周期里,主控中斷響應(yīng)周期里,主控8259A將其對(duì)應(yīng)將其對(duì)應(yīng)IR輸入端的輸入端的編碼作為對(duì)從屬編碼作為對(duì)從屬8259A進(jìn)行進(jìn)行識(shí)別的地址,送到識(shí)別的地址,送到CAS2 CAS0級(jí)聯(lián)線上,被選中的級(jí)聯(lián)線上,被選中的從屬?gòu)膶?259A將接收將

22、接收INTA信信號(hào),并把其中斷向量送上號(hào),并把其中斷向量送上數(shù)據(jù)總線。數(shù)據(jù)總線。在中斷服務(wù)結(jié)束時(shí),若不是自動(dòng)在中斷服務(wù)結(jié)束時(shí),若不是自動(dòng)EOI方式必須發(fā)出兩個(gè)方式必須發(fā)出兩個(gè)EOI命令,一個(gè)給從片,命令,一個(gè)給從片,一個(gè)給主片一個(gè)給主片,清除各自的清除各自的ISR位。位。 3中斷屏蔽方式中斷屏蔽方式 普通屏蔽方式和特殊(特定)屏蔽方式普通屏蔽方式和特殊(特定)屏蔽方式 1)普通屏蔽方式)普通屏蔽方式 通過(guò)通過(guò)8259A的中斷屏蔽寄存器(的中斷屏蔽寄存器(IMR)來(lái)實(shí)現(xiàn)對(duì)中斷請(qǐng)求來(lái)實(shí)現(xiàn)對(duì)中斷請(qǐng)求IRi的屏蔽。的屏蔽。 2)特殊屏蔽方式)特殊屏蔽方式 (SMM)由由OCW1 設(shè)置設(shè)置實(shí)現(xiàn)低優(yōu)先級(jí)中

23、斷請(qǐng)求中斷正在服務(wù)的高優(yōu)先級(jí)中斷實(shí)現(xiàn)低優(yōu)先級(jí)中斷請(qǐng)求中斷正在服務(wù)的高優(yōu)先級(jí)中斷 通過(guò)通過(guò)OCW3來(lái)設(shè)置或取消來(lái)設(shè)置或取消 4中斷結(jié)束方式中斷結(jié)束方式 CPU為某個(gè)中斷請(qǐng)求服務(wù),中斷對(duì)應(yīng)的為某個(gè)中斷請(qǐng)求服務(wù),中斷對(duì)應(yīng)的ISR中的中的Di位被置位被置1,使比它優(yōu)先級(jí)低的中斷請(qǐng)求,使比它優(yōu)先級(jí)低的中斷請(qǐng)求無(wú)法得到響應(yīng)。中斷結(jié)束時(shí),應(yīng)及時(shí)清除中無(wú)法得到響應(yīng)。中斷結(jié)束時(shí),應(yīng)及時(shí)清除中斷服務(wù)標(biāo)志位。斷服務(wù)標(biāo)志位。三種中斷結(jié)束方式三種中斷結(jié)束方式 1)自動(dòng)結(jié)束方式)自動(dòng)結(jié)束方式 在中斷響應(yīng)過(guò)程中由硬件自動(dòng)完成在中斷響應(yīng)過(guò)程中由硬件自動(dòng)完成ISR中為中為“1”位位的清除的清除, 所以這不是中斷服務(wù)子程序的真正

24、結(jié)束所以這不是中斷服務(wù)子程序的真正結(jié)束 。只適合用在沒(méi)有中斷嵌套的場(chǎng)合只適合用在沒(méi)有中斷嵌套的場(chǎng)合 2)普通結(jié)束方式)普通結(jié)束方式 在中斷服務(wù)子程序中編程寫(xiě)入操作命令字在中斷服務(wù)子程序中編程寫(xiě)入操作命令字OCW2,向向8259A傳送一個(gè)普通傳送一個(gè)普通EOI命令(不指定被復(fù)位的命令(不指定被復(fù)位的中斷的級(jí)號(hào))來(lái)清除中斷的級(jí)號(hào))來(lái)清除ISR中當(dāng)前優(yōu)先級(jí)別中當(dāng)前優(yōu)先級(jí)別最高位最高位。 適合用在一般完全嵌套方式下的中斷結(jié)束。因?yàn)檫m合用在一般完全嵌套方式下的中斷結(jié)束。因?yàn)樵谕耆短追绞较?,中斷?yōu)先級(jí)是固定的在完全嵌套方式下,中斷優(yōu)先級(jí)是固定的 。常常 用用3)特殊(特定)結(jié)束方式)特殊(特定)結(jié)束方式

25、 發(fā)特殊發(fā)特殊EOI命令明確指出了復(fù)位命令明確指出了復(fù)位ISR中的哪一位中的哪一位 適用于優(yōu)先級(jí)發(fā)生改變的情況,嵌套結(jié)構(gòu)在中適用于優(yōu)先級(jí)發(fā)生改變的情況,嵌套結(jié)構(gòu)在中斷響應(yīng)后發(fā)生了變化。斷響應(yīng)后發(fā)生了變化。常常 用用5中斷觸發(fā)方式中斷觸發(fā)方式 中斷請(qǐng)求信號(hào):電平觸發(fā)和邊沿觸發(fā)中斷請(qǐng)求信號(hào):電平觸發(fā)和邊沿觸發(fā) 由初始化命令字由初始化命令字ICW1中的中的LTIMLTIM位來(lái)設(shè)定位來(lái)設(shè)定 IRi端有高電平時(shí)產(chǎn)生中斷。要求觸發(fā)電平必須保持到中斷響應(yīng)信號(hào)端有高電平時(shí)產(chǎn)生中斷。要求觸發(fā)電平必須保持到中斷響應(yīng)信號(hào)有效為止,并且在有效為止,并且在CPU響應(yīng)中斷后,應(yīng)及時(shí)撤銷(xiāo)該請(qǐng)求信號(hào),響應(yīng)中斷后,應(yīng)及時(shí)撤銷(xiāo)該

26、請(qǐng)求信號(hào),以防止以防止CPU再次響應(yīng)。再次響應(yīng)。 INTA6總線連接方式總線連接方式 緩沖方式和非緩沖方式兩種緩沖方式和非緩沖方式兩種 1)緩沖方式)緩沖方式 8259A通過(guò)通過(guò)總線驅(qū)動(dòng)器總線驅(qū)動(dòng)器和系統(tǒng)數(shù)據(jù)總線連接和系統(tǒng)數(shù)據(jù)總線連接 2)非緩沖方式)非緩沖方式 8259A數(shù)據(jù)線與系統(tǒng)數(shù)據(jù)總線直接相連數(shù)據(jù)線與系統(tǒng)數(shù)據(jù)總線直接相連 SP/EN作為總線驅(qū)動(dòng)器的啟動(dòng)信號(hào)輸出中斷類(lèi)型號(hào)作為總線驅(qū)動(dòng)器的啟動(dòng)信號(hào)輸出中斷類(lèi)型號(hào) 7查詢(xún)中斷方式查詢(xún)中斷方式 8259A也可以用查詢(xún)方式來(lái)檢查請(qǐng)求中斷的設(shè)備。當(dāng)也可以用查詢(xún)方式來(lái)檢查請(qǐng)求中斷的設(shè)備。當(dāng)CPU關(guān)中斷時(shí),中斷輸入信號(hào)將不起作用,那么對(duì)設(shè)備的關(guān)中斷時(shí),

27、中斷輸入信號(hào)將不起作用,那么對(duì)設(shè)備的服務(wù)就可通過(guò)軟件查詢(xún)來(lái)實(shí)現(xiàn)。服務(wù)就可通過(guò)軟件查詢(xún)來(lái)實(shí)現(xiàn)。 查詢(xún)中斷的命令是通過(guò)查詢(xún)中斷的命令是通過(guò)OCW3中中P=1發(fā)出的,發(fā)出的,8259A接接到查詢(xún)命令后,把隨后的一次到查詢(xún)命令后,把隨后的一次CPU讀操作當(dāng)作中斷響應(yīng)信讀操作當(dāng)作中斷響應(yīng)信號(hào),如果有中斷請(qǐng)求,就把號(hào),如果有中斷請(qǐng)求,就把ISR相應(yīng)的位置位,并讀出查相應(yīng)的位置位,并讀出查詢(xún)字,從而判斷該中斷級(jí)別,并編程實(shí)現(xiàn)中斷服務(wù)程序的詢(xún)字,從而判斷該中斷級(jí)別,并編程實(shí)現(xiàn)中斷服務(wù)程序的轉(zhuǎn)移。轉(zhuǎn)移。三、三、8259A的命令字的命令字 初始化命令字初始化命令字ICW1ICW4 操作命令字操作命令字OCW1OC

28、W3 1初始化命令字初始化命令字 1)ICW1 D7D6D5D4D3D2D1D08086/8088系統(tǒng)未用特征位特征位=1LTIM中斷的觸發(fā)中斷的觸發(fā)方式方式1=電平觸發(fā)電平觸發(fā)0=邊沿觸發(fā)邊沿觸發(fā)ADI8086/8088系系統(tǒng)未用統(tǒng)未用SNGL是否是級(jí)聯(lián)是否是級(jí)聯(lián)1=單片使用單片使用0=級(jí)聯(lián)使用級(jí)聯(lián)使用是否寫(xiě)是否寫(xiě)ICW41=寫(xiě)寫(xiě)ICW40=不寫(xiě)不寫(xiě)ICW4ICW1=00011011B=1BH例如:8259A采用電平觸發(fā),單片使用,需要ICW4決定:觸發(fā)方式,幾片使用,是否需要ICW4 2)ICW2 用于設(shè)置中斷類(lèi)型號(hào) D7D6D5D4D3D2D1D0中斷類(lèi)型號(hào)的高5位無(wú)效D0D2:由:由8

29、259A根據(jù)當(dāng)前被響應(yīng)的中斷源所連接的根據(jù)當(dāng)前被響應(yīng)的中斷源所連接的IR端,端, 自動(dòng)獲得編碼自動(dòng)獲得編碼 。在初始化時(shí)設(shè)置為在初始化時(shí)設(shè)置為0 例如,在例如,在PC機(jī)的中斷系統(tǒng)中,硬件中斷類(lèi)型號(hào)高機(jī)的中斷系統(tǒng)中,硬件中斷類(lèi)型號(hào)高5位是位是00001B 中斷源類(lèi)型中斷類(lèi)型號(hào)高5位低3位中斷號(hào)日時(shí)鐘08HIR0(0)08H鍵盤(pán)08HIR1(1)09H保留08HIR2(2)0AH串行口208HIR3(3)0BH串行口108HIR4(4)0CH硬盤(pán)08HIR5(5)0DH軟盤(pán)08HIR6(6)0EH打印機(jī)08HIR7(7)0FHPC/XT 8級(jí)中斷源的中斷號(hào)級(jí)中斷源的中斷號(hào) 3)ICW3 與級(jí)聯(lián)方式

30、有關(guān),級(jí)聯(lián)下需要寫(xiě)入與級(jí)聯(lián)方式有關(guān),級(jí)聯(lián)下需要寫(xiě)入 對(duì)于主片對(duì)于主片 D7D6D5D4D3D2D1D0IR7IR6IR5IR4IR3IR2IR1IR0若主片若主片IRi引腳上連接從片,則引腳上連接從片,則Di1,否則,否則Di0。 例如,當(dāng)主片例如,當(dāng)主片IR7和和IR0引腳上接有從片,引腳上接有從片, 則主片的則主片的ICW3=10000001B=81H。 對(duì)于從片對(duì)于從片 D7D6D5D4D3D2D1D000000ID2ID1ID0ID2ID0是從片接到主片是從片接到主片IRi(i07)上的標(biāo)識(shí)碼)上的標(biāo)識(shí)碼 在中斷響應(yīng)時(shí),主片通過(guò)級(jí)聯(lián)信號(hào)線在中斷響應(yīng)時(shí),主片通過(guò)級(jí)聯(lián)信號(hào)線CAS2 CAS

31、0送出送出被允許中斷的從片的標(biāo)識(shí)碼,各從片用自己的被允許中斷的從片的標(biāo)識(shí)碼,各從片用自己的ICW3和和CAS2 CAS0進(jìn)行比較,二者一致的從片被確定為當(dāng)前進(jìn)行比較,二者一致的從片被確定為當(dāng)前中斷源,可以發(fā)送該從片的中斷類(lèi)型碼。中斷源,可以發(fā)送該從片的中斷類(lèi)型碼。例如:從片例如:從片A和和B的中斷請(qǐng)求的中斷請(qǐng)求INT分別連到主片的分別連到主片的IR5和和IR3上,上,則從片則從片A的的ICW3=05H,從片,從片B的的ICW3=03H。4)ICW4 D7D6D5D4D3D2D1D0000SFNMBUFM/SAEOIPM用于設(shè)定用于設(shè)定8259A的工作方式的工作方式 D0:指定:指定CPU類(lèi)型類(lèi)

32、型 1=8259A工作在工作在8086/8088系統(tǒng)中系統(tǒng)中0=8259A工作在工作在8080/8085系統(tǒng)中系統(tǒng)中 D1:指定:指定8259A的中斷結(jié)束方式的中斷結(jié)束方式 1=自動(dòng)結(jié)束方式自動(dòng)結(jié)束方式0=非自動(dòng)結(jié)束方式非自動(dòng)結(jié)束方式 D2:緩沖級(jí)聯(lián)方式下的主片與從片:緩沖級(jí)聯(lián)方式下的主片與從片 1=主片;主片;0=從片從片 D3:設(shè)置緩沖方式:設(shè)置緩沖方式 1=緩沖方式;緩沖方式;0=非緩沖方式非緩沖方式 D4:設(shè)置特殊完全嵌套方式:設(shè)置特殊完全嵌套方式 1=特殊完全嵌套方式特殊完全嵌套方式0=普通完全嵌套方式普通完全嵌套方式 例如:例如:PC機(jī)中機(jī)中CPU為為8088,若,若8259A與系

33、統(tǒng)總線之與系統(tǒng)總線之間采用緩沖器連接,非自動(dòng)結(jié)束方式,采用一般完間采用緩沖器連接,非自動(dòng)結(jié)束方式,采用一般完全嵌套方式,只用全嵌套方式,只用1片片8259A 。則其則其ICW4=00001101B=0DH 8259A的初始化流程圖: 8259A的初始化編程需要寫(xiě)入的初始化編程需要寫(xiě)入初始化命令字初始化命令字ICW1ICW4 。由于由于8259A只有一根地址線,只有一根地址線,因此對(duì)各個(gè)控制字的操作是因此對(duì)各個(gè)控制字的操作是按照一定的順序并結(jié)合某些按照一定的順序并結(jié)合某些數(shù)據(jù)位來(lái)進(jìn)行尋址設(shè)置。數(shù)據(jù)位來(lái)進(jìn)行尋址設(shè)置。ICW1用A00的端口,ICW2ICW4使用A01的端口 2操作命令字操作命令字O

34、CW8259初始化后進(jìn)入工作狀態(tài),用戶(hù)可以根據(jù)初始化后進(jìn)入工作狀態(tài),用戶(hù)可以根據(jù)程序需要對(duì)程序需要對(duì)8259發(fā)出相應(yīng)的操作命令字發(fā)出相應(yīng)的操作命令字OCW。 OCW1寫(xiě)入奇地址(寫(xiě)入奇地址(A0=1);OCW2和和OCW3寫(xiě)入偶地址寫(xiě)入偶地址 (A0=0)。操作命令字有操作命令字有3個(gè):個(gè):OCW1OCW3,控制,控制8259A的的方式操作。這方式操作。這3個(gè)控制字分別有各自獨(dú)立的功能。個(gè)控制字分別有各自獨(dú)立的功能。 1)OCW1 設(shè)置中斷屏蔽字(設(shè)置中斷屏蔽字(IMR) D7D6D5D4D3D2D1D0M7M6M5M4M3M2M1M0Mi=1,則對(duì)應(yīng)的,則對(duì)應(yīng)的IRi請(qǐng)求被禁止;請(qǐng)求被禁止;

35、Mi=0,則對(duì)應(yīng)的,則對(duì)應(yīng)的IRi請(qǐng)求被允許。請(qǐng)求被允許。 在工作期間可根據(jù)需要隨時(shí)寫(xiě)入或讀出在工作期間可根據(jù)需要隨時(shí)寫(xiě)入或讀出 例如例如: 使中斷源使中斷源IR3和和IR6開(kāi)放,其余均被屏蔽。開(kāi)放,其余均被屏蔽。 MOVAL, 0B7H ;OCW1內(nèi)容(內(nèi)容(10110111B)OUT21H, AL ;寫(xiě)入;寫(xiě)入IMRIMR寄存器內(nèi)容的讀出:寄存器內(nèi)容的讀出: INAL, 21H ;讀;讀IMRORAL, 80H ;設(shè)置;設(shè)置D7=1(屏蔽)(屏蔽)OUT21H, AL ;寫(xiě)回;寫(xiě)回OCW1口口2)OCW2 設(shè)置中斷優(yōu)先級(jí)方式和中斷結(jié)束方式設(shè)置中斷優(yōu)先級(jí)方式和中斷結(jié)束方式 D7D6D5D4D

36、3D2D1D0RSLEOI00L2L1L0D0D2:指定中斷類(lèi)型碼的低指定中斷類(lèi)型碼的低3位。(循環(huán)位。(循環(huán) /結(jié)束)結(jié)束)D3、D4:OCW2特征標(biāo)志位特征標(biāo)志位 。D5:EOI中斷結(jié)束命令。中斷結(jié)束命令。1=指定中斷結(jié)束指定中斷結(jié)束 0=自動(dòng)結(jié)束方式自動(dòng)結(jié)束方式 D6:操作目標(biāo)選擇位,或稱(chēng)特定目標(biāo)位。操作目標(biāo)選擇位,或稱(chēng)特定目標(biāo)位。 用來(lái)決定用來(lái)決定L2L0是否有效。是否有效。D7:設(shè)置優(yōu)先權(quán)循環(huán)方式位。設(shè)置優(yōu)先權(quán)循環(huán)方式位。 1=優(yōu)先權(quán)自動(dòng)循環(huán)方式;優(yōu)先權(quán)自動(dòng)循環(huán)方式;0=優(yōu)先權(quán)固定方式。優(yōu)先權(quán)固定方式。D7D6D5功功 能能000自動(dòng)中斷結(jié)束方式下,設(shè)置為全嵌套優(yōu)先級(jí)自動(dòng)中斷結(jié)束方式

37、下,設(shè)置為全嵌套優(yōu)先級(jí)001在全嵌套方式下,設(shè)置為普通中斷結(jié)束方式時(shí)的中斷結(jié)束在全嵌套方式下,設(shè)置為普通中斷結(jié)束方式時(shí)的中斷結(jié)束 *010無(wú)意義無(wú)意義011在全嵌套方式下,設(shè)置特殊中斷結(jié)束方式時(shí)的中斷結(jié)束位在全嵌套方式下,設(shè)置特殊中斷結(jié)束方式時(shí)的中斷結(jié)束位(L2L0)*100在自動(dòng)中斷結(jié)束方式下,設(shè)置為自動(dòng)優(yōu)先級(jí)循環(huán)在自動(dòng)中斷結(jié)束方式下,設(shè)置為自動(dòng)優(yōu)先級(jí)循環(huán)101在優(yōu)先級(jí)自動(dòng)循環(huán)方式下,設(shè)置為普通中斷結(jié)束方式時(shí)的中斷在優(yōu)先級(jí)自動(dòng)循環(huán)方式下,設(shè)置為普通中斷結(jié)束方式時(shí)的中斷結(jié)束結(jié)束110在優(yōu)先級(jí)特殊循環(huán)方式下,設(shè)置起始最低優(yōu)先級(jí)位(在優(yōu)先級(jí)特殊循環(huán)方式下,設(shè)置起始最低優(yōu)先級(jí)位(L2L0)111在優(yōu)

38、先級(jí)特殊循環(huán)方式下,設(shè)置中斷結(jié)束位(在優(yōu)先級(jí)特殊循環(huán)方式下,設(shè)置中斷結(jié)束位(L2L0)D7D5(R,SL,EOI) 3位的組合功能 OCW2的功能總結(jié):的功能總結(jié): 一是決定一是決定8259A是否采用優(yōu)先循環(huán)方式是否采用優(yōu)先循環(huán)方式 一個(gè)是中斷結(jié)束方式一個(gè)是中斷結(jié)束方式 例如:例如: MOV AL, 11100100BOUT 20H, AL對(duì)對(duì)IR4中斷源發(fā)出特殊中斷結(jié)束命令,中斷源發(fā)出特殊中斷結(jié)束命令,并且設(shè)置以并且設(shè)置以IR4為最低的中斷優(yōu)先級(jí)特殊循環(huán)優(yōu)先級(jí)方式為最低的中斷優(yōu)先級(jí)特殊循環(huán)優(yōu)先級(jí)方式 。又如:又如: MOV AL, 20HOUT 20H, AL*不指定的中斷結(jié)束方式不指定的中

39、斷結(jié)束方式 3)OCW3 特殊屏蔽方式、查詢(xún)中斷和讀取寄存器的狀態(tài)特殊屏蔽方式、查詢(xún)中斷和讀取寄存器的狀態(tài) D7D6D5D4D3D2D1D00ESMMSMM01PRRRISD0:讀寄存器選擇位。:讀寄存器選擇位。 0=讀取讀取IRR;1=讀取讀取ISR。 先寫(xiě)入讀命令先寫(xiě)入讀命令OCW3,讀取地址都是,讀取地址都是20H 。 D1:讀寄存器允許位。(:讀寄存器允許位。(=1有效,有效,D0決定讀對(duì)象)決定讀對(duì)象) D2:中斷查詢(xún)方式位。:中斷查詢(xún)方式位。 1=8259A為中斷查詢(xún)方式。為中斷查詢(xún)方式。 D4D3:標(biāo)志位,為:標(biāo)志位,為01。D6D5:11/10=設(shè)置或取消特殊屏蔽方式(設(shè)置或取

40、消特殊屏蔽方式(SMM方式)。方式)。 查詢(xún)中斷方式:查詢(xún)中斷方式: 發(fā)發(fā)OCW3中的中的D2位為位為1的命令的命令 讀取查詢(xún)字判斷中斷是否發(fā)生,以及哪級(jí)中斷發(fā)生。讀取查詢(xún)字判斷中斷是否發(fā)生,以及哪級(jí)中斷發(fā)生。 查詢(xún)字從偶地址端口讀入,格式如下:查詢(xún)字從偶地址端口讀入,格式如下: D7D6D5D4D3D2D1D0IW2W1W0D7=1,表示,表示8259A有中斷請(qǐng)求有中斷請(qǐng)求 W2W0:當(dāng)前優(yōu)先級(jí)最高的中斷請(qǐng)求碼:當(dāng)前優(yōu)先級(jí)最高的中斷請(qǐng)求碼 MOVAL, 00001100BOUT20H, AL ;發(fā);發(fā)OCW3的查詢(xún)中斷命令字的查詢(xún)中斷命令字IN AL, 20H ; 讀取查詢(xún)字讀取查詢(xún)字MOV

41、 AH,ALXOR AL,87H ;判斷是否為;判斷是否為IR7JZ NUM7MOV AL,AHXOR AL,86H ;判斷是否為;判斷是否為IR6JZ NUM6.NUM7: .NUM6: .如:如: 在中斷服務(wù)子程序在中斷服務(wù)子程序中用中斷屏蔽命令中用中斷屏蔽命令OCW3(D6D5=11設(shè)設(shè)置,置,10復(fù)位)來(lái)屏蔽復(fù)位)來(lái)屏蔽當(dāng)前正在處理的中斷,當(dāng)前正在處理的中斷,同時(shí)可使同時(shí)可使ISR中的對(duì)中的對(duì)應(yīng)當(dāng)前中斷的相應(yīng)位應(yīng)當(dāng)前中斷的相應(yīng)位清清0 ,導(dǎo)致允許低級(jí),導(dǎo)致允許低級(jí)中斷的響應(yīng)。中斷的響應(yīng)。特殊屏蔽方式(特殊屏蔽方式(SMM方式):方式):*可自行嘗試編寫(xiě)出相關(guān)程序段??勺孕袊L試編寫(xiě)出相關(guān)

42、程序段。 端口地址及操作總結(jié):端口地址及操作總結(jié):初始化命令字初始化命令字ICWICW1ICW2ICW3ICW4地址地址A00111特征位特征位D4=1操作命令字操作命令字OCWOCW1OCW2OCW3地址地址A0100特征位特征位D4D3=00D4D3=01寄存器的讀寄存器的讀IMRISRIRR中斷查詢(xún)字中斷查詢(xún)字操作命令操作命令OCW1OCW3-D1D0=11OCW3-D1D0=10OCW3-D2地址地址A01000例例 8-1 設(shè)設(shè)CPU為為8088,使用,使用一片一片8259A,中斷申請(qǐng)信號(hào)采,中斷申請(qǐng)信號(hào)采用電平觸發(fā),中斷類(lèi)型號(hào)為用電平觸發(fā),中斷類(lèi)型號(hào)為60H-67H采用特殊嵌套,采

43、用特殊嵌套,非緩沖方式,中斷自動(dòng)結(jié)束方式,非緩沖方式,中斷自動(dòng)結(jié)束方式,8259A的端口地址的端口地址為為80H和和81H,試編寫(xiě),試編寫(xiě)初始化程序初始化程序。 MOVAL,1BHOUT 80H,ALMOV AL,60HOUT 81H,ALMOVAL,13HOUT 81H,AL例例8-2 某微機(jī)系統(tǒng)使用主、從某微機(jī)系統(tǒng)使用主、從兩片兩片8259A管理中斷,從管理中斷,從片中斷請(qǐng)求片中斷請(qǐng)求INT與主片的與主片的IR2連接。設(shè)主片工作于特連接。設(shè)主片工作于特殊完全嵌套、非緩沖和非自動(dòng)結(jié)束方式,中斷類(lèi)型殊完全嵌套、非緩沖和非自動(dòng)結(jié)束方式,中斷類(lèi)型號(hào)為號(hào)為40H,端口地址為,端口地址為20H和和21

44、H。從片工作于完全。從片工作于完全嵌套、非緩沖和非自動(dòng)結(jié)束方式,中斷類(lèi)型號(hào)為嵌套、非緩沖和非自動(dòng)結(jié)束方式,中斷類(lèi)型號(hào)為70H,端口地址為,端口地址為80H和和81H。試編寫(xiě)主片和從片的。試編寫(xiě)主片和從片的初始化程序初始化程序。 主片主片8259A的初始化程序:的初始化程序: MOVAL, 00010001B; 級(jí)聯(lián)級(jí)聯(lián), 邊沿觸發(fā)邊沿觸發(fā), 需要寫(xiě)需要寫(xiě)ICW4OUT20H, AL ; 寫(xiě)寫(xiě)ICW1MOV AL, 01000000B ; 中斷類(lèi)型號(hào)中斷類(lèi)型號(hào)40HOUT21H, AL ; 寫(xiě)寫(xiě)ICW2MOV AL, 00000100B ; 主片的主片的IR2引腳接從片引腳接從片OUT21H,

45、AL ; 寫(xiě)寫(xiě)ICW3MOVAL, 00010001B; 特殊完全嵌套、非緩沖、自動(dòng)結(jié)束特殊完全嵌套、非緩沖、自動(dòng)結(jié)束OUT21H, AL ; 寫(xiě)寫(xiě)ICW4從片從片8259A初始化程序:初始化程序: MOVAL, 00010001B; 級(jí)聯(lián)級(jí)聯(lián), 邊沿觸發(fā)邊沿觸發(fā), 需要寫(xiě)需要寫(xiě)ICW4OUT80H, AL ; 寫(xiě)寫(xiě)ICW1MOVAL, 01110000B; 中斷類(lèi)型號(hào)中斷類(lèi)型號(hào)70HOUT81H, AL ; 寫(xiě)寫(xiě)ICW2MOVAL, 00000010B; 接主片的接主片的IR2引腳引腳OUT81H, AL ; 寫(xiě)寫(xiě)ICW3MOVAL, 00000001B ; 完全嵌套、非緩沖、非自動(dòng)結(jié)束完全

46、嵌套、非緩沖、非自動(dòng)結(jié)束OUT81H, AL ; 寫(xiě)寫(xiě)ICW4例例8-3 某系統(tǒng)正在為某系統(tǒng)正在為IR2服務(wù),在服務(wù)過(guò)程中,希望允許服務(wù),在服務(wù)過(guò)程中,希望允許優(yōu)先級(jí)比較低的中斷得到響應(yīng)。該系統(tǒng)中優(yōu)先級(jí)比較低的中斷得到響應(yīng)。該系統(tǒng)中8259A的端的端口地址為口地址為0A20H,0A21H。試編制控制程序段。試編制控制程序段。 分析:分析: 這屬于這屬于SMM編程。先用編程。先用OCW1屏蔽屏蔽IR2,再用,再用OCW3設(shè)置設(shè)置8259A的特殊屏蔽方式。的特殊屏蔽方式。 程序如下:程序如下: CLIMOV AL,04HMOV DX,0A21HOUTDX,AL ;寫(xiě);寫(xiě)OCW1,置屏蔽,置屏蔽IR

47、2MOV AL,68HMOV DX,0A20HOUTDX,AL ;寫(xiě);寫(xiě)OCW3,置,置SMMSTI ;響應(yīng)低優(yōu)先級(jí)中斷;響應(yīng)低優(yōu)先級(jí)中斷CLIMOV AL,48HMOV DX,0A20HOUTDX,AL ;寫(xiě);寫(xiě)OCW3,清除,清除SMMMOV AL,00HMOV DX,0A21HOUTDX,AL ;寫(xiě);寫(xiě)OCW1,清除,清除IR2屏蔽屏蔽STI例例 8-4 PC/AT機(jī)中機(jī)中8259A初始化設(shè)置初始化設(shè)置 PC機(jī)開(kāi)機(jī)后固化在機(jī)開(kāi)機(jī)后固化在BIOS中的系統(tǒng)初始化程中的系統(tǒng)初始化程序?qū)χ餍驅(qū)χ?259A和從和從8259A進(jìn)行初始化設(shè)置進(jìn)行初始化設(shè)置 。主主8259A口地址為口地址為20H和和2

48、1H,從從8259A口地址為口地址為0A0H和和0A1H。 系統(tǒng)連接:系統(tǒng)連接: 初始化程序:初始化程序: 主主8259A初始化程序:初始化程序: MOV AL,11H ;ICW1=00010001B,邊沿觸發(fā),邊沿觸發(fā)OUT20H,AL ;ICW4,級(jí)聯(lián)方式,級(jí)聯(lián)方式JMPINTR1 ;少許延時(shí);少許延時(shí)INTR1:MOV AL,08H ;ICW2,中斷類(lèi)型號(hào)起始值為,中斷類(lèi)型號(hào)起始值為08HOUT21H,AL JMPINTR2INTR2:MOV AL,04HOUT21H,AL ;ICW3,從,從8259A與與IR2腳級(jí)聯(lián)腳級(jí)聯(lián)JMPINTR3INTR3:MOV AL,15H ;ICW4,特

49、殊全嵌套、非緩沖、,特殊全嵌套、非緩沖、OUT21H,AL ;中斷結(jié)束方式;中斷結(jié)束方式從從8259A的初始化程序:的初始化程序: MOV AL,11H ;ICW1=00010001B,邊沿觸發(fā),邊沿觸發(fā)OUT 0A0H,AL ;ICW4,級(jí)聯(lián)方式,級(jí)聯(lián)方式JMPINTR5 ;少許延時(shí);少許延時(shí)INTR5:MOV AL,70H ;ICW2=01110000B,類(lèi)型號(hào),類(lèi)型號(hào)70HOUT0A1H,ALJMPINTR6INTR6:MOV AL,02H ;ICW3,從,從8259A與與IR2腳級(jí)聯(lián)腳級(jí)聯(lián)OUT0A1H,ALJMPINTR7INTR7:MOV AL,01H ;ICW4=00010101

50、B,特殊全嵌,特殊全嵌 ;套、非緩沖、中斷結(jié)束方式;套、非緩沖、中斷結(jié)束方式 OUT0A1H,AL 例例8-5 設(shè)計(jì)一個(gè)中斷處理程序。要求中斷請(qǐng)求信號(hào)以跳變?cè)O(shè)計(jì)一個(gè)中斷處理程序。要求中斷請(qǐng)求信號(hào)以跳變方式由方式由IR2引入(可為任一定時(shí)脈沖信號(hào)),當(dāng)引入(可為任一定時(shí)脈沖信號(hào)),當(dāng)CPU響響應(yīng)應(yīng)IR2請(qǐng)求時(shí),輸出字符串請(qǐng)求時(shí),輸出字符串“8259A INTERRUPT!”,中斷中斷10次,程序退出(設(shè)次,程序退出(設(shè)8259A的端口地址為的端口地址為20H和和21H,中斷類(lèi)型號(hào)為,中斷類(lèi)型號(hào)為40H)。)。 中斷處理程序如下:中斷處理程序如下:DATASEGMENT MESSDB 8259A?

51、 INTERRUPT!, 0AH, 0DH, $ COUNTDB 10; 計(jì)數(shù)值為計(jì)數(shù)值為10DATAENDSSTACK SEGMENTSTACK STA DB100H DUP(?) TOP EQULENGTHSTASTACK ENDSCODE SEGMENT ASSUMECS:CODE, DS:DATA, SS:STACKMAIN: CLIMOV AX,DATAMOV DS, AXMOV AX, STACKMOV SS, AXMOV SP, TOPMOV AL, 13H ; 8259A初始化初始化OUT 20H, AL ; 單片單片, 邊沿觸發(fā)邊沿觸發(fā)MOV AL, 40H ; 中斷類(lèi)型號(hào)中斷類(lèi)型號(hào)40HOUT 21H, ALMOV AL, 01H ; 非自動(dòng)結(jié)束非自動(dòng)結(jié)束OUT 21H, AL MOV AX, SEG

溫馨提示

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

評(píng)論

0/150

提交評(píng)論