看门狗程序

2019-07-16 04:53发布

我用的单片机是STC90C516RD+,我在《51例说单片机》这本书里看到看门狗的使用很简单,就3句话:
1. 定义看门狗:sfr WDTRST=0xa6;  
2:将0x1e ,0xe1分别赋值给看门狗 :
WDTRST=0x1e;
WDTRST=0Xe1;
我写了如下代码:
#include<<reg52.h>>
#include<<intrins.h>>
#define LED P3
sfr WDTRST=0xa6;
void main(void)
{
     WDTRST=0x1e;
     WDTRST=0Xe1;
    P3=0xfe;
     while(1)
    {
        LED=_cror_(P3,1);
       delay1s(1);
    }

}
但是等跑起来没有一点问题,看门狗没有复位系统。
然后我用的单片机资料里说的是有一个WDT_CONTR寄存器,它的地址是E1。我不知道这个寄存器的头文件,于是直接写出了以下代码:
sfr WDT_CONTR=0xe1;
void main(void)
{
  WDT_CONTR=0X24;//打开看门狗,设定看门狗复位时间
  P3=0xfe;
  while(1)
  {
   delay100ms(10);//延时1秒
   P3=_cror_(P3,1);
  }

}
这个看门到了时间就会复位,LED也会一下子就跳到第一个灯那里 。
我的问题:
第一个看门狗为什么没有复位 ?
第二个看门狗的头文件 ?这两个看门狗到底哪个是对的哦 ??
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。