新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 匯編語言實(shí)現(xiàn)中斷嵌套的典型程序

匯編語言實(shí)現(xiàn)中斷嵌套的典型程序

作者: 時(shí)間:2016-11-18 來源:網(wǎng)絡(luò) 收藏
設(shè)計(jì)一個(gè)基于單片機(jī)的聲光報(bào)警電路。要求:利用按鍵觸發(fā)外部中斷0,蜂鳴器發(fā)音,發(fā)光二極管點(diǎn)亮,聲光報(bào)警延遲1S后停止(利用定時(shí)器TO延時(shí))。蜂鳴器由P1.2控制,發(fā)光二極管由P2.0控制。設(shè)計(jì)硬件電路并給出其完整的程序。

/*典型錯(cuò)誤一*/
/*ORG 0000H
AJMP MAIN
ORG 0003H
AJMP INTE0
ORG 000BH
AJMP INT120
ORG 0030H
MAIN: MOV R0,#00H
SETB IT0
SETB EX0
SETB EA
MOV TMOD,#01H
MOV TH0,#4CH
MOV TL0,#00H
SETB ET0
HERE: AJMP HERE
INTE0: CLR P1.2
CLR P2.0
CLR EX0;可有可無
SETB TR0
RETI
ORG 0080H
INT120: MOV TH0,#4CH
MOV TL0,#00H
INC R0
HERE0:CJNE R0,#14H,HERE0;典型錯(cuò)誤1
;此程序已經(jīng)在定時(shí)器T0中斷內(nèi)部,利用
;此程序等待T0中斷,中斷無從進(jìn)入。所以
;程序在此行成死循環(huán),即停在此處。聲光
;報(bào)警啟動(dòng)但停不下來。
SETB P1.2
SETB P2.0
CLR ET0
RETI
END
*/
/*典型錯(cuò)誤二*/
/*ORG 0000H
AJMP MAIN
ORG 0003H
AJMP INTE0
ORG 000BH
AJMP INT120
ORG 0030H
MAIN: MOV R0,#00H
SETB IT0
SETB EX0
SETB EA
MOV TMOD,#01H
MOV TH0,#4CH
MOV TL0,#00H
SETB ET0
HERE: AJMP HERE
INTE0: CLR P1.2
CLR P2.0
CLR EX0;可有可無
SETB TR0
RETI
ORG 0080H
INT120: MOV TH0,#4CH
MOV TL0,#00H
INC R0
CJNE R0,#14H,HERE;典型錯(cuò)誤2
;此程序已經(jīng)在定時(shí)器T0中斷內(nèi)部,利用
;此程序等待T0中斷,中斷無從進(jìn)入。所以
;程序在此行成死循環(huán),即停在此處。聲光
;報(bào)警啟動(dòng)但停不下來。和上例一樣。
SETB P1.2
SETB P2.0
CLR ET0
RETI
END
*/
/*正確答案*/
ORG 0000H
AJMP MAIN
ORG 0003H
AJMP INTEX0
ORG 000BH
AJMP INTT0
ORG 0030H
MAIN:MOV R0,#00H
SETB EX0
SETB IT0
MOV TMOD,#01H
MOV TH0,#4CH
MOV TL0,#00H
SETB EA
SETB ET0
HERE:CJNE R0,#14H,HERE
MOV R0,#00H
SETB P2.0
SETB P1.2
CLR TR0
AJMP HERE
INTEX0: SETB TR0
CLR P2.0
CLR P1.2
RETI
INTT0: MOV TH0,#4CH
MOV TL0,#00H
INC R0
RETI
END

本文引用地址:http://m.butianyuan.cn/article/201611/315742.htm


關(guān)鍵詞: 匯編語言中斷嵌

評(píng)論


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

關(guān)閉