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