PIC16F877中斷系統初探(1)——過程和特點

      對於PIC單片機來說,一次中斷活動的全過程大致可以歸納成一下9個階段:

1、中斷請求:中斷事件一旦發生或者中斷條件一旦構成,中斷源就提交“申請報告”(將中斷標誌位置1),欲請求CPU暫時放下目前的工作而轉向爲該中斷源作爲專項服務;

2、中斷屏蔽:雖然中斷源提交了“申請報告”,但是,是否得到CPU的響應,還要取決於“申請報告”是否能夠通過2道或者3道“關卡”(中斷屏蔽)送達CPU(相應的中斷屏蔽位等於1,爲關卡放行;反之相應的中斷屏蔽位等於0,爲關卡禁止通行);

3、中斷響應:如果一路放行,則CPU響應中斷後,將被打斷的工作斷點記錄下來(把斷點地址保護到堆棧),掛起“不再受理其他申請報告牌”(清除全局中斷標誌位GIE=0),跳轉到中斷服務子程序;

4、保護現場:在處理新任務時可能破壞原有的工作現場,所以需要對工作現場和工作環境進行適當保護;

5、調查中斷源:檢查“申請報告”是由哪個中斷源提交的,以便作出有針對性的服務;

6、中斷處理:開始對查明的中斷源進行有針對性的中斷服務;

7、清除標誌:在處理完畢相應的任務之後,需要進行撤消登記(清除中斷標誌),以避免造成重複響應;

8、恢復現場:恢復前面曾經被保護起來的工作現場,以便繼續執行被中斷的工作;

9、中斷返回:將被打斷的工作斷點找回來(從堆棧中恢復斷點地址),並摘下“不再受理其他申請報告牌”(GIE=1),繼續執行原先被打斷的工作。

        在上述的9個階段中,第1、2、3和9階段是由硬件自動實現的,而第4、5、6、7、8階段則是用戶軟件完成的。

        PIC16F877單片機的中斷源多達14種,不過中斷向量只有一個(0004H),並且各個中斷源之間也沒有優先級之分,不具備非屏蔽中斷(即所有中斷都是可以被屏蔽的)。具有中斷功能的PIC系列單片機採用的是多源中斷的設計方案(即一箇中斷向量對應着多箇中斷源),只有唯一的一箇中斷向量,或者說只有一箇中斷服務子程序入口地址

參考文獻:

李學海 《PIC單片機實用教程——基礎篇》 北京航空航天大學航出版社

發佈了33 篇原創文章 · 獲贊 2 · 訪問量 9萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章