新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 中斷的響應(yīng),兩級(jí)中斷嵌套,中斷優(yōu)先級(jí)別設(shè)置

中斷的響應(yīng),兩級(jí)中斷嵌套,中斷優(yōu)先級(jí)別設(shè)置

作者: 時(shí)間:2011-02-25 來(lái)源:網(wǎng)絡(luò) 收藏

;知識(shí)要點(diǎn):中斷的應(yīng)用;熟悉中斷的地址入口,中斷的返回與響應(yīng);中斷的優(yōu)先級(jí)

;開始主程序數(shù)碼管顯示0,按p32顯示1,延時(shí)10秒返回主程序

;按p33顯示2 延時(shí)2秒返回主程序,

;如果按p32顯示1后再按p33,那么顯示完成后繼續(xù)顯示1,完成后返回主程序顯示0

;由于p33的優(yōu)先級(jí)別高, 首先響應(yīng),請(qǐng)仔細(xì)體會(huì)這個(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)先級(jí)別

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)先級(jí)別

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)先級(jí)別

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



評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