历史上的今天
今天是:2026年03月07日(星期六)
2023年03月07日 | AT89S51单片机的看门狗功能设计
2023-03-07 来源:elecfans
在ATMEL的89S51系列的89S51与89C51功能相同。指令兼容。HEX程序无需任何转换可以直接使用。89S51只比89C51增加了一个看门狗功能。89S51的其它功能可以参见89C51的资料。
看门狗具体使用方法如下:
在程序初始化中向看门狗寄存器(WDTRST地址是0A6H)中先写入01EH,再写入0E1H。即可激活看门狗。

Org 0000
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个毫秒需喂狗一次。
史海拾趣
|
各位大哥们,我还是一个大一的学生,现在听说嵌入开发还可以,所以就有一点想向这一方面发展,但是现在在我面前的一个问题就是 我不知道要学那些东西,我也是一个计算机班的学生,这是不是有很大的优点. 所以就想问一下大哥们的应该出什么方向入手好一 ...… 查看全部问答> |
|
小弟最近用wince5.0编译内核,发现在某些情况下会生成。nb1文件,比如说eboot.nb1这种情况看了一些说法是eboot.nb0空间不够存放内核,所以放到eboot.nb1中,但是查看eboot.bin文件发现空间还多的是。在有些时候会出现上面的情况。我用的AT91SAM9261 ...… 查看全部问答> |
|
我用vpm642开发板,的电源芯片tps54310坏了,自己换的,发现电流增大了300mA,现在是1A,一会cpu就烫手,程序很容易跑飞,时间久了cpu会不断的复位,只能歇会再用。好多程序要调几次才能成功,对于Date-copy指令,传送一次(720个数)可以,可是加 ...… 查看全部问答> |
|
最近仔细看了看板子,开发板很多过孔,原本觉得是板子布线不好呢,但是怎么想都不对,有很多过孔并没有参加到电路之中啊,请论坛中的大牛或者管理员解释解释好吗???为什么设置那么多过孔呢,在我看来一定是有什么特殊的作用 … 查看全部问答> |
|
Linux 2.6.36内核移植飞凌OK6410开发板完整步骤详解 今天终于让Linux内核在飞凌的板子上跑起来了,想来也是艰辛,为了移植成功,断断续续做了将近两个月的努力,期间郁闷不可言 语形容啊, 了解其中艰辛,将自己移植步骤与心得与大家分享,希望对初踏次领域之人有所帮助,我所写 ...… 查看全部问答> |




