单片机原理及设计应用 魏庆涛第5章

上传人:E**** 文档编号:89108568 上传时间:2019-05-18 格式:PPTX 页数:48 大小:1.58MB
返回 下载 相关 举报
单片机原理及设计应用 魏庆涛第5章_第1页
第1页 / 共48页
单片机原理及设计应用 魏庆涛第5章_第2页
第2页 / 共48页
单片机原理及设计应用 魏庆涛第5章_第3页
第3页 / 共48页
单片机原理及设计应用 魏庆涛第5章_第4页
第4页 / 共48页
单片机原理及设计应用 魏庆涛第5章_第5页
第5页 / 共48页
点击查看更多>>
资源描述

《单片机原理及设计应用 魏庆涛第5章》由会员分享,可在线阅读,更多相关《单片机原理及设计应用 魏庆涛第5章(48页珍藏版)》请在金锄头文库上搜索。

1、第五章,MCS-51系列单片机的中断系统,第一节 中断的概念,5.1.1中断概述 1.中断的概念 当CPU正在处理某件事情时,外部发生了另一件事情,要求CPU处理,若CPU响应这个事件信号,则它暂时终止当前的工作,转去处理正在发生的事件,处理完成后,再回到被中断的地方,继续做原来的工作,这一过程称为中断。,2、中断的优点,1) 实现分时操作 采用中断技术后,快速的CPU和慢速的外设可以各做各的事情。 2) 进行实时处理 任何数据在任何时间都有可能向CPU发出中断申请,要求处理。利用中断技术,CPU可以及时响应和处理来自内部功能模块或外部设备的中断请求,并为其服务,以满足实时处理和控制的要求。C

2、PU 会根据当时的情况及时做出反应,进行实时控制。,3) 故障处理 计算机系统在运行过程中往往会出现一些异常情况,利用中断技术就可以通过中断系统及时向CPU请求中断,做紧急故障处理,当正常供电后可继续执行原来的程序。 4)待机状态的唤醒 在单片机嵌入式系统的应用中,为了减少电源的功耗,当系统不处理任何事物,处于待机状态时,可以让单片机工作在休眠的低功耗方式。,5.1.2中断处理过程,在中断系统中,通常将CPU处在正常情况下运行的程序称为主程序,把产生申请中断信号的单元和事件称为中断源,由中断源向CPU所发出的申请中断信号称为中断请求信号,CPU接受中断申请停止现行程序的运行而转向为中断服务称为

3、中断响应,为中断服务的程序称为中断服务程序或中断处理程序。现行程序打断的地方称为断点,执行完中断处理程序后返回断点处继续执行主程序称为中断返回。,5.1.3中断系统应具备的功能,1) 实现中断及返回 当某个中断源发出中断申请时,CPU能根据其轻重程度决定是否给予响应。若响应了中断申请,则CPU必须执行完正在执行的指令,在当前指令执行后,通过堆栈保护断点和现场,然后转到中断服务子程序入口,执行该程序。中断处理完成后,再恢复现场和断点,CPU 返回断点,继续执行主程序。,2) 实现中断优先级排队 在系统中存在多个中断源,当多个中断源同时发出中断申请时,CPU 能找到中断优先级最高的中断源,响应其中

4、断请求。 3) 实现中断嵌套 当CPU响应某一中断源的中断请求,进行中断处理时,又有级别更高的中断源向CPU发出中断申请,则CPU会暂停当前中断的处理程序,转而响应级别更高的中断请求。直到高级中断处理完成后,才返回继续处理前面中断的中断程序。,5.1.4中断源、中断信号、中断向量,1、中断源 中断源是指能够向CPU发出中断请求信号的部件和设备。 在一个系统中,往往存在多个中断源。对于单片机讲,中断源一般可分为内部中断源和外部中断源。,2、中断信号 中断信号是指内部或外部中断源产生的中断申请信号,这个中断信号往往是电信号的某种变化形式,通常有以下几种类型: 脉冲的上升沿或下降沿(上升沿触发型或下

5、降沿触发型) 高电平或低电平(电平触发型) 电平的变化(状态变化触发型),3、中断向量 中断源发出的请求信号被CPU检测到之后,如果单片机的中断控制系统允许响应中断,CPU会自动转移,执行一个固定的程序空间地址中的指令。这个固定的地址称作中断入口地址,也叫做中断向量。中断入口地址往往是由单片机内部硬件决定的。,5.1.5中断优先级和中断嵌套,由于一个单片机会有若干个中断源,CPU可以接收若干个中断源发出的中断请求。但在同一时刻,CPU只能响应这些中断请求中的其中一个。为了避免CPU同时响应多个中断请求带来的混乱,在单片机中为每一个中断源赋予一个特定的中断优先级。,对于中断优先级的确定,通常是由

