打印

遇到奇怪的问题,肯请老虾救命~~~

[复制链接]
5086|40
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
shunpu|  楼主 | 2007-7-18 08:20 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
   最近改进一台老仪器,其原来的构架是8031 + 27c512 + 6264,由于系统不稳定,经常出现问题,所以现在我想用89c52替代8031,把程序收到片内,省去片外程序存储器,结果出了大问题~~~~~~

   原来/EA脚是接地的,使用外部ROM,现在我把程序烧到89C52中,/EA脚接高电平,程序可以跑起来,但是里面有很大的问题,开机显示比原来迟了,就是比原来少显示了一个界面,还有就是读写不到6264中的数据。

  不过我用一片52的空片子插上,再插上27c512,系统运行完好,被搞晕了---

  过程中还发现,对于52来说,资料上讲,/EA脚接地以后,程序应该是直接从片外执行的,但实际是先从片内执行,执行完了才转到片外,弄不清是怎么一回事了,恳请老虾指点!

相关帖子

沙发
conwh| | 2007-7-18 08:29 | 只看该作者

1)移植可能有问题;2)你怎么知道是先从片内执行的?

使用特权

评论回复
板凳
shunpu|  楼主 | 2007-7-18 09:03 | 只看该作者

谢谢conwh,8031到52程序不需要改动吧?

   因为我这样试了一下,就是我把89C52片子擦除后,放上去,然后再装上27C512,系统跟原来一样,运行的很顺畅,但是我把89C52写过程序以后,同样装上27C512,系统就运行的跟只装89C52时一个样子了~~~

以上都是在/EA脚接地条件下进行的。

   我只装上写过程序的89C52片子,去掉27C512,/EA脚就必须接高电平程序才运行,不过不太对,就出现了上面说的问题了,还请多多指导啊。

使用特权

评论回复
地板
zhaoyu2005| | 2007-7-18 11:56 | 只看该作者

你说的少一个画面估计是程序不够造成的

就是27C512内的程序大于8k,你写到52中的只有8k,当然出问题了

使用特权

评论回复
5
孤独泪| | 2007-7-18 12:14 | 只看该作者

如果上楼上说的问题可能程序不能顺利运行了

你可以看一下程序到底有多大。

使用特权

评论回复
6
gyt| | 2007-7-18 12:42 | 只看该作者

如果

如果用512,那一定是超过了8k的。

使用特权

评论回复
7
shunpu|  楼主 | 2007-7-18 15:28 | 只看该作者

程序大小刚好8k

由于此前的程序不是我编的,我直接拿过来用的,我就是提前看了大小,8007字节,52可以装下的,才决定用89c52来替换。

至于以前用27c512可能是因为价格上相差不大采用了容量大一点的ROM,以备升级用的吧。

不过现在项改进一下,所以出了这样的问题,我已经折腾几天了,没有太大的进展,就只差把原来的程序在重新搞一遍了,郁闷呢

顺便说一下,我已经验证了不是ROM容量的问题,因为我用20K的89C55WD也烧了片子,情况跟用52时一个样,继续郁闷,继续找~~~

使用特权

评论回复
8
lbx_00| | 2007-7-18 20:05 | 只看该作者

用片内程序存储器的时候,加密了吗

不要加密

使用特权

评论回复
9
太阳之母| | 2007-7-18 21:39 | 只看该作者

/EA是不是悬空了?

对于TTL电路来说,输入引脚悬空似乎就算接高电平了(这样做显然不好),但对于89C52的/EA引脚来说,这样做是不行的,必须确实接到VCC上才算接高电平.

使用特权

评论回复
10
shunpu|  楼主 | 2007-7-19 07:50 | 只看该作者

都快没招了

其实我都试过了,烧程序,如果加密的话,/EA悬空可以运行,如果不加密,/EA必须接vcc才可以运行,但两者的结果都是一样的,不对~~~

所有是程序的地方还可以,就是在什么情况下显示一个什么指示,譬如字母或单词,但是对应的数据却没有,或者是随机数,因为原来用的是外部RAM,所以我判定是读写外部RAM不正确,也测过时序,的确不对,解决不了……

对了,还有重要的一点就是,我用仿真器跑这个程序,效果非常好,比原来用8031时要好得多,但就是不知道烧片子怎么就不行了 ??

