8051 单片机中断系统的结构
0 2023-01-29

MCS-51中断系统:5个中断源(两个外部中断, 两个定时器, 一个串口),2个优先级

MCS-51 单片机的中断系统

中断相关概念

中断:当CPU正在处理某件事情时,单片机外部或内部发生的某一紧急事件请求CPU立即去处理,于是,CPU暂时中止当前的工作,转去处理这个紧急事件,待处理完毕后,再回到原来被中止的地方,继续原来的工作。

中断过程

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

中断响应和中断服务:CPU暂时中断当前的工作,转去处理事件B(B的优先级要高于A);

中断返回:待CPU将事件B处理完毕后,再回到原来事件A被中断的地方继续处理事件A ;

中断源(中断请求源):能够向CPU发出中断申请的部件。

中断系统结构

MCS-51 单片机的中断系统

外部中断0和1:低电平或者脉冲下降沿时产生中断请求;

定时器/计数器0和1:计数值由FF变为00时产生中断请求;(定时功能:计数脉冲来源于片内;计数功能:计数脉冲来源于片外);

串行口:发送或者接受1字节数据时产生中断请求;

中断控制

4个特殊功能寄存器来实施中断控制:
•   中断允许寄存器 IE
•   中断优先级寄存器 IP
•   定时/计数器及外部中断控制寄存器 TCON
•   串口控制寄存器 SCON

中断允许寄存器 IE

MCS-51 单片机的中断系统
EA 中断允许总控制位。0禁止,1允许。

ES 串行中断允许控制位。0禁止,1允许。

ET1 定时计数器1中断允许控制位。0禁止,1允许。

EX1 外部中断1允许控制位。0禁止,1允许。

ET0 定时计数器0中断允许控制位。0禁止,1允许。

EX0 外部中断0允许控制位。0禁止,1允许。

中断优先级寄存器 IP

MCS-51 单片机的中断系统
PX0 外部中断0的优先级控制位。1为高,0为低

PT0 定时中断0的优先级控制位。1为高,0为低

PX1 外部中断1的优先级控制位。1为高,0为低

PT1 定时中断0的优先级控制位。1为高,0为低

PS 串行中断的优先级控制位。1为高,0为低

串行口控制寄存器 SCON

MCS-51 单片机的中断系统
TI:串口发送中断标志,响应中断时用软件将TI标志清零

RI:串口接收中断标志,响应中断时用软件将RI标志清零

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

MCS-51 单片机的中断系统

外部中断触发方式位 IT0、IT1(ITx)

ITx = 0 低电平触发,响应中断后IEx不自动清0
ITx = 1 脉冲下降沿触发,响应中断后IEx自动清0

外部中断请求0/1的中断请求标志位IE0、IE1

定时器/计数器T0/T1的溢出中断请求标志位TF0/TF1(TFx)

启动T0/T1计数后,从初值加1计数,直到最高位产生溢出时,硬件将TFx置“1”,向CPU请求中断。 响应中断后TFx自动清0;

TR0,TR1与中断无关,仅与定时器/计数器T0/T1有关;

中断响应

中断响应就是CPU对中断源发出的中断请求做出的响应。

中断响应条件

CPU开中断,即中断允许寄存器IE中的中断允许总控制位EA = 1;
中断源发出中断请求;
中断源的中断允许位为1;
没有同级或者高级的优先级中断正在执行;

中断响应的过程

由硬件根据中断源的类型自动生成一条长调用指令LCALL addr16。
CPU执行LCALL addr16。

中断响应的时间

响应时间在3~8个机器周期之内;
最短响应时间:查询中断请求标志位(T) LCALL(2T);

中断响应的过程

将相应优先级状态触发器置1(阻断后来同级或低级中断 )
执行硬件LCALL指令(PC入栈,中断服务程序入口址送PC)
执行中断服务程序
PS:编写中断服务程序注意:中断服务程序入口存放指令LJMP或AJMP;现场保护与现场恢复。

中断返回

最后指令为RETI,功能为:

将断点从堆栈弹送PC,CPU从原断点继续执行
将相应优先级状态触发器清0,恢复原来工作状态

8051中断程序设计

中断服务程序基本流程

1. 关中断:为了防止此时有高一级的中断进入,以免现场保护的执行过程被中断。

2. 现场保护:所谓现场是指中断时刻单片机中某些寄存器和存储器单元中的数据或状态。为了不让中断服务程序的执行破坏这数据或状态,以免中断返回后影响主程序的运行,需要将他们送入堆栈保存起来。

3. 开中断:为了允许有更高级的中断进入。这样一来,除了现场保护和现场恢复外,中断处理的过程仍允许中断嵌套的功能。

4. 中断处理

5. 关中断:为了防止此时有高一级的中断进入,以免现场恢复的执行过程被中断。

6. 现场恢复:中断处理结束后,在返回主程序前,把保存的现场的内容从堆栈中弹出,以恢复那些寄存器和存储单元中的原有内容

