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為例)
void Timer0_isr(void) interrupt 1 using 1
//中斷服務(wù)程序
{
}
2)外部中斷的使用(以外部中斷0為例)
void ISR_Key(void) interrupt 0 using 1 //中斷服務(wù)程序
{
…………
}
3)串行口中斷的使用
……