第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开始处。