您现在的位置: 冯锡斌 > 博客 > 工作学习 > 学习资料 > 正文
51(STC系列看门狗概念)

STC系列单片机内部自带看门狗,通过对相应的特殊功能寄存器的设置就可以实现看门狗的应用。STC89系列单片机内部有一个专门的看门狗定时器寄存器,watch dog timer寄存器。

  1.WDT_CONTR位于STC系列单片机的特殊功能寄存器中,字节地址为E1H,不能位寻址。

  2.该寄存器用来管理STC单片机的看门狗控制部分,包括看门狗启动和停止、设置看门狗的溢出时间等。

  3.单片机清零时,该寄存器不一定全部被清零。

  4. D7 D6   D5      D4     D3       D2  D1 D0

     -- -- EN_WDT  CLR_WDT IDLE_WDT PS2 PS1 PS0

     EN_WDT:看门狗允许控制位,当设置为1时,启动看门狗

     CLR_WDT:看门狗清零位,当设置为1,看门狗定时器重新计数。硬件自动将此位清0.

     IDLE_WDT:看门狗IDLE模式,当设置IDLE_WDT=1时,看门狗定时器在单片机的“空闲模式”下计时。反之在空闲模式下不计时。

     PS2、PS1、PS0:看门狗定时预分频值。

  5.看门狗溢出时间=(N*预先分频数*32768)/晶振频率

     N:表示单片机的时钟模式,一种是单倍速,也就是12时钟模式;另外一种是双倍速,又称6时钟模式,在该模式下STC单片机比其他公司的51单片机速度快一倍。

例子:

#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
sfr WDT_CONTR=0xe1;//定义寄存器
sbit led1=P1^0;
void delayms(uint xms)
{
 int i,j;
 for(i=xms;i>0;i--)
  for(j=110;j>0;j--);
}
void main()
WDT_CONTR=0x35;//喂狗

 led1=0;
 delayms(1000);
 led1=1;
 while(1)
 
  WDT_CONTR=0x35;//喂狗    

  delayms(1000);
 }
}

发表评论(3)
d-change.net  发表于  2023-11-24 0:53:22
Right here is the perfect site for anyone who really wants to find out about this topic. You know so much its almost hard to argue with you (not that I actually would want to…HaHa). You certainly put a new spin on a topic which has been discussed for ages. Wonderful stuff, just great!
https://skdjht3eigjsfdgfddf.com  发表于  2023-11-15 1:24:31
If some one needs expert view about running a blog afterward i suggest him/her to go to see this website, Keep up the good job. https://skdjht3eigjsfdgfddf.com
Iopafeopt  发表于  2016-11-24 8:58:52
Ugireojfe whfiwehfjwehwhfjehfwefhweh 777uiop fweh iwehf weiohf wieohf iwehf iweyu59tu328hfire iuwfodhqw934785 h3urh9wjfwgut h9wh9889wh98r h4wt93qrj29th2 rj2ghw9tfq.
姓名 *
电子邮件
QQ
评论内容 *
验证码 *图片看不清?点击重新得到验证码