打印

程序死机问题,求高手支招

[复制链接]
2325|13
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
scan|  楼主 | 2009-1-2 11:16 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我用的是STC89C51的单片机,最近在调试一个程序出了问题。
现象是:
有时候开机程序会死机,但是大多时候开机时程序不会死,能够正常运行。
我用了STC内部的EEPROM。
有人建议说对STC89C51读写EEPROM时会有问题,但具体不知道哪一块存在问题。
希望高手能够给点建议:关于STC的EEPROM的读写需要注意的事项;出现这种死机现象可能存在的原因。
小弟在此先谢过了

相关帖子

沙发
救火车| | 2009-1-2 11:52 | 只看该作者

救火车建议

1、第31脚接高。
2、先把你怀疑的程序去掉,看看故障是否消失。
3、在程序开头,加一点延时。有时候外围电路比CPU复位慢半拍。CPU加点延时“等”它一会儿。
4、另外检查复位电路是否可靠。再量一下第9脚电压。
5、死机后用短接线硬给第9脚一个复位。看看效果。

使用特权

评论回复
板凳
hnrain| | 2009-1-2 11:55 | 只看该作者

来学习下!!

使用特权

评论回复
地板
scan|  楼主 | 2009-1-2 12:27 | 只看该作者

谢谢救火车

1,31脚是接的电源
2,昨天我在程序开始时加上了延时等待
3,我也怀疑复位引脚有问题所以重新焊了下
3,还怀疑读写EEPROM时出了问题,但是还不能去了它,因为需要测试掉电保护功能,而且最郁闷的时这个故障不是经常出现,我调一两天都没事,但是偶尔出现了一下,不好测试。去掉EEPROM的话很多功能都不能调试了。还不一定出现故障。
4,我有点想不通为什么外围电路没有复位好会出现死机。因为我程序里没有判断外围电路状态的死循环
5,在程序里养了条狗,希望它看门好用。
对了,上一次出现故障时貌似EEPROM的数据自动修改了(我开机时只是读EEPROM并没有对它写操作,如果没有手动对板子操作,数据是不会改动的。读是对同一个扇区一个字节一个字节读的)
现在仍然在调试过程中,从昨天开始到现在没有出现问题。哎,现在心里极度不踏实!就怕它哪天来这么一下就毁了。

使用特权

评论回复
5
NE5532| | 2009-1-2 20:55 | 只看该作者

说两个建议

1.STC的品质我不保证没问题
2.不要把命交给狗,引用我给徒弟们说的一句话“你想要金钟罩还是还魂丹?”

建议从硬件和软件两个方面来找。

使用特权

评论回复
6
scan|  楼主 | 2009-1-2 22:03 | 只看该作者

谢谢LS建议

极度希望STC没有问题,它要是有问题我就废了
我加看门狗也只是为了没有办法的情况下给帮帮忙
现在还是一直在找问题。

使用特权

评论回复
7
红心j| | 2009-1-3 01:18 | 只看该作者

从电源和复位方面入手

使用特权

评论回复
8
iC921| | 2009-1-3 02:33 | 只看该作者

我原来帮人改过图

原来也是很容易死,但我改过后就随便走了。

你能保证你的图很流畅吗?

指PCB图

使用特权

评论回复
9
救火车| | 2009-1-3 15:11 | 只看该作者

上电、下电、电源不稳的时候是单片机故障多发时段

上电、下电、电源不稳的时候是单片机最脆弱的时候。因为CPU会在瞬间工作在电压不足的状态。这时容易发生程序跑飞、内存数据被破坏、EEPROM被误写等情况。
我说的第2个方法,也是为了避开上电时电源不稳的瞬间。
你可以用多重备份的方法解决EEPROM数据被改的情况。
如果设备要求比较高,你可以选用带电压监测的复位芯片。比如813L、708等等。
改善电源是玩单片机永恒的话题,大家都知道,我不多说。
程序编制一定要正确,否则以上都是白说。
布板时晶振线要尽量短,避免附件强信号的干扰。
复位电路也要尽量短,也要避免干扰.
CPU和复位芯片的电源一定要加104去耦电容。

使用特权

评论回复
10
scan|  楼主 | 2009-1-3 18:33 | 只看该作者

现在在改善电源

先谢谢楼上的各位大侠
现在在考虑电源那一块能不能去干扰什么的
软件在程序开始时加了延时,现在功能都正常。
到现在为止还没有出现故障。希望它一直是好用的。
就是心里一直都不踏实,就怕它一下子出了什么故障。

希望大侠们传授点抗单片机死机的方法和可能引起单片机死机的原因
要是再碰到问题也好有思路去解决

使用特权

评论回复
11
bonafides| | 2009-3-11 14:48 | 只看该作者

EEPROM

rd/wr EEPROM  ea=0

使用特权

评论回复
12
tubo| | 2009-3-13 12:59 | 只看该作者

如果没有出现就再把程序还回去看看

去掉楼上各位大侠的招再试试,反复总会验证是否起了作用。另加的大招最好一个一个试,否则就会出现好了也不知道那个起了作用。多动动脑筋,进步很快的

使用特权

评论回复
13
yysmcu| | 2009-3-19 22:51 | 只看该作者

学习

使用特权

评论回复
14
emailli| | 2009-3-20 14:37 | 只看该作者

STC的内部EEPROM可能有问题

我以前也是开机的时候读取STC内部EEPROM里面的值。

结果多上电,掉电几次以后

读出来的东西就不对了

到最后都没有解决,本来想着的是用内部的EEPROM更保密

结果解决不了这个问题,只好换外部EEPROM了

一换外部的EEPROM。啥问题都没有再出过了。

我估计内部的EEPROM可能有问题,当然,也可能是我的硬件有问题。

使用特权

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

本版积分规则

6

主题

55

帖子

0

粉丝