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

目录

  • 硬知识
  • 测试程序
    • main.c
    • 现象

普中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 :
       看门狗定时器预分频值,如下表所示
看门狗溢出时间 =(12×=(12×=(12×Pre-scale×32768)/×32768)/×32768)/Oscillator frequency
可视为16位的定时器:
看门狗溢出时间 =12/=12/=12/Oscillator frequency × 65536 × 2[PS2:PS0]2^{[PS2:PS0]}2[PS2:PS0]
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

测试程序

main.c

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

#include <STC89C5xRC.H>#define WDT_EN			0x20
#define WDT_DIS			0x00
#define WDT_CLR			0x10
#define WDT_IDLE_EN 	0x08
#define WDT_IDLE_DIS    0x00void main(void)
{WDT_CONTR = 0;WDT_CONTR = WDT_EN|WDT_CLR|WDT_IDLE_EN|0;P20 = 0;while(1){	}	
}

现象

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/400272.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java 的 == 和equals()区别

先看一个列子&#xff1a; public class Equivalence {public static void main(String[] args) {Integer n1 new Integer(47);Integer n2 new Integer(47);System.out.println(n1 n2);System.out.println(n1 ! n2);} } 通常我们都以为结果是 第一个true第二个false&#xf…

wordpress 文章页面 (single.php)

<?php $id get_the_ID();// 文章当前的 id $title get_post($id)->post_title; $my_data get_the_time(Y-m-d);$my_content get_post($id)->post_content;?>

[转]带花树,Edmonds's matching algorithm,一般图最大匹配

看了两篇博客&#xff0c;觉得写得不错&#xff0c;便收藏之。。 首先是第一篇&#xff0c;转自某Final牛 带花树……其实这个算法很容易理解&#xff0c;但是实现起来非常奇葩&#xff08;至少对我而言&#xff09;。 除了wiki和amber的程序我找到的资料看着都不大靠谱 比如昨…

linux下cat命令详解

简略版&#xff1a; cat主要有三大功能&#xff1a;1.一次显示整个文件。$ cat filename2.从键盘创建一个文件。$ cat > filename 只能创建新文件,不能编辑已有文件.3.将几个文件合并为一个文件&#xff1a; $cat file1 file2 > file参数&#xff1a;-n 或 --number 由 …

firstVue

这是生成的第一个VUE的列子&#xff0c;目录如上所示。config目录里主要表示配置目录&#xff0c;包括端口号等&#xff0c;其中配置文件中dev.env.js&#xff0c;出现了webpack-merge模块&#xff0c;可以把分开配置的config合并&#xff0c;分开生产环境和调试环境 node_modu…

【51单片机快速入门指南】9:省电模式(低功耗)

目录硬知识实验正常工作掉电模式空闲模式普中51-单核-A2 STC89C52 Keil uVision V5.29.0.0 PK51 Prof.Developers Kit Version:9.60.0.0 硬知识 摘自《STC89C52系列单片机器件手册》 仅支持掉电模式&#xff0c;不支持空闲模式 STC89C52系列单片机可以运行2种省…

怎样为wordpress主题的文章列表添加无插件分页?

测试时间 2019.04.05 测试版本: wordpress 5.1.1 中文版 测试步骤&#xff1a;共 4 1. 在主题的 functions.php 中&#xff0c;添加分页函数&#xff0c;代码如下 /** * 数字分页函数 * 因为wordpress默认仅仅提供简单分页 * 所以要实现数字分页&#xff0c;需要自定义函数…

datatable DataRow

foreach (DataRow dr in dt.Rows) { ss ss dr["活动名称"].ToString() ","; }转载于:https://www.cnblogs.com/yuluhuang/p/3272237.html

HAproxy部署配置

HAproxy部署配置 拓扑图 说明&#xff1a; haproxy服务器IP&#xff1a;172.16.253.200/16 &#xff08;外网&#xff09;、192.168.29.140/24&#xff08;内网&#xff09; 博客服务器组IP&#xff1a;192.168.29.130/24、192.168.29.131/24 网站服务器组IP&#xff1a;192.16…

Javascript验证上传图片大小[前台处理]

