1.任务及要求
任务:8个LED灯处于常亮状态,编程实现:
(1)当触发外部中断0(低电平触发),LED1~LED4点亮,LED5~LED8熄灭,保持4s;
(2)当触发外部中断1(下降沿触发),LED1~LED4熄灭,LED5~LED8点亮,保持8s;
(3)外部中断1处于高优先级。
要求:掌握外部中断技术的基本使用方法及中断优先级处理的编程方法。
2.实验接线
图2.4.5 外部中断0、外部中断1混合使用实验接线
注意:本电路图未画出振荡电路和复位电路,但在实际硬件电路中是有的。
3.程序流程图及参考程序
(1)程序流程图
略。
(2)参考程序
(www.xing528.com)
4.思考题
8个LED灯处于流水灯状态,编程实现:
(1)当触发外部中断0(下降沿触发),LED1、LED3、LED5、LED7点亮,LED2、LED4、LED6、LED8熄灭,保持4s;
(2)当触发外部中断1(低电平触发),LED1~LED4点亮,LED5~LED8熄灭,保持8s;
(3)外部中断0处于高优先级。
知识补充
AT89C52单片机有6个中断源,每个中断源有两级优先级控制:高优先级和低优先级,以便CPU对所有的中断实现两级中断嵌套。对中断优先级寄存器IP设置可让中断源处于不同的优先级。
AT89C52单片机的中断优先级采用了自然优先级和人工设置高、低优先级的策略。中断处于同一级别时,就由自然优先级确定。不做特别设置时,所有中断都处于低优先级,中断优先级可以通过程序来设定,由中断优先级寄存器IP来统一管理。
51单片机中断优先级的控制原则为:
(1)正在进行的中断过程不能被新的同级或低优先级的中断请求所中断,一直到该中断服务程序结束,返回主程序且执行了主程序中的一条指令后,CPU才响应新的中断请求。
(2)低优先级中断请求不能打断高优先级的中断服务;反之,则可以,从而实现两级中断嵌套。
(3)CPU同时接收到几个中断请求时,首先响应优先级最高的中断请求。如果是同级中断,则按照CPU查询次序确定哪个中断请求被响应。
注意:由于主机复位后IP寄存器的状态是××000000,所有的中断全部复位为低优先级中断,这时只需单独对要求高优先级的中断源的对应位设置为高优先级就行了。
在上述规则中,当CPU正在处理一个中断请求时,又出现了另一个优先级比它高的中断请求,就暂时中止执行优先级较低的中断源的服务程序,保护当前断点,转去处理更高的中断请求,服务完毕,回到原来被中止的中断程序继续执行。此过程称为中断嵌套,见图2.4.6。
图2.4.6 中断嵌套的处理过程
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。