找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2656|回复: 32
收起左侧

调试单片机程序是用仿真好还是烧写好?

  [复制链接]
ID:16255 发表于 2021-11-25 20:55 | 显示全部楼层 |阅读模式
我现在用的是STC的单片机,调试时是用芯片的仿真好还是直接烧写程序好?先分析一下两种方法的差异:
直接烧写程序:
STC直接可以用P3.0和P3.1连接串口就能烧写程序,不用单独的烧录器。官方宣称可以重复烧写十万次,也是挺多的。STC的软件会监控着文件变化,Keil中编译完生成Hex文件,软件会自动开始烧录。再加上STC自动下载器,烧录时自动冷启动。整个流程下来一气苛成。
但是十万次看起来很多,实际用起来,改一个参数就烧录一下,很快就消耗完了。况且,十万次也只是理论值,实际不一定有这么多次。
仿真运行:
我用的是STC8系列,单片机自带仿真,在STC软件中将单片机设定为仿真模式,以后就可以在Keil里运行仿真了。就可以不用每次都烧录芯片了。
但我觉得这个仿真并不太完美。仿真开始后对程序的修改不能实时生效,需要退出仿真,重新编译,再打开仿真,所做的修改才生效。

而实际使用中,打开仿真需要有一个传输程序的时间,直接烧录程序也有一个烧录的时间,两者的耗时都差不了多少,那么究竟是用仿真好还是烧写好?
回复

使用道具 举报

ID:639698 发表于 2021-11-25 21:26 | 显示全部楼层
调试先用仿真,调试成功再烧录
回复

使用道具 举报

ID:68468 发表于 2021-11-25 21:42 | 显示全部楼层
直接烧,效果更好,十万次够用了,不行换一片嘛,反正又不贵。
回复

使用道具 举报

ID:624769 发表于 2021-11-25 22:14 | 显示全部楼层
你需要单步,就仿真,你需要直接跑,就直接烧录。我通常都是直接跑了,发现问题,却找不出问题才会再线仿真跑单步看看是哪里问题。 你如果仅仅为了烧录次数来用仿真那是毫无必要的,你每5分钟烧录1次,24小时不停的烧录改程序烧录,一年也烧录不了10万次,自己去算吧……
回复

使用道具 举报

ID:883242 发表于 2021-11-25 22:50 | 显示全部楼层
你这才哪到哪儿啊?我刚用8051的时候是8031+27C64,程序在27C64里面,擦除需要用紫外灯照半个小时,写入次数大约15次,多了就报废了。
回复

使用道具 举报

ID:401564 发表于 2021-11-25 23:43 | 显示全部楼层
但凡是有实物电路的,就不需要仿真
仿真是复杂算法或者OTP单片机,要么是要查看单片机内部寄存器状态之类的
对于很多外设来说,仿真是没有意义的
"仿真可以,实物却不行",在这个论坛,你能演绎看到这样的话
仿真不真的时候,只会浪费时间,仿真要做的事情一定得是电路板做不了要,那才要仿真
但凡是烧录能做的,就不要仿真
回复

使用道具 举报

ID:70035 发表于 2021-11-26 08:03 | 显示全部楼层
STC单片机内部没有仿真部件,要想仿真,采用监控程序的方案,基本照搬SST的Monitor-51。
我在实际硬仿真单步时比较容易出问题,咨询过STC的FAE,给出了他们官网上有的解释。

对一些必须要观察的变量也是有必要的,但可通过串口发送到电脑。
回复

使用道具 举报

ID:879348 发表于 2021-11-26 08:20 | 显示全部楼层
最好不要使用在线调试,这样会是你过于依赖,很多系统都是不能调试的,调试无法得到正确结果
回复

使用道具 举报

ID:130230 发表于 2021-11-26 08:45 | 显示全部楼层
仿真优势是可以查看程序的运行细节,下载的优势可以直接验证效果。
回复

使用道具 举报

ID:885797 发表于 2021-11-26 08:59 | 显示全部楼层
仿真可以监控过程,调试使用比较方便
回复

使用道具 举报

ID:892596 发表于 2021-11-26 09:16 | 显示全部楼层
仿真和烧录不需要对立起来啊,他们是相辅相成的关系。需要小改动,验证想法的时候用仿真。需要结合硬件测试的时候用烧录,灵活运用,怎么好用怎么来。
回复

