中断相关寄存器
(1)中断允许控制
CPU对中断系统所有中断以及某个中断源的开放和屏蔽是由中断允许寄存器IE控制的。
(IE.0),外部中断0允许位;
ET0(IE.1),定时/计数器T0中断允许位;EX1(IE.2),外部中断0允许位;
ET1(IE.3),定时/计数器T1中断允许位;
ES(IE.4),串行口中断允许位;
EA(IE.7),CPU中断允许(总允许)位。
(2)中断请求标志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)中断源有中断请求;
②此中断源的中断允许位为1;
③CPU开中断(即EA=1)。
以上三条同时满足时,CPU才有可能响应中断。在使用中断时我们需要做什么呢?
①你想使用的中断是哪个?选择相应的中断号;
②你所希望的触发条件是什么?
③你希望在中断之后干什么?
我们以外部中断0为例,
如下:主程序中需要有以下代码:
EA=1;//打开总中断开关
EX0=1;//开外部中断0
IT0=0/1;//设置外部中断的触发方式
voidint0()interrupt 1
{//编写用户所需的功能代码}