下面是关于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
看门狗溢出时刻:(N*Prescale*32768)/晶振频率,其间 N 表明指令周期数 N=12 表明 12 时钟周期形式;N=6 表明6时钟周期形式。如N=12,晶振频率为12MHz,PS2~PS0为100时,溢出时刻=(12*32*32768)/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。