6、单片机的硬件结构规定的。一般的确定规则方式为两种: 1)某中断对应的中断向量地址越小,其中断优先级越高(硬件确定方式)。 2)通过软件对中断控制寄存器的设定,改变中断的优先级(用户软件可设置方式)。,5.1.6中断响应条件与中断控制,中断的屏蔽 单片机拥有众多中断源,但在某一具体设计中通常并不需要使用所有的中断源,或者在系统软件运行的某些关键阶段不允许中断打断现行程序的运行,这就需要一套软件可控制的中断屏蔽/允许系统。 因而从对中断源的控制角度讲,中断源还可分成非屏蔽中断、可屏蔽中断和软件中断。,2)中断控制与中断响应条件 在单片机中,对应每一个中断源都有一个相应的中断标志位,该中断标志位将占

7、据中断控制寄存器中的一位。当单片机检测到某一中断源产生符合条件的中断信号时,其硬件会自动将该中断源对应的中断标志位置“1”,这就意味着有中断信号产生了,向CPU申请中断。,响应A中断 = 全局中断允许标志中断A允许标志中断A标志 只有当全局中断允许标志位为“1”(由用户软件设置),中断A允许标志位为“1”,中断A标志位为“1”时,CPU才会响应中断A的请求信号。,第二节 MCS-51单片机中断系统,5.2.1中断请求源 MCS-51提供了5个中断请求源其中: 2个外部中断请求INT0(P3.2)和INT1(P3.3) 2个片内定时/计数器T0和T1的溢出中断请求TF0(TCON.5)和TF1(

8、TCON.7) 1个为片内串行口发送或接收中断请求TI或RI,中断入口地址(中断矢量)表,5.2.2与中断源有关的特殊寄存器,1、定时器/计数器控制寄存器TCON,TCON寄存器位定义表,IT0:外部中断0触发方式控制位 IT0=0,外部中断控制为电平触发方式 CPU采样INT0(P3.2)的输入电平,若采到低电平,则认为有中断请求,置位IE0。若采到高电平,则认为无或撤除了中断请求,对IE0清零。 注意:在该方式中,CPU响应中断后不能自动使IE0清零,也不能由软件使IE0清零,所以在中断返回前必须清除INT0引脚上的低电平,否则会再次响应中断,造成出错。而且中断请求有效信号(低电平)至少保

9、持两个机器周期。 IT0=1,外部中断控制为边沿触发方式 CPU采样INT0(P3.2)的输入电平,若连续两次采样,一个周期采样为高电平,接着下一个周期采样为低电平,则IE0置1,表示外部中断0正在向CPU请求中断,直到该中断被CPU响应时IE0由硬件自动清零。 注意:在该方式中,为了保证CPU在两个机器周期内检测到先高后低的负跳变,输入的高低电平的持续时间起码要保持一个机器周期。,IE0(IE1):外部中断0(1)标志,IE0=1,则表示外部中断0向CPU请求中断。由硬件置1,响应中断后硬件清0。 IT1:外部中断1触发方式控制位,功能与IT0类似。 IE1:外部中断1标志,功能与IE0类似

10、。 TF0:T0溢出标志,溢出时,即定时器/计数器内部数据超出最大值,由硬件使TF0置1,发中断请求,响应后TF0由硬件清0。 TF1:T1溢出标志。 TR0和TR1是控制定时器/计数器的启动和停止的,在定时器/计数器章节介绍。,2、串行口控制寄存器SCON,TI:串行口发送中断标志 在串行口以方式0发送时,每当发送完8位数据,由硬件使TI置1。 若以方式1、2、3方式发送时,在发送停止位的开始时使TI置1。 RI:串行口接收中断标志 以方式0工作,每当接收到第8位,则使RI置1 以方式1、2、3工作,且SM2=0时,接受到停止位的中间时使RI置1 以方式2、3工作,且SM2=1时,仅当接收到

11、第9位数据RB8为1,且同时还要接收到停止位的中间时才使RI置1。,3、中断允许寄存器 IE,IE寄存器位定义表 低高 EA:CPU中断开放标志EA=1,CPU开放中断,EA=0,CPU禁止所有中断; ES:串行口中断允许位ES=1,允许串行口中断,ES=0,禁止串行口中断; ET1:T1溢出中断允许位ET1=1,允许T1溢出中断,ET1=0,禁止T1溢出中断; EX1:外部中断1中断允许位 EX1=1,允许外部中断1中断,EX1=0,禁止外部中断1中断 ET0:T0溢出中断允许位ET0=1,允许T0溢出中断,ET0=0,禁止T1溢出中断;EX0:外部中断0中断允许位 EX0=1,允许外部中断

