当前位置: 首页 > backend >正文

51单片机-中断系统

本质概述思维导图:

51单片机中断系统

中断系统概述

        中断系统是为使CPU具有对外界紧急事件的实时处理能力而设置的。
当中央处理机CPU正在处理某件事的时候外界发生了紧急事件请求,要求CPU暂停当前的工作,转而去处理这个紧急事件,处理完以后,再回到原来被中断的地方,继续原来的工作,这样的过程称为中断。实现这种功能的部件称为中断系统,请示CPU中断的请求源称为中断源。微型机的中断系统一般允许多个中断源,当几个中断源同时向CPU请求中断,要求为它服务的时候,这就存在CPU优先响应哪一个中断源请求的问题。通常根据中断源的轻重缓急排队,优先处理最紧急事件的中断请求源,即规定每一个中断源有一个优先级别。CPU总是先响应优先级别最高的中断请求。

        当CPU正在处理一个中断源请求的时候(执行相应的中断服务程序),发生了另外一个优先级比它还高的中断源请求。如果CPU能够暂停对原来中断源的服务程序,转而去处理优先级更高的中断请求源,处理完以后,再回到原低级中断服务程序,这样的过程称为中断嵌套。这样的中断系统称为多级中断系统,没有中断嵌套功能的中断系统称为单级中断系统。

中断触发演示图:

中断处理过程可分为四个阶段:1、中断请求阶段;2、中断响应阶段;3、中断处理阶段;4、中断返回阶段;

        STC89C51RC/RD+系列单片机提供了8个中断请求源,它们分别是:外部中断0(INTO)定时器0中断、外部中断1(INT1)、定时器1中断、串口(UART)中断、定时器2中断、外部中断2(INT2)、外部中断3(INT3)。所有的中断都具有4个中断优先级。用户可以用关总中断允许位(EA/IE.7)或相应中断的允许位来屏蔽所有的中断请求,也可以用打开相应的中断允许位来使CPU响应相应的中断申请:每一个中断源可以用软件独立地控制为开中断或关中断状态;每一个中断的优先级别均可用软件设置。高优先级的中断请求可以打断低优先级的中断,反之,低优先级的中断请求不可以打断高优先级及同优先级的中断。当两个相同优先级的中断同时产生时,将由查询次序来决定系统先响应哪个中断。STC89C51RC/RD+系列单片机的各个中断查询次序如下表6-1所示:

中断系统结构

STC89C51RC/RD+系列单片机的中断系统结构示意图如图6-1所示

中断源介绍:

结构图中共展示8个中断源,按功能分类如下:

1、外部中断(2路)

        INT0(P3.2引脚)

                触发方式:由TCON.0(IT0位)控制

                IT0=0:低电平触发

                IT0=1:下降沿触发

                请求标志:IE0(TCON.1),硬件自动置位,响应后硬件清零

        INT1(P3.3引脚)

                触发方式:由TCON.2(IT1位)控制,

                IT1=0:低电平触发

                IT1=1:下降沿触发

                请求标志:IE1(TCON.3)

2、定时器中断(3路)

        Timer0中断

                触发条件:定时器0计数溢出(TF0置位)

                请求标志:TF0(TCON.5),需软件清零

        Timer1中断

                触发条件:定时器1计数溢出(TF1置位)

                请求标志:TF1(TCON.7),需软件清零

        Timer2中断

                触发条件:定时器2溢出(TF2)或捕获/重装载(EXF2)

                请求标志:TF2(T2CON.7)或 EXF2(T2CON.6)

3、串行通信中断(1路)

        UART中断

                触发条件:接收完成(RI置位)或发送完成(TI置位)

                请求标志:RI(SCON.0)/TI(SCON.1),需软件清零

4、扩展外部中断(2路)

        INT2(P1.2引脚)

                触发方式:由XICON.0(IT2位)控制

                IT2=0:低电平触发

                IT2=1:下降沿触发

                请求标志:IE2(XICON.1)

        INT3(P1.3引脚)

                触发方式:由XICON.4(IT3位)控制

                请求标志:IE3(XICON.5)