2019独角兽企业重金招聘Python工程师标准>>> 需求分析&#xff1a; 在做上传图片的时候&#xff0c;如果不限制上传图片大小&#xff0c;后果非常的严重。那么我们怎样才可以解决一个棘手的问题呢&#xff1f;有两种方式&#xff1a; 1)后台处理&#xff1a; 也就是…

【RK3399Pro学习笔记】十二、ROS参数的使用与编程方法

目录创建功能包参数命令行使用YAML参数文件rosparamC编写程序配置CMakeLists.txt编译并运行python编写程序运行平台&#xff1a;华硕 Thinker Edge R 瑞芯微 RK3399Pro 固件版本&#xff1a;Tinker_Edge_R-Debian-Stretch-V1.0.4-20200615 记录自【古月居】古月ROS入门21讲 | …

在Ubuntu下如何压缩一个文件夹

.gz 解压1&#xff1a;gunzip FileName.gz 解压2&#xff1a;gzip -d FileName.gz 压缩&#xff1a;gzip FileName .tar.gz 解压&#xff1a;tar zxvf FileName.tar.gz 压缩&#xff1a;tar zcvf FileName.tar.gz DirName --------------------------------------------…

Cocos2D 添加 UIView

cocos2d是使用继承于ccnode的结点类型的层。但是我想用一个opengl来绘制&#xff0c;就简单的情况来说必须得加一个uiview。现转载如下&#xff1a; 第一部分&#xff1a;&#xff1a; 使用Cocos2D开发游戏和应用程序的时候&#xff0c;时常有些功能用系统控键很容易就实现&…

Mac terminal下解压缩命令大全

sudo tar zxvf wordpress-p1.tar.tgz tar 解包&#xff1a;tar xvf FileName.tar 打包&#xff1a;tar cvf FileName.tar DirName &#xff08;注&#xff1a;tar是打包&#xff0c;不是压缩&#xff01;&#xff09; ——————————————— .gz 解压1&#xff1a;g…

JS JAVASCRIPT 判断两个日期相隔多少天

var days daysBetween(2016-11-01,2016-11-02);/*** 根据两个日期&#xff0c;判断相差天数* param sDate1 开始日期 如&#xff1a;2016-11-01* param sDate2 结束日期 如&#xff1a;2016-11-02* returns {number} 返回相差天数*/function daysBetween(sDate1,sDate2){//Dat…

Yii2.0 ActiveForm Input Fields

2019独角兽企业重金招聘Python工程师标准>>> 之前5月学习Yii2的时候发现的一个不错的博客内容&#xff0c;这里转载保存。 Use the namespace For ActiveForm Active Form Begin And End Text Input Field TextArea Field Password Input Field HTML5 Email I…

【RK3399Pro学习笔记】十三、ROS中的坐标系管理系统

目录TF功能包能干什么&#xff1f;TF坐标变换如何实现&#xff1f;例程view_framestf_echorviz平台&#xff1a;华硕 Thinker Edge R 瑞芯微 RK3399Pro 固件版本&#xff1a;Tinker_Edge_R-Debian-Stretch-V1.0.4-20200615 记录自【古月居】古月ROS入门21讲 | 一学就会的ROS机…

本地搭建wp,更新升级时需要ftp的解决办法

https://jingyan.baidu.com/article/fd8044fa2e7af35031137af2.html 本地安装完mysql&#xff0c;php&#xff0c;apache后&#xff0c;进行了wordpress的安装。安装完wordpress&#xff0c;发现wordpress已经有了新版本&#xff0c;点击“立即更新”后却跳转到一个填写ftp地址…

数据结构与算法-python描述-单链表

# coding:utf-8# 单链表的相关操作&#xff1a; # is_empty() 链表是否为空 # length() 链表长度 # travel() 遍历整个链表 # add(item) 链表头部添加元素 # append(item) 链表尾部添加元素 # insert(pos, item) 指定位置添加元素 # remove(item) 删除节点 # search(item) 查找…

【RK3399Pro学习笔记】十四、ROS中tf坐标系广播与监听的编程实现

目录创建功能包如何实现一个tf广播器创建tf广播器代码&#xff08;C&#xff09;如何实现一个tf监听器创建tf监听器代码&#xff08;C&#xff09;配置编译规则编译并运行python编写程序turtle_tf_broadcaster.pyturtle_tf_listener.py运行平台&#xff1a;华硕 Thinker Edge R…