關(guān)于8XC51GB中斷系統(tǒng)的知識(shí)點(diǎn)總結(jié)
1.中斷源
8XC51GB有15個(gè)中斷源,對(duì)應(yīng)有15個(gè)固定的中斷矢量地址(見(jiàn)圖10.8)。其中有7個(gè)外部中斷是INT0~INT6,外部中斷引腳與端口3和端口5引腳的功能復(fù)用;有8個(gè)內(nèi)部中斷,它們分別是3個(gè)定時(shí)器中斷(定時(shí)器T0、T1、T2)、2個(gè)可編程定時(shí)計(jì)數(shù)器陣列中斷(PCA、PCA1)、1個(gè)串行口中斷、1個(gè)SEP中斷和1個(gè)A/D中斷。下面分別對(duì)各個(gè)中斷作簡(jiǎn)要介紹。
外部中斷INT0、INT1:這兩個(gè)中斷都可以由電平觸發(fā)或跳變沿觸發(fā),具體觸發(fā)方式?jīng)Q定于寄存器TCON中IT0和IT1兩位的值。
圖10.8中斷源
外部中斷INT2、INT3:這兩個(gè)中斷都可設(shè)置為上升沿或下降沿觸發(fā),具體觸發(fā)方式由中斷控制寄存器EXICON中IT2和IT3兩位的值決定。
外部中斷INT4、INT5、INT6:這三個(gè)中斷都是由上升沿觸發(fā)的。
外部中斷控制器EXICON格式如圖10.9所示。
EXICON各位作用如下:
IE2~IE6:外部中斷INT2~INT6中斷請(qǐng)求標(biāo)志位。當(dāng)外部中斷請(qǐng)求有效時(shí),由硬件置位,而CPU響應(yīng)中斷后,由硬件自動(dòng)清“0”。
IT3、IT2:INT3、INT2中斷類型控制位。若設(shè)置為“1”,則設(shè)定為正跳變觸發(fā)中斷,反之設(shè)定為負(fù)跳變觸發(fā)中斷。
內(nèi)部定時(shí)器T0、T1、T2與外部中斷控制方式不同,分別介紹如下:
定時(shí)器T0和定時(shí)器T1:這兩個(gè)中斷由寄存器TCON中TF0和TF1產(chǎn)生,TF0和TF1在相應(yīng)的定時(shí)/計(jì)數(shù)器溢出時(shí)被置“1”(定時(shí)器0方式3除外),TF0和TF1在響應(yīng)中斷后由硬件清“0”。
定時(shí)器T2:該中斷由寄存器T2CON中TF2和EXT2兩位的邏輯或產(chǎn)生。響應(yīng)中斷后,中斷標(biāo)志不能硬件清“0”,必須由軟件清“0”。
PCA和PCA1中斷:PCA中斷是可編程定時(shí)/計(jì)數(shù)器陣列中斷,它由CCON中的CF、CCF0、CCF1、CCF2、CCF3和CCF4這6位邏輯或產(chǎn)生;PCA1中斷由C1CON中的CF1、C1CF0、C1CF1、C1CF2、C1CF3和C1CF4的邏輯或產(chǎn)生。PCA/PCA1中斷是否有效決定于EC/EC1,在CPU進(jìn)入中斷服務(wù)程序時(shí),只能靠軟件識(shí)別是由哪個(gè)標(biāo)志位產(chǎn)生的,并用軟件將它清“0”。
串行口中斷:串行口中斷由寄存器SCON中RI和TI的邏輯或產(chǎn)生。
SEP中斷:該中斷由寄存器SEPSTA中SEPIF產(chǎn)生。SEPIF位在串行擴(kuò)展口發(fā)送或接收結(jié)束時(shí)被置“1”,它不能由硬件清“0”,必須由用戶軟件清“0”。
A/D中斷:該中斷由寄存器ACON中AIE產(chǎn)生,在8個(gè)通道A/D轉(zhuǎn)換周期的最后,AIF被置“1”,AIF必須由用戶軟件清“0”。
上述產(chǎn)生中斷的所有標(biāo)志位都可由軟件置“1”或清“0”,也就是說(shuō),中斷可以由軟件產(chǎn)生,正在進(jìn)行的中斷也可由軟件中斷。
2.中斷控制
8XC51GB的15個(gè)中斷源都可通過(guò)將兩個(gè)中斷允許寄存器IE和IEA中對(duì)應(yīng)的中斷源控制位置“1”開中斷;置“0”禁止中斷。
中斷允許寄存器IE在CPU復(fù)位時(shí)為00H,禁止所有中斷,其格式如圖10.10所示。
IE各位的功能如下:
EA:總中斷控制位。EA=0時(shí),禁止所有中斷;EA=1時(shí),各中斷是否有效取決于相應(yīng)的中斷控制位;
EX0、EX1:外部中斷源INT0和INT1允許控制位;
ET0、ET1、ET2:定時(shí)器T0、T1、T2中斷允許控制位;
ES:串行口中斷控制位;
EC:可編程定時(shí)、計(jì)數(shù)器陣列PCA中斷控制位。
中斷允許寄存器IEA在CPU復(fù)位時(shí)為00H,禁止所有中斷,其格式如圖10.11所示。
IEA各位的功能如下:
EAD:A/D轉(zhuǎn)換器中斷控制位;
EX2~EX6:外部中斷INT2~INT6中斷允許控制位;
ES1:PCA1中斷允許控制位;
ESEP:串行擴(kuò)展口中斷允許控制位。
3.中斷優(yōu)先級(jí)控制及中斷矢量
8XC51GB的15個(gè)中斷源都可由程序指定為4個(gè)優(yōu)先級(jí)之一,中斷優(yōu)先級(jí)決定于寄存器IP和IP1或IPA和IPA1中相應(yīng)兩位控制位編碼的值。優(yōu)先級(jí)低的中斷可被優(yōu)先級(jí)高的中斷中斷,但不能被與其優(yōu)先級(jí)相同或比它優(yōu)先級(jí)低的中斷中斷,任何中斷都不能中斷最高級(jí)中斷。若同時(shí)接收到兩個(gè)或兩個(gè)以上不同優(yōu)先級(jí)的中斷請(qǐng)求,則中斷其中最高級(jí)中斷;若兩個(gè)以上的同級(jí)中斷同時(shí)提出中斷請(qǐng)求,則CPU按內(nèi)部規(guī)定的硬件查詢次序響應(yīng)中斷,并轉(zhuǎn)入對(duì)應(yīng)固定矢量入口地址執(zhí)行程序。
同一優(yōu)先級(jí)內(nèi)的硬件查詢次序及中斷矢量見(jiàn)表10.8。
中斷優(yōu)先級(jí)寄存器IP1和IP的相應(yīng)控制位及組合可對(duì)7個(gè)中斷源設(shè)定為4個(gè)中斷優(yōu)先級(jí)之一。其格式如圖10.12所示。
IP1和IP中對(duì)應(yīng)的兩個(gè)控制位有4種組合,可對(duì)相應(yīng)的中斷源確定4個(gè)中斷優(yōu)先權(quán)級(jí)別之一,其關(guān)系如表10.9所示。
IP1.i的位和IP.i的位共同控制的中斷源,其對(duì)應(yīng)關(guān)系如表10.10所示。
中斷優(yōu)先級(jí)寄存器IPA1和IPA決定另外8個(gè)中斷源的優(yōu)先權(quán)的排隊(duì),每個(gè)對(duì)應(yīng)控制位IPA1.i、IPA.i的4種組合可選擇4級(jí)優(yōu)先權(quán)排隊(duì)之一,對(duì)應(yīng)關(guān)系與表10.9相同。IPA1和IPA的格式如圖10.13所示。
IPA1.i的位和IPA.i的位共同控制的中斷源如表10.11所示。