中断系统.ppt

上传人:本田雅阁 文档编号:2834253 上传时间:2019-05-25 格式:PPT 页数:35 大小:901.54KB
返回 下载 相关 举报
中断系统.ppt_第1页
第1页 / 共35页
中断系统.ppt_第2页
第2页 / 共35页
中断系统.ppt_第3页
第3页 / 共35页
中断系统.ppt_第4页
第4页 / 共35页
中断系统.ppt_第5页
第5页 / 共35页
点击查看更多>>
资源描述

《中断系统.ppt》由会员分享,可在线阅读,更多相关《中断系统.ppt(35页珍藏版)》请在三一文库上搜索。

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

2、机应用系统的外部设备发出的中断申请,称为设备中断。 2).定时时钟 定时提出中断申请。例如,在定时控制或定时数据采集系统中,由内部或外部时钟电路定时,一旦到达规定的时间,时钟电路就向CPU发出中断申请。 3).故障源 例如:目前,微型机的内存RAM是采用半导体存储器,所以在电源掉电时,需要接入备用电源,以便保护存储器RAM中的信息、一般的做法是,在直流电源上并联电容,当电容电压因电源掉电下降到一定值时就发出中断申请,CPU响应中断执行保护现场信息的操作。,4).程序性中断源 例如,为调试程序而设置断点、单步工作等。 对于每个中断源,不仅要求能发出中断请求信号,而且这个信号还要能保持一定的时间,

3、直至CPU响应这个中断请求后才能而且必须撤消这个中断请求信号。这样既不会因CPU未及时响应而丢失中断申请信号,也不会出现多次重复中断的情况。 要求每个中断源的接口电路中有一个中断请求触发器。另外,在实际系统中,往往有多个中断源,为了增加控制的灵活性,在每个中断源的接口电路中还设置一个中断屏蔽触发器,由它控制该中断源的中断申请信号能否送到CPU。,3. 中断系统的功能,1). 实现中断及返回,2). 实现中断优先权排队,3). 实现中断嵌套,4. 中断响应的一般过程 (1) 在每条指令结束后, 系统都自动检测中断请求信号, 如果有中断请求,且CPU处于开中断状态下, 则响应中断。 (2) 保护现

4、场, 在保护现场前, 一般要关中断, 以防止现场被破坏。保护现场一般是用堆栈指令将原程序中用到的寄存器推入堆栈。,(3) 中断服务, 即为相应的中断源服务。 (4) 恢复现场, 用堆栈指令将保护在堆栈中的数据弹出来, 在恢复现场前要关中断, 以防止现场被破坏。在恢复现场后应及时开中断。 (5) 返回, 此时 CPU将推入到堆栈的断点地址弹回到程序计数器, 从而使CPU继续执行刚才被中断的程序。,6.2 MCS - 51中断系统,总体结构 中断源 中断控制 中断处理,注:各中断允许控制位=0,开关断开; =1,开关接通,TCON,SCON,6.2.2 中断源,表 6.1 8051 中 断 源,1

5、.外部中断(IE0,IE1) 外部原因引起的 两个中断源,即外部中断0和外部中断1。它们的中断请求信号分别由引脚INT0(P3.2)和INT1(P3.3)引入 外部中断请求有两种信号方式:电平方式和脉冲方式可通过有关控制位的定义进行规定。电平方式是低电平有效;而脉冲方式则是脉冲的下跳沿有效,51中断分为三类:,2.定时中断(TF0,TF1) 定时中断是为满足定时或计数的需要而设置的 这种中断请求是在单片机芯片内部发生的, 无需在芯片上设置引入端。 3.串行中断(TI,RI) 串行中断是为串行数据传送的需要而设置的。每当串行口接收或发送完一帧串行数据时,就产生一个中断请求。因此串行中断请求也是在

