包含五個中斷源,兩級中斷優(yōu)先級,優(yōu)先級可編程設(shè)置,通過IP進行設(shè)置:
PX0(IP.0),外部中斷0優(yōu)先級設(shè)定位;
PT0(IP.1),定時/計數(shù)器T0優(yōu)先級設(shè)定位;
PX1(IP.2),外部中斷0優(yōu)先級設(shè)定位;
PT1(IP.3),定時/計數(shù)器T1優(yōu)先級設(shè)定位;
PS (IP.4),串行口優(yōu)先級設(shè)定位;
PT2 (IP.5) ,定時/計數(shù)器T2優(yōu)先級設(shè)定位。
從這張圖里我們可以看出:
EA是中斷控制位,EA=1開放中斷,EA=0屏蔽所用中斷(編程時人為設(shè)定)
那EA是在哪里進行設(shè)置的呢?它就是在IE(中斷允許寄存器)里進行設(shè)定的
第七位就是EA,剩下的還有第四位的ES,第三位的ET1,第二位的EX1,第一位的ET0和第零位的EX0,是不是在上圖中都能看到他們的影子?沒錯,要不IE能稱為中斷允許寄存器嘛?是不是他先是設(shè)定總允許中斷,然后再設(shè)定其它的中斷是不是允許的,接下來我們再來看其它中斷允許位
ES:串行口中斷開放控制位,ES=1,響應(yīng)串行口中斷,ES=0,禁止串行口中斷
ET1:T1溢出中斷開放控制位,ET1=1,響應(yīng)T1溢出產(chǎn)生的中斷;ET1=0,禁止T1溢出產(chǎn)生的中斷
EX1:外部中斷1開放控制位,EX1=1,響應(yīng)外部中斷,EX1=0,禁止外部中斷
ET0:功能同ET1,對應(yīng)T0
EX0:功能同EX1,對應(yīng)外部中斷0
這樣,中斷是否開啟就由你說了算了,你要用什么直接就可以控制對應(yīng)的中斷和總中斷EA就可以了。
現(xiàn)在我們開啟了中斷,cpu就會檢測對應(yīng)的中斷是否到來,那如何檢測的呢?接下來我們就要用到另外幾個有用的位了
TCON的第七位TF1,第五位TF0,第三位IE1,第一位IE0
SCON的第一位TI,第零位RI。
RI(SCON.0),串行口接收中斷標志位。當允許串行口接收數(shù)據(jù)時,每接收完一個串行幀,由硬件置位RI。注意,RI必須由軟件清除。
TI(SCON.1),串行口發(fā)送中斷標志位。當CPU將一個發(fā)送數(shù)據(jù)寫入串行口發(fā)送緩沖器時,就啟動了發(fā)送過程。每發(fā)送完一個串行幀,由硬件置位TI。CPU響應(yīng)中斷時,不能自動清除TI,TI必須由軟件清除。
TF1:T1當定時時間到或是當計數(shù)個數(shù)到的時候,會觸發(fā)TF1位,然后CPU檢測TF1位,執(zhí)行對應(yīng)的中斷,響應(yīng)中斷后,硬件清零。
TF0:對應(yīng)于TF1
IE1:外部中斷請求標志,外部中斷執(zhí)行,請求中斷,對應(yīng)IE1=1,CPU響應(yīng)中斷,硬件對IE1清零。
IE0:對應(yīng)IE1
但是對于外部中斷,卻有兩種中斷觸發(fā)方式,一種是低電平觸發(fā),一種是下降沿觸發(fā)。我們對于不同情況要進行不同的控制,那什么對這兩種方式進行先擇呢?我們看TCON的第二位和第零位是沒有用的,就是他們兩個,第二位IT1對應(yīng)外部中斷1,第零位IT0對應(yīng)外部中斷0,給他們高電平就為下降沿觸發(fā),給他們低電平就為低電平觸發(fā)。
這樣對于中斷的了解就比較清楚了吧!接下來的內(nèi)容里我們會通過學(xué)習(xí)其它內(nèi)容,對這里有更深入的了解。
附:中斷優(yōu)先權(quán)圖