打印

关于AT89C52的软件问题。

[复制链接]
4114|12
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
lh8008|  楼主 | 2010-11-24 13:53 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
近几天,正在做一个与AT89C52有关的项目。编译器用的KEIL2,仿真器用的伟福。仿真跑的程序OK。但是在经过烧录之后的AT89C52程序就是不跑。烧录软件用的NSP软件,一款很古老,很陌生的东东。
人总是对陌生的东西容易产生恐惧。开始,我怀疑是不是哪里的配置文件没有弄好?没有结果,然后我又要了两片新的C52,还是无果。在网上找了半天资料,发现在与我现象相似的要么是晶振没有弄,要么就是EA没有拉高,要么就是输出端口驱动电压不够,又加了上拉电阻。但是这都没有对我有任何的帮助。正在无望之际,突然看到一篇**,说是他驱动LED仿真时可以亮,用程序A可以点亮,用程序B却点不亮。我也明白这是人家的软件有问题,不能怪硬件。这时我突然想到为什么我不跑个小程序来试一下呢?没有LED,但是可以驱动几个端口,看看程序倒底能不能跑起来。结果是OK的。这就证明了编译器没有问题,仿真器没有问题,烧录器也没有问题。那是哪的问题呢?

程序的大小。89C52只有8K的FLASH.而我的最张烧录程序。hex却有几十K。卖糕的。就是它的应该。

我认为应该找到了问题。特写给大家看一看。如果有什么要说的,尽管说来听听。技术交流,不怕拍砖。

相关帖子

沙发
ayb_ice| | 2010-11-24 14:02 | 只看该作者
无语
什么都是猜...

使用特权

评论回复
板凳
5880527| | 2010-11-24 14:06 | 只看该作者
呵呵,HEX的大小不是实际的程序大小,你在烧写软件的界面里应该能看到最后有一大片FF

使用特权

评论回复
地板
5880527| | 2010-11-24 14:12 | 只看该作者
不要用仿真啥的,在程序里插入一句程序来点亮一只LED,看插到哪个地方点不亮为止

使用特权

评论回复
5
liang7143| | 2010-11-24 14:14 | 只看该作者
keil编译的时候,你可以看到实际大小

使用特权

评论回复
6
tianm| | 2010-11-24 14:26 | 只看该作者
看楼主的口音 是MM 吗

使用特权

评论回复
7
chen3bing| | 2010-11-24 15:05 | 只看该作者
口音可以看出来吗?不过很可能是MM。
要精简一下程序了。

使用特权

评论回复
8
lh8008|  楼主 | 2010-11-24 15:13 | 只看该作者
Program Size: data=65.0 xdata=54 code=3850  这是编译的最后结果。搞工程的光棍太多了,搞的大家整天YY。太邪恶了。

使用特权

评论回复
9
lh8008|  楼主 | 2010-11-24 15:33 | 只看该作者
嗯,验证了我的猜测。程序跑起来了。.hex与FLASH的大小的确是两码事。这个概念很久之前我也接触过,但是因为没有对我的使用造成什么影响,后来也就这样过去了。今天 这个概念我又重新补习了一下。经过KEIL编译后的程序FLASH大小 ,可以以CODE的大小作为参考。

使用特权

评论回复
10
lh8008|  楼主 | 2010-11-24 15:35 | 只看该作者
结贴喽。这是我发的贴子中最知命的一条帖子了。哈哈。

使用特权

评论回复
11
ayb_ice| | 2010-11-24 16:00 | 只看该作者
可能程序很小
但复位在0地址处,某程序在地址62K处运行
实际程序很小,但目标MCU地址必须连续0~62K,52也装不下

KEIL选定使用片内资源,如果没有错误警告,应该是没有问题的

使用特权

评论回复
12
一曲离殇| | 2010-11-24 16:24 | 只看该作者
这个看口音都可以看出MM,看来这里阳气很重:lol

使用特权

评论回复
13
cp1300| | 2010-11-27 16:47 | 只看该作者
如果HEX文件过大KEIL应该会提示的啊

使用特权

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

本版积分规则

6

主题

151

帖子

1

粉丝