51单片机的默认优先级是INT0>IT0>INT1>IT1>PS 但是为什么在使用的时候好像不起作用啊!要使用IP进行重设

2025-01-07 09:14:52
推荐回答(2个)
回答1:

1、设置TI=1,是人为的设置了串行发送请求完毕的中断请求标志。但是你并没有致能(es=1)串口中断。实际上你的interrupt5的处理程序也没有写,是空的。(注意这点)
2、你既然没有设置it0=1(跳变触发中断),那么就是IT0=0(低电平触发)。
3、当一个低电平来的时候,就进入你的interrupt0处理程序。并且硬件自动清标记位置。执行完毕 beer=1。
4、这个时候还有一个中断请求标志IT=1,于是产生了中断嵌套。执行完高级中断后,进入低级中断interrupt5。之后是空白。。。。
5、结果就是你描述的:蜂鸣器一直响,数码管停止显示。
不知道我这样描述,你能不能理解。呵呵

回答2:

你的理解有误,此优先级非彼优先级。
所谓INT0>IT0>INT1>IT1>PS是指当多个中断同时发生时的处理顺序。
IP所能设置的优先级是用于中断嵌套的判定,高优先级中断可以中断低优先级的中断,实现中断嵌套。