![微機(jī)原理第6章-中斷技術(shù)_第1頁](http://file4.renrendoc.com/view/f99bbc3c8069b1dd59f763196cff6f10/f99bbc3c8069b1dd59f763196cff6f101.gif)
![微機(jī)原理第6章-中斷技術(shù)_第2頁](http://file4.renrendoc.com/view/f99bbc3c8069b1dd59f763196cff6f10/f99bbc3c8069b1dd59f763196cff6f102.gif)
![微機(jī)原理第6章-中斷技術(shù)_第3頁](http://file4.renrendoc.com/view/f99bbc3c8069b1dd59f763196cff6f10/f99bbc3c8069b1dd59f763196cff6f103.gif)
![微機(jī)原理第6章-中斷技術(shù)_第4頁](http://file4.renrendoc.com/view/f99bbc3c8069b1dd59f763196cff6f10/f99bbc3c8069b1dd59f763196cff6f104.gif)
![微機(jī)原理第6章-中斷技術(shù)_第5頁](http://file4.renrendoc.com/view/f99bbc3c8069b1dd59f763196cff6f10/f99bbc3c8069b1dd59f763196cff6f105.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第6章第6章:教學(xué)重點(diǎn)教學(xué)重點(diǎn)
8088CPU的中斷系統(tǒng)內(nèi)部中斷服務(wù)程序的編寫中斷控制器8259A的作用第6章:6.18088中斷系統(tǒng)8088的中斷系統(tǒng)采用向量中斷機(jī)制能夠處理256個(gè)中斷用中斷向量號(hào)0~255區(qū)別可屏蔽中斷還需要借助專用中斷控制器Intel8259A實(shí)現(xiàn)優(yōu)先權(quán)管理第6章:6.1.18088的中斷類型非屏蔽中斷源中斷邏輯INTO指令單步中斷除法錯(cuò)誤INTN指令CPUINTRNMI可屏蔽中斷源8259A中斷控制器IR0IR1IR2IR3IR4IR5IR6IR7外設(shè)中斷源
INTA內(nèi)部中斷除法錯(cuò)中斷指令中斷溢出中斷單步中斷外部中斷非屏蔽中斷可屏蔽中斷第6章:1.內(nèi)部中斷內(nèi)部中斷是由于8088內(nèi)部執(zhí)行程序出現(xiàn)異常引起的程序中斷利用內(nèi)部中斷,微處理器為用戶提供了發(fā)現(xiàn)、調(diào)試并解決程序執(zhí)行時(shí)異常情況的有效途徑例如,ROM-BIOS和DOS系統(tǒng)利用內(nèi)部中斷為程序員提供了各種功能調(diào)用第6章:⑴除法錯(cuò)中斷在執(zhí)行除法指令時(shí),若除數(shù)為0或商超過了寄存器所能表達(dá)的范圍,則產(chǎn)生一個(gè)向量號(hào)為0的內(nèi)部中斷,稱為除法錯(cuò)中斷例如:movbl,0idiv
bl
;除數(shù)BL=0,產(chǎn)生除法錯(cuò)中斷movax,200hmovbl,1divbl
;商=200H,不能用AL表達(dá) ;產(chǎn)生除法錯(cuò)中斷第6章:⑵指令中斷在執(zhí)行中斷調(diào)用指令I(lǐng)NTn時(shí)產(chǎn)生的一個(gè)向量號(hào)為n(0~255)的內(nèi)部中斷,稱為指令中斷其中向量號(hào)為3的指令中斷比較特別(生成一個(gè)字節(jié)的指令代碼:11001100),常用于程序調(diào)試,被稱為斷點(diǎn)中斷例如:DEBUG.EXE調(diào)試程序的運(yùn)行命令G設(shè)置的斷點(diǎn),就是利用INT3指令實(shí)現(xiàn)的第6章:⑶溢出中斷在執(zhí)行溢出中斷指令I(lǐng)NTO時(shí),若溢出標(biāo)志OF為1,則產(chǎn)生一個(gè)向量號(hào)為4的內(nèi)部中斷,被稱為溢出中斷例如:movax,2000haddax,7000h
;2000H+7000H=9000H,溢出:OF=1into ;因?yàn)镺F=1,所以產(chǎn)生溢出中斷第6章:⑷單步中斷若單步中斷TF為1,則在每條指令執(zhí)行結(jié)束后產(chǎn)生一個(gè)向量號(hào)為1的內(nèi)部中斷,稱為單步中斷例如:DEBUG.EXE調(diào)試程序的單步命令T就利用單步中斷實(shí)現(xiàn)對(duì)程序的單步調(diào)試第6章:2.外部中斷外部中斷是由于8088外部提出中斷請(qǐng)求引起的程序中斷利用外部中斷,微機(jī)系統(tǒng)可以實(shí)時(shí)響應(yīng)外部設(shè)備的數(shù)據(jù)傳送請(qǐng)求,能夠及時(shí)處理外部意外或緊急事件外部中斷的原因是處理器外部隨機(jī)產(chǎn)生的,所以是真正的中斷(Interrupt)內(nèi)部中斷的原因是處理器執(zhí)行程序出現(xiàn)異常,所以經(jīng)常被稱為異常(Exception)第6章:⑴非屏蔽中斷通過非屏蔽中斷請(qǐng)求信號(hào)向微處理器提出的中斷請(qǐng)求,微處理器無法禁止,將在當(dāng)前指令執(zhí)行結(jié)束予以響應(yīng),這個(gè)中斷被稱為非屏蔽中斷8088的非屏蔽中斷的向量號(hào)為2,非屏蔽中斷請(qǐng)求信號(hào)為NMI非屏蔽中斷主要用于處理系統(tǒng)的意外或故障。例如:電源調(diào)電前的數(shù)據(jù)保護(hù)存儲(chǔ)器讀寫錯(cuò)誤的處理第6章:⑵可屏蔽中斷外部通過可屏蔽中斷請(qǐng)求信號(hào)向微處理器提出的中斷,微處理器在允許可屏蔽中斷的條件下,在當(dāng)前指令執(zhí)行結(jié)束予以響應(yīng),同時(shí)輸出可屏蔽中斷響應(yīng)信號(hào),這個(gè)中斷就是可屏蔽中斷8088的可屏蔽中斷請(qǐng)求和響應(yīng)信號(hào)分別是INTR和INTA*;由IF標(biāo)志控制可屏蔽中斷是否允許響應(yīng);向量號(hào)來自外部中斷控制器8088通常需要配合中斷控制器8259A共同處理可屏蔽中斷可屏蔽中斷主要用于主機(jī)與外設(shè)交換數(shù)據(jù)第6章:中斷標(biāo)志IF的狀態(tài)IF=0:可屏蔽中斷不會(huì)被響應(yīng)關(guān)中斷、禁止中斷、中斷屏蔽系統(tǒng)復(fù)位,使IF=0任何一個(gè)中斷被響應(yīng),使IF=0執(zhí)行指令CLI,使IF=0IF=1:可屏蔽中斷會(huì)被響應(yīng)開中斷、允許中斷、中斷開放執(zhí)行指令STI,使IF=1執(zhí)行指令I(lǐng)RET恢復(fù)原IF狀態(tài)明確IF標(biāo)志的狀態(tài)是關(guān)鍵第6章:6.1.28088的中斷響應(yīng)過程N(yùn)MIN軟件中斷INTRTF=1中斷響應(yīng)周期讀中斷向量號(hào)下條指令現(xiàn)行指令I(lǐng)F=1NNNNYYYYY查詢中斷的順序,決定了各種中斷源的優(yōu)先權(quán)軟件中斷除法錯(cuò)中斷指令中斷溢出中斷非屏蔽中斷可屏蔽中斷單步中斷高低第6章:6.1.28088的中斷響應(yīng)過程(續(xù))Y還有NMITEMP=1標(biāo)志寄存器入棧TEMP=TF,IF=TF=0CS:IP入棧獲取中斷向量執(zhí)行服務(wù)程序彈出CS:IP彈出標(biāo)志寄存器返回被中斷程序(1)(2)(3)(4)(5)NNY(6)8088各種中斷源的優(yōu)先權(quán),實(shí)際上是指被識(shí)別出來的先后多種中斷同時(shí)請(qǐng)求時(shí),最先響應(yīng)的則可能是單步中斷或NMI中斷第6章:6.1.38088的中斷向量表中斷向量:中斷服務(wù)程序的入口地址(首地址)邏輯地址含有段地址CS和偏移地址IP(32位)每個(gè)中斷向量的低字是偏移地址、高字是段地址,需占用4個(gè)字節(jié)8088微處理器從物理地址000H開始,依次安排各個(gè)中斷向量,向量號(hào)也從0開始256個(gè)中斷占用1KB區(qū)域,就形成中斷向量表向量號(hào)為N的中斷向量的物理地址=N×4第6章:6.2內(nèi)部中斷服務(wù)程序編寫內(nèi)部中斷服務(wù)程序與編寫子程序類似利用過程定義偽指令PROC/ENDP第1條指令通常為開中斷指令STI最后用中斷返回指令I(lǐng)RET通常采用寄存器傳遞參數(shù)主程序需要調(diào)用中斷服務(wù)程序調(diào)用前,需要設(shè)置中斷向量設(shè)置必要的入口參數(shù)利用INTn指令調(diào)用中斷服務(wù)程序處理出口參數(shù)第6章:例6.1內(nèi)部中斷服務(wù)程序編寫80H號(hào)中斷服務(wù)程序,并調(diào)用功能:具有顯示以“0”結(jié)尾字符串的功能,利用顯示器功能調(diào)用INT10H實(shí)現(xiàn)字符顯示字符串緩沖區(qū)首地址為入口參數(shù):
DS:DX(段地址:偏移地址)傳遞參數(shù)第6章:例6.1的數(shù)據(jù)段;數(shù)據(jù)段intoff dw? ;用于保存偏移地址intseg dw? ;用于保存段基地址intmsg db‘AInstructionInterrupt!’,0dh,0ah,0以“0”結(jié)尾回車、換行第6章:例6.1的獲取原中斷向量;代碼段movax,3580h ;利用DOS功能35H號(hào)int21h ;獲取原80H中斷向量movintoff,bx ;保存偏移地址movintseg,es ;保存段基地址獲取中斷向量(DOS功能調(diào)用INT21H)功能號(hào):AH=35H入口參數(shù):AL=中斷向量號(hào)出口參數(shù):ES:BX=中斷向量(段地址:偏移地址)第6章:例6.1的設(shè)置新中斷向量pushdsmovdx,offsetnew80h ;取中斷程序偏移地址movax,segnew80h ;取中斷程序段地址movds,axmovax,2580hint21hpopds設(shè)置中斷向量(DOS功能調(diào)用INT21H)功能號(hào):AH=25H入口參數(shù):AL=中斷向量號(hào)DS:DX=中斷向量(段地址:偏移地址)第6章:例6.1的中斷調(diào)用;設(shè)置入口參數(shù): DS=段地址(已設(shè)置)
DX=偏移地址movdx,offsetintmsg int80h
;調(diào)用80H中斷服務(wù)程序AInstructionInterrupt!程序功能第6章:例6.1的主程序返回movdx,intoff
;恢復(fù)原中斷向量movax,intsegmovds,ax
;改變DSmovax,2580hint21h
;因緊接著返回DOSmovax,4c00h
;故無需恢復(fù)DSint21h設(shè)置中斷向量(DOS功能調(diào)用INT21H)功能號(hào):AH=25H入口參數(shù):AL=中斷向量號(hào)DS:DX=中斷向量(段地址:偏移地址)第6章:例6.1的中斷服務(wù)程序(1);80H號(hào)內(nèi)部中斷服務(wù)程序:;顯示字符串(以“0”結(jié)尾);入口參數(shù):DS:DX=緩沖器首地址new80h proc ;過程定義
sti
;開中斷
pushax ;保護(hù)寄存器
pushbx pushsi第6章:例6.1的中斷服務(wù)程序(2)
movsi,dxnew1: moval,[si] ;讀取欲一個(gè)顯示字符
cmpal,0
;為結(jié)尾“0”,則結(jié)束
jznew2 movbx,0
;采用ROM-BIOS功能調(diào)用
movah,0eh int10h incsi
;準(zhǔn)備顯示下一個(gè)字符
jmpnew1第6章:例6.1的中斷服務(wù)程序(3)new2: popsi ;恢復(fù)寄存器
popbx popax
iret
;中斷返回new80h endp ;過程(中斷服務(wù)程序)結(jié)束AInstructionInterrupt!程序功能6.3可編程中斷控制器8259APIC,ProgrammableInterruptController可對(duì)8個(gè)中斷源實(shí)現(xiàn)優(yōu)先級(jí)控制
可擴(kuò)展至對(duì)64個(gè)中斷源實(shí)現(xiàn)優(yōu)先級(jí)控制
可編程設(shè)置不同工作方式根據(jù)中斷源向x86提供不同中斷類型碼引腳分配及功能見教材圖6.266.3.1.8259A的內(nèi)部結(jié)構(gòu)8259A的內(nèi)部結(jié)構(gòu)(見下圖)中斷請(qǐng)求寄存器IRR保存從IR0~I(xiàn)R7來的中斷請(qǐng)求信號(hào),某位=1表示對(duì)應(yīng)的IRi有中斷請(qǐng)求
中斷服務(wù)寄存器ISR
保存所有正在服務(wù)的中斷源,某位=1表示對(duì)應(yīng)的IRi中斷正在被服務(wù)
中斷屏蔽寄存器IMR存放中斷屏蔽字,某位=1表示對(duì)應(yīng)的IRi輸入被屏蔽
中斷優(yōu)先權(quán)判別電路
確定是否向CPU發(fā)出中斷請(qǐng)求,中斷響應(yīng)時(shí)確定ISR的哪位應(yīng)置位及把相應(yīng)中斷的類型碼放到數(shù)據(jù)總線上
第6章:6.3.18259A的內(nèi)部結(jié)構(gòu)D7~D0INTAINT中斷請(qǐng)求寄存器中斷屏蔽寄存器數(shù)據(jù)總線緩沖器IR0IR7讀/寫控制邏輯級(jí)聯(lián)緩沖器比較器RDWRA0CSCAS0CSA1CAS2SP/EN優(yōu)先權(quán)判別電路中斷服務(wù)寄存器控制邏輯6.3.28259A的工作過程8259A對(duì)中斷請(qǐng)求的處理過程如下:當(dāng)某IRi有效時(shí),IRR相應(yīng)位置1若有效的IRi未被屏蔽,則向CPU發(fā)出中斷請(qǐng)求檢測(cè)到第1個(gè)INTA#信號(hào)后,置ISRi=1,IRRi=0
檢測(cè)到第2個(gè)INTA#信號(hào)后,把ISRi=1中最高優(yōu)先級(jí)的中斷類型碼放到DB上若工作在AEOI方式,在第2個(gè)INTA#結(jié)束時(shí),使ISRi復(fù)位;否則由CPU發(fā)出EOI命令使ISRi復(fù)位6.3.38259A的工作方式8259A的工作方式有如下幾類:中斷優(yōu)先方式與中斷嵌套中斷結(jié)束處理方式
屏蔽中斷源的方式中斷觸發(fā)方式級(jí)聯(lián)工作方式中斷優(yōu)先方式與中斷嵌套中斷優(yōu)先方式
兩類優(yōu)先級(jí)控制方式:固定優(yōu)先級(jí)和循環(huán)優(yōu)先級(jí)固定優(yōu)先級(jí)方式所有中斷請(qǐng)求IRi的中斷優(yōu)先級(jí)固定不變優(yōu)先級(jí)排列順序可編程改變加電后8259A的默認(rèn)方式,默認(rèn)優(yōu)先級(jí)順序從高到低為IR0~I(xiàn)R7IR7IR6IR5IR4IR3IR2IR1IR07654321032107654最低級(jí)最高級(jí)最高級(jí)最低級(jí)優(yōu)先級(jí)IR7IR6IR5IR4IR3IR2IR1IR0默認(rèn)優(yōu)先級(jí)優(yōu)先級(jí)可編程改變中斷優(yōu)先方式與中斷嵌套(續(xù))循環(huán)優(yōu)先級(jí)方式
中斷源輪流處于最高優(yōu)先級(jí),即自動(dòng)中斷優(yōu)先級(jí)循環(huán)初始優(yōu)先級(jí)順序可用編程改變某中斷請(qǐng)求IRi被處理后,其優(yōu)先級(jí)別自動(dòng)降為最低,原來比它低一級(jí)的中斷上升為最高級(jí)
IR7IR6IR5IR4IR3IR2IR1IR07654321021076543最低級(jí)最高級(jí)最高級(jí)最低級(jí)ISR內(nèi)容IR7IR6IR5IR4IR3IR2IR1IR0IR4的服務(wù)結(jié)束以前0101000001000000IR4的服務(wù)結(jié)束以后ISRi中斷優(yōu)先方式與中斷嵌套(續(xù))中斷嵌套方式在中斷處理過程中允許被更高優(yōu)先級(jí)的事件所中斷稱為中斷嵌套。8259A有兩種中斷嵌套方式:普通全嵌套方式(默認(rèn)方式)
一中斷正被處理時(shí),只有更高優(yōu)先級(jí)的事件可以打斷當(dāng)前的中斷處理過程而被服務(wù)。特殊全嵌套方式
一中斷正被處理時(shí),允許同級(jí)或更高優(yōu)先級(jí)的事件可以打斷當(dāng)前的中斷處理過程而被服務(wù)。注:特殊全嵌套僅用于多個(gè)8259A級(jí)連時(shí)的主8259A,而不能用于從屬8259A或單8259A系統(tǒng)。D.主8259AIR0IR1IR2IR3IR4IR5IR6IR7一般嵌套方式:從片的INT被主片封鎖,故更高級(jí)別的IR0-IR2中斷也無法得到響應(yīng)特殊嵌套方式:因主片不封鎖從片的INT,故級(jí)別高的IR0-IR2中斷可以得到響應(yīng)。(但I(xiàn)R3-IR7仍被本從片封鎖)C.假定IR7發(fā)生中斷,并獲得服務(wù)一般嵌套方式:IR4的中斷被服務(wù)時(shí),這些中斷將被封鎖。B.特殊嵌套方式:IR4的中斷被服務(wù)時(shí),只封鎖IR5-IR7。A.INTE.從8259AINTIR0IR1IR2IR3IR4IR5IR6IR7一般全嵌套方式與特殊全嵌套方式的區(qū)別
去CPU中斷結(jié)束處理方式當(dāng)某一IRi中斷被服務(wù)時(shí),ISR中的相應(yīng)位ISRi=1。當(dāng)服務(wù)結(jié)束后,則必須清零該ISRi位。使ISRi=0是通過向8259A發(fā)出中斷結(jié)束命令(EOI命令)實(shí)現(xiàn)的。三種EOI命令自動(dòng)EOI(AEOI)——(自動(dòng)EOI方式)非指定EOI(NSEOI)——(正常EOI方式)指定EOI(SEOI)——(特殊EOI方式)
AEOI:在第2個(gè)INTA#結(jié)束時(shí),由8259A使ISRi自動(dòng)復(fù)位;因不保留當(dāng)前正在服務(wù)的中斷的狀態(tài),故AEOI不能用于中斷嵌套方式SEOI:由CPU發(fā)出一條SEOI命令,該EOI命令中指出了所要復(fù)位的ISR的位號(hào)。
用于特殊屏蔽方式NSEOI:由CPU發(fā)出正常EOI命令,該EOI命令使ISRi=1的位中優(yōu)先級(jí)最高的那一位復(fù)位。用于普通全嵌套方式中斷服務(wù)程序┇向從PIC發(fā)EOI命令讀從PIC的ISR全0?向主PIC發(fā)EOI命令YIRET恢復(fù)現(xiàn)場(chǎng)N特殊全嵌套方式下的EOI處理只有當(dāng)從PIC的中斷全部處理完后,才能向主PIC發(fā)EOI命令屏蔽中斷源的方式IMR屏蔽字決定了允許或禁止某位IRi所對(duì)應(yīng)的中斷:IMi=1禁止,IMi=0允許。特殊屏蔽方式:提供了允許較低優(yōu)先級(jí)的中斷能夠得到響應(yīng)的特殊手段。原理:假定當(dāng)前正在處理IR6,先進(jìn)入特殊屏蔽方式,然后設(shè)置IM6=1。這時(shí),除IR6外的所有中斷請(qǐng)求均能得到響應(yīng)。特殊屏蔽方式中只能用SEOI命令結(jié)束中斷。特殊屏蔽例:
。;IR4中斷處理程序 CLI MOVAL,68H;OCW3:01101000 OUT0C0H,AL;設(shè)置特殊屏蔽方式 INAL,0C2H
ORAL,10H;屏蔽IR4 OUT0C2H,AL STI 。;IR7請(qǐng)求,響應(yīng),返回 。 CLI;為設(shè)命令字 INAL,0C2H;讀出屏蔽字 ANDAL,0EFH;清除IMR4 OUT0C2H,AL MOVAL,48H;OCW3:010
01000 OUT0C0H,AL;取消特殊屏蔽 STI 。 ;繼續(xù)IR4中斷服務(wù) MOVAL,20H;OCW2:00100000(EOI) OUT0C0,AL IRET
中斷觸發(fā)方式邊沿觸發(fā)IRi出現(xiàn)上升沿表示有中斷請(qǐng)求
電平觸發(fā)IRi出現(xiàn)高電平表示有中斷請(qǐng)求在第1個(gè)INTA#結(jié)束前,IRi必須保持高電平
級(jí)聯(lián)工作方式單片8259A可支持8個(gè)中斷源;采用多片8259A級(jí)連,可最多支持64個(gè)中斷源。n片8259A可支持7n+1個(gè)中斷源;級(jí)連時(shí)只能有一片8259A為主片,其余的均為從屬片;涉及到的8259A引腳包括:CAS0-CAS2SP#/EN#IRiINT級(jí)連電路連接方法6.3.48259A的編程使用8259A的控制命令分為初始化命令字ICWICW1~I(xiàn)CW4向8259A寫入ICW的過程稱為初始化編程操作命令字OCW
OCW1~OCW3向8259A寫入OCW的過程稱為操作方式編程8259A內(nèi)部寄存器的尋址方法CS#RD#WR#A0D4D3讀寫操作010000寫OCW2寫OCW3寫ICW1寫ICW2,ICW3,ICW4,OCW1(順序?qū)懭?00101x1xx00101xx讀出IRR、ISR讀出IMR需要CS#、A0、RD#、WR#和D4、D3的配合內(nèi)部寄存器的訪問方法如下表:
8259A的初始化順序
8259的初始化流程如圖注意次序不可顛倒寫ICW1寫ICW2級(jí)連?寫ICW3需ICW4?寫ICW4NNYY8259A的控制命令字初始化8259A必須從ICW1開始寫ICW1意味著重新初始化8259A寫入ICW1后,8259A的狀態(tài)如下:清除ISR和IMR(全0);將中斷優(yōu)先級(jí)設(shè)成初始狀態(tài):IR0最高,IR7最低;設(shè)定為一般屏蔽方式;采用非自動(dòng)中斷結(jié)束方式;狀態(tài)讀出邏輯預(yù)置為讀IRR。ICW1——初始化字LTIM:觸發(fā)方式=1高電平觸發(fā)=0上升沿觸發(fā)SNGL:級(jí)連控制=1單片=0級(jí)連IC4:ICW4控制=1要寫ICW4=0不寫ICW4(默認(rèn)ICW4為全0)A0 D7 D6 D5 D4 D3 D2 D1 D0
0 x
x
x 1 LTIM x SNGL
IC4ICW2——中斷向量碼T7~T3:中斷向量碼的高5位T2~T0:最低3位為中斷源的序號(hào)IRn000~111分別對(duì)應(yīng)IR0~I(xiàn)R7由8259A根據(jù)中斷源的序號(hào)自動(dòng)填入
例如: 若ICW2命令字為48H,則IR0的中斷向量碼為48H,IR7的中斷向量碼為4FH,等等。A0 D7 D6 D5 D4 D3 D2 D1 D0
1 T7
T6 T5 T4 T3
x
x
xICW3——級(jí)連控制字
主片的級(jí)聯(lián)控制字
Si=1對(duì)應(yīng)IRi線上連接了從片
A0 D7 D6 D5 D4 D3 D2 D1 D0
1 S7
S6 S5 S4 S3
S2
S1
S0從片的級(jí)聯(lián)控制字
ID2~I(xiàn)D0
標(biāo)識(shí)碼,說明本從片連接到主片的哪個(gè)IR引腳上。000~111分別對(duì)應(yīng)IR0~I(xiàn)R7。
A0 D7 D6 D5 D4 D3 D2 D1 D0
1 0
0 0 0 0
ID2 ID1
ID0ICW3——級(jí)連控制字(續(xù))ICW3必須與主從片的連接關(guān)系一致:
例如,主片的IR4與從片的INT線連接,則主片的ICW3=10H,從片的ICW3=04H。中斷響應(yīng)時(shí),主片通過級(jí)連線CAS2-CAS0送出被允許中斷的從片標(biāo)識(shí)碼,各從片用自己的ICW3與CAS2-CAS0比較,二者一致的從片才可發(fā)送中斷向量碼。ICW4——中斷結(jié)束方式字
SFNM:特殊全嵌套1特殊全嵌套方式0一般全嵌套方式AEOI:自動(dòng)EOI1自動(dòng)EOI方式0非自動(dòng)EOI方式A0 D7 D6 D5D4 D3 D2 D1 D0
1 0
0 0SFNM BUF M/S AEOI
1BUF:緩沖方式M/S:主/從緩沖選擇BUFM/S11緩沖方式/主PIC10緩沖方式/從PIC0x非緩沖方式/正常8259A的操作命令字OCW
OCW用于設(shè)置8259的工作狀態(tài)在初始化后寫入OCW的寫入順序可任意寫入地址要求:OCW1必須寫入奇地址端口(A0=1)OCW2,OCW3必須寫入偶地址端口(A0=0)
OCW1——中斷屏蔽字
Mi=1中斷請(qǐng)求線IRi被屏蔽(不允許中斷)=0允許該IRi中斷OCW1將寫入IMR寄存器。A0=1時(shí)讀OCW1可讀出設(shè)置的IMR內(nèi)容。A0 D7 D6 D5 D4 D3 D2 D1 D0
1 M7
M6 M5 M4 M3
M2
M1
M0OCW2——中斷結(jié)束和優(yōu)先級(jí)循環(huán)
L2~L0:優(yōu)先級(jí)編碼R:優(yōu)先級(jí)自動(dòng)循環(huán)SL:指定優(yōu)先級(jí)EOI:結(jié)束中斷命令
RSLEOI001非指定EOI命令(NSEOI),全嵌套方式011指定EOI命令(SEOI),全嵌套方式,按L2-L0編碼復(fù)位ISR101NSEOI命令,優(yōu)先級(jí)自動(dòng)循環(huán)100自動(dòng)EOI,設(shè)置優(yōu)先級(jí)自動(dòng)循環(huán)000自動(dòng)EOI,取消優(yōu)先級(jí)自動(dòng)循環(huán)(固定優(yōu)先級(jí))111SEOI命令,按L2-L0編碼循環(huán)優(yōu)先級(jí)(L2-L0設(shè)為最低優(yōu)先級(jí))110按L2-L0編碼循環(huán)優(yōu)先級(jí)(L2-L0設(shè)為最低優(yōu)先級(jí))
A0 D7 D6 D5 D4 D3 D2 D1 D0
0 R
SL EOI 0 0
L2
L1
L0OCW3——屏蔽方式和讀出控制字
ESMM:
允許使能特殊屏蔽方式SMM:
特殊屏蔽方式ESMMSMM11特殊屏蔽方式置位10特殊屏蔽方式復(fù)位0x非特殊屏蔽方式P(Polling):=1查詢方式
=0非查詢方式A0 D7 D6 D5 D4 D3 D2 D1 D0
0 0 ESMM SMM 0 1 P RR RISRR:讀寄存器RIS:ISR/IRR選擇RRRIS11讀ISR10讀IRR0x無效OCW3(續(xù))查詢方式允許8259A不工作于中斷方式,而是以查詢方式工作。CPU先寫一個(gè)D2=1的OCW3,再對(duì)同一地址讀入,即可得到如下狀態(tài)字節(jié):
IxxxxR2R1R0
I=1表示有中斷請(qǐng)求,中斷請(qǐng)求號(hào)為R2-R0此查詢步驟可反復(fù)執(zhí)行,以響應(yīng)多個(gè)同時(shí)發(fā)生的中斷。
讀IRR/ISR:寫入此命令后,隨后再對(duì)同一地址讀,即可得到IRR或ISR的內(nèi)容。8259A編程舉例按以下要求初始化8259A:接口地址為20H和21H;中斷為上升沿觸發(fā);單片8259A;不寫ICW4;與IR0-IR3對(duì)應(yīng)的中斷向量碼為08H-0BH;IR4-IR7不使用。根據(jù)要求,各初始化參數(shù)及工作參數(shù)如下:ICW1=00010010=12HICW2=08H中斷向量碼OCW1=11110000=0F0H中斷屏蔽字
8259A編程舉例(續(xù))初始化程序如下:INIT8259A: MOV DX,20H ;A0=0,寫ICW1 MOV AL,12H ;上升沿觸發(fā),單片,不寫ICW4 OUT DX,AL MOV DX,21H ;A0=1,寫ICW2,OCW1 MOV AL,08H ;ICW2 OUT DX,AL MOV AL,0F0H ;OCW1:屏蔽IR4-IR7 OUT DX,AL6.3.5PC機(jī)中斷程序設(shè)計(jì)1)主程序 保存原中斷向量 設(shè)置自己的中斷向量 初始化堆棧指針 設(shè)置8259A的中斷屏蔽字(其他的已由操作系統(tǒng)設(shè)置) STI2)中斷服務(wù)程序 保存所用到的寄存器內(nèi)容
中斷服務(wù)程序主體 恢復(fù)進(jìn)入時(shí)保存的寄存器內(nèi)容
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025下水道施工合同
- 2025韶關(guān)市項(xiàng)目移交合作協(xié)議終止合同
- 2025亞糧集團(tuán)宿州市埇橋區(qū)農(nóng)產(chǎn)品智慧物流園區(qū)項(xiàng)目投資合同書
- 監(jiān)控安裝工程施工合同
- 2025樹苗栽培承包合同
- 職業(yè)經(jīng)理人合作合同協(xié)議書范本
- 2025勞動(dòng)合同常用版本范文
- 2025年重慶餐飲業(yè)項(xiàng)目申請(qǐng)報(bào)告
- 2025年注射類產(chǎn)品項(xiàng)目申請(qǐng)報(bào)告模板
- 2025年銀行監(jiān)管及中央銀行服務(wù)項(xiàng)目規(guī)劃申請(qǐng)報(bào)告模板
- 《中國(guó)心力衰竭診斷和治療指南(2024)》解讀完整版
- 《檔案管理課件》課件
- 2025年中考物理終極押題猜想(新疆卷)(全解全析)
- 脛骨骨折的護(hù)理查房
- 抽水蓄能電站項(xiàng)目建設(shè)管理方案
- 電動(dòng)工具培訓(xùn)課件
- 《智能網(wǎng)聯(lián)汽車智能傳感器測(cè)試與裝調(diào)》電子教案
- 視頻會(huì)議室改造方案
- 【中考真題】廣東省2024年中考語文真題試卷
- GB/T 32399-2024信息技術(shù)云計(jì)算參考架構(gòu)
- 2025年湖南省長(zhǎng)沙市中考數(shù)學(xué)模擬試卷(附答案解析)
評(píng)論
0/150
提交評(píng)論