89S51看门狗功能的使用方法
发布时间:2008/5/27 0:00:00 访问次数:509
在atmel的89s51系列的89s51与89c51功能相同。指令兼容。hex程序无需任何转换可以
直接使用。89s51只比89c51增加了一个看门狗功能。89s51的其它功能可以参见89c51的资料
。
看门狗具体使用方法如下:
在程序初始化中向看门狗寄存器(wdtrst地址是0a6h)中先写入01eh,再写入0e1h。即可激
活看门狗。
org0000
ljmpbegin
begin:
mov0a6h,#01eh;先送1e
mov0a6h,#0e1h;后送e1
;在程序初始化中激活看门狗。
……
……
for:
……
mov0a6h,#01eh;先送1e
mov0a6h,#0e1h;后送e1
;喂狗指令
……
ljmpfor
在c语言中要增加一个声明语句。
在at89x51.h声明文件中增加一行sfrwdtrst=0xa6;
main()
{
wdtrst=0x1e;
wdtrst=0xe1;//初始化看门狗。
while(1)
{
wdtrst=0x1e;
wdtrst=0xe1;//喂狗指令
}
}
注意事项:
1.89s51的看门狗必须由程序激活后才开始工作。所以必须保证cpu有可靠的上电复位。
否则看门狗也无法工作。
2.看门狗使用的是cpu的晶振。在晶振停振的时候看门狗也无效。
3.89s51只有14位计数器。在16383个机器周期内必须至少喂狗一次。而且这个时间是固
定的,无法更改。当晶振为12m时每16个毫秒需喂狗一次。
以上程序我已调试通过。还利用定时器把看门狗的喂狗时间延长几秒至几分钟。
直接使用。89s51只比89c51增加了一个看门狗功能。89s51的其它功能可以参见89c51的资料
。
看门狗具体使用方法如下:
在程序初始化中向看门狗寄存器(wdtrst地址是0a6h)中先写入01eh,再写入0e1h。即可激
活看门狗。
org0000
ljmpbegin
begin:
mov0a6h,#01eh;先送1e
mov0a6h,#0e1h;后送e1
;在程序初始化中激活看门狗。
……
……
for:
……
mov0a6h,#01eh;先送1e
mov0a6h,#0e1h;后送e1
;喂狗指令
……
ljmpfor
在c语言中要增加一个声明语句。
在at89x51.h声明文件中增加一行sfrwdtrst=0xa6;
main()
{
wdtrst=0x1e;
wdtrst=0xe1;//初始化看门狗。
while(1)
{
wdtrst=0x1e;
wdtrst=0xe1;//喂狗指令
}
}
注意事项:
1.89s51的看门狗必须由程序激活后才开始工作。所以必须保证cpu有可靠的上电复位。
否则看门狗也无法工作。
2.看门狗使用的是cpu的晶振。在晶振停振的时候看门狗也无效。
3.89s51只有14位计数器。在16383个机器周期内必须至少喂狗一次。而且这个时间是固
定的,无法更改。当晶振为12m时每16个毫秒需喂狗一次。
以上程序我已调试通过。还利用定时器把看门狗的喂狗时间延长几秒至几分钟。
在atmel的89s51系列的89s51与89c51功能相同。指令兼容。hex程序无需任何转换可以
直接使用。89s51只比89c51增加了一个看门狗功能。89s51的其它功能可以参见89c51的资料
。
看门狗具体使用方法如下:
在程序初始化中向看门狗寄存器(wdtrst地址是0a6h)中先写入01eh,再写入0e1h。即可激
活看门狗。
org0000
ljmpbegin
begin:
mov0a6h,#01eh;先送1e
mov0a6h,#0e1h;后送e1
;在程序初始化中激活看门狗。
……
……
for:
……
mov0a6h,#01eh;先送1e
mov0a6h,#0e1h;后送e1
;喂狗指令
……
ljmpfor
在c语言中要增加一个声明语句。
在at89x51.h声明文件中增加一行sfrwdtrst=0xa6;
main()
{
wdtrst=0x1e;
wdtrst=0xe1;//初始化看门狗。
while(1)
{
wdtrst=0x1e;
wdtrst=0xe1;//喂狗指令
}
}
注意事项:
1.89s51的看门狗必须由程序激活后才开始工作。所以必须保证cpu有可靠的上电复位。
否则看门狗也无法工作。
2.看门狗使用的是cpu的晶振。在晶振停振的时候看门狗也无效。
3.89s51只有14位计数器。在16383个机器周期内必须至少喂狗一次。而且这个时间是固
定的,无法更改。当晶振为12m时每16个毫秒需喂狗一次。
以上程序我已调试通过。还利用定时器把看门狗的喂狗时间延长几秒至几分钟。
直接使用。89s51只比89c51增加了一个看门狗功能。89s51的其它功能可以参见89c51的资料
。
看门狗具体使用方法如下:
在程序初始化中向看门狗寄存器(wdtrst地址是0a6h)中先写入01eh,再写入0e1h。即可激
活看门狗。
org0000
ljmpbegin
begin:
mov0a6h,#01eh;先送1e
mov0a6h,#0e1h;后送e1
;在程序初始化中激活看门狗。
……
……
for:
……
mov0a6h,#01eh;先送1e
mov0a6h,#0e1h;后送e1
;喂狗指令
……
ljmpfor
在c语言中要增加一个声明语句。
在at89x51.h声明文件中增加一行sfrwdtrst=0xa6;
main()
{
wdtrst=0x1e;
wdtrst=0xe1;//初始化看门狗。
while(1)
{
wdtrst=0x1e;
wdtrst=0xe1;//喂狗指令
}
}
注意事项:
1.89s51的看门狗必须由程序激活后才开始工作。所以必须保证cpu有可靠的上电复位。
否则看门狗也无法工作。
2.看门狗使用的是cpu的晶振。在晶振停振的时候看门狗也无效。
3.89s51只有14位计数器。在16383个机器周期内必须至少喂狗一次。而且这个时间是固
定的,无法更改。当晶振为12m时每16个毫秒需喂狗一次。
以上程序我已调试通过。还利用定时器把看门狗的喂狗时间延长几秒至几分钟。
上一篇:自已动手制作AVR仿真器
上一篇:Keil C51 vs 标准C