c51微控制器程式設計中斷問題,中斷後不能繼續返回main函式

2021-03-27 22:38:06 字數 3159 閱讀 1766

1樓:匿名使用者

void int1_srv() interrupt 2//int1中斷服務函式,中斷向量標號2

{ my_delay_10ms(1);//延時消抖key_bit = 1;//讀mcs51的io口之前要先對其置1if(key_bit == 0)//按鍵仍然是按下狀態{//while(key_bit == 0);//等待按鍵抬起這部分就不用了。使用邊沿觸發,不必在等待按鍵抬起,因為第一個下降沿已經出發了中斷。如果硬體是現成開發板的話就不用這麼麻煩了,如果是自制電路板,記得在p3.

3加上10uf防抖電容,防抖電路可參考**。

我的建議不一定對,但請嘗試一下。

2樓:

void tuichu(void )

在中斷中調運此函式即可

各位大俠幫我看一下我寫的51微控制器c程式中斷有沒有問題,執行中斷後不能繼續執行主程式,注:p3.2口一直接

3樓:

你一箇中斷程式要做多久啊。你自己算算。

中斷裡搞那麼多延遲幹嘛,累死微控制器。

int0一直接地就是一直有中斷訊號?一直在中斷程式裡 ,結束中斷又進去了,根本不跑主程式了

4樓:匿名使用者

你中斷是要實現流水燈的效果吧?但是你這樣似乎好冗長啊

;你呼叫這個函式啊回_crol_()

p3.2口是外答部中斷0引腳 你一直接低電平當然會一直執行中斷程式了 你可以把觸發方式由電平觸發方式變為邊緣觸發方式

c51 微控制器程式設計中,主函式main裡用while(1)進行死迴圈,中main函式外面實行中斷。中斷之後怎麼把中斷得到

5樓:匿名使用者

你只要開了總中斷和具體的中斷,當滿足中斷髮生條件時,微控制器就會發生中斷並能檢測到,接著從main函式跳到中斷服務程式中去執行,執行完後返回到被 中斷的位置

6樓:匿名使用者

中斷執行完後就會自動返回main()!

7樓:dj影逸

中斷之後 微控制器相應中斷暫存器會置1 然後程式會進入對應的中斷地址執行中斷程式 執行完後會返回while迴圈

中斷之後為什麼不能返回到主程式中繼續執行,請多多幫助,謝謝

8樓:蓋綠色被子睡覺

其實已經中斷了 你不要設定點亮太多 設定一個 最好裡面在加個延時 否則反應太快 你看不到的

微控制器定時中斷執行完中斷程式後將返回主程式**

9樓:匿名使用者

當中斷髮生時,微控制器如果響應中斷,則立即將正在執行的程式停住;記錄執行程式的位置;然後轉中斷服務程式;中斷服務程式執行完後,返回剛才中斷打斷程式執行的位置繼續執行,就好像沒有中斷過一樣

10樓:舊而久之

在哪中斷的就回到**唄,這個不一定看你定時多少

微控制器外部中斷0,發生中斷並執行完中斷程式後,怎樣返回主函式?用c語言。。

11樓:匿名使用者

執行完成之後自動返回主函式。

中斷是指計算機在執行程式的過回程中,當出現異答常情況或特殊請求時,計算機停止現行程式的執行,轉向對這些異常情況或特殊請求的處理,處理結束後再返回現行程式的間斷處,繼續執行原程式。 中斷是微控制器實時地處理內部或外部事件的一種內部機制。當某種內部或外部事件發生時,微控制器的中斷系統將迫使cpu暫停正在執行的程式,轉而去進行中斷事件的處理,中斷處理完畢後,又返回被中斷的程式處,繼續執行下去。

12樓:匿名使用者

程式使bai用interrupt關鍵字

函式du寫法 void int0_isr(void) interrupt 0

0號中斷就是int0 ,使用interrupt關鍵字dao,編譯專後中斷向量

屬新增跳轉指令跳入該函式入口,返回指令為reti,非ret。程式內自動壓棧acc和psw

13樓:使用者名稱賊受歡迎

問一下,你這個問題解決了嗎

51微控制器執行完外部中斷0後,想讓他返回主函式的開頭從新執行,繼續檢測中斷執行中斷在返回主函式開頭

14樓:匿名使用者

你主函式中除了初始化的語句外,其它的處理部分都放在while(1)的迴圈中啊,然後 外部中

專斷中設定一

屬個標誌位,舉例說明,比如。下面例子,是外中斷一次,p0取反一次,你如果還想有其它資料處理,可以把語句寫在while(1)中。中斷執行後,判斷flag,然後會自動回到主函式中。

void main(void)

可以在此新增語句。 }

}void it0(void) interrupt 0 using 0

15樓:匿名使用者

這個思路不對吧?中斷來了自然就去執行中斷函式了,還要到主函式開頭等待嗎?

微控制器中斷返回進不去主函式是怎麼回事啊? 定義了一個標誌位,中斷後為1,主函式裡清零,但是要中斷好 100

16樓:匿名使用者

你這麼說,沒有用。得把你的程式發上來,看一下。

你這是**,還是實物呢。

再說了,你怎麼知道「中斷返回進不去主函式」?這是不可能的事。還是你的判斷有誤。

c51微控制器中斷程式的問題!

17樓:灰tai狼

當然不執行了啊,

微控制器處理任何中斷cpu會吧當前指標的內容儲存起來,然後就去處理中斷。

要等到處理完中斷函式裡面的程式,才退出中斷函式。

跟著取剛才儲存的地址,接著從這個地址繼續執行程式

18樓:嵐色海盜旗

在執行吧

在等待(i>7)

如果成立,i=0;

就是定時器每記滿一次,就進入一次中斷

而while(1)裡的那句話,是一直在等待和判斷的

19樓:匿名使用者

在執行中斷的時候,

if(i>7)i=0;

是不執行的。

就像你在看書。來了一個**(發生中斷)。你去接**(處理中斷),在這個時候,你就看不了書了。

關於51微控制器的中斷,關於51微控制器的中斷。

中斷的概念 cpu在處理某一事件a時,發生了另一事件b請求cpu迅速去處理 中斷髮生 cpu暫時中斷當前的工作,轉去處理事件b 中斷響應和中斷服務 待cpu將事件b處理完畢後,再回到原來事件a被中斷的地方繼續處理事件a 中斷返回 這一過程稱為中斷 二 中斷源 在51微控制器中有5箇中斷源 中斷號 優...

c51 微控制器 區域性變數 問題,C51 微控制器 區域性變數 問題

為了 整體的安全,還是初始化一下。有時會被編譯器初始化為0的,但不是總是。微控制器區域性變數定義 這個問題要回歸到區域性變數的定義,我翻下書給你看書上的定義 區域性變數也稱內部變數,是在函式內部定義。其作用越限於函式內,離開函式後在使用就屬於非法,因為記憶體已釋放。摘自 微控制器原理及應用設計 胡學...

微控制器時間中斷,51微控制器中的定時器中斷是怎麼用的 ?

while 1 在那 會使微控制器停在那 相當於是等待當中斷來臨時 執行中斷 下面那個就是當到50ms的時候 執行計時器1中斷如果沒有那個while 1 則主程式就執行完了 中斷會沒有作用中斷和程式主程式各個執行是同步的 因為你把那個et0開了 則就有時鐘中斷了 當到了50ms 中斷就會自動作用 停...