系統(tǒng)版本:單片機(jī)系統(tǒng)
中斷示例:
/**********************************
中斷實(shí)現(xiàn)小燈每個(gè)一秒亮一次
***********************************/
#include <reg51.h>
sbit LED=P2^1;
#define uint unsigned int
uint count;
void main(void)
{
TMOD=0x01;
TH0=0xfc;
TL0=0x18; //定時(shí)1ms
ET0=1; //打開中斷允許
EA=1;
TR0=1; //打開計(jì)時(shí)器
while(1)
{
if(count==1000)
{
LED=~LED;
count=0;
}
}
}
void time0() interrupt 1
{ count++;
TH0=0xfc;
TL0=0x18;
}
(圖片來(lái)源于互聯(lián)網(wǎng))
中斷允許控制
CPU對(duì)中斷系統(tǒng)的所有中斷以及某個(gè)中斷源的開發(fā)和屏蔽是由中斷允許寄存器IE控制的。
(圖片來(lái)源于互聯(lián)網(wǎng))
EA:中斷允許總開關(guān)控制位。(1:所有中斷請(qǐng)求被允許;0:所有中斷請(qǐng)求被屏蔽)
ES:串行口中斷允許控制位。(1:允許串口中斷;0:禁止串口中斷)
ET1:定時(shí)器/計(jì)數(shù)器T1的溢出中斷允許控制位。(1:允許T1溢出中斷;0:禁止T1溢出中斷)
EX1:外部中斷1中斷允許位。(1:允許外部中斷1中斷;0:禁止外部中斷1中斷)
ET0:定時(shí)器/計(jì)數(shù)器T0的溢出中斷允許控制位。(1:允許T1溢出中斷;0:禁止T1溢出中斷)
EX0:外部中斷0中斷允許位。(1:允許外部中斷1中斷;0:禁止外部中斷1中斷)
中斷請(qǐng)求標(biāo)志
TCON 的中斷標(biāo)志
(圖片來(lái)源于互聯(lián)網(wǎng))
IT0(TCON.0),外部中斷0觸發(fā)方式控制位。
當(dāng)IT0=0時(shí),為低電平觸發(fā)方式。
當(dāng)IT0=1時(shí),為邊沿觸發(fā)方式(下降沿有效)。
IE0(TCON.1),外部中斷0中斷請(qǐng)求標(biāo)志位。
IT1(TCON.2),外部中斷1觸發(fā)方式控制位。
IE1(TCON.3),外部中斷1中斷請(qǐng)求標(biāo)志位。
TF0(TCON.5),定時(shí)/計(jì)數(shù)器T0溢出中斷請(qǐng)求標(biāo)志位。
TF1(TCON.7),定時(shí)/計(jì)數(shù)器T1溢出中斷請(qǐng)求標(biāo)志位。
中斷優(yōu)先級(jí)
(圖片來(lái)源于互聯(lián)網(wǎng))
中斷源
(圖片來(lái)源于互聯(lián)網(wǎng))
中斷響應(yīng)條件
中斷源有中斷請(qǐng)求
此中斷源的中斷允許位為1
CPU開中斷(EA=1)
(圖片來(lái)源于互聯(lián)網(wǎng))