89c51微控制器中的中斷函式什麼時候開始執行

2021-03-10 22:23:15 字數 3011 閱讀 6874

1樓:雪琳戀庚

中斷的執行

bai:當cpu正在執行du某一程式時,若有zhi中斷響應,則cpu轉而執行dao中斷服務程式版,當中斷服務程式執行權完畢後,cpu自動返回原來的程式繼續執行。

中斷:當計算機執行正常程式時,系統中出現某些急需處理的異常情況和特殊請求。

中斷服務程式的語句寫法與函式的寫法完全相同,所以,中斷服務程式也是函式,只在函式頭部有不同(後續)。

中斷服務程式的執行與函式的執行不同:函式的執行是有固定位置的,是通過函式的呼叫來完成的;而中斷服務程式的執行是不固定位置的,只要有中斷響應,在一定條件下都會去響應中斷,即執行中斷服務程式。

2樓:

中斷必須使能,其次是中斷條件達到

,最後是沒有比他優先順序高的中斷也出現,51只有專5箇中屬斷,定時器中斷是定時器溢位時執行,外部中斷是外部中斷i/o口有訊號輸入,串列埠中斷是資料讀入結束時發出。。。。

中斷不使能,中斷標誌也會置位,mcu可以通過查標誌,主動去執行,但是不會被強制執行,如果中斷使能,mcu是自動跳轉執行的,不能拒絕。。。。

3樓:

中斷條件滿足時執行。

前提:總中斷已開啟,相應中斷也允許。

使用中斷前都必須設定工作引數。

4樓:守恆

有外部中斷訊號,或者內部中斷響應時

5樓:本無酩

定時器的中斷溢位時啟動,如

tmod=0x01;

th0 = 高8位;

tl0 = 低8位;

ea = 1;

et0 = 1;

tr0 = 1;

tf0 = 0;

當版tf0=1的時候中斷啟權動

89c51微控制器外中斷兩種觸發方式的區別,各適用於何種情況

6樓:學雅思

外中斷兩種方式分為電平觸發方式跟跳沿觸發方式,區別如下:

一、方式不同

1、電平觸發方式:外部中斷申請觸發器的狀態隨著cpu在每個機器週期取樣到的外部中斷輸入線的電平變化而變化。

2、跳沿觸發方式:外部中斷申請觸發器能鎖存外部中斷輸入線上的負跳變。即便是cpu暫時不能響應,中斷申請標誌也不會丟失。

二、特點不同

1、電平觸發方式:在中斷服務程式返回之前,外部中斷請求輸入必須無效(即變為高電平),否則cpu返回主程式後會再次響應中斷。

2、跳沿觸發方式:相繼連續兩次取樣,一個機器週期取樣到外部中斷輸入為高,下一個機器週期取樣為低,則置「1」中斷申請觸發器,直到cpu響應此中斷時才清』0』。

三、適用性不同

1、電平觸發方式:適合於外部中斷以低電平輸入而且中斷服務程式能清除外部中斷請求源(即外部中斷輸入電平又變為高電平)的情況。

2、跳沿觸發方式:適合於以負脈衝形式輸入的外部中斷請求。

7樓:匿名使用者

89c51外部中斷有兩種觸發模式:

1、是下降沿觸發,當從高至低電平轉變時,觸發產生;低電平保持多久都只產生一次。所以,邊沿觸發適合與以負脈衝形式輸入的外部中斷請求。

2、是低電平觸發,在低電平時間內中斷一直有效;因此如果在電平沒有恢復之前中斷程式就已經執行完成從而退出,那麼會在退出後又再次進入中斷;但只要中斷沒有退出是不會重複觸發的。所以,電平觸發方式適合於外部中斷以低電平輸入而且中斷服務能清除外部中斷源的情況(實際中通常採用這樣的做法:在中斷退出前關閉中斷,等後面恰當時機再開啟)。

51微控制器,如果中斷函式比較長,執行到一半又觸發了這個中斷,程式會停止從頭執行,還是執行結束後響應中

8樓:

51微控制器中,中斷分高低兩個優先順序,高優先順序的中斷能打斷低優先順序的中斷。

但同級中斷是不能打斷同級中斷的!無論該中斷函式有多長,在執行到一半這個中斷又發生了,還是要等到該中斷函式執行完畢,並再執行了一條主程式指令後才會再次進入該中斷。

不過,若樓主恰好在這個低優先順序中斷服務程式中修改了該中斷為高優先順序,那麼如果該中斷函式比較長,執行到一半又觸發了這個中斷,則該中斷函式就會被重新從頭開始執行(中斷巢狀)。這是因為除串列埠中斷以外的其他中斷,在 cpu 響應該中斷,程式轉入該中斷函式前就已經將該中斷的中斷標誌清零了。

另外,51的串列埠中斷比較特別,因為需要軟體清除串列埠中斷標誌,所以只要在未清串列埠中斷標誌前,是不會發生上述這樣的中斷巢狀的。

9樓:匿名使用者

如果同一個中斷觸發的話,會在你中斷退出後馬上又進入中斷。如果退出中斷時清除了標誌的話,就當什麼都沒發生。

不會把你正在執行的中斷程式給中斷了。除非是另外一個更高優先順序的中斷被觸發。

10樓:in奮鬥

會重新執行中斷函式 執行完以後再接著剛才的一半執行

89c51微控制器有幾個中斷源?它們的中斷標誌位分別是什麼?

11樓:童之新

共有5箇中斷源:(發生中斷後,進入中斷服務函式,執行玩中斷服務函式後又硬體自動清零標誌位)

外部中斷0,interrupt 0 ,中斷標誌位ie0;

定時器0,interrupt 1,中斷標誌位tf0;

外部中斷1,interrupt 2 ,中斷標誌位ie1;

定時器1,interrupt 3,中斷標誌位tf1;

串列埠中斷,interrupt 4,中斷標誌位ri\ti;

12樓:匿名使用者

手冊上都有啊,大哥!

祝你好運

電子微控制器團====步行者

13樓:匿名使用者

有5箇中斷。

細說有點費勁,建議看一下這個***,裡面介紹的很詳細51微控制器的中斷系統。

C51微控制器的中斷操作,與直接在主函式內寫入中斷服務程式有什

二樓說的已經相當好了。我只是想在補充一些,主函式內是不能寫中斷服務程式 函式內是不能再定義函式的,中斷服務程式也是一個函式。還有計算機中,設定中斷就是為了達到實時響應,如果你只在中斷程式中設定一個標號,然後把中斷的操作寫在其他函式中就不能快速的響應中斷,而失去了中斷的意義了。如你把定時器設為1ms中...

51微控制器模組化,中斷服務函式 在main c中 所提供的值,能不能被其他 c檔案呼叫?怎麼呼叫

樓上已經說了。跨檔案 跨模組的全域性變數引用,引用方在宣告該全域性變數 函式時,需要在前面加上extern關鍵字,這樣編譯器才會知道 哦,這個名字在這個檔案不一定有宣告,要把所有檔案編譯了也許才能找到 可以,但要在變數前加extern c51微控制器的中斷操作,與直接在主函式內寫入中斷服務程式有什麼...

51微控制器中的中斷服務程式後面的using使用的暫存器有什麼作用

你好,tmod結構 用於設定定時 計數器工作方式,高4位控 制位t1,低4位控制t0,不可位定址 直接tmod 0x11 就是把t1和t0都設定成16位定時器,細節可看這裡,http wenku.baidu.微控制器中斷 的interrupt 0 using 1中的using有什麼作用 看到樓上二位...