单片机的程序问题,求大神解答!!!!
试编程,外部中断0采用下降沿触发,当外部中断0到来时,P1的8个端口输出为00H;外部中断1采用低电平沿触发,当外部中断1到来时,P1的8个端口输出为0FFH;分析外部中...
试编程,外部中断0采用下降沿触发,当外部中断0到来时,P1的8个端口输出为00H;外部中断1采用低电平沿触发,当外部中断1到来时,P1的8个端口输出为0FFH;分析外部中断0会否打断外部中断1?
展开
1个回答
展开全部
1 默认情况下(即每次单片机复位时),中断优先级寄存器IP为XXX0 0000B,未设置IP时,所有中断都是同等级的!
外部中断1在执行时,同级的中断是进不来的,也就是说,如果外部中断1正在执行,外部中断0是无法打断的。
2 如果你设置了IP(中断优先级寄存器),并且把 外中断0 优先级设置为高级,那么,即使外中断1正在执行,外中断0也可以打断他。
3.有个误区,是很多学习单片机的人有的,就是,如果没有设置IP寄存器,而单片机是同时接到这些同级中断时,CPU按照如下硬件顺序进行中断响应 外部中断0 - >计时器0 ->外部中断1 ->计时器1->串口中断。不过这种情况一般不会发生,只是为了在出现这种情况下,单片机知道该怎么办而已。注意,这是指都没有在t0-时刻,都没有中断发生,在t0时刻,突然来了两个及以上中断,单片机才会按照那个顺序处理,而不是说,单片机默认的外中断0最高的意思,其实,他们还是平级的,就是说,如果有任何一个中断正在执行,其他中断是无法打断的,除非你设置了IP寄存器。
外部中断1在执行时,同级的中断是进不来的,也就是说,如果外部中断1正在执行,外部中断0是无法打断的。
2 如果你设置了IP(中断优先级寄存器),并且把 外中断0 优先级设置为高级,那么,即使外中断1正在执行,外中断0也可以打断他。
3.有个误区,是很多学习单片机的人有的,就是,如果没有设置IP寄存器,而单片机是同时接到这些同级中断时,CPU按照如下硬件顺序进行中断响应 外部中断0 - >计时器0 ->外部中断1 ->计时器1->串口中断。不过这种情况一般不会发生,只是为了在出现这种情况下,单片机知道该怎么办而已。注意,这是指都没有在t0-时刻,都没有中断发生,在t0时刻,突然来了两个及以上中断,单片机才会按照那个顺序处理,而不是说,单片机默认的外中断0最高的意思,其实,他们还是平级的,就是说,如果有任何一个中断正在执行,其他中断是无法打断的,除非你设置了IP寄存器。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询