51微控制器的中斷服務程式能否用主程式中的某一段代替

2021-03-03 21:01:23 字數 504 閱讀 9488

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 串列...