§6.1中断的概念 ◇中断的嵌套: 主程序 ◇CPU在进行中断响应时 低级中断处理 可以响应更高级的中断 (中断源B) 请求,这种情况称为中 断的嵌套。 高级中断处理 ◇需注意:引起中断嵌套 (中断源A) 的中断源的优先级一定 要高于当前响应中断源 的优先级,同优先级或 低优先级中断源的中断 请求不能引起中断嵌套。图6-2中断嵌套示意图
11:20:48 §6.1 中断的概念 中断的嵌套: CPU 在进行中断响应时 可以响应更高级的中断 请求,这种情况称为中 断的嵌套。 需注意: 引起中断嵌套 的中断源的优先级一定 要高于当前响应中断源 的优先级, 同优先级或 低优先级中断源的中断 请求不能引起中断嵌套。 图6-2 中断嵌套示意图 8/94
§6.1中断的概念 ◆计算机采用中断技术,大大提高了工作效率和处理问题的灵活性, 主要表现在3个方面: >可及时处理控制系统中许多随机发生的事件; >解决了快速CPU和慢速外设之间的矛盾,CPU和外设可并行工作; 具备了处理故障的能力,提高了系统自身的可靠性。 ◇中断类似主程序调用子程序,但它们又有区别: 表6-1中断和调用子程序之间的主要区别 中断 调用子程序 产生时刻是随机的 程序事先安排好的 既保护断点(自动又保护现场(程序)可只保护断点(自动) 处理程序的入口地址是单片机硬件确定的,子程序的入口地址是 用户不能改变 程序编排的
11:20:48 §6.1 中断的概念 ◆计算机采用中断技术, 大大提高了工作效率和处理问题的灵活性, 主要表现在3个方面: ➢可及时处理控制系统中许多随机发生的事件; ➢解决了快速CPU和慢速外设之间的矛盾, CPU和外设可并行工作; ➢具备了处理故障的能力,提高了系统自身的可靠性。 9 中 断 调用子程序 产生时刻是随机的 程序事先安排好的 中断类似主程序调用子程序,但它们又有区别: 表6-1 中断和调用子程序之间的主要区别 既保护断点(自动), 又保护现场(程序) 可只保护断点(自动) 处理程序的入口地址是单片机硬件确定的, 用户不能改变 子程序的入口地址是 程序编排的
§6.1中断的概念 在中断系统中,还有以下几个相关概念: 1.开中断和关中断 中断的开放(称为开中断或中断允许)和中断的关闭 (称为关中断或中断禁止)可通过指令设置相关特殊功能 寄存器的内容来实现,这是CPU能否接受中断请求的关 键。只在开中断的情况下,才能接受中断源的请求 2.堆栈 进入子程序或中断处理程序后还要保护这些寄存器 中的值,叫做保护现场;子程序返回或中断处理返回前, 还要能够恢复这些寄存器中的值,叫做恢复现场
11:20:48 在中断系统中,还有以下几个相关概念: 1.开中断和关中断 中断的开放(称为开中断或中断允许)和中断的关闭 (称为关中断或中断禁止)可通过指令设置相关特殊功能 寄存器的内容来实现, 这是CPU能否接受中断请求的关 键。只在开中断的情况下, 才能接受中断源的请求。 10/94 §6.1 中断的概念 2.堆栈 进入子程序或中断处理程序后还要保护这些寄存器 中的值, 叫做保护现场; 子程序返回或中断处理返回前, 还要能够恢复这些寄存器中的值, 叫做恢复现场
§6.1中断的概念 2.堆栈 保护现场和恢复现场都通过堆栈操作来实现。其中 通用寄存器的保存和恢复需要由堆栈操作指令来完成; 返回地址的保存与恢复(断点保护和恢复)的堆栈操作 都是在相应的子程序的调用和返回指令的操作中自动完 成的,无需再用专门的堆栈操作指令。 SP指向栈顶 高地址 图6-3堆栈示意图 DCBA 低地址
11:20:48 2.堆栈 保护现场和恢复现场都通过堆栈操作来实现。其中 通用寄存器的保存和恢复需要由堆栈操作指令来完成; 返回地址的保存与恢复(断点保护和恢复)的堆栈操作 都是在相应的子程序的调用和返回指令的操作中自动完 成的, 无需再用专门的堆栈操作指令。 11/94 §6.1 中断的概念 图6-3 堆栈示意图
§6.1中断的概念 3.中断的响应 单片机响应中断源请求时,由中断系统硬件控制CPU 从主程序转去执行中断服务程序,同时把断点地址自动 送入堆栈进行保护。 4.中断的撤除 在响应中断请求后,返回主程序之前,该中断请求 标志应该撤除,否则,单片机执行完中断服务程序会误 判为又发生了中断请求而错误地再次进入中断服务程序。 单片机中有些中断请求标志会自动撒除,有些不能 自动撤除,必须靠用户使用相应的指令撤除
11:20:48 3.中断的响应 单片机响应中断源请求时, 由中断系统硬件控制CPU 从主程序转去执行中断服务程序, 同时把断点地址自动 送入堆栈进行保护。 4.中断的撤除 在响应中断请求后,返回主程序之前,该中断请求 标志应该撤除,否则,单片机执行完中断服务程序会误 判为又发生了中断请求而错误地再次进入中断服务程序。 单片机中有些中断请求标志会自动撤除,有些不能 自动撤除,必须靠用户使用相应的指令撤除。 12/94 §6.1 中断的概念