前言:
首先简单介绍一下外界干扰对单片机的2点影响:
(1)异常复位
在刚上电或外部复位引脚为复位电平时,单片机系统进入一个预定的状态——复位状态。在复位状态下,控制寄存器的值是确定的,而数据寄存器的值是随机的,程序计数器也被赋予一个确定的值。但多数情况下控制寄存器的初始值并非我们需要的,不确定的数据寄存器的值也是无法使用的,需要初始化把它们设置成一个预期的、确定的且安全的状态。初始化完成后,系统进入待命状态。系统在工作过程中,因来自电源的干扰,也可能执行复位操作,称为异常复位,这时如不采取措施,记录工作过程的数据又会被初始化,从而造成异常停机。
(2)程序跑飞
所谓程序跑飞是程序没按预定的顺序执行。因为单片机执行了不该执行的指令,该指令一旦执行,系统的状态就发生改变且不能自动恢复,这时,系统处于失控制状态。
问题分析:
这里我们主要针对STM8S105系列单片机提出一种软件抗干扰的措施:
存在问题:使用STM8S105单片机控制电机正反转工作时,继电器的吸合和断开会对单片机产生电磁波干扰,使得单片机出现异常复位情况,造成系统停机。通过示波器检测单片机VCC,发现在继电器动作瞬间会对VCC产生较大冲击。
解决方案:(1)硬件:合理布板;退耦、滤波以及隔离;加屏蔽(针对强电磁干扰下)
(2)软件:由于控制系统是通过计时器和外部端口的状态变化来驱动系统工作的,并通过数据寄存器记录工作过程,