本質概述思維導圖:
51單片機中斷系統
中斷系統概述
????????中斷系統是為使CPU具有對外界緊急事件的實時處理能力而設置的。
當中央處理機CPU正在處理某件事的時候外界發生了緊急事件請求,要求CPU暫停當前的工作,轉而去處理這個緊急事件,處理完以后,再回到原來被中斷的地方,繼續原來的工作,這樣的過程稱為中斷。實現這種功能的部件稱為中斷系統,請示CPU中斷的請求源稱為中斷源。微型機的中斷系統一般允許多個中斷源,當幾個中斷源同時向CPU請求中斷,要求為它服務的時候,這就存在CPU優先響應哪一個中斷源請求的問題。通常根據中斷源的輕重緩急排隊,優先處理最緊急事件的中斷請求源,即規定每一個中斷源有一個優先級別。CPU總是先響應優先級別最高的中斷請求。
? ??????當CPU正在處理一個中斷源請求的時候(執行相應的中斷服務程序),發生了另外一個優先級比它還高的中斷源請求。如果CPU能夠暫停對原來中斷源的服務程序,轉而去處理優先級更高的中斷請求源,處理完以后,再回到原低級中斷服務程序,這樣的過程稱為中斷嵌套。這樣的中斷系統稱為多級中斷系統,沒有中斷嵌套功能的中斷系統稱為單級中斷系統。
中斷觸發演示圖:
中斷處理過程可分為四個階段:1、中斷請求階段;2、中斷響應階段;3、中斷處理階段;4、中斷返回階段;
????????STC89C51RC/RD+系列單片機提供了8個中斷請求源,它們分別是:外部中斷0(INTO)定時器0中斷、外部中斷1(INT1)、定時器1中斷、串口(UART)中斷、定時器2中斷、外部中斷2(INT2)、外部中斷3(INT3)。所有的中斷都具有4個中斷優先級。用戶可以用關總中斷允許位(EA/IE.7)或相應中斷的允許位來屏蔽所有的中斷請求,也可以用打開相應的中斷允許位來使CPU響應相應的中斷申請:每一個中斷源可以用軟件獨立地控制為開中斷或關中斷狀態;每一個中斷的優先級別均可用軟件設置。高優先級的中斷請求可以打斷低優先級的中斷,反之,低優先級的中斷請求不可以打斷高優先級及同優先級的中斷。當兩個相同優先級的中斷同時產生時,將由查詢次序來決定系統先響應哪個中斷。STC89C51RC/RD+系列單片機的各個中斷查詢次序如下表6-1所示:
中斷系統結構
STC89C51RC/RD+系列單片機的中斷系統結構示意圖如圖6-1所示
中斷源介紹:
結構圖中共展示8個中斷源,按功能分類如下:
1、外部中斷(2路)
????????INT0(P3.2引腳)
????????????????觸發方式:由TCON.0(IT0位)控制
????????????????IT0=0:低電平觸發
????????????????IT0=1:下降沿觸發
????????????????請求標志:IE0(TCON.1),硬件自動置位,響應后硬件清零
????????INT1(P3.3引腳)
????????????????觸發方式:由TCON.2(IT1位)控制,
????????????????IT1=0:低電平觸發
????????????????IT1=1:下降沿觸發
????????????????請求標志:IE1(TCON.3)
2、定時器中斷(3路)
????????Timer0中斷
????????????????觸發條件:定時器0計數溢出(TF0置位)
????????????????請求標志:TF0(TCON.5),需軟件清零
????????Timer1中斷
????????????????觸發條件:定時器1計數溢出(TF1置位)
????????????????請求標志:TF1(TCON.7),需軟件清零
????????Timer2中斷
????????????????觸發條件:定時器2溢出(TF2)或捕獲/重裝載(EXF2)
????????????????請求標志:TF2(T2CON.7)或 EXF2(T2CON.6)
3、串行通信中斷(1路)
????????UART中斷
????????????????觸發條件:接收完成(RI置位)或發送完成(TI置位)
????????????????請求標志:RI(SCON.0)/TI(SCON.1),需軟件清零
4、擴展外部中斷(2路)
????????INT2(P1.2引腳)
????????????????觸發方式:由XICON.0(IT2位)控制
????????????????IT2=0:低電平觸發
????????????????IT2=1:下降沿觸發
????????????????請求標志:IE2(XICON.1)
????????INT3(P1.3引腳)
????????????????觸發方式:由XICON.4(IT3位)控制
????????????????請求標志:IE3(XICON.5)
中斷源觸發表:
中斷寄存器
? ? ? ? 下表中是與STC89C51RC/RD+系列單片機中斷相關的所有寄存器。下面逐一地對寄存器進行介紹;
1、IE寄存器(中斷允許寄存器(可位尋址))
EA:CPU的總中斷允許控制位,EA=1,CPU開放中斷,EA=0,CPU屏蔽所有的中斷申請。EA的作用是使中斷允許形成兩級控制。即各中斷源首先受EA控制:其次還受各中斷源自己的中斷允許控制位控制。
ET2:定時/計數器T2的溢出中斷允許位。ET2=1,允許T2中斷;ET2=0,禁止T2中斷。
ES :串行口1中斷允許位。ES=1,允許串行口1中斷;ES=0,禁止串行口1中斷。
ET1:定時/計數器T1的溢出中斷允許位。ET1=1,允許T1中斷;ET1=0,禁止T1中斷。
EX1:外部中斷1中斷允許位。EX1=1,允許外部中斷1中斷;EX1=0,禁止外部中斷1中斷。
ETO:TO的溢出中斷允許位。ETO=1,允許T0中斷;ET0=0禁止T0中斷。
EX0:外部中斷0中斷允許位。EX0=1,允許中斷:EX0=0禁止中斷。
2、XICON寄存器(輔助中斷控制寄存器(可位尋址))
PX3:置位表明外部中斷3的優先級為高,優先級最終由[PX3H,PX3]=[0,0];[0,1];[1,0];[1,1]來決定。
EX3:如被設置成1,允許外部中斷3中斷;如被清成0,禁止外部中斷3中斷。
IE3:外部中斷3中斷請求標志位,中斷條件成立后,IE3=1,可由硬件自動清零。
IT3:當此位由軟件置位時,外部中斷3為下降沿觸發中斷;當此位由軟件清零時,為低電平觸發中斷。
PX2:置位表明外部中斷2的優先級為高,優先級最終由[PX2H,PX2]=[0,0];[0,1];[1,0];PX2:[1,1]來決定。
EX2:如被設置成1,允許外部中斷2中斷;如被清成0,禁止外部中斷2中斷。
IE2 :外部中斷2中斷請求標志位,中斷條件成立后,IE2=1,可由硬件自動清零。
IT2:當此位由軟件置位時,外部中斷2為下降沿觸發中斷;當此位由軟件清零時,為低電平觸發IT2 :中斷。
3、IPH中斷優先級寄存器高(不可位尋址)和IP中斷優先級寄存器低(可位尋址)
PX3H,PX3:外部中斷3優先級控制位:
????????當PX3H=0日PX3=0時,外部中斷3為最低優先級中斷(優先級0)
????????當PX3H=0日PX3=1時,外部中斷3為較低優先級中斷(優先級1)
????????當PX3H=1日PX3=0時,外部中斷3為較高優先級中斷(優先級2)
????????當PX3H=1日PX3=1時,外部中斷3為最高優先級中斷(優先級3)
PX2H,PX2:外部中斷2優先級控制位:
????????當PX2H=0且PX2=0時,外部中斷2為最低優先級中斷(優先級0)
????????當PX2H=0且PX2=1時,外部中斷2為較低優先級中斷(優先級1)
????????當PX2H=1日PX2=0時,外部中斷2為較高優先級中斷(優先級2)
????????當PX2H=1且PX2=1時,外部中斷2為最高優先級中斷(優先級3)
PT2H,PT2:定時器2中斷優先級控制位:
????????當PT2H=0且PT2=0時,定時器2中斷為最低優先級中斷(優先級0)
????????當PT2H=0且PT2=1時,定時器2中斷為較低優先級中斷(優先級1)
????????當PT2H=1月PT2=0時,定時器2中斷為較高優先級中斷(優先級2)
????????當PT2H=1月PT2=1時,定時器2中斷為最高優先級中斷(優先級3)
PSH,PS:串口1中斷優先級控制位。
????????當PSH=0日PS=0時,串口1中斷為最低優先級中斷(優先級0)
????????當PSH=0且PS=1時,串口1中斷為較低優先級中斷(優先級1)
????????當PSH=1日PS=0時,串口1中斷為較高優先級中斷(優先級2)
????????當PSH=1月PS=1時,串口1中斷為最高優先級中斷(優先級3)
PT1H,PT1:定時器1中斷優先級控制位。
????????當PT1H=0且PT1=0時,定時器1中斷為最低優先級中斷(優先級0)
????????當PT1H=0日PT1=1時,定時器1中斷為較低優先級中斷(優先級1)
????????當PT1H=1月PT1=0時,定時器1中斷為較高優先級中斷(優先級2)
????????當PT1H=1日PT1=1時,定時器1中斷為最高優先級中斷(優先級3)
PX1H,PX1:外部中斷1優先級控制位。
????????當PX1H=0且PX1=0時,外部中斷1為最低優先級中斷(優先級0)
????????當PX1H=0且PX1=1時,外部中斷1為較低優先級中斷(優先級1)
????????當PX1H=1月PX1=0時,外部中斷1為較高優先級中斷(優先級2)
????????當PX1H=1且PX1=1時,外部中斷1為最高優先級中斷(優先級3)
PTOH,PT0:定時器0中斷優先級控制位:
????????當PTOH=0且PT0=0時,定時器0中斷為最低優先級中斷(優先級0)
????????當PTOH=0日PT0=1時,定時器0中斷為較低優先級中斷(優先級1)
????????當PT0H=1月PT0=0時,定時器0中斷為較高優先級中斷(優先級2)
????????當PTOH=1且PT0=1時,定時器0中斷為最高優先級中斷(優先級3)
PXOH,PX0:外部中斷0優先級控制位。
????????當PX0H=0且PX0=0時,外部中斷0為最低優先級中斷(優先級0)
????????當PX0H=0日PX0=1時,外部中斷0為較低優先級中斷(優先級1)
????????當PX0H=1日PX0=0時,外部中斷0為較高優先級中斷(優先級2)
????????當PX0H=1日PX0=1時,外部中斷0為最高優先級中斷(優先級3)
4、TCON定時器T0/T1中斷控制寄存器(可位尋址)
5、SCON串行口控制寄存器(可位尋址)
6、T2CON定時器2/計數器中斷控制寄存器(可位尋址)
制作不易!喜歡的小伙伴給個小贊贊!喜歡我的小伙伴點個關注!有不懂的地方和需要的資源隨時問我喲!