Chinaunix首页 | 论坛 | 博客
  • 博客访问: 503228
  • 博文数量: 114
  • 博客积分: 5022
  • 博客等级: 大校
  • 技术积分: 1355
  • 用 户 组: 普通用户
  • 注册时间: 2006-08-09 18:01
文章分类

全部博文(114)

文章存档

2012年(1)

2011年(3)

2010年(1)

2009年(16)

2008年(23)

2007年(39)

2006年(31)

我的朋友

分类:

2007-04-14 13:03:51

chackback: http://www.mcublog.com/blog/blog2006/elecqht/archives/2007/20793.html

AT89S51看门狗功能的使用方法

[ 2007-1-29 16:30:00 | By: elecqht ]
 

89S51看门狗功能的使用方法如下:
??在程序初始化中向看门狗寄存器(WDTRST地址是0A6H)中先写入01EH,再写入0E1H。即可激 活看门狗。
????ORG 0000H
????LJMP begin
Begin:
????MOV 0A6H,#01EH ;先送1E
????MOV 0A6H,#0E1H ;后送E1
????;在程序初始化中激活看门狗。
????……
????……
For:
????……
????MOV 0A6H,#01EH ;先送1E
????MOV 0A6H,#0E1H ;后送E1
????;喂狗指令
????……
????LJMP For

在C语言中要增加一个声明语句。 在AT89X51.h声明文件中增加一行 sfr WDTRST = 0xA6;
??Main()
??{
??WDTRST=0x1E;
??WDTRST=0xE1;//初始化看门狗。
??While (1)
??{
??WDTRST=0x1E;
??WDTRST=0xE1;//喂狗指令
??}
??}

注意事项:
??1. 89S51的看门狗必须由程序激活后才开始工作。所以必须保证CPU有可靠的上电复位。否则看门狗也无法工作。
??2. 看门狗使用的是CPU的晶振。在晶振停振的时候看门狗也无效。
??3. 89S51只有14位计数器。在16383个机器周期内必须至少喂狗一次。而且这个时间是固定的,无法更改。当晶振为12M时每16个毫秒需喂狗一次。还可利用定时器把看门狗的喂狗时间延长几秒至几分钟。

 
阅读(1880) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~