專注電子技術(shù)學(xué)習(xí)與研究
當(dāng)前位置:單片機(jī)教程網(wǎng) >> MCU設(shè)計實例 >> 瀏覽文章

關(guān)于中斷部分的小結(jié)(1)

作者:佚名   來源:本站原創(chuàng)   點擊數(shù):  更新時間:2010年05月13日   【字體:

 中斷是單片機(jī)和其他各種微處理器中必不可少的一部分之一,在此對51單片機(jī)中斷有用的部分加以小結(jié)。

小結(jié)(1)主要是對中斷部分,對中斷編程常用的特殊功能寄存器加以羅列小結(jié),這一部分是中斷思想的核心,以后的編程全部圍繞這些寄存器進(jìn)行。以后對于中斷的編程及其寄存器設(shè)置可參考這一部分內(nèi)容。
一、關(guān)于51中斷:
對于51單片機(jī)中斷子程序的編寫我們必須知道大多51單片機(jī)芯片有5個中斷源,有2個中斷優(yōu)先級,每個中斷源的優(yōu)先級可以編程控制。
5個中斷源分別是:
外部中斷0,由INT0/P3.2輸入
外部中斷1,由INT1/P3.3輸入
定時器/計數(shù)器0,溢出中斷請求;
定時器/計數(shù)器1,溢出中斷請求;
串行口發(fā)送/接收,中斷請求;
這里給出一個非常經(jīng)典的中斷源圖,根據(jù)這個圖我們就能大概知道中斷的具體過程,以及在中斷編程中哪些地方需要設(shè)置。

很明顯的,5個中斷源可以分為三類,外
部中斷,定時器中斷和串口中斷;并且我們需要對TCON,IE,IP等進(jìn)行設(shè)置。
 
二、幾個重要的特殊功能寄存器:
1.中斷允許控制寄存器IE
CPU對中斷系統(tǒng)所有中斷以及某個中斷源的開放和屏蔽是由中斷允許寄存器IE控制的。

EX0(IE.0),外部中斷0允許位;
ET0(IE.1),定時/計數(shù)器T0中斷允許位;
EX1(IE.2),外部中斷1允許位;
ET1(IE.3),定時/計數(shù)器T1中斷允許位;
ES(IE.4),串行口中斷允許位;
EA (IE.7), CPU中斷允許(總允許)位。
 
2.控制寄存器TCON
 TCON的低4位用于控制外部中斷, TCON的高4位用于控制定時/計數(shù)器的啟動和中斷申請。其格式如下:


 

TF1(TCON.7):T1溢出中斷請求標(biāo)志位。T1計數(shù)溢出時由硬件自動置TF1為1。CPU響應(yīng)中斷后TF1由硬件自動清0。T1工作時,CPU可隨時查詢TF1的狀態(tài)。所以,TF1可用作查詢測試的標(biāo)志。TF1也可以用軟件置1或清0,同硬件置1或清0的效果一樣。
TR1(TCON.6):T1運行控制位。TR1置1時,T1開始工作;TR1置0時,T1停止工作。TR1由軟件置1或清0。所以,用軟件可控制定時/計數(shù)器的啟動與停止。
TF0(TCON.5):T0溢出中斷請求標(biāo)志位,其功能與TF1類同。
TR0(TCON.4):T0運行控制位,其功能與TR1類同。
IE1(TCON.3),外部中斷1中斷請求標(biāo)志位。
IT1(TCON.2),外部中斷1觸發(fā)方式控制位。
當(dāng)IT0=0時,為電平觸發(fā)方式。
當(dāng)IT0=1時,為邊沿觸發(fā)方式(下降沿有效)。
IE0(TCON.1),外部中斷0中斷請求標(biāo)志位。
IT0(TCON.0),外部中斷0觸發(fā)方式控制位。
當(dāng)IT0=0時,為電平觸發(fā)方式。
當(dāng)IT0=1時,為邊沿觸發(fā)方式(下降沿有效)。
 
3.串口控制寄存器SCON

 

RI(SCON.0),串行口接收中斷標(biāo)志位。當(dāng)允許串行口接收數(shù)據(jù)時,每接收完一個串行幀,由硬件置位RI向CPU申請中斷。注意,RI必須由軟件清除。
TI(SCON.1),串行口發(fā)送中斷標(biāo)志位。當(dāng)CPU將一個發(fā)送數(shù)據(jù)寫入串行口發(fā)送緩沖器時,就啟動了發(fā)送過程。每發(fā)送完一個串行幀,由硬件置位TI向CPU申請中斷。注意,TI必須由軟件清除。
 
4.中斷優(yōu)先級寄存器IP
51單片機(jī)有兩個中斷優(yōu)先級,即可實現(xiàn)二級中斷服務(wù)嵌套。每個中斷源的中斷優(yōu)先級都是由中斷優(yōu)先級寄存器IP中的相應(yīng)位的狀態(tài)來規(guī)定的 。

 

PX0(IPH.0),外部中斷0優(yōu)先級設(shè)定位;
PT0(IPH.1),定時/計數(shù)器T0優(yōu)先級設(shè)定位;
PX1(IPH.2),外部中斷0優(yōu)先級設(shè)定位;
PT1(IPH.3),定時/計數(shù)器T1優(yōu)先級設(shè)定位;
PS (IPH.4),串行口優(yōu)先級設(shè)定位;
PT2 (IPH.5)    ,定時/計數(shù)器T2優(yōu)先級設(shè)定位
 
三、其他相關(guān):
1.P3口復(fù)用功能;
51單片機(jī)P3口除了作為通用I/O口外,還具有復(fù)用的特殊功能,而這些功能通常都和各種中斷有關(guān)。
P3.0 RXD(串行數(shù)據(jù)輸入口)
P3.1 TXD(串行數(shù)據(jù)輸出口)
P3.2 INT0(外部中斷0)         
P3.3 INT1(外部中斷1)
P3.4 T0(定時器/計數(shù)器0外部輸入)
P3.5 T1(定時器/計數(shù)器1外部輸入)
P3.6 WR(外部數(shù)據(jù)存儲器寫脈沖)
P3.7 RD(外部數(shù)據(jù)存儲器讀脈沖)
 
2.中斷排隊和中斷服務(wù)入口表
同一優(yōu)先級中的中斷申請不止一個時,則有中斷優(yōu)先權(quán)排隊問題。同一優(yōu)先級的中斷優(yōu)先權(quán)排隊,由中斷系統(tǒng)硬件確定的自然優(yōu)先級形成,其排列如所示:


 
3.中斷函數(shù)寫法:
在C51中中斷函數(shù)的完整語法如下:
返回值 函數(shù)名({參數(shù)}) [模式] [重入] interrupt n [ using n ]
Interrupt 后面接一個0-31的整數(shù),不允許用表達(dá)式。
例:
void INT_TEST() interrupt 0 using 0 //外部中斷0/1 編號(0/2)
{
…………
}
中斷不允許用于外部函數(shù),小型程序中的中斷程序使用默認(rèn)的寄存器0,
不帶using屬性的可能會取得更高的效率。
 
 其實今后對于中斷的應(yīng)用除了核心思想外,無非是對上述特殊功能寄存器的設(shè)置。

關(guān)閉窗口

相關(guān)文章