检查下你是用什么方式中断的,如果外部触发一直存在肯定就跳不出来,如果怀疑是程序问题,在DJNZ R0,LOOP3上面把R0设为1,只执行一次就应该出来,如果还是没出来,肯定就是外部触发的问题了。。。
肯定串口有数据,且接收完成后才能进入中断,造成你这种现象的,要么是硬件电路有干扰,RXD线总有一些干扰脉冲,所以造成中断。要么是程序其他地方有问题,强制是RI置1,而进入了中断。
1、既然你设置中断了,进入中断无可厚非
2、肯定是符合中断条件了才进入的中断
3、如果有异议的话,在你使能中断前,先把中断标志位给清除掉。
4、请接到固定电平上。悬空是输入状态未知,产生中断也无可非议。
1、首先51单片机意外中断,查看51单片机是否打开了某个中断,但是没有响应和清除中端标志,导致程序一直进入中断,造成死机假象。
2、其次地址溢出,常见错误为指针操作错误。我要着重说的是数组下标使用循环函数中循环变量,如果循环变量没控制好则会出现数组下标越界,意外修改系统的寄存器造成死机。
3、最后看门狗没有关闭。有的单片机即使没使用看门狗开机时也有意外自动开启了最小周期的看门狗,导致软件不断复位,造成死机,这个要看芯片手册,最好在程序复位后首先显式清除看门狗再关闭看门狗。
1、进入中断,是不是没有清除中断标志
2、红外电路设计是否有误,如:受到外部干扰频繁的有变化产生干扰
PCON寄存器的IDL位(bit 0)用于控制单片机进入空闲模式。当产生中断或发生复位时自动恢复运行。
SETB PCON.0
PCON寄存器的PD位(bit 1)用于控制单片机进入掉电模式。当发生复位时自动恢复运行。
SETB PCON.1
单片机一直进入空闲中断的介绍就聊到这里吧,感谢您花时间阅读,谢谢。
本文标签:单片机一直进入空闲中断