资源预览内容
第1页 / 共23页
第2页 / 共23页
第3页 / 共23页
第4页 / 共23页
第5页 / 共23页
第6页 / 共23页
第7页 / 共23页
第8页 / 共23页
第9页 / 共23页
第10页 / 共23页
亲,该文档总共23页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
2019/10/16,1,单片机原理及应用,5-1 单片机中断系统,5-2 外部中断源的扩展,第5章 中断系统,2019/10/16,2,5-1-1 中断技术 5-1-2 中断系统控制 5-1-3 中断响应过程 5-1-4 中断请求的撤消,5-1 单片机中断系统,2019/10/16,3,5-1 单片机中断系统,微机的输入/输出方式 单片机的运行同其他微机系统一样,CPU不断地与外部输入/输出设备交换信息,常采用以下方式: 1.程序控制传送方式,又分为无条件传送方式和查询传送方式 2.中断传送方式 3.直接存储器存取(DMA)方式,2019/10/16,4,中断系统是计算机的重要指标之一。,5-1-1 中断技术,2019/10/16,5,二、两种中断:,1可屏蔽中断: 可程控“开中断/关中断”。软件设置 允许/禁止CPU响应中断。 2非屏蔽中断: 不可程控“关中断”。有中断请求信号, CPU必须响应。,INTR(Interrupt Request):可屏蔽中断请求 NMI(Non-Maskable Interrupt):非屏蔽中断,2019/10/16,6,四、中断优先级控制原则和控制逻辑:,中断优先级是为中断嵌套服务的。 如图,MCS51具有2级优先级。 1、优先级控制原则: (1)低优先级中断不能打断高优先级的中断服务; 但高优先级中断请求信号可以打断低优先级 的中断服务,从而实现中断嵌套。 (2)如果一个中断请求已被响应,则同级的其它 中断服务将被禁止。即同级中断不能嵌套。 (3)如同级的多个中断请求同时出现,则按CPU 查询次序确定哪个中断请求被响应。 查询次序为:INT0T0INT1T1RI/TI。 2、控制逻辑: 利用中断优先级控制寄存器;,2019/10/16,7,5-1-2 中断系统控制,一、MCS-51中断系统内部结构,2、中断允许控制: 总允许开关:EA; 源允许开关:ES、ET1、EX1、ET0、EX0。,3、2级中断优先级控制: 优先级选择开关:PS、PT1、PX1、PT0、PX0。,高,低,2019/10/16,8,IE,2019/10/16,9,2. 外部中断触发方式选择位:IT0、IT1 =1:负边沿触发中断请求;=0:低电平触发中断请求。,二、中断控制寄存器:,1. 中断标志位: TF1、TF0、IE1、IE0、RI 、TI 登记各中断源请求信号:=1,有中断请求;=0,无中断请求。 CPU响应中断后,该中断标志自动清零。TI、RI标志必须软件清零。,2019/10/16,10,二、中断控制寄存器:,2019/10/16,11,一、中断响应条件: 1有中断请求信号; 2. 系统处于开中断状态。,二、中断服务流程: 1关中断:屏蔽其它中断请求信号。 2保护断点:将断点地址压入堆栈保存,即当前PC值入栈。 3寻找中断源:中断程序入口地址PC,转入中断服务。 4保护现场:将中断服务程序使用的所有寄存器内容入栈。 5中断处理:执行中断源所要求的程序段。链接中断处理 6恢复现场:恢复被使用寄存器的原有内容。 7开中断:允许接受其它中断请求信号。 8中断返回:执行RETI指令,堆栈断点地址PC, 程序跳转回断点处执行。 RETI= RET指令+通知CPU中断服务已结束(复位触发器),5-1-3 中断响应过程,2019/10/16,12,中断响应过程:,1、中断采样仅对外中断(INT0、INT1)请求信号; 2、中断查询:单片机在每一个机器周期的最后一个状态S6, 按优先级顺序对中断请求标志位进行查询,即先查询高级中断后再查询低级中断,同级中断按“INT0T0INT1T1RI/TI”的顺序查询。如果查询到有标志位为“1”,则表明有中断请求发生,接着就从相邻的下一个机器周期的S1状态开始进行中断响应。 由于中断请求是随机发生的,CPU无法预先得知,因此在程序执行过程中,中断查询要在指令执行的每个机器周期中不停地重复进行。 3、中断响应:当查询到有效的中断请求时,就进行中断响应。其主要内容是由硬件自动生成一条长调用指令LCALL。其格式为:LCALL addr16,addr16即是由系统设定的5个中断程序的入口地址。,各中断源中断服务 程序的入口地址。 如右表:,2019/10/16,13,四、中断响应周期时序: 89C51的CPU在每个机器周期的S5P2期间顺序采样每个中断源,CPU在下一个机器周期的最后一个状态(S6)期间按优先级顺序查询中断标志位,若有中断请求,将在下一个机器周期的第一个状态(S1)按优先级顺序进行中断处理. 中断响应时间: 正常中断响应时间为38个机器周期,如果有同级或高级中断服务,将延长中断响应时间。,三、中断响应阻断: 1 . CPU正处在为一个同级或高级的中断服务中。即当有同级或 高级中断服务。 2查询中断请求的机器周期不是当前指令的最后一个机器周期。 即当CPU未执行完一条指令。 3当前执行返回指令RET/RETI或访问IE、IP的指令后,不能立即 响应中断,还应再执行一条指令,然后才能响应中断。 程序单步执行就是利用此原理,借助单片机的外部中断功 能来实现的。,3T: 中断请求标志查询:1T 产生、执行LCALL: 2T,8T: 执行RET/RETI(访问IP/IE):2T 主程序中MUL/DIV指令: 4T 执行LCALL指令: 2T,2019/10/16,14,以外中断为例,说明中断响应的最短时间:,在每个机器周期的S5P2期间,外中断0和外中断1引脚的电平被锁存到TCON的IE0和IE1标志位,CPU在下一个机器周期才会查询这些值.如满足中断响应条件,下一条要执行的指令将是一条长调用指令LCALL,使程序转至中断源对应的矢量地址入口.长调用指令本身要花费2个机器周期.这样,从外部中断请求有效到开始执行中断服务程序的第一条指令,中间要隔3个机器周期,这是最短的响应时间,如遇到中断受阻的情况,则中断响应时间更长一些. 如果正在执行的一条指令还没有进行到最后一个机器周期,则附加的等待时间为13机器周期.因为一条指令的最长执行时间为4个机器周期(MUL和DIV指令).如正在执行的是RETI或读/写IE或IP的指令,则附加的时间在5个机器周期之内(为完成正在执行的指令,还需要一个机器周期,加上为完成下一条指令所需的最长时间为4个机器周期,故最长为5个机器周期). 故系统中只有一个中断源,则响应时间为38个机器周期.,2019/10/16,15,单步工作方式:,按一次键执行 一条主程序的指令。 1、建立单步执行的 外部控制电路。 如图:,ORG 0000H SJMP START ORG 0003H ;中断程序 JNB P3.2,$ ;=0则“原地踏步” JB P3.2,$ ;=1则“原地踏步” RETI START:MOV IE,#81H ;主程序 MOV TCON,#00H LOOP: INC A ;1T MOV P1,A ;1T SJMP LOOP ;2T END,2、编写外部中断的中断服务程序:,2019/10/16,16,P/126 例5-3:ZHONGDUAN0.ASM,2019/10/16,17,中断响应后,TCON或SCON中的中断请求标志应及时清除。否则就意味着中断请求仍然存在。 1、定时中断硬件自动撤除定时: 中断响应后,硬件自动把标志位(TF0/TF1)清0,因此定时中断的中断请求是硬件自动撤除的。不需要用户干预。 2、脉冲方式外部中断请求的撤消:硬件自动撤除 外部中断的撤消包括两项内容: (1)中断标志位的置“0”:中断响应后由硬件电路自动完成; (2)外中断请求信号的撤消:随脉冲信号过后消失随即自动 撤消。,5-1-4 中断请求的撤消,2019/10/16,18,3、电平方式外部中断请求的撤消:自动与强制撤除 通过硬件自动地使标志位(IE0或IE1)清0。电平请求方式光靠清除中断标志,并不能彻底解决中断请求的撤除问题。需在中断响应后把中断请求输入端从低电平强制改为高电平。 D触发器的直接置位端SD(得到负脉冲): ORL P1 ,#01H ; P1输出高电平 ANL P1 ,#0FEH ; P1 输出低电平 软硬件相结合完成:硬件自动清标志位(IE0或IE1清0); 软件撤消中断请求信号 (由低电平改为高电平)。,2019/10/16,19,4、串行中断请求的撤除:由软件方法完成 串行中断的标志位是TI和RI,但对这两个中断标志不进行自动清0。因为在中断响应后还需测试这两个标志位的状态,以判定是接收操作还是发送操作,然后才能清除。所以串行中断请求的撤除也应使用软件方法,在中断服务程序中进行。需由用户完成。,2019/10/16,20,一、多中断源系统:,当外部中断源多于中断输入引脚时,可采取以下措施: 1、用定时器计数输入信号端T0、T1作外部中断入口引脚; 2、用串行口接收端RXD作外部中断入口引脚。,5-2 外部中断源的扩展,2019/10/16,21,3、用一个中断入口接受多个外部中断源,并加入中断 查询电路。,应把INTx设置为电平触发方式; 在中断服务程序中进行扩展中断源的查询; 查询顺序就是扩展中断源的优先级顺序。,2019/10/16,22,二、处理外部中断举例:,要求每次按动按键,使外接发光二极管LED改变一次亮灭状态。 解:INT0输入按键信号,P1.0输出改变LED状态。 1、跳变触发:每次跳变引起一次中断请求。,2019/10/16,23,(1)软件等待按键释放(撤消低电平); (2)硬件清除中断信号(标志位)。,ORG 0000H ;复位入口 AJMP MAIN ORG 0003H ;中断入口 AJMP PINT0 ORG 0100H ;主程序 MAIN:MOV SP,#40H ;设栈底 SETB EA ;开总允许开关 SETB EX0 ;开INT0中断 CLR IT0 ;低电平触发中断 H: SJMP H ;执行其它任务 ORG 0200H ;中断服务程序 PINT0:CPL P1.0 ;改变LED WAIT: JNB P3.2,WAIT ;等按键释放(P3.2即INT0) RETI ;返回主程序,2、电平触发:可避免一次按键引起多次中断响应。,
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号