跳转至

第4章 中断系统

第四章 中断系统

基本介绍

MCS-51单片机有5个中断请求源;

有4个用于中断控制的特殊功能寄存器IE、IP、TCON(其中6位)、SCON(其中2位)

可提供2个中断优先级,实现二级中断嵌套

5个中断源对应5个固定的中断入口地址

入口地址需要背:

按照中断优先级来,第一个入口地址为0003H,后面每个增加一个字节(8位)

中断请求源

5个中断请求源

外部中断:INT0(P3.2)和INT1(P3.3)

内部中断:定时器/计数器(T0、T1)溢出中断

以及串行口的数据发送和接收中断

以上所有中断请求标志分别由特殊功能寄存器TCON和SCON来锁存

定时器/计数器控制寄存器TCON

TF0:定时器/计数器T0溢出标志,溢出时由硬件置1,并请求中断(即向CPU请求中断),CPU响应后,由硬件将TF0清0,也可由软件清0(用查询方式时)

TF1:定时器/计数器T1溢出标志,溢出时由硬件置1,并请求中断(即向CPU请求中断),CPU响应后,由硬件将TF0清0,也可由软件清0(用查询方式时)

IT0:外部中断0触发方式控制位

IE0:外部中断0标志。若IE0=1,则外部中断0向CPU请求中断

IT1:外部中断1触发方式控制位

IE1:外部中断1标志。若IE1=1,则外部中断1向CPU请求中断

串行口控制寄存器SCON

中断允许寄存器IE

EA:CPU中断总允许标志。

ES:串行口中断允许位。

ET1:T1溢出中断允许位。

EX1:外部中断1中断允许位。

ET0:T0溢出中断允许位。

EX0:外部中断0中断允许位。

单片机复位后,IE中各位均被清0,即禁止所有中断

中断优先级寄存器IP

MCS-51单片机中有2个中断优先级,每个中断请求源可编程为高优先级中断或低优先级,可实现二级中断嵌套

低级中断能被高级中断打断,但不能被同级中断打断;高级中断不能被任何中断打断,一定要返回主程序后再执行一条指令才能响应新的中断请求。

当CPU同时接收到几个同优先级的中断请求时,哪一个先得到响应,取决于CPU中断系统内部的查询顺序,即“自然优先级”。

中断的响应

CPU响应中断时,其工作过程是:

置位相应的“优先级状态”触发器,即指出CPU当前正在处理的中断优先级,以阻断同级或低级中断请求

自动清除中断标志(TI和RI除外)。

自动保护断点,即将现行PC内容压入堆栈,并根据中断源把相应的中断程序入口地址装入PC中。

5个中断程序的入口地址是固定的,且各入口地址之间只有8个单元的空间,难以容纳一个中断服务程序。

所以一般情况下,在这些矢量单元中存放一条无条件转移指令,转移目标地址处存放真正的中断服务程序。

例如:

ORG   0003H     
LJMP  2000H

这样,真正的INT0中断程序是存放在2000H开始处。