四、中断返回中断返回是指执行完中断服务程序后,程序返回到断点,继续执行原来的程序。中断返回由专门的中断返回指令“RETI”实现。注意:不能用子程序返回指令“RET”代替中断返回指令“RETI”。CPU执行RETI指令后,先清零响应中断时置位的优先级状态触发器,然后从堆栈中弹出两个字节到PC,CPU从原来中断处重新执行被中断的程序。各中断源入口地址间只有几个字节,无法放下中断服务程序,一般在这几个字节中放一条转移指令。五、中断响应时间不同的情况对中断响应的时间不同:(1)最短的响应时间,需要3个机器周期。(2)如果遇到中断受阻的情况,响应时间会更长一些。(3)如果有两个以上中断源同时申请中断,则响应时间将更长。—般情况下,可不考虑响应时间,但在精确定时控制的场合需要考虑此问题。六、中断请求的撤除CPU响应某中断请求后,在中断返回前,应撤消该中断请求。(1)定时器0或1溢出中断,CPU在响应中断后,中断请求自动撤除。(2)边沿激活的外部中断,CPU在响应中断后,硬件自动清除有关的中断请求。(3)串行口中断,CPU响应中断后,靠软件来清除相应的标志。电平激活的外部中断撤除方法较复杂。下图是撤除电平激活的中断的可行的方案之一用P1.0接在触发器的S端作为应答线,当CPU响应中断后可使用如下两条指令:ANLP1,#0FEHORLP1,#01H第五章中断系统5-1微机的输入/输出方式5-2中断的概念5-3MCS-51中断系统结构及中断控制5-4MCS-51中断处理过程5-5MCS-51外部中断的扩展方法5-6MCS-51中断程序举例一、外部中断的触发方式外部中断源由TCON中的IT0、IT1位的状态决定其触发方式:ITx=0电平触发,ITx=1边缘触发。1。电平触发此时外中断申请触发器的状态随CPU在每个机器周期采样到的外部中断输入线的电平变化而变化,这样可提高CPU对外部中断的响应速度。这种触发方式,在中断服务程序返回前,外部中断请求必须无效(高电平)。否则CPU返回后会再次响应。3.实现中断嵌套中断嵌套示意图如图5—2所示。中断申请的中断源的优先权级别与正在处理的中断源同级或更低时,CPU暂时不响应这个中断申请,直至正在处理的中断服务程序执行完以后才去处理新的中断申请。4.实现中断的撤除在响应中断后,返回主程序之前,中断请求应该撤除,否则,将影响对其它中断申请的响应。MCS-51中断系统只能对一部分中断申请,在响应后自动撤除,使用中应注意。调用中断服务程序与调用子程序的区别:1、事先安排和随机发生2、软件调用和硬件自动完成INTNMI微型机两种中断1.可屏蔽中断
可程控“开中断/关中断”。软件设置允许/禁止CPU响应中断。
2.非屏蔽中断
不可程控“关中断”。有中断请求信号,CPU必须响应。
中断处理过程一.中断响应条件1.有中断请求信号2.系统处于开中断状态二.中断响应过程1.关中断:屏蔽其它中断请求信号。2.保护断点:将断点地址压入堆栈保存,即当前PC值入栈。3.寻找中断源:中断服务程序入口?PC,转入中断服务。4.保护现场:将中断服务程序使用的所有寄存器内容入栈。5.中断处理:执行中断源所要求的程序段。6.恢复现场:恢复被使用寄存器的原有内容。7.开中断:允许接受其它中断请求信号。8.中断返回:执行RETI指令,栈顶内容?PC,程序跳转回断点处。第五章中断系统5-1微机的输入/输出方式5-2中断的概念5-3MCS-51中断系统结构及中断控制5-4MCS-51中断处理过程5-5MCS-51外部中断的扩展方法5-6MCS-51中断程序举例MCS—51提供5个中断请求源,2个中断优先级,可实现两级中断服务程序嵌套。当CPU执行关中断指令后(或复位),将屏蔽所有中断请求,只有CPU执行开中断指令后才有可能接受中断请求,每个中断源可由软件编程为允许中断和禁止中断,每个中断源可程控为高优先级中断或低优先级中断。可见MCS-51具有较强的中断处理能力。MCS51中断系统简介一、中断系统内部结构MCS-51的中断系统结构框图如下图所示,与中断有关的特殊功能寄存器有4个,分别为中断源寄存器(即专用寄存器TCON和SCON的相关位)、IE和IP。MCS-51单片机有5个中断源,可提供两个中断优先级,即可实现二级中断嵌套。二