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
這是個(gè)定時(shí)中斷程序,想問(wèn)下大神,這個(gè)程序是不是執(zhí)行LOOP:SJMP LOOP后
跳轉(zhuǎn)到ORG 000BH進(jìn)入中斷程序?那么執(zhí)行完TO—ISR程序碰到RETI后是不是
又返回LOOP:SJMP LOOP執(zhí)行呢?若不是,返回的是哪個(gè)位置呢?謝謝解答!
第二個(gè)問(wèn)題是對(duì)的。第一個(gè)問(wèn)題不對(duì)。
中斷,顧名思義,不管你的程序運(yùn)行在哪兒,一旦發(fā)生中斷(包括各種中斷源),就會(huì)暫停下正在執(zhí)行的程序,轉(zhuǎn)去執(zhí)行中斷服務(wù)程序(比如你的T0_ISR !注意只能是下劃線!)。
當(dāng)執(zhí)行完中斷服務(wù)程序,也就是到“RETI”處,再回到剛才暫停處繼續(xù)向下運(yùn)行。至于怎么回到原來(lái)暫停處的你暫時(shí)可以不去管它。知道是由硬件來(lái)實(shí)現(xiàn)的就可以了。
歡迎光臨 (http://www.torrancerestoration.com/bbs/) | Powered by Discuz! X3.1 |