7. 开中断:为了允许有更高级的中断进入。现场恢复后,仍允许中断嵌套的功能。

8. 中断返回:必须是返回指令RETI。CPU执行完这条指令后,把响应中断时所置“1”的优先级状态触发器清“0”,然后从堆栈中弹出栈顶上的两个字节的断点地址送到程序计数器PC,弹出的第一个字节送入PCH,第二个字节送入PCL,CPU从断点处重新执行被中断的主程序。

实例

ORG 0000H ;程序开始
LJMP START ;= LJMP 1000H
ORG 0003H ;外部中断0入口地址

LJMP INT
ORG 1000H ;主程序入口
START: MOV P1, #0AAH ; #0AAH=10101010B
SETB EX0 ;允许外部中断0
SETB PX0 ;设置外部中断0为高优先级
SETB IT0 ;设置外部中断0为脉冲下降沿触发
SETB EA ;开中断
SJMP $ ;原地跳转,等待中断

INT: CLR EA ;关中断
PUSH PSW ;现场保护
PUSH ACC ;
SETB EA ;开中断

CPL A ;对累加器A按位取反
MOV P1, A ;累加器A值送P1端口

CLR EA ;关中断
POP ACC ;现场保护
POP PSW ;
SETB EA ;开中断
RETI ;
``` 

声明: 本文转载自其它媒体或授权刊载,目的在于信息传递,并不代表本站赞同其观点和对其真实性负责,如有新闻稿件和图片作品的内容、版权以及其它问题的,请联系我们及时删除。(联系我们,邮箱:evan.li@aspencore.com )
0
评论
  • 相关技术文库
  • 单片机
  • 嵌入式
  • MCU
  • STM
  • PS/2接口协议的的嵌入式软件编程及应用分析

    1、引言随着计算机工业的发展,作为计算机最常用输入设备的键盘也日新月异。1981年IBM推出了IBMpc/XT键盘及其接口标准。该标准定义了83键,采用5脚DI

    昨天
  • 基于通用型单片机和以太网控制器实现嵌入式以太网接口的设计

    由于嵌入式技术和网络技术的迅速发展,以太网接口在嵌入式系统中的应用越来越广泛,以太网接口不仅通信速度快,传输可靠,使用和配置方便,而且不受地域限制(广域网和局域

    昨天
  • ARM TrustZone的简介概念

    TrustZone是ARM对ARM6的扩展,其实只是增加了一条指令,一个配置状态位,以及一个新的有别于核心态和用户态的安全态。ARM并没有把TrustZone设

    昨天
  • 主流ARM的分类介绍

    ARMCPU现在分为3种型号:A系列:主要是用在智能手机上,代表的系统是Andrios和IOS。R系列:和M系列一样,更注重实时功能,军工和航天的实时嵌入式设备

    昨天
  • 如何用51单片机进行遥控解码

    遥控器使用方便,功能多.目前已广泛应用在电视机、VCD、DVD、空调等各种家用电器中,且价格便宜,市场上非常容易买到。如果能将遥控器上许多的按键解码出来.用作单

    昨天
  • Cortex-M3寄存器的11个知识点

    1.寄存器CM3拥有R0~R15通用寄存器和一些特殊功能寄存器R0~R12这些通用寄存器,复位初始值都是不可预料的2.CM3有R0到R15的通用寄存器组注:绝大

    昨天
  • MM32F0/L0/W0系列MCU之EXTI

    一、MM32嵌套向量中断控制器本文针对MM32F0/L0/W0系列MCU产品。特征 ○中断都可屏蔽(除了NMI) ○16个可编程的优先等级(使用了4位中断优先级

    昨天
  • 用库函数的方法来设置STM32 DAC

    STM32的DAC模块(数字/模拟转换模块)是12位数字输入,电压输出型的DAC。DAC可以配置为8位或12位模式,也可以与DMA控制器配合使用。DAC工作在1

    昨天
  • PIC单片机设计引脚中断程序

    所有的中档系列PIC单片机,PORTB端口最高的4个引脚(RB7~RB4)在设为输入模式时,当输入电平由高到低或由低到高发生变化时,可以让单片机产生中断。这就是

    昨天
  • EEPROM和FLASH的区别

    1、EEPROM介绍ElectricallyErasableProgrammableReadOnlyMemory电气可拭除可编程只读存储器发展过程:ROM–&g

    昨天
  • stm32之CMSIS标准、库目录、GPIO

    一、CMSIS标准ST公司的stm32采用的是cortex-m3内核,内核是整个微处理器的CPU。该内核是ARM公司设计的一种处理器体系架构。内核与外设的关系就

    昨天
  • uCOS-II下编写中断服务程序

    在uCOS-II实时内核下,对外设的访问接口没有统一完善,有很多工作需要用户自己去完成。串口通信是单片机测控系统的重要组成部分,异步串行口是一个比较简单又很具代

    昨天
下载排行榜
更多
广告