1樓:匿名使用者
可以的,但是得判斷中斷標誌位,判斷有中斷時跳轉到reti,正常執行主程式時不跳轉。
其實還不如把主程式寫兩遍,一個是不帶rei的主程式,一個是中斷服務程式,後面要加reti
舉個例子,假設你可以判斷tf0(中斷0的溢位標誌)*** 000bh
ajmp main1
*** 0100h
main:
…………
main1:
…………
jb tf0,int0
…………
ajmp main
int0:
clr tf0
reti
end這下夠明白了吧
2樓:匿名使用者
可以啊,進入中斷後馬上返回主程式。在中斷程式中設定一個標誌位,在主程式中判斷此標誌位,如果標誌位改變,就證明已經進入過中斷,然後做出相應的處理就ok了。
用主程式代替後就可以像普通函式一樣返回。
MCS51微控制器,中斷服務程式的返回指令和子程式的返回指令有
中斷服務程式的返回指令 彙編助記符 reti 機器指令 32h 子程式的返回指令 彙編助記符 ret 機器指令 22h ret用於 一般程式的返回 reti用於中斷函式的返回 以上是一般微控制器書籍簡紹的,然而在實際應用中,我發現,在程式返回中一樣可以使用reti,而在中斷返回中卻無法使用ret,究...
c51微控制器 中斷,c51微控制器如何使用中斷
這個程式是有問題的,第一次中斷時,x先賦值0再加一,x為1,第二次中斷時,又給x賦值0,這樣每次中斷都為1,不可能為2,也就不可能執行到b,建議用全域性變數可以解決這個問題。還有一個問題,一直在執行中斷程式,下一次中斷來臨時,為同級中斷,同級中斷是否能觸發,這個問題要考慮。解決辦法 a和b放在主程式...
c51微控制器中斷程式中的interrupt1,2,3是由什麼決定的
interrupt x是指用的第幾個中斷。1 2 3是由中斷向量表決定的。也就是由微控制器的中斷入口地址的順序決定的。這個是硬體決定的軟體不能改變。例如外部中斷0就是interrupt 0 定時器0 是interrupt 1 外部中斷1是interrupt 2 定時器2是interrupt 3 串列...