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