打印

看门狗定时器的仿真

[复制链接]
1650|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
tianli1980|  楼主 | 2012-4-29 17:57 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
现在大多数的单片机均集成了看门狗定时器,当程序正常运行的时候,看门狗定时器将定时清零。如果遇到系统故障,导致程序跑飞,则看门狗定时器将得不到及时清零,此时,看门狗定时器溢出,引起系统复位。使用看门狗定时器可以增加软件的可靠性,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时,执行一个长时间的延时程序,模拟单片机的软件故障,此时看门狗定时器无法在指定的时间内清零,将强制单片机复位。

相关帖子

沙发
拿起书本| | 2012-4-30 18:15 | 只看该作者
在程序设计时,通过仿真以及程序调试操作可以很好的模拟程序的执行情况,便于及时发现并解决问题。提高 了程序开发的可靠性。

使用特权

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

本版积分规则

482

主题

2214

帖子

11

粉丝