单片机在运行开机时都需要复位,使单片机的CPU以及系统中其他功能部件都处于一个确定的初始状态,并从这个状态开始工作。复位是单片机的初始化操作。当程序运行出错或操作错误使系统处于死循环、跑飞状态时,也需复位操作,使单片机摆脱死循环、跑飞状态而重新从0000H开始执行程序。MCS-51系列单片机的复位信号从RST引脚输入,高电平有效,要求持续时间大于两个机器周期。
但在实际应用中,单片机本身是不能自动进行复位的,必须配合相应的外部电路才能实现。
无论是在单片机刚开始接上电源时,还是断电后或者发生故障后都要复位,所以必须弄清楚MCS-51系列单片机复位的条件、复位电路和复位后状态。
在单片机的RST引脚上有持续两个机器周期(即24个振荡周期)的高电平即可让单片机进行复位操作,完成对CPU的初始化处理。如果单片机的时钟频率为12MHz,每机器周期为1μs,则只需让RST引脚保持2μs以上高电平的就能复位。复位操作是单片机系统正常运行前必须进行的一个环节。但如果RST持续为高电平,单片机就处于循环复位状态,无法执行用户的控制程序。
1 内部复位
内部复位电路在每一个机器周期的S5P2期间采样斯密特触发器的输出端,斯密特触发器可以抑制RST引脚的噪声干扰,如图2-16所示。复位期间不产生ALE信号,并且内部RAM处于不断电状态,其中的数据不会丢失。复位后单片机内部各寄存器的内容见表2-8。复位后,只影响SFR中的内容,内部RAM中的数据不受影响。
实际应用中,复位操作有上电自动复位、手动复位和看门狗复位三种方式。
2 外部复位
如图2-17所示,单片机在启动后,要从复位状态开始运行,因此,上电时要完成复位工作,称为上电复位,上电瞬间电容两端的电压不能发生突变,RST端为高电平+5V,上电后电容通过RC电路放电,RST端电压逐渐下降,直至低电平0V,适当选择电阻、电容的值,使RST端的高电平维持两个机器周期以上即可以完成复位。
(www.xing528.com)
图2-16 51系列单片机的内部复位结构
图2-17 开机/人工复位电路(外部复位)
单片机在运行过程中,由于本身或外界干扰的原因会导致出错,这时可按复位键以重新开始运行,按键电平复位时,按键时间也应保持在两个机器周期以上。进行按键手动复位,图中电容器采用电解电容,一般取4.7~10μF,电阻取1~10kΩ。
用户应用程序在运行过程中,有时会有特殊需求,需要实现单片机系统软复位(热启动之一)。看门狗复位是一种程序检测自动复位方式,在增强型51单片机中,如果单片机内部设计有看门狗部件,则可采用编程方法产生复位操作。单片机复位以后,除不影响片内RAM状态外,SP即赋初值为07H,表明堆栈底部在07H,需重新设置在30H以上;程序计数器PC被清0;P0~P3口用作输入口时,必须先写入1,单片机在复位后,已使P0~P3口每一端线为1,即为这些端线用作输入口做好了准备;单片机内部多功能寄存器的状态都会被初始化。单片机的特殊寄存器复位状态见表2-8。
表2-8 内部特殊寄存器复位状态表
表2-8中出现的×表示非有效位,即该位可以是0,也可以是1,IP、IE和PCON的有效位为0。
在某些控制应用中,要注意考虑P0~P3引脚的高电平对接在这些引脚上的外部电路的影响。例如,当P1口某个引脚外接一个继电器绕组,当复位时,该引脚为高电平,继电器绕组就会有电流通过,就会吸合继电器开关,使开关接通,可能会引起意想不到的后果。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。