微控制器中斷問題,微控制器中斷退出問題

2022-04-05 17:06:12 字數 2819 閱讀 7672

1樓:匿名使用者

org 0000h

ajmp main

org 0003h;外部0中斷入口地址

ajmp zd0

org 000bh;定時器t0中斷入口地址ajmp zd1

org 0013h;外部1中斷入口地址

ajmp zd2

org 0030h;主程式入口地址

main: mov p1,#00h

mov ie,#87h;cpu開中斷、t0開中斷、外部0、1開中斷mov tmod,#01h;t0定時模式1mov th0,#3ch;定時50ms,晶振頻率設為12mhzmov tl0,#0b0h

setb tr0;開啟t0

sjmp $;等待中斷

;外部0中斷子程式

zd0: cpl p1.0 ;翻轉reti

;定時器t0中斷子程式

zd1: cpl p1.1;翻轉

mov th0,#3ch;重灌初值

mov tl0,#0b0h

reti

;外部1中斷子程式

zd2: cpl p1.2 ;翻轉reti

endp1.0、p1.1和p1.

2外接三個led,p1.0和p1.2用於外部0、1中斷。

當p3.2(外部0中斷,可接一開關)和p3.3(外部1中斷,可接一開關)出現低電平時,p1.

0和p1.2所接的led被點亮或者熄滅,同時每隔50ms定時器t0溢位中斷一次,p1.1所接的led被點亮或者熄滅一次。

請樓主參考~~~

2樓:匿名使用者

org 0000h

ljmp main ;主程式入口地址

org 000bh ;t0的中斷入口地址

ljmp dvt0 ;轉向中斷服務程式

org 0100h

main: mov tmod,#001h ;置t0於工作方式1mov th0,#03ch ;裝入計數初值mov tl0,#0b0h ;設晶振12mhz,5000次就是50毫秒

setb et0 ;t0開中斷

setb ea ;cpu開中斷

setb tr0 ;啟動t0

sjmp $;等待中斷

dvt0:cpl p3.5

mov th0,#03ch ;重新裝入計數值mov tl0,#0b0h

reti ;中斷返回

end外部中斷必須禁止硬體中斷

微控制器中斷退出問題 20

3樓:綰潯漓醬

只要定時中斷裡沒有死迴圈這樣的程式,在完全執行好中斷程式後就可以使用reti退出(如果是c語言,這條語句也省掉了)。

但不能退回到主程式開始時,而是退回到你中斷前瞬間在執行的程式附近。

如果你要進行初始化什麼的,就把初始化資訊加在中斷服務程式中。在中斷時候,把定時初值之類的資訊直接重灌了。

4樓:

正常情況下由硬體完成,退回到中斷前的地址。

可以用匯編或c通過修改堆疊裡相應地址內的值,強行更改返回地址。不建議這樣做,容易導致暫存器混亂,程式出錯。你必須很清楚堆疊裡的資料,同時合理處理使用的暫存器。

5樓:

程式在執行過程中,當執行某條指令時,產生了中斷,中斷結束後,返回到產生中斷的地方,繼續執行下面的程式。如此往復。。不能強制使其跳轉到自己想要的地址。。

6樓:匿名使用者

可以啊,中斷完後你加一條返回主函式的指令不就可以了?

微控制器中斷問題

7樓:匿名使用者

你這樣理解是不對的,如果真這樣做了的話,那麼還不如用查詢方式來做了。但你前面的描述是對的,服務程式執行的過程中,定時器又開始重新計數了,這是「並行」的,所以為了使微控制器正常工作,定時器的中斷服務函式執行時間必須要小於定時器溢位時間,否則就幾乎在不斷中斷的死迴圈中了。

8樓:知無不道

如果你對定時間隔沒有什麼特別要求,另外,程式執行時只有一箇中斷,關掉ea是可以的。

關於微控制器中斷的一個問題?

9樓:夢迴__昨天

中斷髮生後,執行中斷的程式,閃爍次數結束後再執行主函式程式

51微控制器外部中斷問題

10樓:匿名使用者

外部中斷引腳是p3.2和p3.3,你確定你的按鍵連線到這兩個引腳了嗎?

還有這個是什麼玩意兒?學過c嗎?

if(mode=1) mode=0;

11樓:本無酩

中斷裡面也要做一個消抖處理,否則會出現連續中斷。

微控制器的中斷問題

12樓:

你好!1、中斷標誌是在進入中斷程式時清零的。

2、會置位的,等上一個中斷處理完,會馬上再次進入中斷(如果沒有高優先順序的中斷來)。

你可以使用開發軟體的debug功能試驗一下。

對於第2個不太肯定,你可以自己在實物上做一下試驗。

我做了實驗了,證明第2個的結論也是正確的。

13樓:ts毛毛雨

微控制器的中斷標誌位不都是自動清零的,比如外部中斷就必須自己清零,一般是剛進入就清零吧,至於你說的再次中斷問題我覺得不用考慮。因為如果是外部中斷或者是串列埠中斷的話,你清零後只要不再操作這些埠就不會再次中斷,如果是定時器中斷的話就更沒事兒了,一般的定時器都得是ms級的,而一箇中斷一般都可以在us級內解決掉,所以不會影響到你

微控制器的中斷問題,關於微控制器中斷的問題

那個中斷函式和主函式直接是什麼關係?為什麼寫在主函式後邊但是主函式又沒引用?中斷函式無需被顯式呼叫。當有相應的中斷產生時,程式會自動中止當前的執行 記錄位置,然後跳轉到相應的中斷入口處。而在中斷入口會進行二次跳轉,到程式中對應的中斷處理函式內並執行。中斷處理函式執行完畢返回後,跳回到剛才中止執行的位...

急求微控制器外部中斷程式,51微控制器外部中斷程式

這相不用中斷程式,就是一個按鍵掃描就行了。bit sign 0 void main void ww interrupt 0我只是簡寫一下,大概就是這個意思 第一次按下數碼管顯示,再按一下數碼管不顯示。希望對你有所幫助!51微控制器外部中斷程式 去抖動抗干擾,程式,或 加個104 電容。急求c程式!5...

51微控制器外部中斷到底什麼意思,51微控制器中的外部中斷服務程式入口0和1有什麼不同

51微控制器有兩個外部中斷申請輸入端 int0 和 int1 這兩個引腳對應兩個中斷入口,只有這兩個引腳上的電平變化,才會觸發相應的中斷 51微控制器中的外部中斷服務程式入口0和1有什麼不同 你是哪個型別的51微控制器 一般是指 兩個中斷的區分 51微控制器有幾個中斷源,分別是什麼?一共5種中斷 優...