MCS-51_第05章 MCS-51的中断系统

上传人:woxinch****an2018 文档编号:57074518 上传时间:2018-10-18 格式:PPT 页数:34 大小:478KB
返回 下载 相关 举报
MCS-51_第05章 MCS-51的中断系统_第1页
第1页 / 共34页
MCS-51_第05章 MCS-51的中断系统_第2页
第2页 / 共34页
MCS-51_第05章 MCS-51的中断系统_第3页
第3页 / 共34页
MCS-51_第05章 MCS-51的中断系统_第4页
第4页 / 共34页
MCS-51_第05章 MCS-51的中断系统_第5页
第5页 / 共34页
点击查看更多>>
资源描述

《MCS-51_第05章 MCS-51的中断系统》由会员分享,可在线阅读,更多相关《MCS-51_第05章 MCS-51的中断系统(34页珍藏版)》请在金锄头文库上搜索。

1、第5章 MCS - 51的中断系统,5.1 中断的概述 5.2 MCS - 51中断系统 5.3 多外部中断源系统的设计,5.1 中 断 的 概 述,1. 中断 中断是指计算机在执行某一程序的过程中, 由于计算机系统内、 外的某种原因, 而必须中止原程序的执行, 转去执行相应的处理程序, 待处理结束之后, 再回来继续执行被中止的原程序的过程。 采用了中断技术后的计算机, 可以解决CPU与外设之间速度匹配的问题, 使计算机可以及时处理系统中许多随机的参数和信息, 同时, 它也提高了计算机处理故障与应变的能力。,2. 中断源 中断源是指在计算机系统中向CPU发出中断请求的来源, 中断可以人为设定,

2、 也可以是为响应突发性随机事件而设置。通常有I/O设备、实时控制系统中的随机参数和信息故障源等。,3. 中断优先级 中断优先级越高, 则响应优先权就越高。当CPU正在执行中断服务程序时, 又有中断优先级更高的中断申请产生, 这时CPU就会暂停当前的中断服务转而处理高级中断申请, 待高级中断处理程序完毕再返回原中断程序断点处继续执行, 这一过程称为中断嵌套。,4. 中断响应的过程 (1) 在每条指令结束后, 系统都自动检测中断请求信号, 如果有中断请求,且CPU处于开中断状态下, 则响应中断。 (2) 保护现场, 在保护现场前, 一般要关中断, 以防止现场被破坏。保护现场一般是用堆栈指令将原程序

3、中用到的寄存器推入堆栈。 (3) 中断服务, 即为相应的中断源服务。 (4) 恢复现场, 用堆栈指令将保护在堆栈中的数据弹出来, 在恢复现场前要关中断, 以防止现场被破坏。在恢复现场后应及时开中断。 (5) 返回, 此时 CPU将推入到堆栈的断点地址弹回到程序计数器, 从而使CPU继续执行刚才被中断的程序。,5.2 MCS - 51中断系统,图5.1 MCS - 51中断系统结构框图,5.2.1 中断源,表5.1 8051 中 断 源,1. 特殊功能寄存器TCON中的标志,(MSB),(LSB),图 5.2 TCON格式,2. 特殊功能寄存器SCON,图 5.3 SCON格式,(MSB),LS

4、B,5.2.2 中断控制,1. 中断允许控制 MCS - 51单片机有 5个中断源, 为了使每个中断源都能独立地被允许或禁止, 以便用户能灵活使用, 它在每个中断信号的通道中设置了一个中断屏蔽触发器。 只有该触发器无效, 它所对应的中断请求信号才能进入CPU, 即此类型中断开放。 否则, 即使其对应的中断标志位置1, CPU也不会响应中断, 即此类型中断被屏蔽了。同时CPU内还设置了一个中断允许寄存器IE, 它控制CPU能否响应中断。,图 5.4 IE格式,(MSB),(LSB),2. 中断优先级,(MSB),(LSB),图 5.5 IP的格式,表 5.2 同级内第二优先级次序,例如, 某软件

