第五章 mcs-51微控制器中斷系統
第一節中斷系統結構
(一)學習要求
(1) 掌握中斷系統中斷源、中斷概念,中斷優先順序及控制方法。
(2) 了解中斷響應過程,中斷請求撤除法。
(二)內容提要
一、中斷概述
1、中斷源
中斷源指引起正在執行的程式中斷,轉而執行中斷服務程式的裝置或事件。可分為硬中斷、軟中斷。
mcs-51微控制器的5個中斷源:
①外部中斷2個,中斷請求訊號分別由p3.2、p3.1輸入,低電平有效、脈衝下降沿有效可選。入口位址:0003h,0013h。
②定時/計數溢位中斷3個:t0、t1,計數溢位時置「1」tf0、tf1位,從而發出內部中斷請求。入口位址:000bh,001bh。
③序列中斷1個:序列接收或傳送完一幀資料時就產生乙個內部中斷請求ri或ti。入口位址:0023h。
2、中斷處理過程
包含:中斷請求、中斷響應、中斷服務、中斷返回四個階段.
①中斷請求:中斷源將相應請求中斷的標誌位置「1」,表示發出請求,並由cpu 查詢。
②中斷響應:在一條指令的最後乙個週期按優先順序順序查詢中斷標誌,為「1」並滿足響應條件時響應。
響應操作: 斷點壓棧→撤除中斷標誌→關閉低同級中斷允許→中斷入口位址送pc。
實際上響應中斷的主要操作是有硬體自動產生一條長呼叫指令lcall。
③中斷服務:根據入口位址轉中斷服務程式,保護現場、執行中斷主體、恢復現場。
④中斷返回:斷點出棧→開放中斷允許→返回原程式。
3、中斷優先順序及其巢狀
優先順序 2個---高優先順序、低優先順序,可通過sfr暫存器ip設定。中斷巢狀原則為高優先順序的中斷不能被低優先的中斷所中斷,同級中斷不能相互中斷。
4、中斷控制的特點
① 中斷是隨機發生的,並且是可程式設計的。
② 通過執行特定功能的程式段而獲得預定目的。
5、中斷系統結構示意圖
二、中斷控制
通過對特殊功能暫存器tcon、scon、ie、ip等四個暫存器的設定而實現。
1、中斷請求控制
(1)定時中斷、外中斷請求控制暫存器tcon位元組位址88h,位位址8fh~88h,與中斷請求有關的各位表示如下:
(2)序列中斷請求控制暫存器scon
序列中斷請求由ti、ri的邏輯「或」得到。即不論是傳送標誌還是接收標誌,都將發生序列中斷請求。位元組位址98h,位位址9fh~98h,與中斷請求有關的各位表示如下:
ti為傳送中斷 ,ri為接收中斷 ,為「1」時,請求中斷,響應後必須由使用者軟體清零。
(3)中斷請求的撤銷
中斷響應後,必須及時清除tcon、scon中的已響應中斷請求標誌,否則,會引起中斷的重複查詢和響應。
①外中斷請求的撤銷:
對於邊沿觸發方式:由於觸發訊號過後就消失,撤銷自然也就是自動的。對於電平觸發方式:需通過軟硬體結合的方法來實現撤銷。
②定時中斷請求的撤銷:定時中斷後,硬體自動清「0」。
③序列中斷請求的撤銷:不能自動清「0」,須用軟體的方法在中斷服務子程式中進行清「0」。
2、中斷允許控制
由sfr暫存器ie設定,分二級允許控制。以ea位作為總控,以各中斷源的允許位作為分控。中斷允許控制暫存器ie,位元組位址a8h,位位址afh~a8h,與中斷允許有關的各位表示如下:
微控制器復位後,(ie)=00h,因此,整個中斷系統為禁止狀態。
3、中斷優先順序控制
由sfr暫存器ip設定,有2個優先順序,相應位置「1」,為高優先順序。相應位置「0」,為低優先順序。中斷優先順序暫存器ip,位元組位址b8h,位位址bfh~b8h,與中斷允許有關的各位表示如下:
注意:5個中斷允許位全部置「1」時,和全部清0效果一樣,為同優先順序中斷,按自然優先順序處理,即為→t0→→t1→序列口→pt2,優先順序依次從高到低。
(三)習題與思考題
1.8052微控制器提供了幾個中斷源?有幾級中斷優先順序?
2.外部中斷有幾種觸發方式?
3.mcs-51微控制器的中斷系統有哪幾部分組成?作用是什麼?
4. mcs-51系列微控制器的中斷系統中有幾個優先順序?如何設定?
第二節中斷響應
(一)學習要求
(1)掌握中斷響應的條件及過程。
(2)了解中斷響應的復位。
(3)了解程式的初始化及程式編制。
(4)了解外部多個中斷源的擴充套件
(二)內容提要
一、中斷響應的條件
cpu響應中斷的基本條件有以下幾種:
(1) 有中斷源提出中斷請求;
(2) 中斷總允許位ea=1,即cpu開中斷;
(3) 申請中斷的中斷源的中斷允許位為1,即沒有被遮蔽。
mcs-51的cpu在每個機器週期的s5p2期間順序取樣各中斷請求標誌位,如有置位,只要以上條件滿足,且下列三種情況都不存在,那麼,在下一週期的s1期間cpu響應中斷。否則,取樣的結果被取消。這三種情況是:
(1) cpu正在處理同級或高階優先順序的中斷。
(2) 現行的機器週期不是所執行指令的最後乙個機器週期。
(3) 正在執行的指令是reti或訪問ie、ip指令。cpu在執行reti或訪
問ie、ip的指令後,至少需要再執行一條其他指令後才會響應中斷請求。
二:中斷響應過程
微控制器在每個機器週期的s5p2期間,順序取樣每個中斷源,cpu在下乙個機器週期s6期間按優先順序順序查詢中斷標誌,如查詢到某個中斷標誌為1,將在再下乙個機器週期s1期間按優先順序進行中斷處理。中斷得到響應後自動清除中斷標誌,由硬體將程式計數器pc內容壓入堆疊保護,然後將對應的中斷向量裝入程式計數器pc,使程式轉向中斷向量位址單元中去執行相應的中斷服務程式。
下列任何一種情況存在中斷申請將被封鎖:
(1)cpu正在執行乙個同級或高一級的中斷服務程式。
(2)當前正在執行的那條指令還未執行完。
(3)當前正在執行的指令是reti或對ie,ip暫存器進行讀/寫指令,執行這些指令後至少再執行一條指令才會響應中斷。
三、復位狀態
cpu響應中斷請求後,在中斷返回(執行reti)前,必須撤除請求,將中斷標誌位清除,回覆到原始的狀態,否則會錯誤地再一次引起中斷響應。
如前所述,對於定時器/計數器0、1的中斷請求及邊沿觸發方式的外部中斷0、1,cpu在響應中斷後用硬體清除了相應的中斷請求標誌tf0、tf1、ie0、ie1,即自動撤除了中斷請求。
對於序列介面中斷及定時器/計數器2中斷,cpu響應中斷後沒有用硬體清除中斷標誌位,必須由使用者編制的中斷服務程式來清除相應的中斷標誌。如用指令clr tf2清除tf2,用指令clr exf2清除exf2等。
四、程式的初始化及中斷服務程式
1. 程式初始化的概念及步驟
所謂程式中斷系統初始化,就是指使用者對中斷控制的相關特殊暫存器中的各有關控制位進行賦值。其步驟如下:
1)置位相應中斷的中斷允許標誌及ea。
2)設定所用中斷源的中斷優先順序。
3)對外部中斷應設定中斷請求訊號形式(電平觸發/邊沿觸發)。對於定時/計數中
斷應設定工作方式(定時/計數 )。
例5-1 通過p1.0~p1.7控制發光二極體,輸出兩種節日燈,並利用外中斷p3.2,在兩
種狀態之間切換。
分析:主程式中狀態:亮1燈左移迴圈,中斷程式中的狀態:以1秒間隔8燈依次亮起,
再依次熄滅,迴圈3次後返回。
主流程圖(略),程式如下:
org0000h
ljmpmain
org 0003h ;中斷入口
ljmp 0100h
org 0030h
start:mov sp, #60h
setb it0;設定下跳有效
setb ex0;開中
setb ea
mov ip, #01h
mov a, #01h
loop:mov p1, a
rl a
lcall delay
ajmp loop
中斷服務程式:
org 0100h
push acc
clr a
mov r0, #00h
loop1: setb c
rlc a
mov p1, a
lcall delay
jnb acc.7, loop1
loop2: clr c
rlc a
mov p1, a
lcall delay
jb acc.7, loop2
inc r0
cjne r0, #03h, loop1
pop acc
ret delay: (略1秒延時
(三)習題與思考題
1. mcs-51系列微控制器有幾個中斷源,各中斷標誌是如何產生的,又如何清0的?cpu響應中斷時,它們的中斷向量位址分別是多少?
3. mcs-51系列微控制器的中斷系統中有幾個優先順序?如何設定?
4. cpu響應中斷有哪些條件?在什麼情況下中斷響應會受阻?
5. 簡述mcs-51中斷響應的過程?
6. mcs-51中斷響應時間是否固定不變?為什麼?
7. 8031晶元的int0、int1引腳分別輸入壓力超限、溫度超限中斷請求訊號,定時器/計數器0作定時檢測的實時時鐘,使用者規定的中斷優先權排隊次序為:壓力超限――>溫度超限――>定時檢測,要求確定ie、ip的內容,以實現上述要求。
微控制器外部中斷總結
51微控制器的外部中斷有兩種觸發方式可選 電平觸發和邊沿觸發。選擇電平觸發時,微控制器在每個機器週期檢查中斷源口線,檢測到低電平,即置位中斷請求標誌,向cpu請求中斷。選擇邊沿觸發方式時,微控制器在上乙個機器週期檢測到中斷源口線為高電平,下乙個機器週期檢測到低電平,即置位中斷標誌,請求中斷。這個原理...
微控制器中斷的精華總結
微控制器中斷系統 帖 概念 引起cpu中斷的根源,稱為中斷源。中斷源向cpu提出的中斷請求。cpu暫時中斷原來的事務a,轉去處理事件b。對事件b處理完畢後,再回到原來被中斷的地方 即斷點 稱為中斷返回。實現上述中斷功能的部件稱為中斷系統 中斷機構 80c51的中斷系統有5個中斷源 2個優先順序,可實...
PIC微控制器中斷模組介紹
pic16f87x系列微控制器可以接收多達14個中斷源。中斷控制器暫存器intcon標記著各個中斷源的請求,對各個中斷設定遮蔽位,對全部中斷設定全域性遮蔽位。pic16f87x系列的中斷包含 tmr0溢位中斷 toif 外部中斷 intf 埠b變化中斷 rbif 並行從動埠中斷 pspif a d變...