帶你了解8XC552 中斷系統(tǒng)
中斷裝置和中斷處理程序統(tǒng)稱為中斷系統(tǒng)。
中斷系統(tǒng)是計算機(jī)的重要組成部分。實時控制、故障自動處理、計算機(jī)與外圍設(shè)備間的數(shù)據(jù)傳送往往采用中斷系統(tǒng)。中斷系統(tǒng)的應(yīng)用大大提高了計算機(jī)效率。
不同的計算機(jī)其硬件結(jié)構(gòu)和軟件指令是不完全相同的,因此,中斷系統(tǒng)也是不相同的。計算機(jī)的中斷系統(tǒng)能夠加強(qiáng)CPU對多任務(wù)事件的處理能力。中斷機(jī)制是現(xiàn)代計算機(jī)系統(tǒng)中的基礎(chǔ)設(shè)施之一,它在系統(tǒng)中起著通信網(wǎng)絡(luò)作用,以協(xié)調(diào)系統(tǒng)對各種外部事件的響應(yīng)和處理。中斷是實現(xiàn)多道程序設(shè)計的必要條件。
中斷是CPU對系統(tǒng)發(fā)生的某個事件作出的一種反應(yīng)。 引起中斷的事件稱為中斷源。中斷源向CPU提出處理的請求稱為中斷請求。發(fā)生中斷時被打斷程序的暫停點成為斷點。CPU暫?,F(xiàn)行程序而轉(zhuǎn)為響應(yīng)中斷請求的過程稱為中斷響應(yīng)。處理中斷源的程序稱為中斷處理程序。CPU執(zhí)行有關(guān)的中斷處理程序稱為中斷處理。而返回斷點的過程稱為中斷返回。中斷的實現(xiàn)由實行軟件和硬件綜合完成,硬件部分叫做硬件裝置,軟件部分稱為軟件處理程序。
8XC552的中斷系統(tǒng)如圖10.31所示,共有15個中斷源,分為2個中斷優(yōu)先級。這15個中斷源分別是:2個定時/計數(shù)器T0和T1溢出中斷;3個T2比較中斷;2個外部中斷INT/INT1;1個T2溢出中斷;異步串行口中斷UART;A/D轉(zhuǎn)換結(jié)束中斷;4個T2捕捉中斷;I2 C同步串行口中斷。
圖10.31 8XC552中斷系統(tǒng)
中斷的允許由兩個特殊功能寄存器IEN0和IEN1控制。IEN0的地址為A8H,格式如圖10.32所示。
IEN0各位的功能說明如下:
EA:中斷系統(tǒng)總允許控制位。
EAD:A/D轉(zhuǎn)換器中斷允許位。
ES1:I2 C中斷允許位。
ES0:UART中斷允許位。
ET0、ET1:定時器T0、T1中斷允許位。
EX0、EX1:外部中斷INT0、INT1允許位。
IEN1的地址為E8H,其格式如圖10.33所示。
IEN1各位的功能說明如下:
ET2:T2溢出中斷允許位。
ECM0~ECM2:比較器0~2中斷允許位。
ECT0~ECT3:捕捉器0~3輸入端CT0I~CT3I的中斷允許位。
中斷優(yōu)先級由兩個特殊功能寄存器IP0和IP1控制。IP0的地址為B8H,其格式如圖10.34所示。
IP0各位的功能說明如下:
PAD:ADC中斷優(yōu)先級控制位。
PS1:I2 C總線中斷優(yōu)先級控制位。
PS0:UART中斷優(yōu)先級控制位。
PT0、PT1:定時器T0、T1中斷優(yōu)先級控制位。
PX0、PX1:外部中斷INT0、INT1中斷優(yōu)先級控制位。
IP1的地址為F8H,其格式定義如圖10.35所示。
IP1格式的功能說明如下:
PT2:定時器T2中斷優(yōu)先級控制位;
PCM0~PCM2:比較寄存器0~2中斷優(yōu)先級控制位;
PCT0~PCT3:捕捉寄存器0~3中斷優(yōu)先級控制位。
8XC552單片機(jī)與MCS 51單片機(jī)的中斷結(jié)構(gòu)相似,采用兩級中斷方式,1個低優(yōu)先級中斷可被1個高優(yōu)先級中斷,反之則不行。如果有幾個同級中斷同時請求中斷,則按內(nèi)部規(guī)定的中斷優(yōu)先級順序響應(yīng)中斷。表10.14為8XC552內(nèi)部中斷硬件查詢次序和中斷矢量地址。
需要指出的是,8XC552在響應(yīng)中斷后,硬件只自動清除定時器T0、T1的溢出中斷標(biāo)志TF0、TF1和由邊沿觸發(fā)的外部中斷標(biāo)志IE0、IE1,其余各中斷標(biāo)志必須由用戶用軟件加以清除。
大多數(shù)中斷系統(tǒng)都具有如下幾方面的操作,這些操作是按照中斷的執(zhí)行先后次序排列的。
①接收中斷請求。
②查看本級中斷屏蔽位,若該位為1則本級中斷源參加優(yōu)先權(quán)排隊。
③中斷優(yōu)先權(quán)選擇。
④處理機(jī)執(zhí)行完一條指令后或者這條指令已無法執(zhí)行完,則立即中止現(xiàn)行程序。接著,中斷部件根據(jù)中斷級去指定相應(yīng)的主存單元,并把被中斷的指令地址和處理機(jī)當(dāng)前的主要狀態(tài)信息存放在此單元中。
⑤中斷部件根據(jù)中斷級又指定另外的主存單元,從這些單元中取出處理機(jī)新的狀態(tài)信息和該級中斷控制程序的起始地址。
⑥執(zhí)行中斷控制程序和相應(yīng)的中斷服務(wù)程序。
⑦執(zhí)行完中斷服務(wù)程序后,利用專用指令使處理機(jī)返回被中斷的程序或轉(zhuǎn)向其他程序。