5、中对寄存器IE、 IP设置如下: MOV IE, 8FH MOV IP, 06H 则此时该系统中: CPU中断允许; 允许外部中断 0、 外部中断 1、 定时器 /计数器 0、 定时器 /计数器1提出的中断申请; 允许中断源的中断优先次序为: 定时器 /计数器 0外部中断 1外部中断 0定时器/计数器 1。,5.2.3 中断响应,1. 下列情况之一,中断响应被封锁,(1) 同级或高优先级的中断已在进行中; (2) 当前的机器周期还不是正在执行指令的最后一个机 器周期(换言之, 正在执行的指令完成前, 任何中断请求 都得不到响应); (3) 正在执行的是一条 RETI或者访问特殊功能寄存器 IE

6、或 IP的指令(换言之, 在 RETI或读写 IE或 IP之后, 不会 马上响应中断请求, 而至少执行一条其它指令之后才会响应)。,2. 中断响应过程 单片机一旦响应中断请求, 就由硬件完成以下功能: (1) 根据响应的中断源的中断优先级, 使相应的优先级状态触发器置 1; (2) 执行硬件中断服务子程序调用, 并把当前程序计数器PC的内容压入堆栈; (3) 清除相应的中断请求标志位(串行口中断请求标 志 RI和 TI除外); (4) 把被响应的中断源所对应的中断服务程序的入口 地址(中断矢量)送入PC, 从而转入相应的中断服务程序。,表 5.3 中断服务程序入口地址表,例如, 现有外部中断

7、1 提出申请, 且主程序中有R0、 R1、 DPTR、累加器A需保护, 则编制程序应为:,ORG 0000H AJMP MAIN ORG 0013H LJMP INT1 ORG 0100H MAIN: ; 主程序 ORG 1000H,INT1: CLR EA ;关中断 PUSH ACC ;保护现场 PUSH DPH PUSH DPL PUSH R0 PUSH R1 SETB EA ;开中断 (中断处理程序) CLR EA ;关中断 POP R1 ;恢复现场 POP R0 POP DPL POP DPH POP ACC SETB EA ;开中断 RETI,编程中应注意: (1) 在 0000H放

8、一条跳转到主程序的跳转指令, 这是因为 MCS-51单片机复位后, PC的内容变为 0000H, 程序从 0000H 开始执行, 紧接着 0003H是中断程序入口地址, 故在此中间只能插入一条转移指令; (2) 响应中断时, 先自动执行一条隐指令“LCALL 0013H”, 而 0013H至 001BH(定时器 1 溢出中断入口地址)之间可利用的存储单元不够, 故放一条无条件转移指令。 (3) 在中断服务程序的末尾, 必须安排一条中断返回指令RETI, 使程序自动返回主程序。,5.2.4 外部中断触发方式,1. 电平触发方式 若外部中断定义为电平触发方式,外部中断申请触发器的状态随着CPU在每

9、个机器周期采样到的外部中断输入线的电平变化而变化,这能提高CPU对外部中断请求的响应速度。在中断服务程序返回之前,外部中断请求输入必须无效,否则CPU返回主程序后会再次响应中断。所以此方式适合外部中断以低电平输入而且中断服务程序能清除外部中断请求源的情况。 2. 跳沿触发方式 若外部中断定义为跳沿触发方式,外部中断申请触发器能锁存外部中断输入线上的负跳变。即便是CPU暂时不能响应,中断申请标志也不会丢失。在这种方式里,如果相继连续两次采样,一个机器周期采样到外部中断输入为高,下一个机器周期采样到外部中断输入为低,则置1中断申请触发器,直到CPU响应此中断时才清0。这样不会丢失中断,但输入的负脉