6、单片机芯片内部自动发生的,同样不需在芯片上设置引入端。,中断请求标志(Flag) IE0:外部中断0中断标志 TF0:定时器/计数器0中断标志 IE1:外部中断1中断标志 TF1:定时器/计数器1中断标志 TI:串行口发送中断标志 RI:串行口接收中断标志,1. 定时器控制寄存器TCON的格式(88H ),(MSB),(LSB),IT0:外部中断0触发方式选择位 0:低电平触发 1: 负跳变触发 IE0:外部中断0中断请求标志 IT1、IE1 类似 IT0、IE0 TR0:定时/计数器0运行控制位 0:停止 1:运行 TF0:定时/计数器0中断请求标志位 TR1、TF1 类似 TR0、TF0,

7、2. 串行口控制寄存器SCON的格式(98H),SM0和SM1:串行口工作方式选择位 SM2:多机通信使能位 REN: 接收允许位 TB8:发送数据位8 RB8:接收数据位8 TI: 串行口发送中断请求标志 RI: 串行口接收中断请求标志,MSB,LSB,6.2.3 中断控制,1. 中断允许控制 MCS - 51单片机有 5个中断源, 为了使每个中断源都能独立地被允许或禁止, 以便用户能灵活使用, CPU内部在每个中断信号的通道中设置了一个中断允许触发器, 它控制CPU能否响应中断。只有对应的中断允许触发器被使能(置“1”),相应的中断才能得到相应。,EX0:外部中断0允许位 ET0:定时器/

8、计数器0中断允许位 EX1:外部中断1允许位 ET1:定时器/计数器1中断允许位 ES : 串行口中断允许位 EA :中断总允许位,(MSB),(LSB),中断允许控制寄存器IE (0A8H),当系统复位后,IE全部清0,2. 中断优先级控制寄存器IP(0B8H),(MSB),(LSB),PX0:外部中断0优先级控制位 PT0:定时器/计数器中断0优先级控制位 PX1:外部中断1优先级控制位 PT1:定时器/计数器1中断优先级控制位 PS : 串行口中断优先级控制位,当系统复位后,IP全部清0, 将所有中断源设置为低优先级中断,当两个以上的中断源同时提出申请时,CPU到底相应哪个中断呢? 中断

9、响应遵循两条规则: (1)低优先级中断可以被高优先级中断所中断,反之不能; (2)一种中断(不论哪个优先级)一旦得到响应,与它同级的中断不能再中断它。,同级内第二优先级次序,当同时收到处于同一优先级的多个中断请求时,哪一个中断能得到响应,取决于“内部查询次序”,相当于在每个优先级中,还有一个“内部优先级”,如下表所示:,例如, 某软件中对寄存器IE、 IP设置如下: MOV IE, 8FH MOV IP, 06H,则此时该系统中: CPU中断允许; 允许外部中断 0、 外部中断 1、 定时器 /计数器 0、 定时器 /计数器1提出的中断申请; 允许中断源的中断优先次序为: 定时器 /计数器 0

10、外部中断 1外部中断 0定时器/计数器 1。,6.2.4 中断处理,一个完整的中断过程包括中断申请、中断响应、中断处理、中断返回,一、中断响应,1、CPU响应中断的条件: 首先要有中断源发出中断申请; CPU中断是开放的,即中断总允许位EAl, CPU允许所有中断源申请中断; 申请中断的中断源的中断允许位为1,即此中断源可以向CPU申请中断。,CPU正处在为一个同级或高级的中断服务中。 现行机器周期不是所执行的指令的最后一个机器周期,作此限制的目的在于使当前指令执行完毕后,才能进行中断响应,以确保当前指令的完整执行。 当前指令是返回指令(RETI)或访问IE、IP的指令。因为按MCS5l中断系

11、统的特性规定,在执行完这些指令之后,还应再继续执行一条指令,然后才能响应中断。 若存在上述任何一种情况,CPU将丢弃中断查询结果;否则,将在紧接着的下一个机器周期内执行中断查询结果,响应中断。,若有下列任何一种情况存在,则中断响应会被阻止:,当上述阻断条件存在时,中断不能被响应,且丢弃查询结果。若阻断条件结束时,中断标志已经消失,则这个被拖延了的中断请求可能不会再得到响应。,2、中断响应过程 (1) 外部中断请求采样 所谓中断请求采样,其实质就是如何识别外部中断请求信号,并把它锁定在TCON的相应标志位中。 每个机器周期的S5P2对中断请求引脚INT0(P3.2)和INT1(P3.3)进行采样

