51微控制器的中斷系統是怎麼工作的呢?最好解釋通俗一些

時間 2021-06-07 21:49:02

1樓:

我也不知道是著重在中斷還是在系統,但上面倆哥們都通俗地解釋了中斷是咋回事,那我也簡單地說下系統吧。

對於一般的指令集處理器來說,他是不具備產生和查詢中斷訊號的能力的,一切都是靠另外乙個中斷控制器來管理所有中斷,中斷控制器可以接收外設傳來的訊號比如串列埠FIFO,然後將訊號通過匯流排傳送給CPU,CPU這時會先看看這個訊號是不是被遮蔽了以及如果同時進來了幾條中斷訊號,還會對其進行優先順序判定,如果可以執行的話就會拿到中斷向量表去進行比對,如果比對成功,就跳轉至此訊號在表裡所對應的指令位址,在此期間,會對現場進行保留,以執行完中斷程式後能夠回到原來的地方繼續執行。

既然CPU不能產生中斷,那外部中斷和內部中斷是咋回事:

實際上,一般來說,咱們在使用51與STM32時所說的外部中斷和內部中斷都是一種中斷,都是需要經由中斷控制器來觸發CPU執行中斷程式,包括定時器中斷、串列埠中斷等等(內部中斷),EXIT中斷引腳、復位引腳(外部中斷),且嚴格來說,是不包含所謂的內部外部中斷這些術語的,都應只稱為中斷。

可能會覺得定時器串列埠這些是在51之類的處理器內部產生的,就覺得其是內部中斷,然而,這類處理器,是在內部整合了諸多外設的,比如定時器,串列埠,這些外設加上真正的CPU與其它控制器,共同構成了你現在看到的51晶元,它有乙個專有名詞,叫作MPU。

不過,也不能說CPU就不可以做一些事情來像中斷一樣打斷程式執行,它有一種獨特的功能,叫作自陷,和中斷很像,也是通過在匯流排上產生乙個訊號來讓CPU響應,但是它自己產生的,同樣它也有相應的向量表,但是是不可被遮蔽的,自陷通常被用來處理錯誤,比如呼叫非法位址啊之類的。

2樓:威少

用乙個通俗點的例子解釋下中斷這玩意吧

比如,你目前是在洗衣服的,突然有個朋友過來敲門,你暫停洗衣服,過去開門迎接朋友,招呼完後繼續洗衣服

以上例子,洗衣服就相當於main函式裡面的死迴圈while(1)要幹的事情,朋友過來敲門相當於乙個中斷訊號,你跑去開門了就是響應中斷訊號,招呼朋友相當於中斷服務函式,之後還是跑回去洗衣服,也就是中斷服務函式執行後還得回到while(1)死迴圈繼續幹活~~~

3樓:害羞地膩了

比如程式正在main函式中算1+2+3+...+100,但是算到30的時候,突然有乙個中斷請求,那麼程式就跳轉到中斷程式,中斷程式比如只有一句話:P1=0xfe,那就執行這一句,中斷程式就結束了,然後返回繼續算30+31+32....

+100

微控制器中斷的前後臺系統算不算實時系統RTOS

snowdream snowdream 嵌入式作業系統 前後臺系統 為了更好的便於解釋,我們需要先來聊聊嵌入式領域中的實時作業系統裡面的實時二字。何為實時?從字面意思解釋就是當時,立刻的意思。說白了即當外界訊號或者情況發生的時候,作業系統能夠當時,立刻的做出對應的反應。從作業系統的角度來說,這個實時...

51微控制器怎麼從網路上讀取資訊

4061N 一 使用網路模組,或者乾脆用esp8266。然後你的微控制器就可以連線到乙太網了。二 你可能需要簡單學一下網頁技術,從網頁的html檔案或者xml裡面爬取想要的資料 亦或是用智慧型路由或者電腦建乙個閘道器,幫你爬取好資料以後,發給微控制器。關於如何爬取資料內容,這個問題可能會讓很多人感到...

怎麼理解51微控制器裡PSW裡的CY和OV?

SulfurZinc 哈哈,這個我來答吧 CY 學名進製標誌位 當運算過程最高位有進製的時候,CY會被置位成1OV 學名溢位標誌位 運算發生溢位的時候會被置位為1 CY和OV的區別 CY只看最高位是否有進製或者借位,所以CY用來判斷無符號數運算是否發生溢位,以無符號加法運算來理解,只要最高位發生進製...