在单片机控制系统中,对于有可能发生,但又不能确定其是否发生、何时发生的事件处理,通常采用中断方式处理。

一、中断的概念

CPU在处理某一事件A时,发生了另一事件B请求CPU迅速去处理(中断发生);

CPU暂时中断当前的工作,转去处理事件B(中断响应和中断服务);

待CPU将事件B处理完毕后,再回到原来事件A被中断的地方继续处理事件A(中断返回),这一过程称为中断 。

单片机中断系统使用方法(单片机初学者轻松入门之)(1)

中断系统是单片机的重要组成部分,它使单片机具有实时中断处理能力,进行实时控制,故障自动处理等。下面介绍中断系统的几个基本概念。

1、中断源

1、中断源和中断请求标志

MCS-51单片机的5个中断源及中断请求标志见表,其中两个是外部中断源,另外3个属于内部中断源。

单片机中断系统使用方法(单片机初学者轻松入门之)(2)

MCS-51的5个中断源的中断请求标志位位于定时器控制寄存器TCON和串行口控制寄存顺SCON中,TCON及SCON中各位的名称如表所示。

单片机中断系统使用方法(单片机初学者轻松入门之)(3)

单片机中断系统使用方法(单片机初学者轻松入门之)(4)

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中各位的名称如表所示。

单片机中断系统使用方法(单片机初学者轻松入门之)(5)

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中断

或者

IE=0x85; //将相应位置1,开放相应中断

3、中断源的优先级控制

51单片机的中断源可设置为两个中断优先级:高优先级中断和低优先级中断,从而可实现两级中断嵌套。

中断优先级控制寄存器IP中各位的名称如表所示。

单片机中断系统使用方法(单片机初学者轻松入门之)(6)

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)

7、中断系统应用注意事项

在应用中断系统时应在设计硬件和软件时考虑解决如下问题:

(1)明确任务,确定采用哪些中断源及中断触发方式。

(2)中断优先级分配。

(3)中断服务程序要完成的任务。

(4)程序初始化设置即开放相关中断源。

,