打印

(求助)AT89C2051最小系统无法使用

[复制链接]
8881|25
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
821165254|  楼主 | 2010-12-29 10:10 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
做了一个AT89C2051的最小系统,可是调试了一天都没搞出来。
我出现的现象如下:程序下载进去上电后所有口输出均为高,也就是说程序没有跑起来。
1、单片机供电为5v,换过3.3v,4.7v。
2、硬件只焊接了VCC、GND、2个晶振pin、复位,可以说已经排除硬件其他干扰。
3、单片机最小系统晶振是12M,换过8M,16M。电容试过20p、22p、33p,因为没有示波器不能确定晶振起振没有,但是换过这么多应该不是这的问题。
4、测试程序让P1口输出0x55,结果出现我之前说的那个情况。
5、我用的编译环境是keil 4,下载工具是WLPRO V2.20(伟纳)。下载的时候下载软件有一个警告:已忽略部分超出缓存区范围的内容----这里是重点吧。
6、用下载器读了芯片中的数据,对比hex文件发现已经烧写成功。
7、我用我的下载器下载了AT89C52可以使用,说明下载器没有坏。
8、怀疑下载器或者编译器设置有问题,想请有经验的朋友帮忙解决下。
在网上搜索了几个小时,发现有部分人遇到相同的情况,但是他们都没有提供解决方案,比较郁闷。

相关帖子

沙发
dosculler| | 2010-12-29 10:15 | 只看该作者
编译器一般是不会错的。
单片机烧得进去也不会坏,最多坏几个管脚……
你应该用检查下载器,超出范围是不允许的

使用特权

评论回复
板凳
821165254|  楼主 | 2010-12-29 10:18 | 只看该作者
我是按照下载器说明来的,就是加载,自动下载。然后有这个警告,查了一下下载软件设置,也没有发现什么。

使用特权

评论回复
地板
821165254|  楼主 | 2010-12-29 10:47 | 只看该作者
呃,怎么没人,很急很急。

使用特权

评论回复
5
haishy| | 2010-12-29 11:30 | 只看该作者
EA接了没有

使用特权

评论回复
6
ayb_ice| | 2010-12-29 11:50 | 只看该作者
EA接了没有
haishy 发表于 2010-12-29 11:30

2051没有EA脚

使用特权

评论回复
7
chunyang| | 2010-12-29 12:20 | 只看该作者
用万用表测晶体两端,起振的话,电压为1/2Vcc左右,此外,也可能是程序问题或器件问题。

使用特权

评论回复
8
zhjyao021| | 2010-12-29 15:00 | 只看该作者
1# 821165254
代码没问题吧?

使用特权

评论回复
9
yangxh2005| | 2010-12-29 16:01 | 只看该作者
先软模拟一下,看看代码跑得对不对,很怀疑代码的问题

使用特权

评论回复
10
acute1110| | 2010-12-29 16:08 | 只看该作者
先写一个最简单的程序,用一个I/O输出高低点平,先确认自己的下载器没有问题,然后再排出程序的问题。

使用特权

评论回复
11
821165254|  楼主 | 2010-12-29 18:56 | 只看该作者
软模拟过,代码没问题,换过3片89C2051,都是相同的问题。

使用特权

评论回复
12
821165254|  楼主 | 2010-12-29 18:57 | 只看该作者
下载器下过89C52的,可以写入,且能够运行。而89C2051就只能写入,不能运行。

使用特权

评论回复
13
oldli| | 2010-12-29 20:12 | 只看该作者
三种可能:
1、复位问题
2、晶振未起
3、片子不行

使用特权

评论回复
14
ahr| | 2010-12-29 23:08 | 只看该作者
编译后代码超过2k了吗?

使用特权

评论回复
15
QuakeGod| | 2010-12-30 01:09 | 只看该作者
肯定是代码超过2K了,
两个证据,1,已忽略部分超出缓存区范围的内容
2,下载器下过89C52的,可以写入,且能够运行。而89C2051就只能写入,不能运行。
89C52的代码空间是4K
你可以换89C4051试试

使用特权

评论回复
16
ayb_ice| | 2010-12-30 08:27 | 只看该作者
2051没有LJMP,LCALL指令,注意限制编译器产生这样的代码

使用特权

评论回复
17
mcu5i51| | 2010-12-30 08:27 | 只看该作者
如果没有猜错的话是KC软件2K限制,试用版软件会从地址2048开始,也就是说2KFlash的MCU不能用试用版,你自己用汇编写个代码试试

使用特权

评论回复
18
lyjian| | 2010-12-30 09:33 | 只看该作者
16楼说的不对。
2051同样可执行LJMP,LCALL等指令,只要地址范围不超出7FF就行了。

使用特权

评论回复
19
zkkov2000| | 2010-12-30 10:13 | 只看该作者
像是程序代码超过范围了

使用特权

评论回复
20
ayb_ice| | 2010-12-30 13:25 | 只看该作者
18L
那你去看看手册

使用特权

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

本版积分规则

6

主题

16

帖子

0

粉丝