12、 内部中断直接置位相应的中断请求标志位,不存在中断请求采样问题。但同样存在从中断请求信号发生到中断请求标志位置位的过程 (2)中断查询与响应 每一个机器周期的最后一个状态(S6),对中断请求标志位进行查询 下一个机器周期的S1状态开始进行中断响应。首先将当前程序计数器PC的内容压栈,再将中断入口地址装入PC,使程序执行转向相应的中断区入口地址,中断服务程序入口地址表,中断响应过程,相当于执行了一条隐含的调用指令(或称隐指令)LCALL。 例如当TF0被置1且得到中断响应时,CPU就自动的执行一条隐指令“LCALL 000BH”。 应当注意,在中断服务子程序的调用过程中,仅仅保存了PC的信息,其

13、余的现场信息(如寄存器的值等)都要由编程人员通过软件来进行保护。,二、中断处理和中断返回,中断服务程序从入口地址开始执行,直到返回指令RETI为止。这个过程称为中断处理或中断服务,保护和恢复现场过程不能响应中断,ORG 中断入口地址 ZHDN: LJMP ITA ITA: ORG XXX CLR EA ;关中断 PUSH A ;保护现场 PUSH R1 SETB EA ;开中断 ;中断服务 CLR EA ;关中断 POP R1 ;恢复现场 POP A SETB EA ;开中断 RETI ;中断返回,中断服务程序的一般编写步骤,三、中断请求的撤除,1.定时中断硬件自动撤除 定时中断响应后,硬件自

14、动把标志位(TF0或TF1)清0,因此定时中断的中断请求是自动撤除的。 2.外部中断自动与强制撤除 外部中断在中断响应后同样通过硬件自动地把标志位(IE0或IE1)清0,即中断请求的撤除也是自动撤除。对于边沿请求方式,问题也就到此结束。然而对于电平请求方式,情况则不同。光靠清除中断标志,并不能彻底解决中断请求的撤除问题,还需要解决外部电平问题 3.串行中断软件撤除 串行中断的标志位是TI和RI,但对这两个中断标志不进行自动清0。中断请求的撤除也应使用软件方法,在中断服务程序中进行。,中断响应后,TCON或SCON中的中断请求标志应及时清除。否则就意味着中断请求仍然存在,会造成中断的混乱,最短:

15、3个机器周期 中断请求标志位查询:1T(恰好是指令的最后一个机器周期) LCALL指令:2T 最长:8个机器周期 刚好执行RETI或访问IE,IP时:2T 后续最长指令MUL、DIV:4T LCALL指令:2T,四、中断响应时间,6.3 中断应用程序举:,管理四个与中断有关的SFR(TCON,SCON,IE,IP) 中断初始化步骤: 开中断 对外部中断,确定触发方式 对多个中断源,设定优先级 例:选用外部中断/INT0,电平触发,高优先级 SETB EA SETB EX0 CLR IT0 SETB PX0,中断应用程序举例:,通过外部中断1,在中断服务中将B寄存器里的内容左环移一位。 已知:

16、(B)=01h,要求采用边沿触发,低优先级。,此例的实际意义:在INT1引脚接一个按钮开关到地,每按一下按钮就申请一次中断,中断服务则是:依次点亮八盏灯中的一盏。,P1.0 P1.7,INT1,300,ORG 0000H LJMP MAIN ORG 0013H ;中断矢量 LJMP INT MAIN:SETB EA ;开总中断允许“开关” SETB EX1 ;开分中断允许“开关” CLR PX1 ;0 优先级(也可不要此句) SETB IT1 ;边沿触发 MOV B,#01H ;给 B 寄存器赋初值 HERE:SJMP HERE ;原地等待中断申请,INT:MOV A,B ;自B寄存器中取数 RL A ;左环移一次 MOV B,A ;存回B,备下次取用 MOV P1,A ;输出到P1口 RETI ;中断返回,中断服 务程序,6.4 中断源扩展,中断与查询结合的方式:,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1