打印

看门狗定时器仿真

[复制链接]
1915|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
jxmzzr|  楼主 | 2012-4-25 19:27 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
目前,大多数单片机都内置有看门狗定时器,当程序正常运行的时候,看门狗定时器将定时清零。如果遇到系统故障,导致程序跑飞,则看门狗定时器将得不到及时的清零,此时,看门狗定时器溢出,引起系统复位,使用看门狗定时器可以增加软件的可靠性。
下面通过实例介绍Keil u Vision3 集成开发环境中看门狗定时器的仿真操作。具体仿真操作步骤如下;
#include<reg52.h>
sfr WDTRST = 0xA6;      //声明看门狗定时器
void main()        //主函数
{
int i;
WDTRST=0x1E;       //启动看门狗定时器
WDTRST=0xE1;
while (1)         //主循环
{
if(P2==0x01)
{
for(i=0;i<200;i++);     //短延时
}
else if(P2==0x02)
{
for(i=0;i<20000;i++);     //长延时,模拟软件故障
}
else
{
}
WDTRST=0x1E;      //喂看门狗
WDTRST=0xE1;
}
}

在此程序中,首先启动看门狗定时器,然后在while主循环中判断P2端口为0x01时,执行一个短延时,然后喂看门狗定时器,当P2端口为0x02时,执行一个长时间的延时程序,模拟单片机的软件故障,此时,看门狗定时器无法在指定的时间内清零,将强制单片机复位。

相关帖子

沙发
gaochy1126| | 2012-4-25 19:41 | 只看该作者
看门狗的运用一般是在使用设计当中,在平时也不大常用,不过学习了!

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

460

主题

2188

帖子

12

粉丝