




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、第五章第五章中斷系統(tǒng)中斷系統(tǒng)5.1 中斷的基本概念中斷的基本概念中斷中斷 CPU暫停執(zhí)行現(xiàn)行的程序,轉(zhuǎn)而處理隨機(jī)事件,處理完畢后再返回被中斷的程序處繼續(xù)執(zhí)行,這一全過程稱為中斷。中斷源中斷源能夠引發(fā)CPU中斷的信息源稱為中斷源。常見的中斷源為:常見的中斷源為:一般 I/O設(shè)備,如CRT終端、打印機(jī)等。數(shù)據(jù)通道,如磁盤、磁帶等。實(shí)時時鐘,如定時器芯片8253產(chǎn)生的定時中斷請求信號。故障信號,如電源掉電等。軟件中斷,如為調(diào)試程序而設(shè)置的中斷。中斷系統(tǒng)中斷系統(tǒng)系統(tǒng)為實(shí)現(xiàn)中斷而采用的硬件和軟件措施。計算機(jī)采用中斷系統(tǒng)的目的計算機(jī)采用中斷系統(tǒng)的目的維持系統(tǒng)的正常工作,提高系統(tǒng)效率。實(shí)時處理。為故障處理作
2、準(zhǔn)備。中斷系統(tǒng)應(yīng)具備的基本功能中斷系統(tǒng)應(yīng)具備的基本功能對于硬設(shè)備的中斷請求,要具備屏蔽和開放功能,使得程序員能靈活控制。能實(shí)現(xiàn)“中斷判優(yōu)”,即中斷源排隊(duì),當(dāng)有多個中斷源提出請求時,高級別的中斷請求能被優(yōu)先響應(yīng)。能實(shí)現(xiàn)中斷嵌套,即高級別的中斷源能夠中斷低級別的中斷服務(wù)程序。系統(tǒng)響應(yīng)中斷后,能自動轉(zhuǎn)入中斷處理。中斷處理結(jié)束,能自動返回。5.2 8086中斷系統(tǒng)中斷系統(tǒng)8086系統(tǒng)的中斷分類系統(tǒng)的中斷分類8086系統(tǒng)共有256種類型的中斷,對應(yīng)的中斷類型號為:0255??煞譃檐浖袛嗪陀布袛嘤布袛鄡纱箢悺軟件中斷軟件中斷由由CPU執(zhí)行某些指令引起的中斷稱為軟執(zhí)行某些指令引起的中斷稱為軟件中斷件
3、中斷(亦稱內(nèi)部中斷亦稱內(nèi)部中斷)。它包括:它包括:除法出錯中斷除法出錯中斷0類型中斷類型中斷在作除法時,若除數(shù)為0或商超出了有關(guān)寄存器能表示的數(shù)值范圍,則產(chǎn)生除法出錯中斷。例如例如 mov bl,0idiv bl;除數(shù);除數(shù)BL0,產(chǎn)生除法錯中斷,產(chǎn)生除法錯中斷mov ax,200hmov bl,1div bl;商;商200H,不能用,不能用AL表達(dá)表達(dá);產(chǎn)生除法錯中斷;產(chǎn)生除法錯中斷單步中斷單步中斷1類型中斷類型中斷在單步標(biāo)志TF=1且中斷允許標(biāo)志IF=1時,每執(zhí)行一條指令就引起一次中斷。 斷點(diǎn)中斷斷點(diǎn)中斷3類型中斷類型中斷主要用在除錯調(diào)試程序中, 利用“INT 3”設(shè)置斷點(diǎn), 目的是顯示斷
4、點(diǎn)前程序的執(zhí)行結(jié)果。當(dāng)溢出標(biāo)志OF=1時,執(zhí)行指令I(lǐng)NTO,則產(chǎn)生溢出中斷。溢出中斷溢出中斷4 4類型中斷類型中斷例如例如MOV AX , 2000HADDAX , 7000HINTO ;2000H7000H9000H,溢出:,溢出:OF1;因?yàn)?;因?yàn)镺F1,所以產(chǎn)生溢出中斷,所以產(chǎn)生溢出中斷中斷指令中斷指令 INT nINT n是中斷指令,n是中斷類型號(0255)。磁盤操作系統(tǒng)、基本輸入輸出系統(tǒng)的功能即是用INT n指令中斷調(diào)用。硬件中斷硬件中斷由CPU外部中斷請求引腳NMI和INTR引起的中斷稱為硬件中斷(亦稱為外部中斷)非屏蔽中斷非屏蔽中斷 通過CPU的NMI(Non-Maskable
5、 Interrupt)引腳進(jìn)入, NMI被響應(yīng)時, 自動產(chǎn)生2號類型中斷。它不受中斷允許標(biāo)志的屏蔽,微處理器無法禁止,將在當(dāng)前指令執(zhí)行結(jié)束予以響應(yīng);8086的非屏蔽中斷的類型號為2;非屏蔽中斷主要用于處理系統(tǒng)的意外或故障。例如:例如:l電源調(diào)電前的數(shù)據(jù)保護(hù)l存儲器讀寫錯誤的處理中斷請求信號通過CPU的INTR(打斷)引腳進(jìn)入;中斷響應(yīng)信號從INTA引腳發(fā)出;且中斷允許標(biāo)志IF=1時, CPU響應(yīng)中斷;若IF=0, 則中斷請求被屏蔽;通常可屏蔽中斷源經(jīng)過中斷控制器8259A管理再向CPU發(fā)INTR請求??善帘沃袛嗫善帘沃袛嘀袛鄻?biāo)志中斷標(biāo)志IF的狀態(tài)的狀態(tài)nIF0:可屏蔽中斷不會被響應(yīng)可屏蔽中斷不
6、會被響應(yīng)關(guān)中斷、禁止中斷、中斷屏蔽統(tǒng)復(fù)位,使IF0任何一個中斷被響應(yīng),使IF0執(zhí)行指令CLI,使IF0nIF1:可屏蔽中斷會被響應(yīng)可屏蔽中斷會被響應(yīng)開中斷、允許中斷、中斷開放執(zhí)行;指令STI,使IF1n執(zhí)行指令執(zhí)行指令I(lǐng)RET恢復(fù)原恢復(fù)原IF狀態(tài)狀態(tài)5.2 中中斷處理過程斷處理過程中斷過程中斷過程中中斷請求斷請求: 中斷源向CPU發(fā)出請求中斷信號。中斷信號將被鎖存,直到CPU響應(yīng)中斷后,中斷請求信號才被清除。 中斷響應(yīng)中斷響應(yīng): CPU在執(zhí)行每條指令的最后一個時鐘周期檢測中斷請求信號。若發(fā)現(xiàn)中斷請求信號有效,在允許中斷的條件下,CPU響應(yīng)中斷。CPU會自動完成會自動完成3項(xiàng)任務(wù)項(xiàng)任務(wù): 關(guān)閉中
7、斷,以禁止其它中斷請求。 斷點(diǎn)(IP和CS)和標(biāo)志寄存器內(nèi)容入棧保護(hù)。 獲得中斷服務(wù)程序入口地址,轉(zhuǎn)中斷服務(wù)程序。中斷處理:中斷處理:保護(hù)現(xiàn)場保護(hù)現(xiàn)場 相關(guān)工作寄存器的內(nèi)容壓棧保護(hù)。開中斷開中斷 若要響應(yīng)高級別的中斷,則需要打開中斷。執(zhí)行中斷服務(wù)程序執(zhí)行中斷服務(wù)程序關(guān)中斷關(guān)中斷 使得不被中斷,可順利恢復(fù)現(xiàn)場?;謴?fù)現(xiàn)場恢復(fù)現(xiàn)場 將壓棧保護(hù)的內(nèi)容順序出棧給相關(guān)寄存器。中斷返回中斷返回中斷服務(wù)程序的最后一條指令是中斷返回指令I(lǐng)RET, 執(zhí)行后IRET后CPU自動從堆棧中彈出IP 、 CS和FLAGS的內(nèi)容, 返回主程序繼續(xù)執(zhí)行。NMIN軟件中斷軟件中斷INTRTF=1中斷響應(yīng)周期中斷響應(yīng)周期讀中斷向
8、量號讀中斷向量號下條指令下條指令現(xiàn)行指令現(xiàn)行指令I(lǐng)F1NNNNYYYYY查詢中斷的順序,查詢中斷的順序,決定了各種中斷源的優(yōu)先權(quán)決定了各種中斷源的優(yōu)先權(quán)u軟件中斷軟件中斷l(xiāng)除法錯中斷除法錯中斷l(xiāng)指令中斷指令中斷l(xiāng)溢出中斷溢出中斷u非屏蔽中斷非屏蔽中斷u可屏蔽中斷可屏蔽中斷u單步中斷單步中斷高高低低Y還有還有NMITEMP1標(biāo)志寄存器入棧標(biāo)志寄存器入棧TEMPTF,IFTF0CS:IP入棧入棧獲取中斷向量獲取中斷向量執(zhí)行服務(wù)程序執(zhí)行服務(wù)程序彈出彈出CS:IP彈出標(biāo)志寄存器彈出標(biāo)志寄存器返回被中斷程序返回被中斷程序(1)(2)(3)(4)(5)NNY(6)u8086各種中斷源的優(yōu)先各種中斷源的優(yōu)先
9、權(quán),實(shí)際上是指被識別權(quán),實(shí)際上是指被識別出來的先后;出來的先后;u多種中斷同時請求時,多種中斷同時請求時,最先響應(yīng)的則可能是單最先響應(yīng)的則可能是單步中斷或步中斷或NMI中斷。中斷。n中斷響應(yīng)過程 中斷向量中斷向量中斷向量中斷向量中斷服務(wù)程序的入口地址亦稱中斷向量。它由兩部分組成: 中斷服務(wù)程序所在段的段基址(2個字節(jié)) 。 中斷服務(wù)程序入口的偏移地址(2個字節(jié)) 。中斷向量表中斷向量表一種類型的中斷向量為4個字節(jié), 256種中斷的中斷向量總共占用1024個字節(jié)。在8086系統(tǒng)中,所有的中斷向量按類型順序存放于內(nèi)存的最低地址(00000H003FFH)的1K單元中。存放中斷向量的這1K單元稱為中
10、斷向量表中斷向量表。N型中斷向量在中斷向量表中的位置型中斷向量在中斷向量表中的位置:存放地址= N4( n4 3 )N4字單元存放偏移地址;N42的字單元存放段基址。例例5.1 5型中斷向量存放在型中斷向量存放在:54543=14H17H的的4個單元中個單元中, 其中其中14H、15H單元存放中斷服務(wù)程序入口的單元存放中斷服務(wù)程序入口的偏移地址;偏移地址;16H、17H單元存放中斷服務(wù)程序單元存放中斷服務(wù)程序入口的段基址。入口的段基址。例例5.2 CPU執(zhí)行執(zhí)行INT 21H指令時指令時, 中斷向量中斷向量的引導(dǎo)過程。的引導(dǎo)過程。假設(shè)21H型服務(wù)程序被放在地址為: XX: YY開始的內(nèi)存區(qū),
11、其中斷向量XX: YY存放在421H421H3的單元中。CPU取出INT 21H指令后, CS: IP等于下一指令(標(biāo)號NEXT:)存放單元的物理地址。CPU執(zhí)行INT 21H之后:FAGS、CS、IP的當(dāng)前值被壓棧保護(hù)。CPU從421H421H3的單元中取得中斷向量并寫入IP, CS之中。CPU根據(jù)CS:IP值轉(zhuǎn)向21H型中斷服務(wù)程序。當(dāng)中斷程序執(zhí)行完畢, 執(zhí)行IRET指令時, CPU 從棧頂順序彈出保護(hù)的斷點(diǎn)給IP 、 CS、 FLAGS。CPU根據(jù)CS: IP返回斷點(diǎn)(NEXT:處),繼續(xù)執(zhí)行主程序。3)中斷向量表的初始化中斷向量表的初始化由BIOS提供的服務(wù)程序, 其中斷向量是在系統(tǒng)加
12、電后由BIOS負(fù)責(zé)設(shè)置。由DOS提供的服務(wù)程序, 其中斷向量是在啟動DOS時由DOS負(fù)責(zé)設(shè)置。用戶開發(fā)的中斷服務(wù)程序, 需要用戶設(shè)置中斷向量。設(shè)置中斷向量的方法為設(shè)置中斷向量的方法為:直直接指令裝入接指令裝入例例5.3 設(shè)置類型設(shè)置類型N的中斷向量的中斷向量, 其中斷服務(wù)其中斷服務(wù)程序名為程序名為: INTHAND。MOV AX , 0 MOV ES , AX ; set to base of interrupt vectorMOV BX , N4 ; offset of type N interruptMOV AX , OFFSET INTHANDMOV ES: WORD PTR BX ,
13、AX ; set addr ofMOV AX , SEG INTHAND ; INTHANDMOV ES:WORD PTR BX+2 , AXINTHAND: ; interrupt processing routine IRET用用DOS功能調(diào)用功能調(diào)用(INT 21H)設(shè)置中斷向量設(shè)置中斷向量25H功能:設(shè)置中斷向量功能:設(shè)置中斷向量把由AL指定的中斷類型的中斷向量放置在中斷向量表中預(yù)置預(yù)置: AH = 25H AL = 中斷類型號 DS: DX = 中斷向量執(zhí)行執(zhí)行: INT 21H35H功能:取中斷向量功能:取中斷向量把由AL指定的中斷類型的中斷向量從中斷向量表中取到ES: BX中。預(yù)
14、置預(yù)置: AH = 35H AL = 中斷類型號執(zhí)行執(zhí)行: INT 21H返回時送返回時送: ES: BX = 中斷向量例例5.4 使用使用DOS功能調(diào)用存取中斷向量。功能調(diào)用存取中斷向量。MOV AL , N ; type N interruptMOV AH , 35 ; get interrupt vectorINT 21HPUSH ES ; save the old base andPUSH BX ; offset of interrupt NMOV AX , SEG INTHANDMOV DS , AX ; base of INTHAND in DSMOV DX , OFFSET IN
15、THANDMOV AL , N ; type NMOV AH , 25H ; set interrupt vectorINT 21HPOP DX ; restore the old offsetPOP DS ; and base of interruptMOV AL , N ; type NMOV AH , 25H ; set interrupt vectorINT 21HRET ; return; ; interrupt processing routineINTHAND: IRET例例5.5 實(shí)際中斷程序結(jié)構(gòu)。實(shí)際中斷程序結(jié)構(gòu)。實(shí)際應(yīng)用中,為了運(yùn)行某個應(yīng)用程序,通常采用替代原來的中斷服務(wù)程
16、序的辦法。為此, 應(yīng)先保存原中斷向量的內(nèi)容, 然后接管中斷向量使其指向編制的新中斷服務(wù)程序。最后,在應(yīng)用程序終止退出前, 從變量中獲取原中斷向量恢復(fù)到中斷向量表中。具體程序如下:STACK SEGMENT STACK STACK DW 128 DUP(0)STACK ENDS DATA SEGMENT DATAINT_SEG DW ? ; 定義變量,以保存中斷向量段址INT_OFF DW ? ; 定義變量,以保存中斷向量偏移量DATA ENDSCODE SEGMENT CODEASSUME CS: CODE , DS: DATA , SS: STACKSTART: MOV AX , DATA
17、; 建立數(shù)據(jù)段址MOV DS , AXMOV AL , N ; N為指定中斷號 MOV AH , 35H ; 獲取中斷向量INT 21HMOV INT_SEG , ES ;保存中斷向量段址MOV INT_OFF , BX ; 保存中斷向量偏移量CLIMOV AL , N ; N為指定中斷號MOV AH , 25H ; 設(shè)置中斷向量MOV DX , SEG INT_PRMOV DS , DX ; DS指向新中斷向量段址MOV DX , OFFSET INT_PR ; DX指向新中斷INT 21H ; 向量偏移量 MOV AX , DATAMOV DS , AX ; 恢復(fù)數(shù)據(jù)段尋址STI ; 開中
18、斷 ; 主程序主體(略)CLI ; 恢復(fù)中斷向量前關(guān)中斷MOV AL , N ; N為指定中斷號MOV AH , 25H ; 恢復(fù)原中斷向量MOV DX , INT_OFF ; DX指向原中斷向量偏移量MOV BX , INT_SEGMOV DS , BX ; DS指向原中斷向量段址INT 21H STI ; 開中斷MOV AX , 4C00H ; 主程序終止退出INT 21H ; 返回DOS INT_PR PROC FAR ; 新中斷服務(wù)程序STI ;入口處開中斷PUSH ; 保存用到的寄存器 PUSH 中斷服務(wù)程序主體中斷服務(wù)程序主體( (略略) ) POP ; 恢復(fù)入口寄存器 POP M
19、OV AL , 020H ; 發(fā)中斷結(jié)束命令(EOI)OUT 020H , ALIRET ; 中斷返回INT_PR ENDP ; 中斷程序結(jié)束CODE ENDS ; 主程序結(jié)束 END START內(nèi)部中斷服務(wù)程序的編寫內(nèi)部中斷服務(wù)程序的編寫n編寫內(nèi)部中斷服務(wù)程序與編寫子程序類似編寫內(nèi)部中斷服務(wù)程序與編寫子程序類似n利用過程定義偽指令利用過程定義偽指令PROC/ENDPn第第1條指令通常為開中斷指令條指令通常為開中斷指令STIn最后用中斷返回指令最后用中斷返回指令I(lǐng)RETn通常采用寄存器傳遞參數(shù)通常采用寄存器傳遞參數(shù)n主程序需要調(diào)用中斷服務(wù)程序主程序需要調(diào)用中斷服務(wù)程序n調(diào)用前,需要設(shè)置中斷向量
20、調(diào)用前,需要設(shè)置中斷向量n利用利用INT n指令調(diào)用中斷服務(wù)程序指令調(diào)用中斷服務(wù)程序例例5.6 內(nèi)部中斷服務(wù)程序內(nèi)部中斷服務(wù)程序u編寫編寫80H號中斷服務(wù)程序號中斷服務(wù)程序u功能:顯示以功能:顯示以“0”結(jié)尾字符串的功能結(jié)尾字符串的功能u利用顯示器功能調(diào)用利用顯示器功能調(diào)用INT 10Hu字符串緩沖區(qū)首地址為入口參數(shù)字符串緩沖區(qū)首地址為入口參數(shù)uDS:DX(段地址:偏移地址)傳遞參數(shù)(段地址:偏移地址)傳遞參數(shù)數(shù)據(jù)段intoffdw ?intsegdw ?intmsg db A Instruction Interrupt !db 0dh,0ah,0例例5.6以以“0”結(jié)尾結(jié)尾回車、換行回車、換
21、行保存中斷向量mov ax,3580hint 21hmov intoff,bx;保存偏移地址保存偏移地址mov intseg,es;保存段基地址保存段基地址例例5.6獲取中斷向量(獲取中斷向量(DOS功能調(diào)用功能調(diào)用INT 21H)功能號:功能號:AH35H入口參數(shù):入口參數(shù):AL中斷向量號中斷向量號出口參數(shù):出口參數(shù):ES:BX中斷向量(段地址:偏移地中斷向量(段地址:偏移地址)址)設(shè)置中斷向量push dsmov dx,offset new80hmov ax,seg new80hmov ds,axmov ax,2580hint 21hpop ds例例5.6設(shè)置中斷向量(設(shè)置中斷向量(DOS
22、功能功能調(diào)用調(diào)用INT 21H)功能號:功能號:AH25H入口參數(shù):入口參數(shù):AL中斷向中斷向量號量號DS:DX中斷向量(段地中斷向量(段地址:偏移地址)址:偏移地址)調(diào)用中斷服務(wù)程序;設(shè)置入口參數(shù):設(shè)置入口參數(shù):DS段地址(已設(shè)置)段地址(已設(shè)置)DX偏移地址偏移地址mov dx,offset intmsgint 80h ;調(diào)用;調(diào)用80H中斷服務(wù)程序中斷服務(wù)程序例例5.6A Instruction Interrupt !;80H號內(nèi)部中斷服務(wù)程序:號內(nèi)部中斷服務(wù)程序:;顯示字符串(以;顯示字符串(以“0”結(jié)尾)結(jié)尾);入口參數(shù):;入口參數(shù):DS:DX緩沖器首地址緩沖器首地址new80h p
23、rocsti;開中斷開中斷push ax;保護(hù)寄存器保護(hù)寄存器push bxpush si例例5.6進(jìn)入中斷服務(wù)程序A Instruction Interrupt !顯示字符串mov si,dxnew1:mov al,sicmp al,0jz new2mov bx,0mov ah,0ehint 10hinc sijmp new1例例5.6A Instruction Interrupt !退出中斷服務(wù)程序new2:pop si;恢復(fù)寄存器恢復(fù)寄存器pop bxpop axiret ;中斷返回中斷返回new80h endp例例5.6A Instruction Interrupt !主程序結(jié)束mov
24、 dx,intoffmov ax,intsegmov ds,axmov ax,2580hint 21hmov ax,4c00hint 21h例例5.6A Instruction Interrupt !5.3 中斷控制器中斷控制器8259A8259A中斷控制器由 INTEL公司設(shè)計。1片8259A管理8級中斷源, 多片8259A用級連方式可使管理級別擴(kuò)充。使用單一+5V電源供電。8259A的的內(nèi)部結(jié)構(gòu)內(nèi)部結(jié)構(gòu)中斷請求寄存器中斷請求寄存器(8位位)IRRu保存8條外界中斷請求信號IR0IR7的請求u狀態(tài)Di位為1表示IRi引腳有中斷請求;為0表示無請求。中斷屏蔽寄存器中斷屏蔽寄存器(8位位)IRu
25、保存對中斷請求信號IR的屏蔽狀態(tài);uDi位為1表示IRi中斷被屏蔽(禁止);為0表示允許。u當(dāng)IR7IR0端有多個中斷請求同時發(fā)生時, 由PR判定其最高優(yōu)先權(quán);u在INTA脈沖期間將它置入中斷服務(wù)寄存器ISR的相應(yīng)位。優(yōu)先權(quán)判別器優(yōu)先權(quán)判別器(PR)中斷服務(wù)寄存器中斷服務(wù)寄存器(8位)ISRu保存正在被8259A服務(wù)著的中斷狀態(tài);uDi位為1表示IRi中斷正在服務(wù)中;為0表示沒有被服務(wù)。u8位雙向三態(tài)緩沖器,構(gòu)成8259A與系統(tǒng)數(shù)據(jù)線的接口。對8259A編程寫入的命令字和讀出8259A狀態(tài)信息都是通過它傳送。數(shù)據(jù)總線緩沖器數(shù)據(jù)總線緩沖器6) 讀寫控制邏輯讀寫控制邏輯u接收讀/寫控制信號RD /
26、 WR、片選信號CS和端口選擇信號A0 。一片8259A在系統(tǒng)中占用2個口地址, 用地址線A0來選擇端口;用高位地址線通過譯碼產(chǎn)生8259A的片選信號。u它有一組命令字(ICW1ICW4)寄存器和操作字(OCW1OCW3)寄存器以及相關(guān)的控制邏輯。它通過INT端向CPU發(fā)中斷請求信號, 從INTA端接收CPU的中斷響應(yīng)信號, 控制8259A進(jìn)入中斷狀態(tài)。7) 控制電路控制電路級連級連緩沖緩沖/比較器比較器u一片8259A只能接收8級中斷, 當(dāng)超過8級時,可用多片8259A級連使用, 構(gòu)成主從結(jié)構(gòu)??蓴U(kuò)充到64級。中斷級連方式的連接中斷級連方式的連接u一個系統(tǒng)中,8259A可以級連,有一個主82
27、59A,若干個(最多8個)從8259Au級連時,主8259A的三條級連線CAS0CAS2作為輸出線,連至每個從8259A的CAS0CAS2u每個從8259A的中斷請求信號INT,連至主8259A的一個中斷請求輸入端IRu主8259A的INT線連至CPU的中斷請求輸入端uSP/EN在非緩沖方式下,規(guī)定該8259A是主片(SP1)還是從片(SP0)動畫動畫示例示例8259A的引腳功能的引腳功能nD7D0 : 雙向數(shù)據(jù)總線。用于傳送控制、狀態(tài)信息和中斷類型號。nWR : 寫信號。輸入, 低電平有效。當(dāng)WR 有效時, 若CS也有效, 則允許該8259A接收CPU送來的命令字。nRD : 讀信號。輸入,
28、 低電平有效。當(dāng)RD 有效時, 且CS也有效, 則允許該8259A將狀態(tài)信息放入數(shù)據(jù)總線供CPU檢測。nA0 : 8259A只占兩個地址, A0與CS 一同構(gòu)成8259A的端口奇/偶地址選擇。nCS : 片選信號。輸入, 低電平有效。有效時, CPU可對該8259A進(jìn)行讀寫。與處理器接口引腳的邏輯功能與處理器接口引腳的邏輯功能 A0 RD* WR* CS*功能 0 1 0 0 1 1 0 0 0 0 1 0 1 0 1 0 1 1 0 1寫入寫入ICW1、OCW2和和OCW3寫入寫入ICW2ICW4和和OCW1讀出讀出IRR、ISR和查詢字和查詢字讀出讀出IMR數(shù)據(jù)總線高阻狀態(tài)數(shù)據(jù)總線高阻狀態(tài)
29、數(shù)據(jù)總線高阻狀態(tài)數(shù)據(jù)總線高阻狀態(tài)nIR7IR0 : 外部中斷請求信號。輸入。nINT :中斷請求信號。輸出。當(dāng)IR7IR0 任一引腳有中斷請求時, 8259A從INT向CPU(通常是 INTR引腳)發(fā)出中斷請求信號。nINTA :中斷響應(yīng)信號。輸入。當(dāng)CPU接收到中斷請求信號,在允許中斷條件下, CPU響應(yīng)中斷, 并發(fā)出中斷響應(yīng)信號到INTA端。nCAS2CAS0 : 級連信號。雙向引腳。用于控制多片8259A的級連使用。n主片: CAS2CAS0 引腳輸出;n從片: CAS2CAS0 引腳輸入。n SP / EN : 雙功能引腳。當(dāng)該8259A處于緩沖方式時, 該引腳輸出, 它用于總線收發(fā)器
30、的使能信號;當(dāng)該8259A處于非緩沖方式時, 該引腳輸入, SP=1表示該片是主片, SP=0表示該片是從片。 8259A的中斷過程的中斷過程CAS0CAS2D0D7SP/ENIR0IR7CPU響應(yīng)周期響應(yīng)周期8259A工作波形工作波形INT第一個周期第一個周期T1 T2 T3 T4ALECLK 第二個周期第二個周期T1 T2 T3 T4第一個前保持為高電平第一個前保持為高電平 INTALOCK動畫動畫 8259A的中斷管理方式的中斷管理方式中斷觸發(fā)方式中斷觸發(fā)方式電平觸發(fā)方式電平觸發(fā)方式當(dāng)IR7IR0 出現(xiàn)高電平時, 表示有中斷請求。這個高電平應(yīng)持續(xù)到8259A收到第一個中斷響應(yīng)脈沖之前。邊
31、沿觸發(fā)方式邊沿觸發(fā)方式當(dāng)IR7IR0 出現(xiàn)由低電平到高電平的躍變, 表示有中斷請求。中中斷屏蔽方式斷屏蔽方式普通屏蔽方式普通屏蔽方式將IMR中某一位或幾位置“1”, 即可將相應(yīng)位的中斷請求屏蔽。例如,將11110000寫入IMR, 即可屏蔽IR7IR4的中斷請求,開放 IR3IR0 的中斷。特殊屏蔽方式特殊屏蔽方式通常情況下,當(dāng)一個中斷被響應(yīng)時,禁止同級或較低級別的中斷請求。在特殊屏蔽方式特殊屏蔽方式下,當(dāng)一個中斷被響應(yīng)時,僅屏蔽同級別的再次中斷,較低或較高級別的中斷請求可被允許進(jìn)入。中斷中斷優(yōu)先級別管理方式優(yōu)先級別管理方式完全嵌套方式(完全嵌套方式(固定優(yōu)先級方式)IR7IR0的優(yōu)先級固定,
32、 IR0 為最高級, IR1次之,IR7為最低級。 CPU響應(yīng)某一級中斷時,8259A將ISR中與該中斷源對應(yīng)的那一位置“1”,并自動禁止通級和較低級的中斷請求,但高優(yōu)先級中斷可中斷當(dāng)前的服務(wù),實(shí)現(xiàn)中斷嵌套。特殊全嵌套方式特殊全嵌套方式當(dāng)CPU正處理某級中斷請求時,只禁止較低級別的中斷請求,而允許同級或較高級的中斷請求進(jìn)入。特殊全嵌套方式特殊全嵌套方式用于多片8259A的級連系統(tǒng)中。主片處于特殊全嵌套方式特殊全嵌套方式,可響應(yīng)來自同一從片的其它中斷請求。自動循環(huán)方式自動循環(huán)方式IR7IR0中斷源輪流為最高優(yōu)先級,當(dāng)任一級中斷服務(wù)結(jié)束后,該中斷源自動降為最低級,而它的下一級的中斷源自動升為最高級
33、。例如:現(xiàn)正為例如:現(xiàn)正為IR3引入的中斷服務(wù),若中斷服務(wù)程序完引入的中斷服務(wù),若中斷服務(wù)程序完畢,畢, IR3被賦予最低優(yōu)先級,被賦予最低優(yōu)先級,IR4被賦予最高優(yōu)先級,被賦予最高優(yōu)先級,各級中斷源的優(yōu)先級從高到低依次為:各級中斷源的優(yōu)先級從高到低依次為: IR4 ,IR5 ,IR6 ,IR7 ,IR0 ,IR1 ,IR2 ,IR3 。特殊循環(huán)方式特殊循環(huán)方式用戶可置優(yōu)先權(quán)命令指定最低優(yōu)先級。例如:設(shè)置例如:設(shè)置IRi為最低優(yōu)先級,則最高優(yōu)先級賦予為最低優(yōu)先級,則最高優(yōu)先級賦予IRi1,其它各級按循環(huán)方式類推。其它各級按循環(huán)方式類推。中中斷結(jié)束方式斷結(jié)束方式把ISR寄存器的中斷服務(wù)標(biāo)志ISR
34、i位清0,這意味著結(jié)束第i中斷源的中斷服務(wù)。如何將ISRi位清0,8259A提供了6種中斷結(jié)束方式。自動自動EOI方式方式8259A在收到第2個中斷響應(yīng)脈沖信號之后,自動把ISR中置1的最高優(yōu)先級服務(wù)標(biāo)志 ISRi位清0。采用這種方式,不需要在中斷服務(wù)程序中向8259A送中斷結(jié)束(EOI)命令字。普通普通EOI方式方式在中斷服務(wù)程序結(jié)束,執(zhí)行IRET之前,向8259A送一個“普通中斷結(jié)束普通中斷結(jié)束(EOI)” 命令字,8259A收到EOI命令字后,把ISR中級別最高的置1位清0。在完全嵌套方式下,應(yīng)采用普通普通EOI方式方式,但在特殊屏蔽方式下不能采用。特殊中斷結(jié)束方式特殊中斷結(jié)束方式該種方
35、式下,在中斷服務(wù)程序結(jié)束,執(zhí)行IRET之前,向8259A送一個“特殊特殊EOI” 命令字,可將ISR中指定位清0。自動自動EOI,優(yōu)先級循環(huán)方式優(yōu)先級循環(huán)方式在CPU響應(yīng)中斷, 8259A在收到第2個中斷響應(yīng)脈沖信號之后,自動把ISR中置1的最高優(yōu)先級服務(wù)標(biāo)志 ISRi位清0,并完成優(yōu)先級循環(huán)。普通普通EOI,優(yōu)先級循環(huán)方式優(yōu)先級循環(huán)方式在IRi的服務(wù)程序結(jié)束,執(zhí)行 IRET之前,向8259A送一個“普通普通EOI,優(yōu)先級循環(huán)方式優(yōu)先級循環(huán)方式” 命令字,8259A收到EOI命令字后,把ISR中級別最高的置1位清0,同時完成優(yōu)先級循環(huán)。特殊特殊EOI,優(yōu)先級循環(huán)方式優(yōu)先級循環(huán)方式當(dāng)前中斷服務(wù)結(jié)
36、束,執(zhí)行IRET之前,向8259A送一個“特殊特殊EOI,優(yōu)先級循環(huán)方式優(yōu)先級循環(huán)方式” 命令字,可將ISR中指定位清0。并完成優(yōu)先級循環(huán)??偪偩€連接方式線連接方式緩沖方式緩沖方式如果8259A通過總線驅(qū)動器和系統(tǒng)數(shù)據(jù)總線相連,則8259A應(yīng)采用緩沖方式緩沖方式。此時SP / EN為輸出端,它輸出一個低電平信號,可作為總線驅(qū)動器的啟動信號。非緩沖方式非緩沖方式如果8259A數(shù)據(jù)線和系統(tǒng)數(shù)據(jù)總線直接相連,則8259A應(yīng)工作于非緩沖方式非緩沖方式下。 8259A的控制字及編程使用的控制字及編程使用n初始化編程初始化編程n8259A開始工作前,必須進(jìn)行初始化編程n給8259A寫入初始化命令字ICWn
37、中斷操作編程中斷操作編程n在8259A工作期間n可以寫入操作命令字OCW將選定的操作傳送給8259A,使之按新的要求工作n還可以讀取8259A的信息,以便了解他的工作狀態(tài)1) 初始化命令字初始化命令字ICWn初始化命令字ICW最多有4個n8259A在開始工作前必須寫入n必須按照ICW1ICW4順序?qū)懭雗ICW1和ICW2是必須送的nICW3和ICW4由工作方式?jīng)Q定ICW1中斷請求觸發(fā)方式設(shè)定中斷請求觸發(fā)方式設(shè)定uICW1是第一個初始化命令字;uICW1使用偶端口(A0=0);uD4位固定為1,表示當(dāng)前寫入的是ICW1;u寫入 ICW1時,自動將中斷屏蔽寄存器IMR清0,并恢復(fù)各中斷源的優(yōu)先級為
38、IR0最高, IR1次高, IR7最低。uICW1的格式為:的格式為:寫寫ICW4單片單片使用使用無效無效電平電平觸發(fā)觸發(fā)特特征征位位16位機(jī)無效位機(jī)無效IC4SNGLADILTIM10000D0D1D2D3D4D5D6D7A0D0 (IC4)位位: 是否寫是否寫ICW4選擇。選擇。D0= ,需要寫,需要寫ICW4 ; D0= , 不寫不寫ICW4。D1 (SNGL)位位:單片多片選擇。單片多片選擇。D1=0,多片級連使用;多片級連使用; D1=1,單片使用。單片使用。 D3 (LTIM)位:觸發(fā)方式選擇。D3=0,邊沿觸發(fā); D3=1,電平觸發(fā)。D7、D6 、D5 、D24位:8086CPU
39、不用。D4位:特征位。 D4=1表示寫入 ICW1字。ICW2中斷類型號設(shè)定中斷類型號設(shè)定uICW2的功能是設(shè)置中斷類型號;u它使用奇端口(A0=1);u緊跟在ICW1之后設(shè)置; D7D3(T7T3)是中斷類型號的高是中斷類型號的高5位位, 用戶寫入。用戶寫入。 中斷類型號的低中斷類型號的低3位由位由8259A自動設(shè)定自動設(shè)定, IR0為為000、IR1為為001、IR7為為111; 它在第一個它在第一個INTA到來時到來時, 將這個編碼寫入低將這個編碼寫入低3位;位; D2D1D03位固定寫位固定寫000。16位機(jī)無效位機(jī)無效中斷類型號的高中斷類型號的高5 5位位000T3T4T5T6T71
40、D0D1D2D3D4D5D6D7A0uICW2的格式為的格式為:例例5.6 若對若對8259A采用采用 電平觸發(fā)電平觸發(fā), 單片使用單片使用,需寫需寫ICW4, 則程序段為則程序段為:MOV AL , 1BH ; ICW1的內(nèi)容的內(nèi)容OUT 20H , AL ; 寫入寫入ICW1端口端口(A0=0) 例例5.7 在在PC系列中斷系統(tǒng)中系列中斷系統(tǒng)中, 硬盤的中斷類型號硬盤的中斷類型號的高的高5位是位是08H, 它的中斷請求線連到它的中斷請求線連到8259A的的IR5上上, 寫寫ICW2字的程序段為字的程序段為:MOV AL , 08H ; ICW2的內(nèi)容的內(nèi)容(中斷類型號高中斷類型號高5位位)
41、OUT 21H , AL ; 寫入寫入ICW2端口端口(A0=1) ICW3中斷級連方式設(shè)定中斷級連方式設(shè)定 ICW3僅在多片級連方式中使用;僅在多片級連方式中使用; ICW3使用奇端口使用奇端口(A0=1) ; 對于主片對于主片8259A, 若若Si=1, 表示表示IRi引腳上接有從片,否引腳上接有從片,否則則, Si=0。 對于從片對于從片8259A, 用用ID2ID1ID0的編碼表示本的編碼表示本8259A接接在主在主8259A的哪根引腳上。的哪根引腳上。IR0IR7對應(yīng)的編碼為對應(yīng)的編碼為000111。S0 /ID0S1 /ID1S2 /ID2S3S4S5S6S71D0D1D2D3D4
42、D5D6D7A0ICW4結(jié)束,嵌套方式設(shè)定uICW4使用奇端口(A0=1), u它確定中斷結(jié)束的方式和中斷嵌套的方式。 uICW4的格式為:PMAEOIM/SBUFSFNM0001D0D1D2D3D4D5D6D7A0D0 (PM)位位: 系統(tǒng)選擇。系統(tǒng)選擇。D0 =0, 用于用于8085 系統(tǒng)系統(tǒng); D0=1, 用于用于8086系統(tǒng)系統(tǒng)D1 (AEOI)位位: 中斷結(jié)束方式選擇。中斷結(jié)束方式選擇。D1=0,普通普通EOI方式方式; D1=1,自動自動EOI方式。方式。D3(BUF)位位: 緩沖方式選擇。緩沖方式選擇。D3 =1, 工作于緩沖方式。工作于緩沖方式。D3=0, 工作于非緩沖方式工作
43、于非緩沖方式; 在緩沖方式下在緩沖方式下, SP/EN引腳輸出給總線收發(fā)器。此引腳輸出給總線收發(fā)器。此時時, 由由M/S位來定義本位來定義本8259A是主片或是從片。是主片或是從片。D2(M/S)位位: 主主/從片選擇。從片選擇。當(dāng)當(dāng)BUF=1時時(緩沖方式緩沖方式), D2=0為從片為從片; D2=1表示表示主片。當(dāng)主片。當(dāng)BUF=0時時, M/S位無意義。位無意義。D4(SFNM)位位: 中斷嵌套方式選擇。中斷嵌套方式選擇。D4=0表示普通全嵌套方式表示普通全嵌套方式; D4=1表示特殊全嵌套表示特殊全嵌套方式。方式。D7D6D5=000例例5.8 多片多片8259A級連方式連接級連方式連
44、接, 從片從片A和和B的的中斷請求線中斷請求線INT分別接到主片的分別接到主片的IR3和和IR6, 故故:從片從片A的的ICW3=0000 0011B=03H;從片從片B的的ICW3=0000 0110B=06H;主片的主片的 ICW3=0100 1000B=48H。程序段為程序段為從片從片A:MOV AL , 03H ; 寫從片寫從片A的的ICW3OUT 0A1H , AL ; ICW3的端口地址的端口地址 (A0=1)從片從片B:MOV AL , 06H ; 寫從片寫從片B的的ICW3OUT 0B1H , AL ; ICW3的端口地址的端口地址 (A0=1)主片主片: :MOV AL ,
45、48H ;寫主片的寫主片的ICW3OUT 81H , AL ; ICW3的端口地址的端口地址 (A0=1)例例5.9 PT86單板機(jī)中單板機(jī)中, CPU為為 8086, 非自動非自動結(jié)束方式;使用結(jié)束方式;使用2片片8259A, 非緩沖方式非緩沖方式; 主片主片為特殊全嵌套方式。為特殊全嵌套方式。主片的主片的ICW4=0001 0101B=15H; 程序段為程序段為: :MOV AL , 15H ; ICW4的內(nèi)容的內(nèi)容MOV DX , 0FFDFH ; ICW4的端口地址的端口地址(A0=1)OUT DX , AL 操作命令字操作命令字u8259A工作期間,可以隨時接受操作命令字工作期間,可
46、以隨時接受操作命令字OCWuOCW共有共有3個:個:OCW1OCW3u寫入時沒有順序要求,需要哪個寫入時沒有順序要求,需要哪個OCW就寫入那就寫入那個個OCWOCW1中斷屏蔽字中斷屏蔽字u它對中斷請求輸入線IRi進(jìn)行屏蔽控制, uOCW1占用奇地址(A0=1),uOCW1格式為: Di(Mi)=1, 則則IRi位請求被屏蔽位請求被屏蔽; Di(Mi)=0, 則則IRi位請求被允許。位請求被允許。M0M1M2M3M4M5M6M71D0D1D2D3D4D5D6D7A0例例.5.10 要使要使IR3開放開放, , 其余均被屏蔽其余均被屏蔽, , 則則OCW1=1111 0111B=0F7H ; 程序
47、段為:MOV AL , 0F7HOUT 21H , AL ; 21H是奇端口(A0=1)例例5.11 IMR寄存器的內(nèi)容可讀出。寄存器的內(nèi)容可讀出。MOV AL , 00 ; 置IMR為全“0”O(jiān)UT 21H , AL ; OCW1的口地址IN AL , 21H ; 讀IMR(奇地址) OR AL , AL ; 檢查是否為全“0”JNZ ERR ; 不為“0” , 則轉(zhuǎn)錯誤處理MOV AL , 0FFH ; 置IMR為全“1”O(jiān)UT 21H , AL ; OCW1的口地址IN AL , 21H ; 讀IMRADD AL , 1 ; 檢查是否為全“1”JNZ ERR ; 不為全“1”, 轉(zhuǎn)錯誤處
48、理OCW2 優(yōu)先級循環(huán)及結(jié)束方式操作字優(yōu)先級循環(huán)及結(jié)束方式操作字uOCW2作用是設(shè)定8259A的中斷優(yōu)先級循環(huán)和結(jié)束方式。uOCW2占用偶地址(A0=0) 。OCW2格式為:L0L1L2000D0D1D2D3D4A0中斷等級編碼中斷等級編碼特征位特征位中斷中斷結(jié)束結(jié)束設(shè)定設(shè)定指定指定中斷中斷級別級別優(yōu)先優(yōu)先級循級循環(huán)環(huán)EOISLRD5D6D7D7(R): 中斷優(yōu)先級循環(huán)設(shè)定D7=0, 固定優(yōu)先權(quán)方式; D7=1, 循環(huán)方式。D6(SL): 中斷級別指定D6=0, 不指定中斷級別, L0L2編碼無效;D6=1, 要用L0L2編碼來指定中斷優(yōu)先級。D5(EOI): 中斷結(jié)束命令位當(dāng)ICW4中的AE
49、OI位=1時, D5=1可使當(dāng)前 ISR寄存器中相應(yīng)位清“0” 。D2D1D0(L2L1L0): 中斷等級編碼。L2L1L0的8種編碼: 000B111B分別與IR0IR7 對應(yīng)。D4D3:特征位。的D4D3=00 表示是OCW2。無操作無操作010置優(yōu)先權(quán)命令置優(yōu)先權(quán)命令011自動自動EOI循環(huán)方式循環(huán)方式(置位置位)001自動自動EOI循環(huán)方式循環(huán)方式(復(fù)位復(fù)位)000特殊特殊EOI命令命令111普通普通 EOI命令命令101特殊特殊EOI命令命令110普通普通 EOI命令命令100意義意義EOISLR表表5.1 R, SL, EOI的設(shè)置及意義的設(shè)置及意義R, SL, EOI不同設(shè)置的意
50、義說明不同設(shè)置的意義說明編碼=001: 普通EOI命令。 它在中斷服務(wù)程序結(jié)束時發(fā)出, 8259A接到該命令后, 將當(dāng)前ISR中優(yōu)先級最高的置“1”位清“0” 。編碼=011: 特殊EOI命令。當(dāng)中斷處理結(jié)束, 8259A接收到該命令后, 將ISR中由L2L1L0編碼指定的相應(yīng)位清“0” 。編碼=101:普通EOI循環(huán)命令。8259A接收到該命令后, 將ISR中優(yōu)先級最高的置“1”位清“0” , 并將剛結(jié)束的中斷請求IRi賦予最低優(yōu)先級, 把最高優(yōu)先級賦予 IRi+1, 其它級別按循環(huán)排序。編碼=111: 特殊EOI命令。8259A接收到該命令后, 將ISR中由L2L1L0編碼指定的相應(yīng)位清“
51、0” , 并將最低優(yōu)先級賦予這一中斷請求, 最高優(yōu)先級賦予它的下一級中斷請求, 其它級別按循環(huán)方式依次改變。編碼=000和100: 使8259A取消自動EOI循環(huán)方式(復(fù)位)和設(shè)置自動EOI循環(huán)方式(置位) 。在自動EOI循環(huán)方式下, 8259A在接收到中斷響應(yīng)信號后, 將 ISR中相應(yīng)位清“0”, 并將最低優(yōu)先級賦予這一中斷請求, 最高優(yōu)先級賦予它的下一級中斷請求, 其它級別按循環(huán)方式依次改變。編碼=110: 向8259A發(fā)置優(yōu)先權(quán)命令,將最低優(yōu)先級賦予由由L2L1L0編碼指定的中斷請求IRi, 其它中斷請求的級別按循環(huán)方式分別賦給。OCW3查詢中斷方式和特殊屏蔽方式操作查詢中斷方式和特殊屏
52、蔽方式操作uOCW3的端口為偶地址(A0=0), uOCW3格式為:讀讀ISR讀寄讀寄存器存器允許允許查詢查詢方式方式特征特征特殊特殊屏蔽屏蔽方式方式特殊屏特殊屏蔽允許蔽允許不用不用RISRRP10SMMESMM0D0D1D2D3D4D5D6D7A0D4D3=01是OCW3的特征位。D6(ESMM): 特殊屏蔽方式允許位。ESMM=0, 將SMM位屏蔽,使其無效;ESMM=1, 開放SMM位,使其有效。D5(SMM): 特殊屏蔽方式設(shè)定。當(dāng)ESMM=1時,若SMM=1, 選擇特殊屏蔽方式;SMM=0, 不選擇特殊屏蔽方式。D2(P): 查詢命令標(biāo)識位,P=1, 告之8259A,CPU將執(zhí)行一條
53、讀中斷狀態(tài)字字中斷狀態(tài)字字指令,并使讀其它寄存器命令無效;P=0, 不讀中斷狀態(tài)字中斷狀態(tài)字。D1(RR)D0(RIS): 讀ISR和IRR中的狀態(tài)信息標(biāo)識位,僅當(dāng)P=0時有效。RR=1, RIS=0 表示在下一條“IN”指令時從偶地址(A0=0)讀IRR中的狀態(tài)信息; RR=1, RIS=1 表示在下一條“IN”指令時從偶地址(A0=0)讀ISR中的狀態(tài)信息。RR=0, 則RIS位無效。IMR中的信息可直接用“IN”指令從奇地址(A0=1)讀出。查詢中斷方式的說明:查詢中斷方式的說明:當(dāng)P=1時,表示向8259A發(fā)查詢命令,可讀出中斷中斷狀態(tài)字狀態(tài)字,了解8259A當(dāng)前的中斷狀態(tài)。中斷狀態(tài)字
54、中斷狀態(tài)字的格式為:D7(IR): 有無中斷請求位。IR=1表示有中斷請求;IR=0, 表示無中斷請求。D2D1D0(W2W1W0): 當(dāng)前正在請求的中斷的最高優(yōu)先級編碼: W2W1W0 = 000111分別與IR0IR7 對應(yīng)。W0W1W2IR0D0D1D2D3D4D5D6D7A0使用查詢中斷方式時,CPU應(yīng)先關(guān)閉其中斷請求,再發(fā)查詢命令字(P=1的OCW3), 然后用“IN”指令讀中斷狀態(tài)字。例例5.12 若對若對IR3中斷源采用非自動指定中斷源采用非自動指定( (特特殊殊) )中斷結(jié)束方式,則:中斷結(jié)束方式,則:OCW2=0110 0011B=63H; 程序段為:MOV AL , 63H
55、 ; 將OCW2OUT 20H , AL ; 寫入偶端口(A0=0)例例5.13 特殊屏蔽方式的編程。設(shè)系統(tǒng)正為特殊屏蔽方式的編程。設(shè)系統(tǒng)正為IR4服務(wù),服務(wù),同時允許級別較低的中斷請求進(jìn)入。同時允許級別較低的中斷請求進(jìn)入。方法:方法:先用特殊屏蔽命令將IR4中斷暫時屏蔽,再響應(yīng)較低級別的中斷請求,完成較低級別的中斷服務(wù)后,解除對IR4的屏蔽,繼續(xù)為IR4服務(wù)。編程:編程: 為IR4中斷服務(wù)程序 CLI ;關(guān)中斷MOV Al , 10H ; 置OCW1的M4=1, 屏蔽IR4MOV DX , PORT1 ; OCW1的口地址(A0=1)OUT DX , ALMOV AL , 68H ; 置OC
56、W3為特殊屏蔽方式MOV DX , PORT2 ; OCW3的口地址(A0=0)OUT DX , ALSTI ; 開中斷 CLI ; 關(guān)中斷MOV AL , 48H ;置OCW3為復(fù)位特殊屏蔽方式 MOV DX , PORT2 ; OCW3的口地址(A0=0)OUT DX , ALMOV AL , 00H ; 置OCW1的M4=0, 開放IR4MOV DX , PORT1 ; OCW1的口地址(A0=1)OUT DX , ALSTI MOV AL , 01100L2L1L0 ; OCW2 指定中斷結(jié)束MOV DX , PORT2 ; OCW2的口地址OUT DX , ALIRET ; 中斷返回
57、例例5.14 通過通過 OCW3讀讀8259A的狀態(tài)。的狀態(tài)。讀IRR: OCW3=0000 1010B =0AH讀ISR: OCW3=0000 1011B =0BH編程編程:MOV AL , 0BH ; OCW3表示要讀ISROUT 20H , AL ; 20H是OCW3的口地址NOP ; 空拍延時IN AL , 20H ; 讀ISR的內(nèi)容(偶地址A0=0)MOV AH , AL ; 保存ISRAHOR AL , AH ; 是否為全0?JNZ AW_INT ; 否,轉(zhuǎn)硬件中斷程序 8259A在在IBM PC系列機(jī)上的應(yīng)用系列機(jī)上的應(yīng)用(1) 使用要求與特點(diǎn):使用要求與特點(diǎn):采用2片8259A
58、級連,共15級向量中斷;從片的INT接到主片的IR2;主從片的中斷請求信號均采用邊沿觸發(fā);采用完全嵌套方式,優(yōu)先級排序?yàn)椋?, 1, 815, 3, 4, 5, 6, 7級;采用非緩沖方式;07級對應(yīng)的中斷類型號為80FH, 815級對應(yīng)的中斷類型號為70H77H。8259A在在IBM PC系列機(jī)上的應(yīng)用系列機(jī)上的應(yīng)用CAS02CAS02+5V主主8259A8228880286 CPUINTRD0D7SP/ENINTD0D7日時鐘日時鐘鍵盤鍵盤串行口串行口2串行口串行口1并行口并行口2軟盤軟盤并行口并行口1A0INTR1CS IRQ0 IRQ1 IRQ2 IRQ3 IRQ4 IRQ5 IRQ6
59、 IRQ7 A0 CS 實(shí)時鐘實(shí)時鐘改向改向0AH中斷中斷保留保留保留保留保留保留協(xié)處理器協(xié)處理器硬盤硬盤保留保留A0INTR2CS IRQ8 IRQ9 IRQ10 IRQ11 IRQ12 IRQ13 IRQ14 IRQ15 A0 CS系統(tǒng)總線系統(tǒng)總線B25B24B23B22B21系統(tǒng)總線系統(tǒng)總線B4D3D4D5D6D7INTARDWRINTAIORIOW8259A在在IBM PC系列機(jī)上的應(yīng)用(續(xù))系列機(jī)上的應(yīng)用(續(xù))CAS02 從從8259AD0D7INTSP/EN實(shí)時鐘實(shí)時鐘改向改向0AH中斷中斷保留保留保留保留保留保留協(xié)處理器協(xié)處理器硬盤硬盤保留保留A0INTR2CS IRQ8 IRQ
60、9 IRQ10 IRQ11 IRQ12 IRQ13 IRQ14 IRQ15 A0 CS系統(tǒng)總線系統(tǒng)總線B4D3D4D5D6D7INTARDWR對比在對比在IBM PC/XT機(jī)的應(yīng)用機(jī)的應(yīng)用(2) 硬件連接圖硬件連接圖(3) 初始化編程初始化編程;初始化;初始化8259A主片主片: (流程流程)INTA00 EQU 020H ; 8259A主片端口0INTA01 EQU 021H ; 8259A主片端口1 MOV AL , 11 ; ICW1: 邊沿觸發(fā)、多片、寫ICW4OUT INTA00 , ALJMP SHORT $2 ; 端口延時要求MOV AL , 8 ; ICW2: 中斷類型號的高5
溫馨提示
- 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 【正版授權(quán)】 ISO/IEC 14888-4:2024 EN Information security - Digital signatures with appendix - Part 4: Stateful hash-based mechanisms
- 2025年充電樁充電設(shè)備生產(chǎn)許可證申請與審批合同
- 2025年度新能源汽車充電樁建設(shè)與運(yùn)營服務(wù)合同-@-3
- 2024 年度中國汽車行業(yè)爭議解決報告
- 2025年度小時工維修養(yǎng)護(hù)服務(wù)合同范本
- 2025年度知識產(chǎn)權(quán)保險產(chǎn)品代理與服務(wù)合同
- 2025年心電遙測監(jiān)護(hù)儀項(xiàng)目合作計劃書
- 英語-黑龍江省大慶市實(shí)驗(yàn)中學(xué)2024-2025學(xué)年高一上學(xué)期階段考試
- 2025年瀝青試驗(yàn)儀器項(xiàng)目合作計劃書
- 2025年度走讀生戶外活動安全責(zé)任承諾協(xié)議范本
- (2024年1月)廣西各市房屋工程造價指標(biāo)
- 渝水區(qū)良山分散式風(fēng)電項(xiàng)目環(huán)評報告
- 2023夏季廣東廣州期貨交易所招聘歷年高頻難易度、易錯點(diǎn)模擬試題(共500題)附帶答案詳解
- 《人事管理》課件
- 【非正式組織對企業(yè)人力資源管理的影響8700字(論文)】
- 鉛銻合金生產(chǎn)工藝技術(shù)規(guī)范
- 2024拳擊比賽計劃書
- PPAP-測量系統(tǒng)分析研究模板
- 管道直飲水系統(tǒng)技術(shù)和方案
- 培養(yǎng)幼兒的時間觀念
- 肉山羊規(guī)模飼養(yǎng)生產(chǎn)技術(shù)規(guī)程
評論
0/150
提交評論