使用道具 举报

ID:984787 发表于 2021-11-26 09:27 | 显示全部楼层
先仿真,再烧
回复

使用道具 举报

ID:160500 发表于 2021-11-26 10:28 | 显示全部楼层
简单的程序,逻辑分明,不需要仿真。复杂的程序或是需要查看内部运算的中间数据就需要仿真
回复

使用道具 举报

ID:230742 发表于 2021-11-26 17:05 | 显示全部楼层
还仿啥真啊。多浪费时间,仿真搞了半天通过了,到实物还是不行,又得找半天原因。直接烧啊,又烧不坏。
在程序里适当的位置加个点灯,灯亮了就是运行到这里了,把数据发送到电脑观察,用有多个串口的单片机。
简单不。
回复

使用道具 举报

ID:16255 发表于 2021-11-26 22:37 | 显示全部楼层
明白了。直接烧,更省事。
回复

使用道具 举报

ID:985162 发表于 2021-11-26 23:12 来自手机 | 显示全部楼层
还是应该先用仿真 能设置节点 便于查找问题
回复

使用道具 举报

ID:298123 发表于 2021-11-29 13:32 | 显示全部楼层
你能保证程序一次就可以搞对?
回复

使用道具 举报

ID:985931 发表于 2021-11-29 14:10 | 显示全部楼层
没条件先仿真,有条件的话直接调试好了
回复

使用道具 举报

ID:565803 发表于 2021-11-30 12:04 | 显示全部楼层
当然是先仿真了,可以设置断点,或单步运行,方便查看
回复

使用道具 举报

ID:97787 发表于 2021-11-30 12:15 | 显示全部楼层
根据熟练程度,灵活运用。不熟悉的话,尽量仿真。后期不仿真也能保证程序正常运行。
回复

使用道具 举报

ID:743654 发表于 2021-11-30 13:10 | 显示全部楼层
有实物直接烧入,比较直观,一般我都先把串口调试好,任督二脉打通,也是不错的调试工具,或者点个灯用于设置断点,看程序运行情况。除非没有实物或者要查相关寄存器的值才有用到仿真,但是仿真在某些情况行不通,还得接外设。
回复

使用道具 举报

ID:81196 发表于 2021-11-30 17:13 | 显示全部楼层
直接烧写,你哪能把芯片烧写到最终寿命呢,别想太多,直接少些,避免仿真造成的其他问题。
回复

使用道具 举报

ID:985817 发表于 2021-11-30 17:20 | 显示全部楼层
现在单片机都挺便宜的,若手头有实物建议直接烧写,仿真可能有别的因素干扰
回复

使用道具 举报

ID:725110 发表于 2021-11-30 17:41 | 显示全部楼层
建议直接烧,因为仿真可能会有一点问题
回复

使用道具 举报

ID:986477 发表于 2021-11-30 17:48 | 显示全部楼层
建议直接烧写,我一般都是直接烧写的,10万次,放心,肯定烧写不完的啦
回复

使用道具 举报

ID:931798 发表于 2021-11-30 19:55 | 显示全部楼层
我一般都是直接烧的
回复

使用道具 举报

ID:908826 发表于 2021-11-30 20:25 | 显示全部楼层
直接烧写比较好
回复

使用道具 举报

ID:986652 发表于 2021-12-1 09:00 | 显示全部楼层
其实都差不多,我感觉如果能烧写,就用烧写,毕竟仿真和烧写还是有一定距离
回复

使用道具 举报

ID:517951 发表于 2021-12-2 08:05 | 显示全部楼层
直接用单片机最小板,或者买开发板烧写,软件调通了再来做PCB板。
回复

使用道具 举报

ID:235200 发表于 2021-12-2 09:38 | 显示全部楼层
这里所说的仿真应该理解为在线调试,在线调试能够快速找到程序的逻辑错误,不管是简单的算法或复录的算法都可以在线仿真运行,非常方便,但需要购买具有在线调试的单片机,如IAP15F2K60S2,在线调试时,单片机内EEPROM存储器不能作数据存储
回复

使用道具 举报

ID:987484 发表于 2021-12-3 10:37 | 显示全部楼层
还是先调试仿真。仿真通过再烧录
回复

使用道具 举报

ID:987507 发表于 2021-12-3 10:43 | 显示全部楼层
先仿真在下载到实物比较好
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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