ORG 000H
LJMP START
ORG 000BH
LJMP TO_ISR
START: MOV TMOD,#11H
MOV TH0,#0DBH
MOV TL0,#0FFH
CLR TF0
SETB TR0
SETB ET0 ;T0中斷允許位
SETB EA ;中斷允許控制位
LOOP: SJMP LOOP
TO_ISR: CLR TF0
MOV TH0,#0DBH
MOV TL0,#0FFH
RETI
END
這是個定時中斷程序,想問下大神,這個程序是不是執(zhí)行LOOP:SJMP LOOP后
跳轉(zhuǎn)到ORG 000BH進入中斷程序?那么執(zhí)行完TO—ISR程序碰到RETI后是不是
又返回LOOP:SJMP LOOP執(zhí)行呢?若不是,返回的是哪個位置呢?謝謝解答!
第二個問題是對的。第一個問題不對。
中斷,顧名思義,不管你的程序運行在哪兒,一旦發(fā)生中斷(包括各種中斷源),就會暫停下正在執(zhí)行的程序,轉(zhuǎn)去執(zhí)行中斷服務程序(比如你的T0_ISR !注意只能是下劃線!)。
當執(zhí)行完中斷服務程序,也就是到“RETI”處,再回到剛才暫停處繼續(xù)向下運行。至于怎么回到原來暫停處的你暫時可以不去管它。知道是由硬件來實現(xiàn)的就可以了。
歡迎光臨 (http://www.zg4o1577.cn/bbs/) | Powered by Discuz! X3.1 |