12、0中断,EX0=0,禁止外部中断1中断。,4、中断优先级寄存器IP,IP寄存器位定义表 PS:串行口中断优先级控制位 PS=1,串行口中断设置为高优先级中断 PS=0,串行口中断设置为低优先级中断; PT1:T1溢出中断优先级控制位 PT1=1,T1溢出中断设置为高优先级中断 PT1=0,T1溢出中断设置为低优先级中断; PX1:外部中断1中断优先级控制位 PX1=1,外部中断1中断设置为高级中断 PX1=0,外部中断1中断设置为低级中断; PT0:T0溢出中断优先级控制位 PT0=1,T0溢出中断设置为高优先级中断 PT0=0,T0溢出中断设置为低优先级中断; PX0:外部中断0中断优先级控

13、制位 PX0=1,外部中断0中断设置为高级中断 PX0=0,外部中断0中断设置为低级中断,5.2.3硬件查询顺序,若同时收到几个同一优先级的中断请求时,哪一个先得到服务,这取决于中断内部的硬件查询顺序。 中断优先级顺序表,5.2.4 51单片机中断响应条件及响应 过程,每个机器周期,单片机对所有中断源都进行顺序检测,并可在任意一个周期的S6期间,找到所有有效的中断请求,并对其优先级排队,只要满足下列具体条件: 无同级或高级中断正在服务 现行的指令执行到最后一个机器周期且已结束; 若现行指令为RETI或需访问特殊功能寄存器IE或IP指令时,执行完该指令且紧随其后的另一条指令也已执行完则单片机便在

14、紧接着的下一个机器周期S1期间响应中断,否则将丢弃中断查询的结果。 若满足上述条件,则CPU 就会在下一个机器周期响应中断。,2、响应过程,在CPU响应中断之后,会进入相应的中断服务程序来完成设定的中断功能,具体响应过程如下: 首先置位响应的优先级有效触发器; CPU根据查到的中断源,通过硬件自动生成调用指令(LCALL),并转到相应的中断矢量单元(一组存放中断服务子程序入口地址的单元),进入中断服务子程序,且通过堆栈保护断点; 对响应的中断入口地址值装入程序计数器PC,使程序转向该中断入口地址,以执行中断服务程序,直到遇见中断返回指令RETI。RETI必须安排在中断服务程序的最后,用于返回断

15、点,且开放中断逻辑。至此,中断响应全部完成。,3、中断处理过程中应注意的问题,1) 中断申请的撤销 2)数据保护 3) 中断响应时间,4、外部中断源的扩展,MCS-51单片机只提供两个外部中断源INT0和INT1,若服务于多个外设,这显然不够。可采用一些方法进行扩展。 借用定时器扩展外部中断源 定时器/计数器T0 和T1 是两个内部中断源,若不作为定时器和计数器使用,可将其扩展为外部中断源。方法是:将T0 或T1 设置成计数器工作方式,初值最大(FFFFH),来一个脉冲,加1即产生溢出中断。,中断和查询结合的方法 若系统有多个中断请求源,再用定时器T0或T1就不够使用,可采用中断和查询结合的方

16、法扩展中断源。在外部中断1引脚上连接4个外设的中断源,通过OC门产生中断请求信号INT1。,第三节 中断系统应用程序,例5-2现在规定外部中断0( INT0 )为电平触发方式,高优先级,试写出有关的初始化程序。 几个特殊功能寄存器有关控制位的赋值一般都包含在主程序中,而中断服务程序是一种具有特定功能的独立程序段,应根据中断源的具体要求进行编写。初始化程序如下: SETB EA ;开中断 SETB EX0 ;允许INT0中断 SETB PX0 ;将INT0设置为高优先级 CLR IT0 ;设置为电平触发方式,例5-3规定外部中断1( INT1 )为边沿触发方式,低优先级。在中断服务程序中将寄存器B的内容右循环移一位,B 的初值为10H。试编写主程序和中断服务子程序。 ORG 0000H ;主程序 LJMP MAIN ;主程序转至MAIN ORG 0013H ;中断服务子程序 LJMP INT ;转至INT MAIN:SETB EA ;中断总允许

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 其它相关文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号