STC89C5XX单片机看门狗说明

下面是关于STC89C5XX-51 单片机看门狗的描述

WDT_CONTR 位置0xE1; [-] [-] [EN_WDT] [CLR_WDT] [IDLE_WDT] [PS2] [PS1] [PS0]

EN_WDT: 看门狗允许位,置 1 启动看门狗,看门狗不能自动启动,需要设置该位后启动,一旦启动不能关闭(只能系统重新上电和看门狗复位可以关闭)

CLR_WDT: 看门狗计数器清零位,置1 清零看门狗计数器,当计数器开始重新计数,硬件清零该位。

IDLE_WDT: 单片机IDLE 模式看门狗允许位,当IDLE_WDT=1时,单片机在 IDLE 模式(空闲模式)依然启用看门狗

PS2~PS0: 看门狗定时器预分频器,下表中 Prescale 表示预分频数

PS2 PS1 PS0 Prescale
0 0 0 2
0 0 1 4
0 1 0 8
0 1 1 16
1 0 0 32
1 0 1 64
1 1 0 128
1 1 1 256

看门狗溢出时间:(NPrescale32768)/晶振频率,其中 N 表示指令周期数 N=12 表示 12 时钟周期模式;N=6 表示6时钟周期模式。如N=12,晶振频率为12MHz,PS2~PS0为100时,溢出时间=(123232768)/12=1048576us,差不多是1s。

例如:给WDT_CONTR写入0×34,即是激活看门狗,同时预分频数设为32。喂狗过程也是一样的。

顺便说一下ATMEL-51单片机的看门狗

下面是关于ATMEL-51单片机看门狗的描述

【看门狗计数器】(watchdog timer)是一个14位的计数器,它以机器周期(晶振频率/12)增加,当计数值计满(16383/0×3FFF)了就使单片机软复位;当启动了【看门狗计数器】之后,我们需要在它计数没有满之前复位计数器强制它不能够溢出,这个过程称作喂狗。

一般设置是给 WDTRST 先写入0×1E 再写入0xE1激活看门狗;喂狗过程也是一样的,给 WDTRST 先写入0×1E 再写入0xE1。