51单片机(十四)—— 中断功能介绍

发布者:开国古泉最新更新时间:2021-07-16 来源: eefocus关键字:51单片机  中断功能  中断源 手机看文章 扫描二维码
随时随地手机看文章

      中断是单片机的一个重要功能,本文我们就对51单片机的中断进行介绍。


      所谓“中断”,通俗一点讲,就是单片机停止正在执行的任务,转去执行其它的急需解决的任务,当这个任务完成之后,在回到原来的任务继续执行。中断就是为了使单片机能够对外部或内部随机发生的事件进行实时处理而设计的。中断功能的存在,很多程度上提高了单片机处理外部或内部事件的能力。中断功能是我们在学习单片机过程中必须掌握的。


        STC89C516单片机内部有6个中断源,也就是说,有6种情况发生时,会使单片机去处理中断程序。


        为了能让大家更容易理解中断的概念,我们举一个通俗的例子:你打开火,烧一壶水,然后去扫地。在扫地过程中,突然听到水壶发出的水开的报警声,这时,你停止扫地,立即去关掉火,然后将开水灌进暖水瓶中,灌完开水之后你又回去扫地,这个过程就发生了一次中断,这个过程如下图所示,扫地是个主任务,水开报警将扫地中断,导致去灌水,灌完水之后有回来继续扫地。

        对于单片机来讲,中断是指CPU在处理某一事件A时,发生了另一事件B,请求CPU迅速去处理事件B(中断发生),CPU暂时停止当前的工作(中断响应),转去处理事件B(中断服务),待CPU处理完事件B后,再回到原来事件A被中断的地方继续处理事件A(中断返回),这一过程称为中断,其流程如下图所示。

       再回来分析一下刚才举的生活实例,你的主任务是扫地,水开报警是一个中断请求,这一时刻相当于断点处,你响应中断去关火,然后将开水灌入暖水瓶中,这一动作实际上就是处理中断程序,灌完开水后又在回去继续扫地,相当于处理完中断处理程序后返回主程序继续执行主程序。这里需要注意的是,水开是随时可能发生的,但是无论什么时候发生,只要水一开,就要立即去处理它。处理之后再接着继续扫地。单片机在执行程序时,中断也随时可能发生。但无论何时发生,一旦发生,单片机将立即暂停当前程序,赶去处理中断程序,处理完中断程序后再返回刚才暂停处接着执行原来的程序。


       引起CPU中断的根源,称为中断源,中断源性CPU提出中断清求,CPU暂时中断原来的事件A,转去处理事件B,对事件B处理完毕之后,在回到原来中断的地方,称为中断返回。实现上述中断的功能部件称为中断系统


中断开启与关闭,设置启用哪一个中断等都是由单片机内部的一些特殊功能寄存器来决定的。


        与中断有关的知识点还有一个叫中断嵌套,意思是说:如果单片机正在处理一个中断程序,此时,又有另一个中断优先级别更高的中断现象发生,单片机会停止当前的中断程序,而转去执行新的中断程序,新的中断程序处理完毕后再回到刚才停止的中断程序出继续执行,执行完这个中断后再返回主程序继续执行主程序。中断嵌套的流程图如下图所示。

        当设计中断时,还有一个重要的问题:中断优先级。单片机在执行程序时,可能会遇到同一时刻发生两个中断的情况,那么单片机该先执行哪个中断呢?这取决于单片机内部一个特殊功能寄存器——中断优先级寄存器的设置情况。通过设置中断优先级寄存器,我们可以告诉单片机,当两个中断同时出现时,先执行哪个中断程序。若没有设置操作优先级寄存器,单片机会按照默认的一套优先级自动处理。


STC89C516单片机内部有6个中断源,它们分别为:


INT0—外部中断0,由P32端口线引入,低电平或下降沿触发中断。


INT1—外部中断1,由P33端口线引入,低电平或下降沿触发中断。


T0—定时器/计数器0中断,由T0计数器计满回零引起。


T1—定时器/计数器1中断,由T1计数器计满回零引起。


T2—定时器/计数器2中断,由T2计数器计满回零引起。


TI/RI—串行口中断,串行端口完成一帧字符发送/接收后引起。


单片机的6个中断源的默认中断优先级别如下表所示。

image.png

        接下来我们来介绍一下,在单片机中断使用过程中经常用到的两个寄存器:中断允许寄存器IE和中断优先级寄存器IP。


(1)中断允许寄存器IE


        中断允许寄存器用来设定各个中断源的打开和关闭,IE在特殊功能寄存器中字节地址为A8H,位地址(由低位到高位)分别为A8H~AFH,该寄存器可进行位寻址,即可以对这个寄存器的每一位进行操作。单片机复位时IE寄存器全部被清0,这个寄存器的各位如下表所示。

image.png

EA—全局中断允许位。


