01
什么是中斷
前面的文章中我舉上課的例子簡單描述了中斷,那么單片機系統(tǒng)里中斷是什么呢?
中斷,是指當(dāng)計算機執(zhí)行正常程序時,系統(tǒng)中出現(xiàn)某些急需處理的異常情況和特殊請求,CPU暫時中止正在運行的程序,轉(zhuǎn)去對隨機發(fā)生的更為緊迫的事件進行處理,處理完畢后,CPU自動返回原來的程序繼續(xù)執(zhí)行。
實現(xiàn)中斷功能的硬件和軟件系統(tǒng)稱為中斷系統(tǒng)。能向CPU發(fā)出中斷請求的事件稱為中斷源。
若有多個中斷源同時請求中斷時,或者CPU正在處理某外部事件時,又有另一外部事件申請中斷,CPU通常會根據(jù)中斷源的緊急程度,將其進行排列,規(guī)定每個中斷源都有一個中斷優(yōu)先級。
中斷優(yōu)先級可由硬件排隊或軟件排隊來設(shè)定,CPU按其優(yōu)先順序處理中斷源的中斷請求。優(yōu)先級高的事件可以中斷CPU正在處理的低級的中斷服務(wù)程序,待完成了高級中斷服務(wù)程序之后,再繼續(xù)執(zhí)行被中斷了的低級中斷服務(wù)程序,這就是中斷的嵌套。
02
中斷源與中斷優(yōu)先級
C51有如下5個中斷源:
? INT0(P3.2)外部中斷0。當(dāng)IT0(TCON.0)=0時,低電平有效;
當(dāng)IT0(TCON.0)=1時,下降沿有效。
? INT1(P3.3)外部中斷1。當(dāng)IT1(TCON.2)=0時,低電平有效;
當(dāng)IT1(TCON.2)=1時,下降沿有效。
? TF0定時/計數(shù)器T0溢出中斷。
? TF1定時/計數(shù)器T1溢出中斷。
? RX,TX串行中斷。
C52又增加了一個中斷源,即定時/計數(shù)器T2溢出中斷。
中斷優(yōu)先級是在列表越前面的優(yōu)先級又高,表中列出了默認(rèn)優(yōu)先級,數(shù)字越小的優(yōu)先級越高。當(dāng)然也可以通過設(shè)置改變這個順序。
當(dāng)然現(xiàn)在新上市的51單片機可能包含更多的中斷源,但是基本的這幾個肯定都有的,其他額外添加的也是大同小異,都能根據(jù)芯片手冊看明白。比如STC89系列單片機就有8個中斷源,如圖:
03
中斷控制寄存器
51單片機的中斷相關(guān)控制寄存器包括了中斷控制寄存器(Interrupt Enable register,IE)和中斷優(yōu)先級控制寄存器(Interrupt Priority register,IP),前者用于對 MCS-51單片機的中斷工作狀態(tài)進行控制,后者用于對MCS-51單片機的中斷優(yōu)先級進行控制。
允許中斷寄存器IE的各位定義如下:
EA是總中斷允許位。當(dāng)EA=0時,禁止所有中斷;當(dāng)EA=1時,每個中斷源是允許還是禁止由各自的允許位確定。
ET2是定時器2中斷允許位。當(dāng)ET2=0時,禁止定時器2中斷。
ES是串行口中斷允許位。當(dāng)ES=0時,禁止串行口中斷。
ET1是定時器1中斷允許位。當(dāng)ET1=0時,禁止定時器1中斷。
EX1是外部中斷1允許位。當(dāng)EX1=0時,禁止外部中斷1。
ET0是定時器0中斷允許位。當(dāng)ET0=0時,禁止定時器0中斷。
EX0是外部中斷0允許位。當(dāng)EX0=0時,禁止外部中斷0。
中斷優(yōu)先級寄存器IP的各位定義如下:
PT2是定時器2中斷優(yōu)先級設(shè)定位。
PS是串行口中斷優(yōu)先級設(shè)定位。
PT1是定時器1中斷優(yōu)先級設(shè)定位。
PX1是外部中斷1優(yōu)先級設(shè)定位。
PT0是定時器0中斷優(yōu)先級設(shè)定位。
PX0是外部中斷0優(yōu)先級設(shè)定位。
IP寄存器中各位均具有以下特點,即當(dāng)為0時,為低中斷優(yōu)先級;當(dāng)為1時,為高中斷優(yōu)先級。系統(tǒng)復(fù)位后,IP寄存器中各位均為0,即此時全部設(shè)定為低中斷優(yōu)先級。在中斷執(zhí)行過程中,低優(yōu)先級中斷可被高優(yōu)先級中斷所中斷,反之不能。
另外,同級的中斷不能互相中斷。當(dāng)幾個同級的中斷源同時向CPU申請中斷時,CPU按硬件次序排定優(yōu)先權(quán),依次為外部中斷0(INT0)、定時/計數(shù)器T0溢出中斷、外部中斷1(INT1)、定時/計數(shù)器T1溢出中斷、串行口中斷、定時/計數(shù)器T2溢出中斷。
-
51單片機
+關(guān)注
關(guān)注
273文章
5699瀏覽量
123225 -
中斷系統(tǒng)
+關(guān)注
關(guān)注
1文章
96瀏覽量
61008 -
STC89
+關(guān)注
關(guān)注
1文章
20瀏覽量
16272 -
中斷控制器
+關(guān)注
關(guān)注
0文章
59瀏覽量
9442 -
定時器中斷
+關(guān)注
關(guān)注
0文章
49瀏覽量
11165
發(fā)布評論請先 登錄
相關(guān)推薦
評論