1.中断的概念
当CPU正在处理一个事件A的同时,另一个事件B发生了,需要CPU快速处理(发生中断);
CPU暂时中断当前工作,转入处理事件B(中断响应和中断服务);
CPU处理完事件B后,会回到事件A被中断的地方,继续处理事件A(中断返回)。 这个过程称为中断。
中断系统是单片机的重要组成部分。 它使单片机具有实时中断处理能力、实时控制、自动故障处理等功能。下面介绍中断系统的几个基本概念。
1. 中断源
CPU中断的来源称为中断源。
2. 中断的开启和关闭
所谓中断开放(也叫开放中断)就是让CPU接受来自中断源的中断请求。 所谓关闭中断(也叫关闭中断)是指不允许CPU接受来自中断源的中断请求。
3. 中断优先级控制
对于具有多个中断源的单片机系统,必须预先设置响应中断源的顺序,即中断优先级控制。
4. 中断处理流程
中断处理过程可以概括为四个部分:中断请求、中断响应、中断处理和中断返回。
2、MCS-51单片机的中断系统
MCS-51单片机中断系统的结构框图如下图所示。 它由5个中断源、4个用于中断控制的特殊寄存器TCON、SCON、IE和IP以及优先级硬件查询电路组成。
中断系统
1. 中断源和中断请求标志
MCS-51单片机的五个中断源和中断请求标志如表所示。 其中两个是外部中断源,另外三个是内部中断源。
MCS-51的5个中断源的中断请求标志位位于定时器控制寄存器TCON和串口控制寄存器SCON中。 TCON 和SCON 中的位名称如表所示。
TF1(TF0):定时器/计数器T1(T0)的溢出中断请求标志位。 当T1/T0计数溢出时,硬件将TF1(TF0)设置为1并向CPU请求中断。 当CPU响应其中断时,TF1(TF0)被硬件自动清0。
IE1(IE0):外部中断1(外部中断0)的中断请求标志位。 IE1(IE0)=1,表示外部中断1(外部中断0)请求中断。 当CPU响应其中断时,IE1(IE0)被硬件自动清0; IE1(IE0)=0,表示外部中断不请求中断。
IT1(IT0):外部中断1的中断触发方式控制位(0)。 如果IT1(IT0)设置为0,则外部中断1(0)为电平触发。 如果IT1(IT0)设置为1,则外部中断1(0)为边沿触发。
TI:串口发送中断请求标志。 串口发送一帧数据后,硬件将TI置1,并向CPU请求中断。 CPU响应中断后,必须用软件将TI清0。
RI:串口接收中断请求标志。 串口接收到一帧数据后,硬件将RI置1,并向CPU请求中断。 CPU响应中断后,必须用软件将RI清0。
2. 中断的开启和关闭
MCS-51单片机中断的开启和关闭是由中断使能寄存器IE的相应位控制的。 IE中所有人的名字如表所示。
IE中各个的定义如下:
EA:中断使能总体控制位。 当EA=1时,所有中断请求都允许,但是否允许来自每个中断源的中断请求取决于每个中断源的中断允许控制位的状态。
ES:串口中断使能位。
ET1(ET0):定时器T1(T0)中断允许位。
EX1(EX0):外部中断1(0)中断允许位。
当中断使能位为0时,关闭相应的中断,为1时,使能相应的中断。 单片机系统复位后,IE中各中断使能位清0,即关闭所有中断。 如果需要打开相应的中断源,需要通过软件来设置。 例如,要使能外部中断0和定时器1,可以使用以下指令:
EA=1; //开启总权限
EX0=1; //开启外部中断0中断
ET1=1; //开启定时器1中断
或者
即=0x85; //将相应位设置为1并打开相应中断
3、中断源的优先级控制
51单片机的中断源可以设置两种中断优先级:高优先级中断和低优先级中断,从而实现两级中断嵌套。
中断优先级控制寄存器IP中各位的名称如表所示。
IP中各个位的定义如下:
PT0(PT1):定时器0的中断优先级控制位(1)。
PX1(PX0):外部中断1的中断优先级控制位(0)。
PS:串口中断优先级控制位。
当中断控制位为1时,对应的中断为高优先级,为0时,对应的中断为低优先级。 可以通过指令将相应位设置为1或清除为0。 单片机复位后,所有IP均清0。
4. 响应中断的条件
当单片机响应中断时,必须满足以下条件:
(1)中断源发出中断请求。
(2) 中断使能总控制位和请求中断的中断源的中断使能位均为1。
(3) 没有同级别或更高级别的中断响应。
(4)当前指令执行完毕后才能响应中断。 如果正在执行 RETI 或访问 IE 或 IP 的指令,则必须先执行另一条指令才能响应中断。
5. 中断响应应遵循的规则
中断响应遵循以下规则:
先高后低,止低转高,高忽略低,自然顺序。
自然优先级从低到高依次为:串口→定时器T1→外部中断1→定时器T0→外部中断0
6. 中断响应流程
当CPU响应中断时,硬件自动执行以下操作:
(1)保护断点,即将程序计数器PC的内容压入堆栈保存。
(2) 清除可由内部硬件清除的中断请求标志位(IE0、IE1、TF0、TF1)。
(3) 将响应的中断源的中断服务程序入口地址发送给PC,从而转入相应的中断服务程序执行。
MCS-51单片机各中断源的中断入口地址
7. 中断系统应用的注意事项
应用中断系统时,在设计硬件和软件时应考虑以下问题:
(1)明确任务,确定使用哪些中断源和中断触发方式。
(2)中断优先级分配。
(3)中断服务程序要完成的任务。
(4)程序初始化设置打开相关中断源。