系统版本:单片机系统
中断示例:
/**********************************
中断实现小灯每个一秒亮一次
***********************************/
#include <reg51.h>
sbit LED=P2^1;
#define uint unsigned int
uint count;
void main(void)
{
TMOD=0x01;
TH0=0xfc;
TL0=0x18; //定时1ms
ET0=1; //打开中断允许
EA=1;
TR0=1; //打开计时器
while(1)
{
if(count==1000)
{
LED=~LED;
count=0;
}
}
}
void time0() interrupt 1
{ count++;
TH0=0xfc;
TL0=0x18;
}
(图片来源于互联网)
中断允许控制
CPU对中断系统的所有中断以及某个中断源的开发和屏蔽是由中断允许寄存器IE控制的。
(图片来源于互联网)
EA:中断允许总开关控制位。(1:所有中断请求被允许;0:所有中断请求被屏蔽)
ES:串行口中断允许控制位。(1:允许串口中断;0:禁止串口中断)
ET1:定时器/计数器T1的溢出中断允许控制位。(1:允许T1溢出中断;0:禁止T1溢出中断)
EX1:外部中断1中断允许位。(1:允许外部中断1中断;0:禁止外部中断1中断)
ET0:定时器/计数器T0的溢出中断允许控制位。(1:允许T1溢出中断;0:禁止T1溢出中断)
EX0:外部中断0中断允许位。(1:允许外部中断1中断;0:禁止外部中断1中断)
中断请求标志
TCON 的中断标志
(图片来源于互联网)
IT0(TCON.0),外部中断0触发方式控制位。
当IT0=0时,为低电平触发方式。
当IT0=1时,为边沿触发方式(下降沿有效)。
IE0(TCON.1),外部中断0中断请求标志位。
IT1(TCON.2),外部中断1触发方式控制位。
IE1(TCON.3),外部中断1中断请求标志位。
TF0(TCON.5),定时/计数器T0溢出中断请求标志位。
TF1(TCON.7),定时/计数器T1溢出中断请求标志位。
中断优先级
(图片来源于互联网)
中断源
(图片来源于互联网)
中断响应条件
中断源有中断请求
此中断源的中断允许位为1
CPU开中断(EA=1)
(图片来源于互联网)