【51单片机快速入门指南】8:看门狗定时器(WDT)

发布者:asa1670最新更新时间:2022-07-13 来源: csdn关键字:51单片机  入门指南  看门狗定时器  WDT 手机看文章 扫描二维码
随时随地手机看文章

普中51-单核-A2

STC89C52

Keil uVision V5.29.0.0

PK51 Prof.Developers Kit Version:9.60.0.0


硬知识

       摘自《STC89C52系列单片机器件手册》


适用型号:

STC89C51,STC89C52,STC89C53,STC89C14,STC89LE51,STC89LE52,STC89LE53,STC89LE14,STC89C54,STC89C58,STC89C516,STC89C510,STC89C512,STC89C514,STC89LE54,STC89LE58,STC89LE516,STC89LE510,STC89LE512,STC89LE514


       在工业控制/ 汽车电子/ 航空航天等需要高可靠性的系统中,为了防止“系统在异常情况下,受到干扰,MCU/CPU程序跑飞,导致系统长时间异常工作”,通常是引进看门狗,如果MCU/CPU 不在规定的时间内按要求访问看门狗,就认为MCU/CPU处于异常状态,看门狗就会强迫MCU/CPU复位,使系统重新从头开始按规律执行用户程序。

       STC89C52系列单片机内部也引进了此看门狗功能, 使单片机系统可靠性设计变得更加方便/简洁。为此功能,我们增加如下特殊功能寄存器WDT_CONTR:

WDT_CONTR: 看门狗(Watch-Dog-Timer)控制寄存器

在这里插入图片描述

EN_WDT :

       看门狗允许位, 当设置为“1 ”时,看门狗启动。

CLR_WDT :

       看门狗清“0”位,当设为“1”时,看门狗将重新计数。硬件将自动清“0 ”此位。

IDLE_WDT :

       看门狗“IDLE ”模式位, 当设置为“1”时, 看门狗定时器在“空闲模式”计数

       当清“0”该位时, 看门狗定时器在“空闲模式”时不计数

PS2,PS1,PS0 :

       看门狗定时器预分频值,如下表所示

image.png

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

测试程序

main.c

初始化看门狗,[PS2:PS0] = 0,晶振频率为11.0592MHz,则看门狗溢出时间 = 12 / =12/=12/ 11.0592M × 65536 × 2 [ P S 2 : P S 0 ] = 2^{[PS2:PS0]}=2 

[PS2:PS0]

 = 0.0711s = 71.1ms


#include


#define WDT_EN 0x20

#define WDT_DIS 0x00

#define WDT_CLR 0x10

#define WDT_IDLE_EN 0x08

#define WDT_IDLE_DIS    0x00


void main(void)

{

WDT_CONTR = 0;

WDT_CONTR = WDT_EN|WDT_CLR|WDT_IDLE_EN|0;

P20 = 0;

while(1)

{

}

}


现象

在这里插入图片描述

关键字:51单片机  入门指南  看门狗定时器  WDT 引用地址:【51单片机快速入门指南】8:看门狗定时器(WDT)

上一篇:【51单片机快速入门指南】9:省电模式(低功耗)
下一篇:【51单片机快速入门指南】7:片上EEPROM

推荐阅读最新更新时间:2024-11-10 11:54