中断源触发表:

中断寄存器

        下表中是与STC89C51RC/RD+系列单片机中断相关的所有寄存器。下面逐一地对寄存器进行介绍;

1、IE寄存器(中断允许寄存器(可位寻址))

EA:CPU的总中断允许控制位,EA=1,CPU开放中断,EA=0,CPU屏蔽所有的中断申请。EA的作用是使中断允许形成两级控制。即各中断源首先受EA控制:其次还受各中断源自己的中断允许控制位控制。
ET2:定时/计数器T2的溢出中断允许位。ET2=1,允许T2中断;ET2=0,禁止T2中断。
ES :串行口1中断允许位。ES=1,允许串行口1中断;ES=0,禁止串行口1中断。
ET1:定时/计数器T1的溢出中断允许位。ET1=1,允许T1中断;ET1=0,禁止T1中断。
EX1:外部中断1中断允许位。EX1=1,允许外部中断1中断;EX1=0,禁止外部中断1中断。
ETO:TO的溢出中断允许位。ETO=1,允许T0中断;ET0=0禁止T0中断。
EX0:外部中断0中断允许位。EX0=1,允许中断:EX0=0禁止中断。

2、XICON寄存器(辅助中断控制寄存器(可位寻址))

PX3:置位表明外部中断3的优先级为高,优先级最终由[PX3H,PX3]=[0,0];[0,1];[1,0];[1,1]来决定。

EX3:如被设置成1,允许外部中断3中断;如被清成0,禁止外部中断3中断。

IE3:外部中断3中断请求标志位,中断条件成立后,IE3=1,可由硬件自动清零。

IT3:当此位由软件置位时,外部中断3为下降沿触发中断;当此位由软件清零时,为低电平触发中断。

PX2:置位表明外部中断2的优先级为高,优先级最终由[PX2H,PX2]=[0,0];[0,1];[1,0];PX2:[1,1]来决定。

EX2:如被设置成1,允许外部中断2中断;如被清成0,禁止外部中断2中断。

IE2 :外部中断2中断请求标志位,中断条件成立后,IE2=1,可由硬件自动清零。

IT2:当此位由软件置位时,外部中断2为下降沿触发中断;当此位由软件清零时,为低电平触发IT2 :中断。

3、IPH中断优先级寄存器高(不可位寻址)和IP中断优先级寄存器低(可位寻址)

PX3H,PX3:外部中断3优先级控制位:

        当PX3H=0日PX3=0时,外部中断3为最低优先级中断(优先级0)

        当PX3H=0日PX3=1时,外部中断3为较低优先级中断(优先级1)

        当PX3H=1日PX3=0时,外部中断3为较高优先级中断(优先级2)

        当PX3H=1日PX3=1时,外部中断3为最高优先级中断(优先级3)


PX2H,PX2:外部中断2优先级控制位:

        当PX2H=0且PX2=0时,外部中断2为最低优先级中断(优先级0)

        当PX2H=0且PX2=1时,外部中断2为较低优先级中断(优先级1)

        当PX2H=1日PX2=0时,外部中断2为较高优先级中断(优先级2)

        当PX2H=1且PX2=1时,外部中断2为最高优先级中断(优先级3)


PT2H,PT2:定时器2中断优先级控制位:

        当PT2H=0且PT2=0时,定时器2中断为最低优先级中断(优先级0)

        当PT2H=0且PT2=1时,定时器2中断为较低优先级中断(优先级1)

        当PT2H=1月PT2=0时,定时器2中断为较高优先级中断(优先级2)

        当PT2H=1月PT2=1时,定时器2中断为最高优先级中断(优先级3)


PSH,PS:串口1中断优先级控制位。

        当PSH=0日PS=0时,串口1中断为最低优先级中断(优先级0)

        当PSH=0且PS=1时,串口1中断为较低优先级中断(优先级1)

        当PSH=1日PS=0时,串口1中断为较高优先级中断(优先级2)

        当PSH=1月PS=1时,串口1中断为最高优先级中断(优先级3)


PT1H,PT1:定时器1中断优先级控制位。

        当PT1H=0且PT1=0时,定时器1中断为最低优先级中断(优先级0)

        当PT1H=0日PT1=1时,定时器1中断为较低优先级中断(优先级1)

        当PT1H=1月PT1=0时,定时器1中断为较高优先级中断(优先级2)

        当PT1H=1日PT1=1时,定时器1中断为最高优先级中断(优先级3)


PX1H,PX1:外部中断1优先级控制位。

        当PX1H=0且PX1=0时,外部中断1为最低优先级中断(优先级0)

        当PX1H=0且PX1=1时,外部中断1为较低优先级中断(优先级1)

        当PX1H=1月PX1=0时,外部中断1为较高优先级中断(优先级2)

        当PX1H=1且PX1=1时,外部中断1为最高优先级中断(优先级3)


PTOH,PT0:定时器0中断优先级控制位:

        当PTOH=0且PT0=0时,定时器0中断为最低优先级中断(优先级0)

        当PTOH=0日PT0=1时,定时器0中断为较低优先级中断(优先级1)

        当PT0H=1月PT0=0时,定时器0中断为较高优先级中断(优先级2)

        当PTOH=1且PT0=1时,定时器0中断为最高优先级中断(优先级3)


PXOH,PX0:外部中断0优先级控制位。

        当PX0H=0且PX0=0时,外部中断0为最低优先级中断(优先级0)

        当PX0H=0日PX0=1时,外部中断0为较低优先级中断(优先级1)

        当PX0H=1日PX0=0时,外部中断0为较高优先级中断(优先级2)

        当PX0H=1日PX0=1时,外部中断0为最高优先级中断(优先级3)

4、TCON定时器T0/T1中断控制寄存器(可位寻址)

5、SCON串行口控制寄存器(可位寻址)

6、T2CON定时器2/计数器中断控制寄存器(可位寻址)


制作不易!喜欢的小伙伴给个小赞赞!喜欢我的小伙伴点个关注!有不懂的地方和需要的资源随时问我哟!

http://www.xdnf.cn/news/18373.html

相关文章:

  • Ansys Motor-CAD:概述(EMag、THERM、LAB、MECH)
  • 171-基于Flask的笔记本电脑数据可视化分析系统
  • Linux数字列排序命令
  • Apache Ozone 介绍与部署使用(最新版2.0.0)
  • 大数据毕业设计推荐:基于Hadoop+Spark的手机信息分析系统完整方案
  • Matrix-Zero:昆仑万维发布的AI世界模型,支持单张图生成3D世界
  • 微信小程序,事件总线(Event Bus) 实现
  • 不同类型代理 IP 在爬虫场景下的表现对比
  • 05 ODS层(Operation Data Store)
  • 集成电路学习:什么是Camera Calibration相机标定
  • 【自用】JavaSE--网络通信
  • 电脑芯片其实更偏向MPU不是CPU,GPU CPU NPU MPU MCU的区别
  • 近端策略优化算法PPO的核心概念和PyTorch实现详解
  • ElasticSearch——常用命令
  • 数据结构-HashSet
  • Android auncher3实现简单的负一屏功能
  • 基于SpringBoot的宠物用品系统【2026最新】
  • Android面试指南(四)
  • AI研究引擎的简单技术实现步骤
  • [软件开发技术栈]从MVVM到MVC
  • 机器学习5
  • Linux入门DAY29
  • (19)python复杂度计算:在线AI(时间复杂)和本地工具(圈复杂度)
  • 什么是Qoder?如何下载?如何体验?Qoder和其他 AI IDE 什么区别?
  • 7.Shell脚本修炼手册---awk基础入门版
  • NewsNow搭建喂饭级教程
  • Java实战:深度解析SQL中的表与字段信息(支持子查询、连接查询)
  • 【Java后端】Spring Boot 实现请求设备来源统计与UA解析全攻略
  • 今天,字节开源Seed-OSS-36B模型,512k上下文
  • OpenHarmony之 蓝牙子系统全栈剖析:从协议栈到芯片适配的端到端实践(大合集)