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

51單片機(jī)的中斷體系結(jié)構(gòu)

作者:liuzhangchao   來源:liuzhangchao的空間   點(diǎn)擊數(shù):  更新時(shí)間:2014年05月23日   【字體:
80C51的中斷系統(tǒng)有5個(gè)中斷源(8052有 6個(gè)) ,2個(gè)優(yōu)先級(jí),可實(shí)現(xiàn)二級(jí)中斷嵌套 。MCS-51系列單片機(jī)中斷系統(tǒng)的機(jī)構(gòu)如下:

與中斷系統(tǒng)相關(guān)的特殊寄存器:
1)中斷允許控制寄存器(IE)------ 控制各中斷的開放和屏蔽
2)中斷優(yōu)先級(jí)控制寄存器(IP)------設(shè)置各中斷的優(yōu)先級(jí)
3)定時(shí)器/計(jì)數(shù)器控制寄存器(TCON)----定時(shí)器和外部中斷的控制
4)串行口控制寄存器(SCON)------串行中斷的控制

中斷類型分為三類:
1)T0、T1是2個(gè)定時(shí)器/計(jì)數(shù)器中斷,由片內(nèi)定時(shí)器提供;
2)INT0、INT1是2個(gè)外部中斷,由引腳P3.2和P3.2提供;
3)RX、TX為串行口中斷所用,由片內(nèi)串口提供。





1、(P3.2)/(P3.3)可由IT0(TCON.0)/IT1(TCON.2)選擇其為低電平有效還是下降沿有效。當(dāng)CPU檢測到P3.2/P3.3引腳上出現(xiàn)有效的中斷信號(hào)時(shí),中斷標(biāo)志IE0(TCON.1)/IE1(TCON.3)置1,向CPU申請(qǐng)中斷。

3、TF0(TCON.5)/TF1(TCON.7),片內(nèi)定時(shí)/計(jì)數(shù)器T0/T1溢出中斷請(qǐng)求標(biāo)志。當(dāng)定時(shí)/計(jì)數(shù)器T0/T1發(fā)生溢出時(shí),置位TF0/TF1,并向CPU申請(qǐng)中斷。

5、RI(SCON.0)或TI(SCON.1),串行口中斷請(qǐng)求標(biāo)志。當(dāng)串行口接收完一幀串行數(shù)據(jù)時(shí)置位RI或當(dāng)串行口發(fā)送完一幀串行數(shù)據(jù)時(shí)置位TI,向CPU申請(qǐng)中斷。

上述只是向CPU申請(qǐng)中斷,如果要得到CPU的相應(yīng),還要設(shè)置相應(yīng)的中斷允許IE和優(yōu)先級(jí)IP,中斷方能的到響應(yīng)。

1)定時(shí)器中斷的使用(以定時(shí)器0為例)
 ……
 TMOD |= 0x01 | 0x04;  //使用模式1,16位計(jì)數(shù)器,使用"|"符號(hào)可以在使用多個(gè)定時(shí)器時(shí)不受影響     
 TH0=0xFF;      //給定初值
 TL0=245;         //從245計(jì)數(shù)到255 
 EA=1;            //總中斷打開
 ET0=1;           //定時(shí)器中斷打開
 TR0=1;           //定時(shí)器開關(guān)打開

void Timer0_isr(void) interrupt 1 using 1    //中斷服務(wù)程序
{
 TH0=0xFF;      //重新給定初值
 TL0=245; 

 ……
}
2)外部中斷的使用(以外部中斷0為例)
  …………
  EA=1;          //全局中斷開
  EX0=1;         //外部中斷0開
  IT0=0;         //電平觸發(fā)

void ISR_Key(void) interrupt 0 using 1 //中斷服務(wù)程序
{
…………
}
3)串行口中斷的使用
……
關(guān)閉窗口

相關(guān)文章