采用89C51单片机和X25045组成的看门狗电路,X25045硬件连接图如图2所示。X25045芯片内包含有一个看门狗定时器,可通过软件预置系统的监控时间。在看门狗定时器预置的时间内若没有总线活动,则X25045将从RESET输出一个高电平信号,经过微分电路C2、R3输出一个正脉冲,使CPU复位。图2电路中,CPU的复位信号共有3个:上电复位(C1、R2),人工复位(S、R1、R2)和Watchdog复位(C2、R3),通过或门综合后加到RESET端。C2、R3的时间常数不必太大,有数百微秒即可,因为这时CPU的振荡器已经在工作。

图2 X25045看门狗电路硬件连接图

看门狗定时器的预置时间是通过X25045的状态寄存器的相应位来设定的。如表2所示,X25045状态寄存器共有6位有含义,其中WD1、WD0和看门狗电路有关,其余位和EEPROM的工作设置有关。

表2 X25045状态寄存器

WD1=0,WD0=0,预置时间为1.4s。

WD1=0,WD0=1,预置时间为0.6s。

WD1=1,WD0=0,预置时间为0.2s。

WD1=1,WD0=1,禁止看门狗工作。

看门狗电路的定时时间长短可由具体应用程序的循环周期决定,通常比系统正常工作时最大循环周期的时间略长即可。编程时,可在软件的合适地方加一条喂狗指令,使看门狗的定时时间永远达不到预置时间,系统就不会复位而正常工作。当系统跑飞,用软件陷阱等别的方法无法捕捉回程序时,则看门狗定时时间很快增长到预置时间,迫使系统复位。

以下是C语言编写的看门狗程序部分。

#include reg51.h

sbit cs=P1^2;/*片选信号由P1.2产生*/

sbit sck=P1^3; /*时钟信号由P1.3 产生*/

sbit si=P1^0; /*SI由P1.0产生*/

sbit so=P1^1; /*SO由P1.1产生*/

sbit c=ACC^7; /*定义位变量*/

bdata unsigned char com;

void tran() /*发送一字节数据子函数*/

