pa2792 发表于 2014-2-12 14:13
MAX813监测VCC引起的,当你电磁阀投切时会产生一个波动电压跳动,影响到MAX813监测的VCC所以会给一个RST信 ...
不是这样的,我把813去掉,单片机跑飞后,数码管会乱闪,但还能响应按键操作,也能响应外部触发信号,有时候过很长时间能自动复位。把813装上,跑飞后2秒之内就会复位。
我的主程序什么也不做,仅控制程序进入休眠(退出定时中断就休眠,直到被下一次中断唤醒),所有的任务都在定时中断里完成,程序跑飞时,定时中断没有被关掉,所以跑飞后主要功能还得以保留。
实际上电磁阀动作并不会引起太大的电压波动,问题在于PCB布线不合理,控制电磁阀的继电器底部的走线离触点焊盘太近,隔离不够,这样导致继电器动作时,220v的交流电压叠加上电磁阀的感生电压击穿了绝缘隔离,“串到”DC12v的电源上,而不合理的铺铜,又使得DC12v和DC5v隔离不清,最终这个干扰就直接串到单片机的电源上了。虽然DC12V和DC5V并不共地,但不合理的铺铜使得这个隔离很勉强。
所以,最终我只是重新画了PCB,原理图和程序都没有任何改动,问题得到解决。 |