基于单片机按键控制看门狗仿真设计

本文详细介绍了89S51单片机的看门狗定时器的激活、使用条件及操作步骤。内容包括晶振对看门狗的影响、14位计数器的工作机制以及喂狗间隔的计算。同时,提供了延时程序和喂狗指令的示例代码,演示了如何在实际应用中防止程序失控。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

百度网盘下载地址(973):点击下载

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

unsigned char a,b;
delay()//延时程序
{unsigned char m,n,s;
for(m=20;m>0;m--)
for(n=20;n>0;n--)
for(s=248;s>0;s--);
}
main()
{
/*********************************初始化看门狗*************************************/
WDTRST=0x1E;
WDTRST=0xE1;//初始化看门狗。
/*********************************初始化看门狗*************************************/
while(1)
{
/************************************喂狗指令*************************************/
WDTRST=0x1E;
WDTRST=0xE1;//喂狗指令
/************************************喂狗指令*************************************/
temp=0xfe;
P3=P2=P0=P1=temp;//直接对1/0口p3赋值,使批p3.0输出低电平。
delay();//延时
for(i=1;i<8;i++)//实现广告灯的从右到左移动
{
a=temp<<i;
b=temp>>(8-i);
P3=P2=P0=P1=a|b;
delay();

 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值