今天介紹51單片機(jī)中比較重要的一個環(huán)節(jié)——中斷,所謂中斷,就是CPU在處理某一事件A時,發(fā)生了另一事件B請求CPU迅速去處理(中斷發(fā)生),CPU暫時中斷當(dāng)前的工作,轉(zhuǎn)去處理事件B(中斷響應(yīng)和中斷服務(wù)),待CPU將事件B處理完畢后,再回到原來事件A被中斷的地方繼續(xù)處理事件A(中斷返回),這一過程稱為中斷。從應(yīng)用角度上看,基本后續(xù)的很多內(nèi)容都會用到中斷,那就先簡單說一下中斷。
本文引用地址:http://m.butianyuan.cn/article/201611/322436.htm首先,中斷響應(yīng)條件。有三點:中斷源有中斷請求、此中斷源的中斷允許位為1、CPU開中斷(即EA=1)。以上三條同時滿足時,CPU才有可能響應(yīng)中斷。在此基礎(chǔ)上,下面從三個不同的中斷進(jìn)行介紹。
第一,定時器/計數(shù)器中斷鎖存寄存器TCON。如下圖所示:
TCON中不同位代表中斷的不同標(biāo)志,具體如下:
IT0(TCON.0),外部中斷0觸發(fā)方式控制位。
當(dāng)IT0=0時,為電平觸發(fā)方式。
當(dāng)IT0=1時,為邊沿觸發(fā)方式(下降沿有效)。
IE0(TCON.1),外部中斷0中斷請求標(biāo)志位。
IT1(TCON.2),外部中斷1觸發(fā)方式控制位。
IE1(TCON.3),外部中斷1中斷請求標(biāo)志位。
TF0(TCON.5),定時/計數(shù)器T0溢出中斷請求標(biāo)志位。
TF1(TCON.7),定時/計數(shù)器T1溢出中斷請求標(biāo)志位。
第二,串行口中斷。也就是SCON的中斷標(biāo)志,具體如下:
這里主要介紹兩個位。RI(SCON.0):串行口接收中斷標(biāo)志位,當(dāng)允許串行口接收數(shù)據(jù)時,每接收完一個串行幀,由硬件置位RI,注意,RI必須由軟件清除。TI(SCON.1):串行口發(fā)送中斷標(biāo)志位,當(dāng)CPU將一個發(fā)送數(shù)據(jù)寫入串行口發(fā)送緩沖器時,就啟動了發(fā)送過程,每發(fā)送完一個串行幀,由硬件置位TI,CPU響應(yīng)中斷時,不能自動清除TI,TI必須由軟件清除。
第三,中斷允許控制。在51單片機(jī)中,中斷允許和禁止都是由寄存器控制的,中斷允許寄存器(IE)的字節(jié)地址為A8H,其格式如下:
其中:
EX0(IE.0),外部中斷0允許位;
ET0(IE.1),定時/計數(shù)器T0中斷允許位;
EX1(IE.2),外部中斷0允許位;
ET1(IE.3),定時/計數(shù)器T1中斷允許位;
ES(IE.4),串行口中斷允許位;
EA(IE.7),CPU中斷允許(總允許)位。
另外,中斷函數(shù)不需要聲明,比如voidexter0()interrupt0(01234分別對應(yīng)的是外部中斷0、定時器/計數(shù)器T0、外部中斷1、定時器/計數(shù)器T1、串行口中斷)
{
d1=0;
}這個中斷函數(shù)在前面是不需要聲明的,這個比較特殊,需要引起注意。
中斷的應(yīng)用有很多,最典型的就是定時器,這個下次再說吧!
評論