51系列单片机开发宝典
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

2.6 51系列单片机的复位

单片机的复位是一个很重要的内容,复位是使单片机的CPU以及系统的各个部件处于特定的初始状态,并使系统从初始状态开始工作。一般在系统上电或者程序死机的时候需要进行单片机的复位。

2.6.1 单片机的复位状态

单片机在上电时,首先处于一个特定的状态,成为复位状态。在复位状态下,CPU和整个硬件资源,特别是特殊功能寄存器都处于初始化的状态。表2.8列出了在单片机复位状态下的初始值。

表2.8 单片机的复位状态

其中,带“*”号的为AT89S52所特有的,其余适用于所有的8051。从表2.8中可以看出,在复位状态下,PC=0000H,表示单片机CPU将从0000H单元开始向下执行程序。

2.6.2 单片机的复位电路

单片机的复位是很重要的,复位操作可以完成单片机的初始化,也可使处于死机状态下的单片机重新开始运行。

1.复位要求

单片机复位的原理是,在时钟电路开始工作后,在单片机的RST引脚施加24个时钟振荡脉冲(即两个机器周期)以上的高电平,单片机便可以实现复位。在复位期间,单片机的ALE引脚和引脚均输出高电平。当RST引脚从高电平跳变为低电平后,单片机便从0000H单元开始执行程序。

在实际应用中,采用外部复位电路来进行单片机复位一般在RST引脚保持10ms以上的高电平,保证单片机能够可靠地复位。单片机的复位电路可以有上电复位、手动上电复位、看门狗复位以及一些复杂的复位电路。下面分别介绍。

2.上电复位电路

上电复位电路的基本原理是利用RC电路的充放电效应,电路图如图2.11所示。当单片机系统上电的时候,复位电路通过电容加在RST引脚一个短暂的高电平信号,这个高电平信号随着电容的充电而逐渐降低,这个高电平持续的时间和RC电路的充放电时间有关。

3.手动上电复位电路

在实际应用的电路中,一般采用既可以手动复位,又可以上电复位的电路,这样可以人工复位单片机系统。这种电路图,如图2.12所示。上电复位部分的原理也是RC电路的充放电效应。除了系统上电的时候可以给RST引脚一个短暂的高电平信号外,当按下按键开关的时候,VCC通过一个电阻连接到RST引脚,给RST一个高电平;按键松开的时候,RST引脚恢复为低电平,复位完成。

图2.11 上电复位电路

图2.12 手动上电复位电路

4.定时监视器(WDT,看门狗)复位

近年来新出的新型单片机均包含看门狗WDT,WDT可以根据应用程序的运行周期来设定。当应用程序在运行过程中,由于外界的干扰而进入非正常工作状态时,WDT定时计数器产生溢出信号,复位单片机,重新恢复正常运行。

对于自身不带看门狗WDT功能的单片机,可以采用专门的复位电路芯片,如MAXIM公司的MAX813L。MAX813L是带有看门狗和电源监控功能的复位芯片,具体的用法可以参考该芯片的资料手册。

5.复杂的复位电路

对于前面介绍的简单的复位电路,干扰很容易传入复位端。虽然在大多数情冴下不会引起单片机误复位,但有时会使某些寄存器错误复位。因此,在一些要求严格的场合,需要对单片机的复位电路进行仔细设计,或采用专用的复位芯片来完成。图2.13和图2.14所示的便是两个例子。

图2.13 复杂的复位电路1

图2.14 复杂的复位电路2