51单片机死机重启的原因都有哪些?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了51单片机死机重启的原因都有哪些?相关的知识,希望对你有一定的参考价值。

程序空间已经很紧张,是不是因为这个而导致堆栈溢出?所以就死机重启了,请教高手!

谢谢大家的回答!有及时喂狗,硬件我不是很懂,应该是软件方面的问题,因为硬件已经很成熟了,请问要怎样才能检测堆栈的溢出?我手上的仿真器坏了,不能用,还有其它的办法吗?

rest的原因很多:
1. 如果堆栈溢出的话,你初始化时是不是加指令MOV SP,#60H初始化堆栈了吗?因为上电复位以后8051类单片机的SP值是07H,这个值并不是很好,所以容易导致堆栈溢出。
2. 你看门狗是否启用,如果看门狗启用的话,你是不是适时喂狗了?也有可能看门狗定时器溢出,导致芯片复位。
3. 你的电源是否稳定,(可能导致芯片上电复位)如果用开关电源的话,建议在输入端并接100uf以上的大电容滤去低频谐波,并接一个0.1uf(104)的瓷片电容滤去高频谐波分量。如果是市电降压过来的话,要看是什么东西降压的。如果是变压器降压的,看看变压器是否隔离。(最好用隔离的变压器)。同时看看稳压管是否良好。如果是电容降压的话,建议输入端增加П型网络滤波,并改用好的稳压管,最好用光耦隔离市电干扰。
4. 你的复位电路是否正确,一般51电路用微分电路复位的。也有可能你的PCB布线不良,导致分布电容过大。你可以试试改小复位电路上的电容。把10uf的电容改成1uf的钽电容试试。
5. 你的晶振(高频干扰部分)PCB布线是应该尽量离单片机近点。布线应该越短越好。
参考技术A en ,跟你的堆栈有很大的关系,最好用仿真器仿真下,看看你的堆栈sp范围,还有就是你有没开看门狗的,外界硬件引起程序延时导致看门狗复位本回答被提问者采纳 参考技术B 你是不是用开关电源了?如果没加滤波电容的话,在模拟示波器下看波形很好,但换成数字示波器,即使跳到每格5v,也是满屏雪花。我以前用2575遇到过这个情况。 参考技术C 1.电源不稳,有谐波,做好滤波和加电压监测芯片,如KIA7043
2.用围有磁场干扰,尤其是时钟电路附近
3.复位电路有问题
参考技术D 最小系统连接不好,复位不好

关于g2使用一些词典死机的问题

各位大虾,我的g2 288tim版的,是1.5固件 2.2安卓编译版的 装上wordmate后,在文件夹里放了一个德汉词典词库dict版的,但是第一次进入后过了一分钟就死机了 重启后再进入就不能用了,输入字母没反应。之后又用了colordict 一样弄了词库 还是这个问题。我的sd卡是kinston的,是不是和这个有关系?还是有什么其他原因?谢谢了!

确实有部分机子不适用kinston的卡,很多人都出现过这种问题
你还是换卡试试吧
参考技术A 卡不兼容。换sandisk吧~~

以上是关于51单片机死机重启的原因都有哪些?的主要内容,如果未能解决你的问题,请参考以下文章

51单片机C语言里面,定义bit的方法,都有哪些,请举例,谢谢!

单片机AT89C51各个引脚的作用都有哪些?

单片机串口通信过程中电脑死机

用微软VS 2017开发平台可以编写51单片机程序吗?

51单片机 c语言看门狗程序怎么写

arduino与51单片机比的优点的哪些??