EA=1,打开全局中断控制,在此条件下,由各个中断控制位确定相应中断的打开和关闭。


EA=0,关闭全部中断。


--—无效位。


ET2—定时器/计数器2中断允许位。


ET2=1,打开T2中断。


ET2=0,关闭T2中断。


ES—串行口中断允许位。


ES=1,打开串行口中断。


ES=0,关闭串行口中断。


ET1—定时器/计数器1中断允许位。


ET1=1,打开T1中断。


ET1=0,关闭T1中断。


EX1—外部中断1中断允许位。


EX1=1,打开外部中断1中断。


EX1=0,关闭外部中断1中断。


ET0—定时器/计数器0中断允许位。


ET0=1,打开T0中断。


ET0=0,关闭T0中断。


EX0—外部中断0中断允许位。


EX0=1,打开外部中断0中断。


EX0=0,关闭外部中断0中断。


(2)中断优先级寄存器IP


        中断优先级寄存器在特殊功能寄存器中,字节地址为B8H,位地址(由低位到高位)分别为B8H~BFH,IP寄存器用来设定各个中断源属于两级中断中的哪一级,该寄存器可以进行位寻址,即可对该寄存器的每一位进行单独操作。单片机复位时IP全部被清为0,这个寄存器的定义如下表所示。

image.png

PS—串行口中断优先级控制位。


PS=1,串行口中断定义为高优先级中断。


PS=0,串行口中断定义为低优先级中断。


PT1—定时器/计数器1中断优先级控制位。


    PT1=1,定时器/计数器1中断定义为高优先级中断。


    PT1=0,定时器/计数器1中断定义为低优先级中断。


    PX1—外部中断1中断优先级控制位。


    PX1=1,外部中断1定义为高优先级中断。


    PX1=1,外部中断1定义为高优先级中断。


    PT0—定时器/计数器0中断优先级控制位。


    PT0=1,定时器/计数器0中断定义为高优先级中断。


    PT0=0,定时器/计数器0中断定义为低优先级中断。


    PX0—外部中断0中断优先级控制位。


    PX0=1,外部中断0定义为高优先级中断。


    PX0=1,外部中断0定义为高优先级中断。


        在51单片机中,高优先级中断能够打断低优先级中断以形成中断嵌套,同优先级中断之间,或低级对高级中断之间则不能形成中断嵌套。若几个同级中断同时向CPU请求中断响应,在没有设置任何中断优先级的情况下,按照默认中断级别响应中断。在设置了中断优先级后,则按设置顺序确定响应的先后顺序。


        本文我们对中断的基本原理和相关寄存器进行了介绍,有关中断的具体用法我们将在后面的文章中进行介绍。

关键字:51单片机  中断功能  中断源 引用地址:51单片机(十四)—— 中断功能介绍

上一篇:51单片机(十五)—— 定时器模块介绍
下一篇:51单片机(十三)—— 看门狗功能测试

推荐阅读最新更新时间:2024-11-06 14:38

51单片机之定时器/计数器应用实例(方式0、1、2、3)
硬件:STC89C52RC 开发工具:Keil uVision4 对于刚接触单片机的同学来说可能会对定时器/计数器的应用很蒙圈,特别是初值的计算和各种定时方式的选择。下面希望能给你带来一个清晰的思路。 定时器:一般用于软件计时,给定时器设置一个时间,时间到了系统停止当前的工作跳转到事先定义好的定时器中断函数里,函数里可以做一些周期性的事情。 计数器:一般用于检测外来脉冲信号,给计数器设置一个次数,次数到了系统停止当前的工作跳转到事先定义好的计数器中断函数里,函数里做相应的事情。 先说一下相关的寄存器,也可以直接跳过,看后面的实例分析。 配置定时器或者计数器就是对相应的寄存器进行赋值,下面是相关的寄存器描述:
[单片机]
<font color='red'>51单片机</font>之定时器/计数器应用实例(方式0、1、2、3)
STC51单片机SPI接口单主单从模式通信-汇编语言
;============================================ ;STC12C5410 spi 通信 ;单主单从模式 ;============================================ ;MASTER EQU 1 ;主单片机 MASTER EQU 0 ;从机 ;------------------------------------- ;定义COM波特率自动重装常数 ; RELOAD_8BIT_DATA EQU 0F6H; Fosc=18.432 ,4800 ;-------------------------------------
[单片机]
51单片机在智能压力传感器设计中的应用
  在现代科技领域中,传感器技术的地位越来越重要。本文主要论述了51单片机在智能压力传感器设计中的应用,以及对其发展的影响。研究的重点是智能压力传感器本身的稳定性,结合51单片机和压力传感器,对压力感器本身抗干扰能力有了改善的作用,也对压力传感器的智能化和标准化有了促进作用。   引言   对目前所有兼容lntel 8031指令系统的单片机,统l称为51单片机。控制系统传统的设计思想和设计方法,因51单片机的应用从根本上得到了改变。现在正在用单片机通过软件的方法,来实现采用硬件电路实现的大部分控制功能,智能化的数字计算控制、模糊控制和自适应控制可通过单片机来实现,从而改变自动控制中的PID调节。压力传感器,英文名称是press
[单片机]
<font color='red'>51单片机</font>在智能压力传感器设计中的应用
基于51单片机控制的连续式捣固车起拨道补偿设计
0 引言 我国养路机械的发展起步较晚。长期以来。我国捣固车电气控制技术都依靠国外进口。由于受制于国外的技术垄断,因而严重阻碍了我国养路机械的发展进程。为了走自主发展的道路,打破现有的国外垄断局面,摆脱国外技术的控制,实现电气控制系统的国产化,开发具有自主知识产权的电气控制系统,本文针对09-32型连续式捣固车起拨道的补偿控制技术进行了研究。 传统的起拨道补偿系统大多采用运算电路组成的模拟电路来完成,这种方式控制复杂,系统精度和稳定性都比较差。为此,本文介绍了一种基于单片机的多功能起拨道补偿控制系统,因篇幅原因,本文仅介绍拨道补偿的算法设计与实验。 1 拨道补偿算法设计 为了使09-32捣固车达到更高的效率并提高操作人员的
[单片机]
基于<font color='red'>51单片机</font>控制的连续式捣固车起拨道补偿设计
51单片机外扩ROM方法介绍
强烈建议用户尽可能不要考虑外扩程序存储器,如果非扩不可,可以仿照下图所示电路进行扩展 图中P0口输出外部ROM的低8位地址信号,P2口输出高8位地址信号;ALE端输出地址锁存信号,/PSEN输出程序存储器输出使能信号。 两个模块 P89V51RD2单片机内部有64K用户ROM区和8K BOOT ROM区两个模块 两个模块在物理上是分开的,尽管地址重合,但一般不会发生冲突。 用户程序存储区 P89V51RD2内部有64K Flash ROM,不需要用户再进行ROM扩展 地址范围:0000H~FFFFH 其内部分配和其他51系列单片机是相同的 Flash ROM可以反复擦除和下载程序 擦除和编程的方法 并行编程器 ISP
[单片机]
<font color='red'>51单片机</font>外扩ROM方法介绍
A6_A7 GPS模块的51单片机例程
1.准备一个STC89C52最小系统板 2.烧录代码(先烧录代码后接线,防止接线后下载不了代码) 3.给模块供电,给模块开机 4.接线: STC89C52 A6&A7 GND - GND TXD/P3.1- U_RXD RXD/P3.0- U_TXD 单片机源程序如下: /********************************************************************* 作者:神秘藏宝室 本例程仅适用于在本店购买模块的用户使用,鄙视其它店铺的盗用行为 版权所有,盗版必究!!! A6模块链接
[单片机]
基于89C51单片机的环境噪声测量仪
   1 引 言      环境噪声监测,是人类提高生活质量,加强环境保护的一个重要环节,在各大城市的繁华街区和居民区,已有大型环境噪声显示器竖立街头。但目前国内的便携式噪声测试仪,多为价格昂贵的进口专用设备,除卫生、计量等环保专业部门拥有外,无法作为民用品推广普及。本文介绍一种以89C51单片机为核心,采用V/F转换技术构成的低成本、便携式数字显示环境噪声测量仪。该仪器工作稳定、性能良好,经校验定标后能满足一般民用需要,可广泛应用于工矿企业、机关、学校等需要对环境噪声进行测量和控制的场合。 2 声压级的测量机理   人耳的听阈一般是20μPa,痛阈一般是200 Pa,其间相差107倍,这样宽广的声压范围很不易测量,
[应用]
基于利用89C51单片机的微波脉冲测试系统设计方案
1工作原理 本系统充分利用89C51单片机的控制和计算能力,采用MCS-51汇编语言,设计了一种基于平均功率法的微波脉冲测试系统。 平均功率法测量的是射频脉冲复重周期的平均功率,并采用辅助方法测出脉冲的占空系数。设脉冲为矩形,宽度为τ,重复周期为T。则脉冲峰值功率为: 上式中,Q=τ/T是射频脉冲的占空系数。 测量时,用示波器显示其脉冲波形,并测量脉冲重复周期T和宽度τ。用测量连续波功率的方法测出脉冲的平均功率Pav。 当使用衰减器和定向耦合器时,若衰减器两端匹配时的衰减量为A(dB),定向耦合器的过渡衰减量为C(dB),方向性为无穷大,则脉冲峰值功率为 当脉冲为非理想矩形时,须乘以修正系数K进行修正,即Ppp
[单片机]
基于利用89C<font color='red'>51单片机</font>的微波脉冲测试系统设计方案
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved