一、中断原理
单片机暂时中止当前正在执行的主程序,转到中断服务处理程序处理中断服务请求。中断服务处理程序处理完中断服务请求后,再回到原来被中止的程序之处(断点),继续执行被中断的主程序,完成一个中断过程。
二、中断源
中断系统共有5个中断请求源:
中断源 | 中断允许 标志位 | 中断请求的形式 | 中断请求 标志位 | 中断号 |
---|---|---|---|---|
外部中断 INT0 | EX0 | P3.2下降沿 或低电平 | IE0 | 0 |
定时器T0 | ET0 | 溢出 | TF0 | 1 |
外部中断 INT1 | EX1 | P3.3下降沿 或低电平 | IE1 | 2 |
定时器T1 | ET1 | 溢出 | TF1 | 3 |
串口 | ES | 接收或发送数据结束 | TX/RX | 4 |
三、中断允许
中断允许寄存器(IE)
(1)EA—中断总允许开关控制位。
EA=0,所有中断被屏蔽。
EA=1,所有中断被开放。
只要有中断被允许,EA=1
(2)ES—串行口中断允许位。
ES=0,禁止串行口中断。
ES=1,允许串行口中断。
(3)ET1—定时器/计数器T1的溢出中断允许位。
ET1=0,禁止T1溢出中断。
ET1=1,允许T1溢出中断。
(4)EX1—外部中断1中断允许位。
EX1=0,禁止外部中断1中断。
EX1=1,允许外部中断1中断
(5)ET0—定时器/计数器T0的溢出中断允许位。
ET0=0,禁止T0溢出中断。
ET0=1,允许T0溢出中断。
(6)EX0—外部中断0中断允许位。
EX0=0,禁止外部中断0中断。
EX0=1,允许外部中断0中断。
IE寄存器可以使用每个标志位单独置1,也可以整个寄存器赋值使用
e.g.同时使用T0和T1中断
方法一:EA=1;
ET0=1;
ET1=1;
方法二:(1000 1010)
IE=0X8A;
四、定时器中断
中断请求
中断响应
保存断点
中断返回
代码示例
五、外部中断
中断允许
中断请求
中断服务程序
- 中断请求的触发形式
a.低电平触发 K1按下P3.2=0
IE0=1
b.下降沿触发
代码示例: