搜索
bottom↓
回复: 36

AT89S52死机问题,头疼啊/请高手指点

[复制链接]

出0入0汤圆

发表于 2013-2-1 22:06:19 | 显示全部楼层 |阅读模式
我用AT89S52做了个简单的程序如下,使用一段时间工作10小时要死机4、5次吧。用的是51最小系统板杜邦线插接的,电源开关电源24V加78L05供电驱动5V四路继电器板负载电磁阀驱动气缸动作,动作很简单就是总是死机,之后改了带狗的程序还是死啊,郁闷ing.....请高手帮忙看看什么问题。
不带看门狗的程序:
#include <at89x52.h>

sbit key1 = P0^3;
void Delay(int m)
{
        while(--m);
}

void main(void)
{
        int n ;          
                n=0;
        while(1)
        {   
                P0_0=1;
                P0_1=1;
                P0_2=1;
                if(!key1)
                { Delay(10000);
                        if(!key1)
                        {
                           n=n+1;
                           if(n==3)
                           {
                           n=1;
                           }

                  while(!key1)
                         {
                                     if(n==1)
                                {                  
                                        P0_0 = 0;

                                  }
                            if(n==2)
                               {                  
                                        P0_2 = 0;
                               }
                          }
                          }
                 }
          
        }
}




带看门狗的程序
#include <at89x52.h>
void WatchDog(void);
void Delay(void);
sbit key1 = P0^3;
sfr WDTRST  = 0xA6;
int n,i ;         
void Delay(void)
{
    for(i=0;i<5000;i++)
            WatchDog();
}
void WatchDog(void)
{
    WDTRST =0x1E;
    WDTRST =0xE1;
}
void main(void)
{        
   WatchDog();
                n=0;
        while(1)
        {   WatchDog();
                P0_0=1;
                P0_1=1;
                P0_2=1;
       
                if(!key1)
                { Delay();
                        if(!key1)
                        {
                           n=n+1;
                                WatchDog();
                           if(n==3)
                           {
                           n=1;
                                 WatchDog();
                           }

                  while(!key1)
                         {  WatchDog( );
                                     if(n==1)
                                {                  
                                        P0_0 = 0;
                                           WatchDog();
                                  }
                            if(n==2)
                               {                  
                                        P0_2 = 0;
                                                WatchDog();
                               }
                          }
                          }
                 }
          
        }
}

阿莫论坛20周年了!感谢大家的支持与爱护!!

知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)

出0入0汤圆

发表于 2013-2-2 13:08:02 | 显示全部楼层
把继电器的电源与单片机的分开

出0入4汤圆

发表于 2013-2-2 15:42:42 | 显示全部楼层
电路的抗干扰能力很重要,电路要加滤波,控制电路可用光耦隔离等等

出0入85汤圆

发表于 2013-2-2 15:53:13 | 显示全部楼层
本帖最后由 marshallemon 于 2013-2-2 15:54 编辑

7805还是免了吧,最起码用个2575,输入20V的电压,电源电压都不正常了,狗还能活?

出0入0汤圆

发表于 2013-2-2 16:25:48 | 显示全部楼层
AT的抗干扰不行,可以换STC,华邦等片子替换

出0入0汤圆

发表于 2013-2-2 18:04:00 | 显示全部楼层
本帖最后由 876192514 于 2013-2-2 18:07 编辑

换24V的继电器 单片机电源用开关电源啊 比如34063 2576 这样会好很多
偶测试的时候单片机和继电器同一个VCC 继电器不带负载都会死机

出0入0汤圆

发表于 2013-2-4 12:01:16 | 显示全部楼层
at89s51特別弱
at89c51好好多
stc90c51強百倍的

出0入0汤圆

发表于 2013-2-4 13:57:18 | 显示全部楼层
带狗的程序。这个就只能从硬件下手了。

出0入0汤圆

发表于 2013-2-4 23:15:34 | 显示全部楼层
STC抗干扰能力比AT强?

出0入0汤圆

发表于 2013-2-5 09:46:56 | 显示全部楼层
电磁阀没有隔离干扰的把

出0入0汤圆

发表于 2013-2-5 10:58:41 | 显示全部楼层
jswd0810 发表于 2013-2-5 08:40
同问,STC抗干扰能力比AT强?

是的,我做了實驗了

出0入0汤圆

发表于 2013-2-5 11:10:02 | 显示全部楼层
我现在强干扰的环境下用ATMEL还是很好的

出0入0汤圆

发表于 2013-2-5 20:29:14 | 显示全部楼层
一直用at 没发现

出0入0汤圆

发表于 2013-2-5 22:17:06 | 显示全部楼层
shuipaopao 发表于 2013-2-2 15:42
电路的抗干扰能力很重要,电路要加滤波,控制电路可用光耦隔离等等

问一下,不滤波有什么后果??新手,求指导

出0入0汤圆

发表于 2013-2-6 02:40:51 | 显示全部楼层
用假负载会死么?

出0入4汤圆

发表于 2013-2-6 09:21:26 | 显示全部楼层
lijia115003 发表于 2013-2-5 22:17
问一下,不滤波有什么后果??新手,求指导

会死机或重启,运行不正常啊。带继电器的电路要加上消除电火花的电容。整个系统要加EMC滤波,单片机电源端要有滤波,退耦电容,一般为一个104一个10uf的电解电容;输出端输入端最好隔离;AT没有那么脆弱,关键是电路设计。楼主可多看看一些成熟的电路,多学习学习。

出0入0汤圆

发表于 2013-2-6 09:24:12 | 显示全部楼层
最可能还是硬件方面的问题
上原理图吧

出0入0汤圆

发表于 2013-2-6 09:32:30 | 显示全部楼层
估计是你电磁阀那儿没有处理好产生一个高压脉冲信号干扰来了。

出0入0汤圆

发表于 2013-2-6 09:37:30 | 显示全部楼层
at89s51,用了一批真的好弱,继电器動多了就不行

出0入0汤圆

发表于 2013-2-6 09:39:35 | 显示全部楼层
wiisir 发表于 2013-2-5 11:10
我现在强干扰的环境下用ATMEL还是很好的

是不是89s51嗎?

出0入0汤圆

发表于 2013-2-6 10:39:59 | 显示全部楼层
jswd0810 发表于 2013-2-6 09:58
我们用的89s52做的一个产品现在觉得还行吧,上面电磁阀,继电器,交流接触器都有,不过有一段时间通过一 ...

多點實驗意見,thanks

出0入0汤圆

发表于 2013-2-6 11:37:34 | 显示全部楼层
shuipaopao 发表于 2013-2-6 09:21
会死机或重启,运行不正常啊。带继电器的电路要加上消除电火花的电容。整个系统要加EMC滤波,单片机电源 ...

受教了,谢谢哈

出0入0汤圆

发表于 2013-2-6 19:02:57 | 显示全部楼层
似乎挺常见的问题。

出0入0汤圆

发表于 2013-2-8 13:02:42 | 显示全部楼层
电源系统的问题,我也碰到过。
最离谱的干扰是从单片机电源里进来,从音箱电源里出去,形成回路,接上音箱就死机。因工期紧张没时间破解根源,改为全隔离草草了事。

出0入0汤圆

发表于 2013-2-8 16:24:45 | 显示全部楼层
我做过数字555+4017控制普通玩具电机,定时的电路,定时一直不准!最后在电机上串1mH的电感才解决!死机先试下理想状态会死?会,程序问题。不会,比较大原因硬件问题,虽然软甲有时可以解决!但是不要用软件解决!而先采用硬件解决,软件等不死机在进行加强性处理,也不要动不动更换CPU,因为换掉CPU跟用软甲解决具有随机性,会为后面量产埋下祸根!

出0入0汤圆

发表于 2013-2-8 19:24:13 | 显示全部楼层
硬件问题,按理说AT的不会那么差的
另外,死机是怎么看出来的?
你程序有些问题。对于输入信号的抖动没有处理的很好。这种编程方式,唉!在论坛里面好好的看看别人的帖子吧。
建议还是先把硬件发上来看看吧。

出0入0汤圆

发表于 2013-2-8 19:48:01 | 显示全部楼层
AT89S52? 上世纪的东西

出0入0汤圆

发表于 2013-2-8 20:31:34 | 显示全部楼层
本帖最后由 sdf159372008 于 2013-2-8 20:33 编辑

单片机电源上并联一个电解电容和一个瓷片电容试试看。
靠近单片机的地方

出0入0汤圆

发表于 2013-2-12 00:31:43 | 显示全部楼层
可能程序有问题:n==3英改为:n>=3(若n跳为4、5.....,就杯具了)。延时子线程等待太长了!试验可以,实际应用应该为定时器延时!!多看看书上的例子

出0入0汤圆

 楼主| 发表于 2013-2-13 10:12:02 | 显示全部楼层
感谢这么多热心的朋友,我在外面加了个复位按钮,一死机就让他们按一下。呵呵~!先这样用吧。

出0入0汤圆

发表于 2013-2-14 12:29:14 来自手机 | 显示全部楼层
继电器没带二极引起的…没接的话就会在用一段时间出问题,短时间内一不出现,你的现象很象…

出0入0汤圆

发表于 2013-2-14 12:59:03 | 显示全部楼层
电磁阀的开关瞬间的负压干扰,线圈反向并个二极管或0.47uF电容就可以解决
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-7-11 15:31

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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