Ⅰ 单片机系统死机但是reset可以触发
这种情况是正常的,因为单片机都有这个按钮,这就是预防单片机出现问题的时候,重新启动
Ⅱ 单片机死机的原因求助高手
单片机死机的原因,通常是因为周围环境干扰比较严重,如工厂车间各种机器,电焊机等工作时,就是产生很强的干扰脉冲,加上单片机的防干扰措施不到位,就是会被干扰破坏了正常的动行,造成飞程序,进入死机状态。
如果是在这种环境下的单片机,就是做好防干扰措施。
Ⅲ 单片机低电压导致的死机
单片机一般是 COMS 结构,电源电压范围已经很宽,如果电压过低,内部程序以及外部的控制电路工作极不稳定,会造成控制错误,还不如停止单片机的工作,这就是低电压复位。 低电压复位就是检测电源电压的结果,就是“不让单片机工作”。 我估计你说的“不让单片机工作”,是指程序继续工作,只是把控制停下,是低电压下,程序工作是不可靠的。具体情况就要看你的设备而定了。现在写程序一般都有看门狗这样的检测程序,如果死机的话,会重启。当然,也不排除看门狗有问题,当然,更多的是程序本身有问题而导致的! 外部可能引起死机可能就是电压不稳、静电过大等原因。单片机程序死机,跑飞了可以从以下几个方面查找原因:
1. 意外中断。是否打开了某个中断,但是没有响应和清除中端标志,导致程序一直进入中断,造成死机假象;
2. 中断变量处理不妥。若定义某些会在中断中修改的全局变量,这时要注意两个问题:首先为了防止编译器优化中断变量,要在这些变量定义时前加volatile,其次在主循环中读取中断变量前应该首先关闭全局中断,防止读到一半被中断给修改了,读完之后再打开全局中断;否则出现造成数据乱套。
Ⅳ 请教各位大侠,关于单片机长时间运行死机的问题
长时间运行死机的原因相对也算多:
①有振荡器(特别是陶瓷振荡器)振荡不良,长时间运行后,振荡器停振导致单片机死机。
②有单片机(特别是国产某晶)性能不佳,平均每1~1月就有一次死机。
③有设计(硬件抗扰)不佳,使用环境出现恶劣条件(各种干扰:静电、电磁、脉冲……),导致单片机死机。
…………
对于①,重新上电,99%以上能恢复正常,1%振荡器就坏了。
对于②,重新上电,100%能恢复正常。
对于③,重新上电,50%~70%能恢复正常,剩下的,很可能被静电击穿MCU,导致永久性损坏。
解决方法:
对于①,采用晶体振荡器(就是晶振,金属外壳那种,记得匹配好旁路电容)。
对于②,更换工业性能稳定的单片机品牌。
对于③,硬件设计考虑多点环境干扰,这对硬件工程师要求比较高,不是毕业生或工作经验一年两年的人能做的。必须有相关行业经验的工程师,不然就是工作10年8年也没这能力。(更换工业性能良好的单片机,可以将“重新上电恢复正常”提高到80%~90%,但不能解决死机。)
Ⅳ 51单片机中断时卡死
1、首先51单片机意外中断,查看51单片机是否打开了某个中断,但是没有响应和清除中端标志,导致程序一直进入中断,造成死机假象。
2、其次地址溢出,常见错误为指针操作错误。我要着重说的是数组下标使用循环函数中循环变量,如果循环变量没档码卜控制好则会出现数组下标越界,意外修改系统的寄存器造成死机。
3、最后看门狗没有关闭。有的单片机即使没使用看门狗开机时也有意外行穗自动开启了最小周期的看门狗,导致软件不断复位,造成死机,这个要模侍看芯片手册,最好在程序复位后首先显式清除看门狗再关闭看门狗。