今天介紹51單片機中比較重要的一個(gè)環(huán)節——中斷,所謂中斷,就是CPU在處理某一事件A時(shí),發(fā)生了另一事件B請求CPU迅速去處理(中斷發(fā)生),CPU暫時(shí)中斷當前的工作,轉去處理事件B(中斷響應和中斷服務(wù)),待CPU將事件B處理完畢后,再回到原來(lái)事件A被中斷的地方繼續處理事件A(中斷返回),這一過(guò)程稱(chēng)為中斷。從應用角度上看,基本后續的很多內容都會(huì )用到中斷,那就先簡(jiǎn)單說(shuō)一下中斷。
本文引用地址:http://dyxdggzs.com/article/201611/322436.htm首先,中斷響應條件。有三點(diǎn):中斷源有中斷請求、此中斷源的中斷允許位為1、CPU開(kāi)中斷(即EA=1)。以上三條同時(shí)滿(mǎn)足時(shí),CPU才有可能響應中斷。在此基礎上,下面從三個(gè)不同的中斷進(jìn)行介紹。
第一,定時(shí)器/計數器中斷鎖存寄存器TCON。如下圖所示:

TCON中不同位代表中斷的不同標志,具體如下:
IT0(TCON.0),外部中斷0觸發(fā)方式控制位。
當IT0=0時(shí),為電平觸發(fā)方式。
當IT0=1時(shí),為邊沿觸發(fā)方式(下降沿有效)。
IE0(TCON.1),外部中斷0中斷請求標志位。
IT1(TCON.2),外部中斷1觸發(fā)方式控制位。
IE1(TCON.3),外部中斷1中斷請求標志位。
TF0(TCON.5),定時(shí)/計數器T0溢出中斷請求標志位。
TF1(TCON.7),定時(shí)/計數器T1溢出中斷請求標志位。
第二,串行口中斷。也就是SCON的中斷標志,具體如下:

這里主要介紹兩個(gè)位。RI(SCON.0):串行口接收中斷標志位,當允許串行口接收數據時(shí),每接收完一個(gè)串行幀,由硬件置位RI,注意,RI必須由軟件清除。TI(SCON.1):串行口發(fā)送中斷標志位,當CPU將一個(gè)發(fā)送數據寫(xiě)入串行口發(fā)送緩沖器時(shí),就啟動(dòng)了發(fā)送過(guò)程,每發(fā)送完一個(gè)串行幀,由硬件置位TI,CPU響應中斷時(shí),不能自動(dòng)清除TI,TI必須由軟件清除。
第三,中斷允許控制。在51單片機中,中斷允許和禁止都是由寄存器控制的,中斷允許寄存器(IE)的字節地址為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中斷允許(總允許)位。
另外,中斷函數不需要聲明,比如voidexter0()interrupt0(01234分別對應的是外部中斷0、定時(shí)器/計數器T0、外部中斷1、定時(shí)器/計數器T1、串行口中斷)
{
d1=0;
}這個(gè)中斷函數在前面是不需要聲明的,這個(gè)比較特殊,需要引起注意。
中斷的應用有很多,最典型的就是定時(shí)器,這個(gè)下次再說(shuō)吧!
評論