单片机 看门狗中WDT_CONTR=0x35 是什么意思,有什么用

作者&投稿:封残 (若有异议请与网页底部的电邮联系)
WDT是什么~

其作用是监测单片机的运行,一旦发现“死机”就发出复位信号恢复程序的正常运行。WDT电路种类很多,但基本原理相同。WDT电路是一个独立的计时器,单片机在正常的运行中会不断发出计时清零信号给WDT,清WDT计时器,使WDT无法产生复位信号。

首先 ,你要知道什么是看门狗?
在由单片机构成的微型计算机系统中,由于单片机的工作常常会受到来自外界电磁场的干扰,造成程序的跑飞,而陷入死循环,程序的正常运行被打断,由单片机控制的系统无法继续工作,会造成整个系统的陷入停滞状态,发生不可预料的后果,所以出于对单片机运行状态进行实时监测的考虑,便产生了一种专门用于监测单片机程序运行状态的芯片,俗称"看门狗"(watchdog)。
其次,看门狗的工作原理是什么?
在系统运行以后也就启动了看门狗的计数器,看门狗就开始自动计数,如果到了一定的时间还不去清看门狗,那么看门狗计数器就会溢出从而引起看门狗中断,造成系统复位。所以在使用有看门狗的芯片时要注意清看门狗(俗称喂狗)。
下面这段程序是我成功调试过了的,看门狗寄存器的各位的具体的意义,你可以自己去看下单片机的PDF文档,里面有详细的介绍...................
#include 52系列单片机头文件
#define uchar unsigned char
#define uint unsigned int
sfr WDT_CONTR=0xe1;/*看门狗寄存器声明*/
sbit led1=P1^0; /*接发光二极管*/
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;
while(1)
{
delayms(1000);
// WDT_CONTR=0x35;/*喂狗,如果这句话不加的话单片机就 会一直复位,看到的现象是发光二极管闪烁,加上这句的话,发光二极管一直亮着,所以在实际工程应用的时候通常要在程序里面调用比较频繁的函数内部写上这句话*/
}
}
/*******************************************************************
喂狗的技巧:如果一个大循环少于看门狗益处时间,
放在while(1)哪个地方都可以啊,如果大于,看下
哪个地方停顿时间长就放哪
*********************************************************************/

sfr WDT_CONTR=0xe1;
WDT_CONTR为STC的看门狗寄存器,
第7位为看门狗溢出位,溢出置1,需要软件清0,
第6位没用到,
第5位为看门狗使能位,置1启动看门狗
第4位为看门狗清零位,置1清0看门狗,看门狗重新计数后硬件自动清0该位,
第3位为看门狗模式位,置1时为在空闲模式也计数,
后面三位就是看门狗定时器分频值了,

细节只要在STC的规格书上搜WDT_CONTR就可以找到。

给 WDT_CONTR 寄存器赋值 0X35 即 00110101,你查一下每一位对应的作用就好了


五峰土家族自治县18430656109: avr单片机中看门狗(WDT)都有哪些做用? -
大哑硝呋: WDT其实就是一个定时器,只是这个定时器的中断向量是指到复位地址,产生中断后芯片就复位了,但也有些单片机看门狗溢出后有专门的中断向量.既然它的中断向量指向复位地址,那么芯片要正常运行,我们肯定要避免它溢出,即喂狗....

五峰土家族自治县18430656109: STC单片机如何禁止看门狗 -
大哑硝呋: 上电 时 只要 不给看门狗初始化,就不会启动看门狗,启动看门狗后就不能关闭.

五峰土家族自治县18430656109: 单片机的看门狗怎么用 -
大哑硝呋: 首先 ,你要知道什么是看门狗? 在由单片机构成的微型计算机系统中,由于单片机的工作常常会受到来自外界电磁场的干扰,造成程序的跑飞,而陷入死循环,程序的正常运行被打断,由单片机控制的系统无法继续工作,会造成整个系统的陷...