10、冲宽度至少保持,1个机器周期,才能被CPU采样到。此方式适合于以负脉冲形式输入的外部中断请求。,5.2.5 中断请求的撤消,1. 定时器/计数器中断请求的撤消 定时器 /计数器中断请求被响应后。硬件会自动把中断请求标志位清0,中断请求是自动撤消的。 2. 外部中断请求的撤消 (1) 跳沿触发方式外部中断请求的撤消 中断标志位由硬件自动清0,由于跳沿信号过后也就消失了,外部中断请求也是自动撤消的。 (2) 电平触发方式外部中断请求的撤消,(2) 电平触发方式外部中断请求的撤消 中断请求标志的撤消是自动的,但中断请求信号的低电平可能继续存在,因此,必要时需在中断响应后把中断请求信号引脚从低电平强制

11、改变为 高电平。,CP上升沿:Q=D;SD下降沿:Q=1。,3. 串行口中断请求的撤消 只有标志位清0的问题,不自动清0,只能使用软件的方法,在中断服务程序中进行。,5.3 多外部中断源系统的设计,5.3.1 定时器/计数器作为外部中断源的使用方法 当把T0或T1选择为计数器工作模式时,T0或T1引脚上发生负跳变时,T0或T1计数器加1,利用这个特性,可以把T0、T1引脚作为外部中断请求输入引脚,而定时器/计数器的溢出中断TF0、TF1作为外部中断的请求标志。,5.3.2 中断和查询结合的方法,ORG 0003H LJMP INT0 INT0: PUSH PSW PUSH ACC JB P0.

12、7, DV1 JB P0.6, DV2 JB P0.5, DV3 JB P0.4, DV4 GOBACK: POP ACC POP PSW RETI DV1: ; 装置1中断服务程序,AJMP GOBACK DV2: ; 装置2中断服务程序 AJMP GOBACK DV3: ; 装置3中断服务程序 AJMP GOBACK DV4: ; 装置4中断服务程序 AJMP GOBACK,5.3.3 用优先权编码器扩展外部中断源 在外部中断源数目较多时,采用软件查询的方法, 响应优先级最高的中断和响应优先级最低的中断所需的时间可能相差很大,如果采用硬件对外部中断源进行排队就可以避免这个问题。 74LS1

13、48是一种优先权编码器,它具有8个输入端“07”用作8个外部中断源输入端,3个编码输出端A2A0,一个编码输出端/GS,一个使能端/EI。在使能端输入为低电平时,只要8个输入端中任意一个输入为低电平,就有一组相应的编码从A2A0输出,且/GS端为低电平。如果8个输入端同时有多个输入,则A2A0端将输出输入编码最大所对应的编码。,74LS148的真值表,ORG 0013H AJMP LAB ORG 0040H LAB: ORL P1, #00001110B MOV A, P1 ANL A, #00001110B MOV DPL, #00H MOV DPH, #10H JMP A+DPTR ORG

14、 1000H JMPTBI: AJMP IR0 ;散转指令,双字节指令。 AJMP IR1 AJMP IR7,习题14答案 若仅在/INT0引脚接3个外部中断源。电路如图510(P115)。 ORG 0000H LJMP MAIN ORG 0003H LJMP INT_EX0 ORG 0030H MAIN: CLR IT0 ; 采用低电平有效中断 SETB EX0 ; 允许外部中断0 SETB EA ; 插入用户程序 WAIT: AJMP WAIT ; 等待中断,INT_EX0: JNB P1.2, NEXT1 ;判断是不是3号中断 LJMP INT_IR3 ;跳转到3号中断处理程序 NEXT1: JNB P1.1, NEXT2 ;判断是不是2号中断 LJMP INT_IR2 ;跳转到2号中断处理程序 NEXT2: LJMP INT_IR1 ;跳转到1号中断处理程序 ORG 1000H INT_IR1: ;插入相应中断处理程序 RETI ;中断返回 ORG 1100H INT_IR2: ;插入相应中断处理程序 RETI ;中断返回 ORG 1200H INT_IR3: ;插入相应中断处理程序 RETI ;中断返回 END,

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

当前位置:首页 > 中学教育 > 高中教育

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