51單片機(jī)中斷詳解(上)
一.中斷的概念
中斷發(fā)生
CPU在處理某一事件A時(shí),發(fā)生了另一事件B請(qǐng)求CPU迅速去處理
中斷響應(yīng)和中斷服務(wù)
CPU暫時(shí)中斷當(dāng)前的工作,轉(zhuǎn)去處理事件B
中斷返回
待CPU將事件B處理完畢后,再回到原來(lái)事件A被中斷的地方繼續(xù)處理事件A
這一過程稱為中斷
二.中斷過程示意圖
三.MCS51中斷系統(tǒng)的結(jié)構(gòu)
MCS51的中斷系統(tǒng)有5個(gè)中斷源(8052有 6個(gè)) ,2個(gè)優(yōu)先級(jí),可實(shí)現(xiàn)二級(jí)中斷嵌套
中斷編號(hào) | 中斷名 | 中斷源 |
---|---|---|
0 | 外部中斷0 | IE0(P3.2) |
1 | 定時(shí)器0溢出中斷 | TF0 |
2 | 外部中斷1 | IE1(P3.3) |
3 | 定時(shí)器1溢出中斷 | TF1 |
4 | 串行口中斷 | RI |
四.中斷寄存器
單片機(jī)有10個(gè)寄存器主要與中斷程序的書寫控制有關(guān)
中斷允許控制寄存器IE
定時(shí)器控制寄存器TCON
串口控制寄存器SCON
中斷優(yōu)先控制寄存器IP
定時(shí)器工作方式控制寄存器TMOD
定時(shí)器初值賦予寄存器(TH0/TH1,TL0/TL1)
五.部分寄存器詳解
1.中斷允許控制寄存器(IE)
EX0:外部中斷0允許位;
ET0:定時(shí)/計(jì)數(shù)器T0中斷允許位;
EX1:外部中斷1允許位;
ET1:定時(shí)/計(jì)數(shù)器T1中斷允許位;
ES :串行口中斷允許位;
EA :CPU中斷允許(總允許)位。
2.定時(shí)器/計(jì)數(shù)器控制寄存器控制寄存器(TCON)
IT0:外部中斷0觸發(fā)方式控制位
當(dāng)IT0=0時(shí),為電平觸發(fā)方式(低電平有效)
當(dāng)IT0=1時(shí),為邊沿觸發(fā)方式(下降沿有效)
IE0:外部中斷0中斷請(qǐng)求標(biāo)志位
IT1:外部中斷1觸發(fā)方式控制位
IE1:外部中斷1中斷請(qǐng)求標(biāo)志位
TF0:定時(shí)/計(jì)數(shù)器T0溢出中斷請(qǐng)求標(biāo)志位
TF1:定時(shí)/計(jì)數(shù)器T1溢出中斷請(qǐng)求標(biāo)志位
3.串行口控制寄存器(SCON)
RI:串行口接收中斷標(biāo)志位。當(dāng)允許串行口接收數(shù)據(jù)時(shí),每接收完一個(gè)串行幀,由硬件置位RI。注意,RI必須由軟件清除。
TI:串行口發(fā)送中斷標(biāo)志位。當(dāng)CPU將一個(gè)發(fā)送數(shù)據(jù)寫入串行口發(fā)送緩沖器時(shí),就啟動(dòng)了發(fā)送過程。每發(fā)送完一個(gè)串行幀,由硬件置位TI。CPU響應(yīng)中斷時(shí),不能自動(dòng)清除TI,TI必須由軟件清除。
4.中斷優(yōu)先級(jí)控制寄存器(IP)
PX0:外部中斷0優(yōu)先級(jí)設(shè)定位
PT0:定時(shí)/計(jì)數(shù)器T0優(yōu)先級(jí)設(shè)定位
PX1:外部中斷0優(yōu)先級(jí)設(shè)定位
PT1:定時(shí)/計(jì)數(shù)器T1優(yōu)先級(jí)設(shè)定位
PS :串行口優(yōu)先級(jí)設(shè)定位
PT2:定時(shí)/計(jì)數(shù)器T2優(yōu)先級(jí)設(shè)定位
六.中斷響應(yīng)條件
中斷源有中斷請(qǐng)求
此中斷源的中斷允許位為1
開中斷(即EA=1)