首页 理论教育 单片机外部中断嵌套实验结果

单片机外部中断嵌套实验结果

时间:2023-11-06 理论教育 版权反馈
【摘要】:实验目的理解多中断嵌套工作原理。掌握多外部中断嵌套的设计和使用方法。系统要求中断请求信号一直保持到CPU对其进行中断响应为止。设置外部中断1优先级大于外部中断0优先级;实现二级中断嵌套。实验源程序实验仿真电路实验图6-1外部中断INT0与INT1嵌套实验仿真图思考题1.外部中断触发方式是如何选择的?

单片机外部中断嵌套实验结果

实验目的

(1)理解多中断嵌套工作原理。

(2)了解单片机多中断源C语言程序的设计和调试方法。

(3)掌握多外部中断嵌套的设计和使用方法。

实验仪器

单片机开发板、稳压电源、计算机。

实验原理

1.中断系统中的基本概念

(1)中断向量

中断服务程序的入口地址

(2)请求中断。

当某一中断源需要CPU为其进行中断服务时,就输出中断请求信号,使中断控制系统的中断请求触发器置位,向CPU请求中断。系统要求中断请求信号一直保持到CPU对其进行中断响应为止。

(3)中断响应。

CPU对系统内部中断源提出的中断请求必须响应,而且自动取得中断服务子程序的入口地址,执行中断服务子程序。对于外部中断,CPU在执行当前指令的最后一个时钟周期去查询INTR引脚,若查询到中断请求信号有效,同时在系统开中断(即IF=1)的情况下,CPU向发出中断请求的外设回送一个低电平有效的中断应答信号,作为对中断请求INTR的应答,系统自动进入中断响应周期。

(4)保护现场。

主程序和中断服务子程序都要使用CPU内部寄存器等资源,为了使中断处理程序不破坏主程序中寄存器的内容,应先将断点处各寄存器的内容压入堆栈保护起来,再进入中断处理。现场保护是由用户使用PUSH指令来实现的。

(5)中断服务。

中断服务是执行中断的主体部分,不同的中断请求,有各自不同的中断服务内容,需要根据中断源所要完成的功能,事先编写相应的中断服务子程序存入内存,等待中断请求响应后调用执行。

(6)恢复现场。(www.xing528.com)

当中断处理完毕后,用户通过POP指令将保存在堆栈中的各个寄存器的内容弹出,即恢复主程序断点处寄存器的原值。

(7)中断返回。

在中断服务子程序的最后要安排一条中断返回指令IRET,执行该指令,系统自动将堆栈内保存的IP/EIP和CS值弹出,从而恢复主程序断点处的地址值,同时还自动恢复标志寄存器FR或EFR的内容,CPU转到被中断的程序中继续运行。

(8)中断嵌套。

中断嵌套是指中断系统正在执行一个中断服务时,有另一个优先级更高的中断提出中断请求,这时CPU会暂时终止当前正在执行的级别较低的中断源的服务程序,去处理级别更高的中断源,待处理完毕,再返回到被中断了的中断服务程序继续运行,这个过程就是中断嵌套。

2.中断嵌套的处理

多外部中断发生时,主要的工作为中断优先级的配置。51单片机的默认(此时的IP寄存器不做设置)中断优先级为外部中断0>定时/计数器0>外部中断1>定时/计数器1>串行中断;但这种优先级只是逻辑上的优先级,当有几种中断同时到达时,高优先级中断会先得到服务。要实现可提供中断嵌套能力的优先级,即高优先级中断服务可以打断低优先级中断服务的情况,必须通过设置中断优先级寄存器IP来实现,这种优先级被称为物理优先级。

例如:当计数器0中断和外部中断1(优先级计数器0中断>外部中断1)同时到达时,会进入计时器0的中断服务函数;但是在外部中断1的中断服务函数正在服务的情况下,任何中断都是打断不了它的,包括逻辑优先级比它高的外部中断0和计数器0中断。

设置外部中断1优先级大于外部中断0优先级;实现二级中断嵌套。当执行外部中断0的时候,外部中断1能打断外部中断0程序的运行。

实验源程序

实验仿真电路(实验图6-1)

实验图6-1 外部中断INT0与INT1嵌套实验仿真图

思考题

1.外部中断触发方式是如何选择的?

2.多级外部中断嵌套时,现场保护如何完成?

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