51单片机程序跑飞一般有软件和硬件两种原因。
硬件原因就是单片机受到了强烈的电磁干扰,导致内部寄存器数值发生异常变化,最主要的就是干扰改变了程序计数器PC值,程序就会进入异常地址。
解决硬件跑飞的方法,要么是选择抗干扰能力强的单片机,要么就是提高电源的EMC性能。
软件跑飞的原因很多,但最常见的是程序存在bug,在某个特定的激励下产生了死循环。
为了防止程序跑飞产生误动作,51单片机一般都启用看门狗,在检测到程序跑飞之后,看门狗会强制复位单片机。