中斷的響應,兩級中斷嵌套,中斷優先級別設置
;知識要點:中斷的應用;熟悉中斷的地址入口,中斷的返回與響應;中斷的優先級
;開始主程序數碼管顯示0,按p32顯示1,延時10秒返回主程序
;按p33顯示2 延時2秒返回主程序,
;如果按p32顯示1后再按p33,那么顯示完成后繼續顯示1,完成后返回主程序顯示0
;由于p33的優先級別高, 首先響應,請仔細體會這個程序
ORG 0000H
LJMP MAIN;跳到主程序
ORG 0003H;中斷0 入口
LJMP INSER0;到中斷服務0
ORG 0013H;中斷1入口地址
LJMP INSER1;到中斷服務0
ORG 030H;主程序從030h開始
MAIN: MOV SP,#70H;設堆棧指針
MOV IE,#85H;開開放總中斷以及中斷0,1
SETB PX1;設中斷1為高優先級別
LOOP: MOV P0,#28h;數碼管顯示0,主程序
mov p2,#0h;打開所有數碼管
SJMP LOOP
ORG 0100H;中斷0服務從100h開始
INSER0: MOV R5,#3FH;置初值
DS0: MOV P0,#7eh;數碼管顯示1,中斷0程序低優先級別
mov p2,#0h
LCALL DEL
DJNZ R5,DS0;延時10秒
RETI
ORG 0150H;中斷服務1從150h開始
INSER1: MOV A,R5
PUSH ACC;把r5內容保護
MOV R5,#0FH;
DS1: MOV P0,#0a2h;數碼管顯示2,中斷1程序高優先級別
mov p2,#0h
LCALL DEL;延時2秒
DJNZ R5,DS1
POP ACC;彈出acc
MOV R5,A
RETI;中斷返回
ORG 0200H;延時程序從200h開始
DEL: MOV R4,#0ffh
DEL1: MOV R3,#0FFH
DEL2: DJNZ R3,DEL2
DJNZ R4,DEL1
RET
END
程序在倚天版運行的狀態:開始的時候數碼管全部顯示0
程序在倚天版運行的狀態:按p32后數碼管全部顯示1
程序在倚天版運行的狀態:按p33數碼管全部顯示2
評論