五峰土家族自治县18430656109: STC89C51看门狗应用
大哑硝呋: 不需要 只需要在声明语句中加上#include <reg52.h> sfr WDT_CONTR =0xe1; ...... void main() { ...... WDT_CONTR=0x34; ... while(1) { ... WDT_CONTR=0x34; //喂狗 } }当然单片机最小电路还是要满足:外部复位,电源,晶振

五峰土家族自治县18430656109: 51单片机看门狗寄存器设置. -
大哑硝呋: 首先要看是什么单片机,不同的单片机的看门狗的溢出时间是不同的,但不会有这么长的单片机的.STC的单片机晶振是11.0592时,最长的溢出时间是9.1022秒,这就要求必须在溢出时间内喂一次,所以,是不可能设置成30秒的.不过,为什么要设置这长的时间呢,假设可以设置成这么长的时间,在实际应用假设单片机进入死机状态了,需要30多秒以后看门狗才能复位,这么长的时间,复位还有什么意义了,如果是单片机控制重要的设备,这么长的时间早就出现严重事故了,复位已经不起作用了.所以,实际应用中,喂狗时间最好要小于1秒,才能真正起到保护的作用.

五峰土家族自治县18430656109: AVR单片机中看门狗(WDT)都有哪些作用? -
大哑硝呋: 其实看门狗就是一个定时器,单片机里面有关于看门狗的设置. 其实看门狗就是一个防止程序跑飞的工具. 如果你设置了看门狗,在你程序开始跑,他就开始计时,如果一段时间内,你没有去清理标志位(看门狗设置了标志位),那就会自动系统复位.所以一般人叫清理标志位形象的为喂狗. 所以一般编程中还有一个概念就是“禁止看门狗”,就是说不要看门狗的功能了,就禁止掉 c51中看门狗的设置时在寄存器PCA0MD中

五峰土家族自治县18430656109: 51单片机中看门狗定时器寄存器在特殊功能寄存器中的字节地址E1H是什么意思,sfr WDT - CON -
大哑硝呋: 二者是一样的;就是告诉你 这个寄存器在0xe1这个地址;类似家里的门牌号码 信件上的地址与家里的门牌号一致,就能顺利送达,不一致就就送到别的地方去了.信里的内容对正确的门牌有意义,能得到正确的回应.对不正确的 门牌,就没有意义了,或许还会产生未知的结果.

五峰土家族自治县18430656109: STC15看门狗定时器是12分频吗 -
大哑硝呋: STC15看门狗定时器是先对系统时钟12分频的.但还要第二次分频,这个分频倍数最可编程设置的,由寄存器WDT_CONTR中的低三位来设置,见下表.其中,说明中画红框内容即为溢出时间的计算公式.

五峰土家族自治县18430656109: stc12c5a60s2单片机看门狗问题 -
大哑硝呋: 在主程序中 加一条 喂狗 指令就可以了( 就是在主程序的 大循环中 加 ) 如汇编 MOV WDT_CONTR, #3BHNOP NOP C语言WDT_CONTR = 0x3b ;

五峰土家族自治县18430656109: avr单片机中看门狗(WDT)都有哪些做用?
大哑硝呋: 圣大侠,你也对AVR有兴趣啊! 我来说两句 看门狗,又叫 watchdog timer,是一个定时器电路, 一般有一个输入,叫喂狗,一个输出到MCU的RST端,MCU正常工作的时候,每隔一端时间输出一个信号到喂狗端,给 WDT 清零,如果超过规定的时间不喂狗,(一般在程序跑飞时),WDT 定时超过,就回给出一个复位信号到MCU,是MCU复位. 防止MCU死机. 看门狗的作用就是防止程序发生死循环,或者说程序跑飞. 想知道在AVR中看门狗的程序怎么写吗?直接找我吧!AVR单片机不需要外接看门狗芯片,内部包含.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网