单片机中断优先级应用案例

若单片机同时接收到几个中断请求时,单片机对中断请求的响应顺序是如何确定的?实际上,单片机是通过中断优先级来确定中断响应顺序的。
单片机通过硬件电路实现了中断优先级的默认顺序,默认顺序是int0,t0,int1,t1,ti/ri,这5个中断源的中断顺序号依次是0,1,2,3,4,即int0的中断优先级最高,ti/ri的优先级最低。例如:若int0,t0,int1在同一时间发生中断,单片机会首先响应int0,然后再响应t0。最后响应int1中断;若单片机正在响应t0中断,此时发生了int0中断,单片机会暂时停止t0中断处理,先处理int0中断,int0中断处理完成后,再继续处理t0中断。
若需要改变默认优先级顺序,可以设置中断优先级寄存器ip,该寄存器可以进行位寻址,通过位来控制不同中断源的优先级,寄存器位定义见下表:
中断优先级寄存器d0和d2位,为外部中断0和1优先级控制位,该位为1定义为高优先级中断,该位为0定义为低优先级中断;中断优先级寄存器d1和d3位,为定时器/计数器0和1优先级控制位,该位为1定义为高优先级中断,该位为0定义为低优先级中断;d4位为串行口优先级控制位,该位为0定义为低优先级中断,该位为1定义为高优先级。
在51单片机系列中,高优先级的中断能够打断低优先级的中断,形成中断嵌套,即单片机处理完高优先级的中断后,还得回来继续处理低优先级的中断。但同优先级中断之间,或低优先级对高级中断不能形成中断嵌套。当多个中断同时向单片机请求中断响应时,在没有设置中断优先级的情况下,单片机按照默认中断优先级顺序响应中断,若设置了中断优先级,则按照设置顺序响应中断请求。
中断优先级应用案例:在电路中引入三个数码管,分别接单片机p0、p1、p2口。在电路引入两个按键,分别接int0、int1引脚,低电平触发中断。设置int1中断为高优先级,设置int0中断为低优先级,实验中断嵌套和优先级。
下图是中断优先级应用案例电路设计图:
单片机的p0、p1、p2口接三个共阳极数码管,接入p0口的数码管由主程序控制,接入p1口的数码管由int1中断处理程序控制,接入p2口的数码管由int0中断程序控制。单片机的int0和int1引脚接入两个按键,用于触发int0和int1中断。默认情况下,int0中断的优先级高于int1,通过程序将int0设置为低优先级中断,将int0设置为高优先级中断。
完整c程序代码如下:
#include#includeunsigned char led[] = {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};void delay(unsigned int millisecond){ unsigned int i,j; for(i=millisecond;i >0;i--) for(j=120;j >0;j--);}void main(void){ unsigned int i; ea = 1; ex0 = 1; ex1 = 1; px1 = 1; while(1) { for(i=0;i< 10;i++) { p0 = led[i]; delay(500); } } }void t1() interrupt 0{ unsigned int i; for(i=0;i< 10;i++) { p2 = led[i]; delay(500); }}void t2() interrupt 2{ unsigned int i; for(i=0;i< 10;i++) { p1 = led[i]; delay(500); }}t2()函数是int1中断处理程序,当按下连接int1引脚的按键后,int1中断被触发,因为int1被设置为高优先级,单片机会暂停当前主程序工作或int0中断处理程序,执行t2()函数,当t2()函数执行完成后,再返回执行主程序工作或int0中断处理程序。
t1()函数是int0中断处理程序,由于int0被设置为低优先级,当int0中断触发后,若int1中断正在执行,t1()函数不会被立即执行,需等待t2()函数执行完成后,才会执行t1()函数。

苹果公司在欧洲法院对一项庞大的欧盟退税令的裁决中获胜
华为与高通达成世纪大和解构筑中国的半导体生态之路
世界最小LED可将手机摄像头转换为高分辨率显微镜
CAN总线关闭故障诊断
固态LED照明技术在园艺方面的应用
单片机中断优先级应用案例
地平线与大唐移动签署战略合作协议
变电站无人值守监控系统
单片机矩阵键盘的使用之读取键盘
电动车充电器原理及维修技巧
fireflyAIO-3288C主板I2C简介
大龄工程师有哪些出路
面向5G高品质全场景的智慧生活,“1+8+N”战略的存在和价值体现
后摩尔时代,3D封装成为重要发展方向
Intel新步进九代酷睿全部型号公布
无线、隔离、时钟三管齐下壮大工业4.0发展
学习一下电工识图,里面的电路图的项目代号
三星:未来两三年对OLED很重要,不要重蹈LCD覆辙
中国工业企业利润出现近三年来首次下滑
2019年国际航空航天领域发生的各种大型事件回顾