使用特权

评论回复
11
ayb_ice| | 2007-7-19 08:29 | 只看该作者

你始终有扩展6264,去掉256也没有多大意义...

使用特权

评论回复
12
救火车| | 2007-7-19 09:10 | 只看该作者

会不会问题出在并行口。

选片内程序和片外程序对6264的操作有什么不同吗?
注意插上27c512和拔掉27c512对RD WD ALE管脚的影响。
如果你有源程序,可以插上仿真器跟踪一下。
试验1:观察程序延迟在什么地方。估计是6264读写数据出错。请证实。
试验2:注掉释读写6264的程序,在程序直接赋值,观察界面显示。
还有程序超过8K的可能
试验3:删减部分程序,看界面是否工作正常。

先做做实验,看结果再分析吧。
注意每个细节现象。



使用特权

评论回复
13
shunpu|  楼主 | 2007-7-19 09:52 | 只看该作者

谢谢救火车

  我觉得选片内程序和片外程序对6264的操作没有什么不同。

  我现在手里只有烧写文件,即.HEX文件,没有原始程序,不得已我把原来的程序返回编出来,然后用仿真器跟踪,单步跟踪也正确。

  所有口线的状态跟原来用8031时的状态都一样,并且拔掉6264,运行也很正常,所有数据的地方都显示为0,就是用52不一样了。

  还有程序8007B的,52可以装下,我也用20K容量89C55试了,没有改观。

使用特权

评论回复
14
救火车| | 2007-7-19 10:18 | 只看该作者

请有调试8031经验的老虾指点一下。

你说的"对了,还有重要的一点就是,我用仿真器跑这个程序,效果非常好"
根据这句话,你就要检查所有管口的上拉电阻。27C512可能会有一定的上拉或下拉作用。

检查一下P0口有无上拉电阻,RD、WR、ALE等信号。量一下电压的区别。试着加点上拉电阻。

再做一个试验:把89S52写上程序,把27C512擦除数据,插上27C512。执行89S52片内程序(EA==1)。看看现象。

我没用过这么古老的芯片。请有调试8031经验的老虾指点一下。


使用特权

评论回复
15
shunpu|  楼主 | 2007-7-19 12:13 | 只看该作者

再请大虾指点

   我刚开始就是发现用仿真器和烧片子管脚电平有些许的差别,所以我都把口线加了上拉电阻,口的电瓶状态没有差别,问题还是老样子,没有改变。

   不过你说的这个方法我觉得不错,先谢过了,我试试看。

使用特权

评论回复
16
太阳之母| | 2007-7-19 15:12 | 只看该作者

检查一下线路

检查一下线路:
1、地址(A0~A16)/数据(D0~D7)/控制总线(/RD,/WR,PSEN),是否确实为常规接法?早期产品有一些简单的加密措施。比如,可以用MOVC指令结合PSEN信号实现RAM的读(可以这样实现:27512只用前面的8K[A0~A12接上,/CE接A13],6264可以在剩余的56K地址空间里选A13为高的地址段)
2、检查一下原来的27512,看看除了开头的8K有内容而外,其余部分有没有内容(一般是常数数据)?LZ说到显示,会不会有字模数据或者位图数据在8K以外的地方放着?

使用特权

评论回复
17
tage| | 2007-7-19 22:48 | 只看该作者

楼上言之有理

使用特权

评论回复
18
shunpu|  楼主 | 2007-7-20 08:48 | 只看该作者

谢谢,27c512也不是非常规接法,如图

使用特权

评论回复
19
shunpu|  楼主 | 2007-7-20 08:52 | 只看该作者

请大虾继续帮我看看,先谢了

使用特权

评论回复
20
救火车| | 2007-7-20 11:23 | 只看该作者

把实验做了,说说现象。

先把27C512读出来备份一下。注意看一下,8K以后有没有数据。
试验:
把89S52写上程序,把27C512擦除数据,插上27C512。执行89S52片内程序(EA==1)。
记录现象。
如果8K以后有数据。就只擦除8K之前的数据,保留8K后的数据。重复一下试验。
证实一下27C512对管口电平有无影响,8K以后数据有无影响。
把现象写出来,大家分析一下。

使用特权

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

本版积分规则

3

主题

51

帖子

0

粉丝