微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 为什么我的看门狗没作用啊?用的SCT89C51单片机,大侠帮忙看看,是不是我哪里设置出了

为什么我的看门狗没作用啊?用的SCT89C51单片机,大侠帮忙看看,是不是我哪里设置出了

时间:10-02 整理:3721RD 点击:
P0口的数码管显示是试过正常的,本想加个看门狗试试看,但是没有看到有什么反应!麻烦帮忙看看,谢谢!
#include "reg51.h"
#define uchar unsigned char
#define uint unsigned int
sfr WDT_CONTR=0xe1;
sbit button= P3^0;
sbit p27=P2^7;
uchar code disptab[]={0x3f,0x6,0x5b,0x4f,0x66,0x6d,0x7d,0x27,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
void delay(uchar x);
uchar time0,time1;
void main()
{
        uchar a;
        TMOD=0x01;
        TH0=(65536-16000)%256;
        TL0=(65536-16000)/256;
        TR0=1;
        EA=1;
        ET0=1;
//        p27=1;
        P0=0;
        p27=0;
        a=0;
        WDT_CONTR=0x3C;
//        DWT_CONTR=0X2F;
        while(1)
        {
        if(button==0)
         {
          TR0=0;
         }        
         if(a==16)
          a=0;
          P0=disptab[a];
          delay(100);
        a++;
          time0=0;
         
        }
        
}
void delay(uchar x)
{
        uint y;
        for(;x>0;x++)
        for(y=0;y<1000;y++);
}
void time() interrupt 1
{
TH0=(65536-16000)%256;
TL0=(65536-16000)/256;
time0++;
WDT_CONTR=0x3C;
}

看门狗是程序跑飞以后,恢复程序。http://jingyan.baidu.com/article/375c8e19ba8b4325f2a2299c.html  你去看看,我觉得是你没有喂狗

WDT_CONTR的CLI_WDT位set“1”就是喂狗了(硬件清零)。是吧?但是DILE—WDT是不是可以同时set“1”的?

没有大侠来帮忙啊!人呢人呢!是不是问题太弱弱弱了?

解决了,程序没问题,就是protues用的是AT89cxx是没有看门狗的。。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top