单片机低电压导致的死机

单片机低电压导致的死机,第1张

单片机一般是 COMS 结构,电源电压范围已经很宽,如果电压过低,内部程序以及外部的控制电路工作极不稳定,会造成控制错误,还不如停止单片机的工作,这就是低电压复位。 低电压复位就是检测电源电压的结果,就是“不让单片机工作”。 我估计你说的“不让单片机工作”,是指程序继续工作,只是把控制停下,是低电压下,程序工作是不可靠的。具体情况就要看你的设备而定了。现在写程序一般都有看门狗这样判迅的检测程序,如果死机的话,会重启。当然,也不排除看门狗有问题,当然,更多的是程序本身有问题而导致的! 外部可能引起死机可能就是电压不稳、静电过大等咐如原因。单片机程序死机,跑飞了可以从以下几个方面查找原因:

1. 意外中断。是否打开了某个中断,但是没有响应和清除中端标志,导致程序一直进入中断,造成死机假象

2. 中断变量处衡冲启理不妥。若定义某些会在中断中修改的全局变量,这时要注意两个问题:首先为了防止编译器优化中断变量,要在这些变量定义时前加volatile,其次在主循环中读取中断变量前应该首先关闭全局中断,防止读到一半被中断给修改了,读完之后再打开全局中断否则出现造成数据乱套。

STC系列单片机可以应用低电压中断保存数据在EEPROM中,但Proteμs仿真软件不烂拿桐能仿真STC系列单片机的部分特殊功能,在实际电路中利用低电敏凳压中断保存数据是没饥坦有问题的。

在这里 教你 一种方法,在设计电路时 加一个 检测 电源电压的电路,

有些单片机 内部带有 低电压 检测功能,可以产生中断,只要加以使用 就可以了,

方法 是 在 单片机 关闭电源 时 电压 有一个 下降过程,如 5 V 电源,

下降 到 如 4.5 V 时 产生低电压知册 中断,这时把困源 需要的 数据 编程到 EEPROM 中,

单片机 接通 电源 时 首先 把 EEPROM 中数据 读搭尺宏取 恢复,再运行 相应的程序。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12220228.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存