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