基于51单片机实现LED模拟交通灯
具体功能实现: 南北红灯亮,东西绿灯亮;南北绿灯亮,东西红灯亮;在红绿灯转换过程中,黄灯闪烁5次。 使用器件: 若干电阻、4只LED红灯、4只LED绿灯、4只LED黄灯、AT89C51芯片 Proteus仿真原理图: 仿真测试: 知识介绍: Proteus布线 为了让整个原理图看上去简洁明了,我们对元器件的导线进行标号,而不是直接和芯片相连。 LED低电平有效 LED的特性是单向导通,只有当阳极的电压大于阴极的电压才能导通。在仿真图中LED的阳极接了电源,因此阴极我们置0方可导通。 主要代码(C语言)KEIL5实现: #include REGX52.H sbit RED_A = P0^0; //east and
[单片机]
51单片机-多文件编写
为了与主流的编程素养接轨,我们本章讲解如何书写简洁并且高效率的代码以及首次运用多文件编程。多文件的作用是方便编写大程序时更加的模块化,那么至于原理,头文件包含关系等这些知识还需读者自己再多多补补C语言知识了。 1.多文件的优势 运用多文件编程是为了使我们教程无需每次都贴出相同功能的代码,像第一阶段最后的一个例程,已经有很多代码完全可以前往以前的例程里复制即可,笔者也是考虑到一开始我们都是从单个“.c”文件入门单片机编程,所以之前的例程都是提供完整的代码给大家方便复制移植到自己的单个“.c”工程文件中。 可后期的例程里我们的代码量越来越大,显然全部给出就不合适了,所以我们把经常使用的功能模块代码封装起来放在另一个“.c”文件
[单片机]
<font color='red'>51单片机</font>-多文件编写
C51单片机 定时器模拟单路输出PWM
前言 本博文基于STC89C52RC和Keil5 C51环境开发; 如有不足之处还请多多指教; 需要的东西 定时器0; 管脚P1.0; 代码如下: #include STC89C5xRC.H #define ENABLE 1 #define DISENABLE 0 typedef unsigned char uchar8; sbit P1_0 = P1^0; bit Flag = 0; /* 占空比的时间计算: 占空比 = 高电平时间 /(高电平时间+低电平时间); */ //高电平时间(初始值为:0x02EE,即十进制750) uchar8 Timer0_TH0_High_Level_Time = 0
[单片机]
51单片机定时器\计数器的工作原理
定时器/计数器的结构: PS:此处涉及到了TCON和TMOD特殊功能寄存器,详见51单片机之特殊功能寄存器SFR篇 TH0、TH1:俩个加法型的计数变量,当外部产生一次时钟信号时,计数加一,直到加到最大值时发生溢出 何时处于计数器方式?何时处于定时器方式? 1、当计数变量使用单片机内部的时钟作为时钟源,我们称这种方式为定时器方式 2、当计数变量使用片外引脚P3.4、P3.5上存在的方波脉冲的时候,我们称这种方式为计数器方式 在使用片外引脚P3.4、P3.5上存在的方波脉冲时,需要俩个机器周期的时间才能确定一次脉冲信号,即需要产生下降沿时才能确定一次脉冲信号 TCON和TMOD特殊功能寄存器: 定时器/计数器工
[单片机]
<font color='red'>51单片机</font>之<font color='red'>定时器</font>\计数器的工作原理
51单片机4种流水灯
程序说明: LED连接在P2引脚上。 程序现象: 1、先从右到左逐个亮灭;再从左到右逐个亮灭; 2、由两侧向中间,再中间向两侧亮灭; 3、先右再左逐个亮起,不熄灭;再从左到右逐个熄灭; 4、先左再右逐个亮起,不熄灭;再从右到左逐个熄灭; #include reg52.h #define led P2 //对整个P2端口进行操作 /* 延时函数 */ void delay(unsigned int del) //10ms * del { unsigned int i,j; for(i=0; i del; i++) for(j=0; j 1827; j++) ; } void Led_Pipeline
[单片机]
8051单片机串口波特率计算方式
STC12C5A60S2单片机兼容80C51单片机,其串口波特率可以由定时器产生,也可以由独立波特率发生器产生。其波特率模式可以是固定的,也可以是可变的。 固定波特率:当 模式0的通信速度设置 位UART_M0x6/AUXR.5 = 0时,其波特率 = SYSclk/12 当 模式0的通信速度设置 位UART_M0x6/AUXR.5 = 1时,其波特率 = SYSclk/2 可变波特率:使用串行通信模式2,即可自定义串口通信波特率,其计算公式为:波特率 = 2^SMODE /64×( SYSclk 系统工作时钟频率) 当SMOD=1时,波特率=2/64( SYSclk) =1/32( SYSclk) ; 当SMOD
[单片机]
51单片机外部中断程序
/*以下是能在keilC 中变异的源码,直接粘贴过去就行,外部中断0(INT0)和外部中断1都有(INT1)*/ /*程序很简单,但是对新手来说还是很实用的*/ /*******************************************************************/ /* */ /* 单片机开发系统演示程序 - INT0 INT1 中断计数 */ /* */ /* 6位数码管显示 */ /*
[单片机]
51单片机 P0口工作原理详细讲解
一、P0端口的结构及工作原理 P0端口8位中的一位结构图见下图: 由上图可见,P0端口由锁存器、输入缓冲器、切换开关、一个与非门、一个与门及场效应管驱动电路构成。再看图的右边,标号为P0.X引脚的图标,也就是说P0.X引脚可以是P0.0到P0.7的任何一位,即在P0口有8个与上图相同的电路组成。 下面,我们先就组成P0口的每个单元部份跟大家介绍一下: 先看输入缓冲器:在P0口中,有两个三态的缓冲器,在学数字电路时,我们已知道,三态门有三个状态,即在其的输出端可以是高电平、低电平,同时还有一种就是高阻状态(或称为禁止状态),大家看上图,上面一个是读锁存器的缓冲器,也就是说,要读取D锁存器输出端Q的数据,那就得使读锁存
[单片机]
<font color='red'>51单片机</font> P0口工作原理详细讲解
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved