51單片機(jī)3個(gè)外部中斷源中斷響應(yīng)編程舉例
某系統(tǒng)有3個(gè)外部中斷源1、2、3,當(dāng)某一中斷源變?yōu)榈碗娖綍r(shí),便要求CPU進(jìn)行處理,它們的優(yōu)先處理次序由高到低依次為3、2、1,中斷處理程序的入口地址分別為1000H,1100H,1200H。試編寫(xiě)主程序及中斷服務(wù)程序(轉(zhuǎn)至相應(yīng)的中斷處理程序的入口即可)。
答:若僅在/INT0引腳接3個(gè)外部中斷源
ORG0000H
LJMPMAIN
ORG0003H
LJMPINT_EX0
ORG0030H
MAIN:CLRIT0;采用低電平有效中斷
SETBEX0;允許外部中斷0
SETBEA
;插入用戶程序
WAIT:MOVPCON,#01H;單片機(jī)進(jìn)入休眠方式等待中斷
NOP
LJMPWAIT
;以下為外部中斷0服務(wù)子程序
INT_EX0:JNBP1.0,NEXT1;判斷是不是1號(hào)中斷
LJMPINT_IR1;跳轉(zhuǎn)到1號(hào)中斷處理程序內(nèi)容來(lái)自單片機(jī)之家www.dpj100.com
NEXT1:JNBP1.1,NEXT2;判斷是不是2號(hào)中斷內(nèi)容來(lái)自單片機(jī)之家www.dpj100.com
LJMPINT_IR2;跳轉(zhuǎn)到2號(hào)中斷處理程序
NEXT2:LJMPINT_IR3;跳轉(zhuǎn)到3號(hào)中斷處理程序
ORG1000H
INT_IR1:
;插入相應(yīng)中斷處理程序
RETI;中斷返回
ORG1100H
INT_IR2:
;插入相應(yīng)中斷處理程序
RETI;中斷返回
ORG1200H
INT_IR3:
;插入相應(yīng)中斷處理程序
RETI;中斷返回