当前位置:首页 > 技术学院 > 热搜器件
[导读]我们使用看门狗的目的就是当单片机程序跑飞时,通过看门狗复位重新使单片机正常工作。那么看门狗主要的功能就是复位,因此每一次看门狗复位就闪烁LED 灯一段时间。那么怎样令看门狗复位呢?很简单,只要初始化看门狗后不喂狗就是了。如果不想LED 闪烁即LED 状态保持不变,就必须在看门狗定时器溢出时间范围内喂狗,即通过按键外部中断进行喂狗操作。

我们使用看门狗的目的就是当单片机程序跑飞时,通过看门狗复位重新使单片机正常工作。那么看门狗主要的功能就是复位,因此每一次看门狗复位就闪烁LED 灯一段时间。那么怎样令看门狗复位呢?很简单,只要初始化看门狗后不喂狗就是了。如果不想LED 闪烁即LED 状态保持不变,就必须在看门狗定时器溢出时间范围内喂狗,即通过按键外部中断进行喂狗操作。

#include "stc.h"

#define LED_PORT P2 //定义LED 控制端口为P2 口

void Delay(void)

{

unsigned char i,j;

for(i=0;i<130;i++)

for(j=0;j<255;j++);

}

void WDTInit(void)

{

WDT_CONTR=0x35;//使能看门狗,预分频64

}

void WDTFeed(void)

{

WDT_CONTR=0x35;

}

void EXTInit(void)

{

EX1=1; //允许外部中断1 中断

IT1=0; //低电平触发

EA=1; //允许所有中断

}

void main(void)

{

unsigned char i;

for(i=0;i<20;i++) //循环闪烁LED 灯

{

LED_PORT=~LED_PORT;

Delay();

}

WDTInit(); //初始化看门狗

EXTInit(); //外部中断初始化

while(1); //让看门狗定时器溢出复位

}

void EXT1IRQ(void)interrupt 2

{

WDTFeed(); //喂狗

}

涉及看门狗功能的函数分别是看门狗初始化函数WDTInit 和喂狗操作函数WDTFeed。在WDTInit函数中只有一个赋值操作,就是要对WDT_CONTR 看门狗定时器特殊功能寄存器赋值位0x35,即启动看门狗、看门狗将重新计数、并且预分频值为64。当单片机工作在12MHz 频率下且看门狗定时器预分频值为64,这是看门狗定时器溢出时间为2.0971s,可以从以下公式计算得到。

溢出时间=(12 x 预分频x32768)/当前MCU 工作频率

=12x64x32768/12000000

=2.097152s

喂狗操作函数WDTFeed 实质就是将WDT_CONTR 初值重载,让看门狗定时器重新计数。这个重载操作类似于定时器/计数器重载初值的操作。

看门狗的使用,只是提供一种辅助,以防止单片机系统死机。在编写程序没有加进看门狗的情况下,确保程序稳定地执行,不能太依赖看门狗。

看门狗的喂狗操作要及时,否则会造成单片机复位。喂狗操作实质就是将 WDT_CONTR初值重载,让看门狗定时器重新计数。这个重载操作类似于定时器/计数器重载初值的操作。

造成单片机工作不稳定的原因有很多:如工作环境温度过冷、过热、电磁辐射干扰严重,程序不稳定等等。

在其他类型的单片机中,看门狗定时器能够作真正的定时器来使用,很显然,STC89C52RC单片机内部的看门狗的功能就显得有些单薄。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

在由单片机构成的微型计算机系统中,由于单片机的工作常常会受到来自外界电磁场的干扰,造成程序的跑飞,而陷入死循环。程序的正常运行被打断,由单片机控制的系统无法继续工作,会造成整个系统的陷入停滞状态,发生不可预料的后果。所以...

关键字: 单片机 看门狗 计算机

STC单片机是一款增强型51单片机,完全兼容MCS-51,还增加了新的功能,比如新增两级中断优先级,多一个外中断,内置EEPROM,硬件看门狗,具有掉电模式,512B内存等。还支持ISP下载,不用编程器,只要一个MAX2...

关键字: 单片机 看门狗 中断

今天要学习的是独立看门狗,看门狗电路的应用,使单片机可以在无人状态下实现连续工作,其 工作原理是:看门狗芯片和单片机的一个I/O引脚相连,该I/O引脚通过程序控制它定时地往看门狗的 这个引脚上送入高电平(或低电平),这一...

关键字: 看门狗 中断函数 单片机

看门狗(watch dog)是一个定时器,可以设置一个定时时间,计时到时会把MCU复位,所以MCU必须要在定时时间到之前将计数值重置(这个动作通常称为喂狗)。在嵌入式系统中加入看门狗,可以监测MCU是否还在正常运行,如果...

关键字: 看门狗 定时器

我们是否因系统上出现意外的电压尖峰或电流浪涌而担心系统安全?电流浪涌和电压尖峰可能是由系统上运行的软件引起的。来自软件的意外命令会使系统陷入无限循环,从而导致电源轨上出现电流浪涌或电压尖峰,并可能损坏设备。

关键字: 看门狗 电流浪涌

本文主要介绍AUTOSAR架构下的WdgDriverWdgIfWdgM模块,分析模块之间的依赖关系以及运行原理以帮助快速理解。本文以MPC5746R为主控芯片,以FS6500为SBC,DaVinciConfigurato...

关键字: SAR 看门狗

本文主要介绍AUTOSAR架构下的WdgDriverWdgIfWdgM模块,分析模块之间的依赖关系以及运行原理以帮助快速理解。本文以MPC5746R为主控芯片,以FS6500为SBC,DaVinciConfigurato...

关键字: SAR 看门狗

这是一篇旧文,技术交流群有人在讨论这个问题,今天就来分享一下。 我

关键字: STM32 FreeRTOS 看门狗

当下,一边汽车自动化驾驶的发展势头节节攀高,一边频频出现各类痛心的质量事故。

关键字: 看门狗 自动化驾驶 安全性

  本文主要详解基于单片机的智能安防报警系统设计方案,我们以基于STC89C52单片机设计的方案来介绍,首先介绍了STC89C52引脚图及功能,其次阐述了基于STC89C52单片机的智能安防报警

关键字: stc89c52 智能安防报警系统
关闭
关闭