原创 【单片机基础-10】中断系统

2023-3-26 20:47 346 3 3 分类: MCU/ 嵌入式 文集: 单片机基础

风风雨雨二十载,多少bug在心间。

代码编译不通过,急得抓耳直挠腮。

回想当年恩师讲,基础知道全忘干。

忙里偷闲回首看,权当引玉的抛转。

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

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

一、中断的概念

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

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

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

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

1、中断源

引起CPU中断的根源,称为中断源。

2、中断的开放与关闭

所谓中断开放(也称开中断),就是允许CPU接受中断源提出的中断请求。所谓中断的关闭(也称关中断),就是不允许CPU接受中断源提出的中断请求。

3、中断优先级控制

对于有多个中断源的单片机系统,对中断源进行响应的先后次序必须事先设定,即中断优先级控制。

4、中断处理过程

中断处理过程可归纳为中断请求、中断响应、中断处理及中断返回四部分。

二、MCS-51单片机的中断系统

MCS-51单片机中断系统的结构框图如下图所示,由5个中断源,4个用于中断控制的专用寄存器TCON、SCON、IE和IP及优先级硬件查询电路构成。

中断系统

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

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

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

或者

IE=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)程序初始化设置即开放相关中断源。

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
3
关闭 站长推荐上一条 /3 下一条