{

unsigned char i;

for(i=0; i

{ ACC=com; /*将数据放入a中*/

si=c;

sck=0; /*sck产生一个上跳变*/

sck=1;

com=com

}

return;

}

main()

{

com=0x06; /*发写读使能命令*/

cs=0;

tran();

cs=1;

com=0x01; /*发写状态字命令*/

cs=0;

tran();

com=0x00; /*定时1.4s*/

tran();

cs=1;

...;系统正常运行的程序部分

}

需要注意的是,在程序正常运行的时候,应该在适当的地方加一条喂狗指令,使系统正常运行时的定时时间达不到预置时间。系统就不会复位。喂狗指令如下。

main()

{

...;系统正常运行的程序部分

{

cs=0; /*产生cs脉冲*/

cs=1;

}

}

X25045的看门狗电路使用十分方便。X25045内部还集成了512BEEPROM和电压运行监视系统,只需这样一块芯片,外加晶振和复位电路就可以组成单片机的应用系统,非常适合于便携式仪器和嵌入式系统的设计。

关键字:

X25045

看门狗电路

89C51

编辑:什么鱼 引用地址:

http://news.eeworld.com.cn/mcu/ic526309.html

看门狗子程序 c语言,X25045看门狗电路硬件连接图及C语言看门狗程序相关推荐

  1. c语言软件看门狗程序,X25045看门狗电路硬件连接图及C语言看门狗程序

    采用89C51单片机和X25045组成的看门狗电路,X25045硬件连接图如图2所示.X25045芯片内包含有一个看门狗定时器,可通过软件预置系统的监控时间.在看门狗定时器预置的时间内若没有总线活动, ...

  2. linux 硬件看门狗 软件看门狗,如何确定机器上是否实现了硬件或软件看门狗?...

    我有一台我试图开发的嵌入式计算机,我想知道它的看门狗是软件看门狗还是硬件看门狗. 首先我查看了,我看到/ dev / watchdog存在于/ dev中.但是当我发布ps时,我没有看到看门狗进程.所以 ...

  3. STM32的复位方式:硬件复位、软件复位(看门狗复位和系统复位)

    STM32的复位方式:硬件复位.软件复位(看门狗复位和系统复位). 1.硬件复位: 硬件复位通过给NRST引脚输入低电平复位单片机. 2.看门狗复位: 独立看门狗和窗口看门狗. (1)独立看门狗 ST ...

  4. 超级狗是集软件授权、课件保护和身份认证于一身的加密狗。

    超级狗是加密狗家族中最新一代软件保护和授权产品.它提供了强大的软件.课件防盗版功能以及灵活的软件授权功能,保护软件开发商的知识产权与核心技术,确保开发商的市场收入. 超级狗将软件保护与授权技术化繁为简 ...

  5. CNN神经网络猫狗分类经典案例,深度学习过程中间层激活特征图可视化

    AI:CNN神经网络猫狗分类经典案例,深度学习过程中间层激活特征图可视化 基于前文 https://zhangphil.blog.csdn.net/article/details/103581736 ...

  6. java阿法狗国际象棋_阿法狗并不是真正的人工智能:3分钟让你彻底明白阿法狗如何下棋...

    原标题:阿法狗并不是真正的人工智能:3分钟让你彻底明白阿法狗如何下棋 阿法狗很强大,它的强大是由于它的原理和算法,这是大家都知道的,但具体咋回事,可能很多人就说不上来了.那么,今天我就试试用最通俗易懂 ...

  7. 《C语言入门指南》合集版,学习c语言有这一篇就够了?

    前言: <C语言入门指南>,全文分为3篇,共计34248字,此为合集版,适用初学者入门C语言,非初学者也可以通过本文复习C语言相关知识点,强化记忆!十三肝7天才弄完,贼累了,发布这篇笔记也 ...

  8. c语言怎么把一个整数挨挨挤挤,《C语言》课程PPT_第1章_C语言基础

    C语言基础 第一章 传褪猿度历霞司腺娠详躁代升乍圃刷烘诧藩东兹淮驹耿游竿郝芽祖续憨荫 C语言 课程PPT 第1章 C语言基础 C语言 课程PPT 第1章 C语言基础 2 本章目标 命令 程序以及软件之 ...

  9. 全国计算机等级考试二级教程——c++语言程序设计答案,全国计算机等级考试二级教程--C++语言程序设计(2018年版)...

    全国计算机等级考试二级教程--C++语言程序设计(2018年版) 下载 mobi epub pdf ☆☆☆☆☆ 教育部考试中心 著 下载链接在页面底部 发表于2021-05-17 类似图书 点击查看全 ...

最新文章

  1. CentOS 8 安装图解
  2. 黑客破译android开发代码真就那么容易?
  3. Linux下mount FreeBSD分区
  4. C++ 哪些函数不能声明成虚函数
  5. error LNK2019: unresolved external symbol __imp__ func@20 referenced in function..
  6. 聚焦新基建,腾讯云十余项自研技术应用集中亮相
  7. 最佳实践:如何基于MNS和OSS实现无大小限制的消息传输
  8. 一加桌面3.0 android8,一加手机XRemix6.0安卓8.1.0Beta2.0定制本地化增强适配归属农历等...
  9. 【软件工程】系统规划的不同方法
  10. 腾讯联手华为!将让腾讯游戏越跑越快
  11. 电子商务概论_走进经管优质线上课堂(二)之电子商务概论
  12. hdu 1316 斐波那契数
  13. ubuntu英伟达显卡驱动安装记录2
  14. 【现代软件工程】第一次作业——词频统计
  15. 士林变频器面板如何调速度_工业电气设计|变频器在应用中的故障处理实例分享...
  16. 将时间戳转为中国标准时间
  17. 434个H5游戏源码
  18. 为什么程序员 996 会猝死,而老板 007 却不会?
  19. Google seo图片优化技巧
  20. Mysql DBA 高级运维学习之路-mysql数据库乱码问题

热门文章

  1. 首日战报|第三届全国人工智能大赛决赛进行中
  2. 大脑学习是否是“凸”的
  3. 一次代码重构之旅-快速读写xml文件工具类封装
  4. 简约代码表白_用简单代码实现抖音表白神器
  5. 字节上岸成功,整理一波测试开发岗的基础知识,含答案
  6. linux下的bt工具bitorrent
  7. mybatisplus-3.5.3.1生产级别代码生成器配置
  8. 牛根生VS史玉柱:举重若轻俩巨人 千金散尽还复来(zz)
  9. 解决谷歌浏览器无法自动播放HTML文件的声音和视频问题的方法
  10. 华为linux怎么切换输入法,华为手机怎么输入法切换及设置