找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4332|回复: 14
收起左侧

STC89C52单片机看门狗不运行,看门狗会不会是寄存器坏了

[复制链接]
ID:550077 发表于 2019-7-30 10:06 | 显示全部楼层 |阅读模式
程序很简单的,让单片机每隔4秒不断复位,LED闪烁是用来测试看门狗:#include <reg51.h>
sfr  WDT_CONTR = 0xe1;                //watchdog register
sbit led1 = P3^1;
sbit led2 = P3^2;
void main()
{
  WDT_CONTR=0x36;//启动看门狗,清0看门狗,设置128分频,12M晶振测算时间为4.1943S
  led1=0;
  led2=0;while(1)
{
scan();
}
}
用KEIL编译没有问题!!!

用的宏晶的单片机STC89C52RC,这么简单的程序不运行,天理何在??会不会是看门狗会不会是寄存器坏了????



回复

使用道具 举报

ID:550077 发表于 2019-7-30 10:10 | 显示全部楼层
上面程序led2=0忘记了输入;是发帖时忘记了输入分号的,请谅解!!
回复

使用道具 举报

ID:123289 发表于 2019-7-30 17:10 | 显示全部楼层
本帖最后由 yzwzfyz 于 2019-8-1 08:08 编辑

LED何时为1呢,为1的时间有多长呢,请计算一下。提示:如果时间太短了,肉眼无法感觉。
回复

使用道具 举报

ID:550077 发表于 2019-7-30 18:33 | 显示全部楼层
有没有同仁遭遇过与我一样的情况,在此路过的指点迷津!!!
回复

使用道具 举报

ID:155507 发表于 2019-7-30 23:37 | 显示全部楼层
我给你来个
STC89系列单片机看门狗的使用及应用程序
http://www.51hei.com/mcu/637.html
回复

使用道具 举报

ID:550077 发表于 2019-7-31 07:16 | 显示全部楼层
WDT_CONTR=0x36;//启动看门狗,清0看门狗,设置128分频,12M晶振测算时间为4.1943S,没有人遭遇这个问题,我个人倒楣了吧!
回复

使用道具 举报

ID:401564 发表于 2019-7-31 08:32 | 显示全部楼层
请看附件的详细规格书,不要自以为是,技术要实实在在!!!!!!
这么简单的程序不运行,天理何在??会不会是看门狗会不会是寄存器坏了????
我记得楼主,单片机机这玩意,说实在的,单个寄存器坏了,单片机不按程序正解的去走,这种情况是很少很少,至少我是没有遇见过。
一般我遇到问题,特别是代码上的问题,都是会本着“我的代码是错误的”或者是“我没有认真的看过数据手册”的想法去找问题的
而不是像楼主这样,这个没天理,我是对的,这种心态
回复

使用道具 举报

ID:511461 发表于 2019-7-31 08:46 | 显示全部楼层
你的scan函数发出来呀,我想知道你的scan函数里执行了什么
回复

使用道具 举报

ID:511461 发表于 2019-7-31 09:00 | 显示全部楼层
程序初始化时,让LED点亮,初始化结束时让LED熄灭,程序进入死循环
如果看门狗,起作用的话,会复位重新运行初始化,LED灯会闪烁
回复

使用道具 举报

ID:480680 发表于 2019-7-31 15:48 | 显示全部楼层
你试试这个,我改过了,可以了
#include <reg52.h>
#define uint unsigned int
#define uchar unsigned char
sfr  WDT_CONTR = 0xe1;                //watchdog register
sbit led1 = P0^1;                  // 我的单片机led引脚和你不同
sbit led2 = P0^2;
void delayms(uint z)           //延时函数
{
        uint i,j;
        for(i=z;i>0;i--)
        for(j=110;j>0;j--);       
}
void main()
{
  WDT_CONTR=0x36;//启动看门狗,清0看门狗,设置128分频,12M晶振测算时间为4.1943S
  led1=1;
  led2=1;
  delayms(500);
  led1=0;
  led2=0;
   delayms(500);

  while(1)
{
        //scan();                //你说的是4秒一次闪烁;这个scan();假设就是个延时的函数
        delayms(5000);   //延时5s                                                          5000+500+500>4.1943s
}
}
回复

使用道具 举报

ID:550077 发表于 2019-8-1 08:45 | 显示全部楼层
这么简单的程序拭搞不好了,请不要添堵了,各家的情况不一样,软件,硬件....都有可能出问题,问题根源怎么会按你的思想走呢?????想多了吧,不然大家都不会出错了,都出神人了!
回复

使用道具 举报

ID:401564 发表于 2019-8-1 14:32 | 显示全部楼层
daniellew 发表于 2019-8-1 08:45
这么简单的程序拭搞不好了,请不要添堵了,各家的情况不一样,软件,硬件....都有可能出问题,问题根源怎么会按 ...

这么简单的程序拭搞不好了,请不要添堵了
想多了吧
可以问一下吗?以上的话是对谁说的呢?
回复

使用道具 举报

ID:550077 发表于 2019-8-2 17:36 | 显示全部楼层
终于松了一口气,三两句的程序搞死人了,终于找到原因了,是单片机坏了,不但是看门狗寄存器无用,连P3口也有几个端口开机无高电平输出,这彻底让人不敢相信了是程序的问题了,前天重新网购了几块4元左右的MCU,下午一装上去一切正常了!!!!程序无问题!!网上1.8元一块89C52千万别用了!我买了50片全部要报费了!但还是要谢谢坛子里的总工、高工、助工们积极帮助!!!有了你们,51黑更明亮!!!!

评分

参与人数 1黑币 +80 收起 理由
admin + 80 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

ID:550077 发表于 2019-8-10 17:26 | 显示全部楼层
前段时间的89C52RC进一步证明是假货,MCU上的字擦几次就掉了,不知是哪种芯片翻版的,或许芯片内部根本没有看门狗功能,太误导人了,也害人!还好,40个PIN,有十七八个IO口可用,1.8元一个,一个IO口一毛钱,算下来比正品的还贵!难怪1.8元一个,他们是按IO口定价的???
回复

使用道具 举报

ID:503018 发表于 2019-8-10 20:58 | 显示全部楼层
其实你也可以去看哈是不是其他的零件烧坏了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表