寄存器
The WDT period is determined by the following equation 看门狗溢出时间计算
看门狗溢出时间 =( N x Pre-scale x 32768) / Oscillator frequency
N = 12, 当在 12 clock mode 时,N = 6,当在 6 clock mode 时
设时钟为 12MHz,12 时钟模式
看门狗溢出时间 = ( 12 x Pre-scale x 32768) / 12000000 = (12X64X32768)/12000000=2.097152
例程
#include <reg52.h> //52系列单片机头文件
#define uchar unsigned char
#define uint unsigned int
uchar temp,num,num1;
sfr WDT_CONTR=0xE1;//地址
sbit led1=P1^0;
sbit beep=P2^3;
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void delayms(uint xms)
{
uint i,j;
for(i=xms;i>0;i--) //i=xms即延时约xms毫秒
for(j=110;j>0;j--);
}
void main()
{
WDT_CONTR=0x35;空闲模式不计数
led1=0;
delayms(500);
led1=1;
beep=0;
delayms(100);
beep=1;
delayms(100);
while(1)
{
delayms(1000);
WDT_CONTR=0x35;//喂狗
}
}
官方给的例程提到不要用 WDT_CONTR = WDT_CONTR | 0x10