打印

51接20位地址线的GBK字库芯片

[复制链接]
2645|19
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
formatC|  楼主 | 2008-5-14 16:06 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
51接20位地址线和16位宽度数据线的GBK字库芯片,这样做行吗:
用P1.7控制573的LE, 先用P0送出A17-A20,然后用P17锁存,
再用MOV A, @DPTR 访问字库,这样做对不对,请高人指教

另外,如果数据线要接成16位数据访问的方式,该怎么接
谢谢

相关帖子

沙发
formatC|  楼主 | 2008-5-14 16:07 | 只看该作者

上图

使用特权

评论回复
板凳
农民讲习所| | 2008-5-14 17:16 | 只看该作者

不行

总线操作和IO操作不能混用。

你的地址标号要改为A0开始。

使用特权

评论回复
地板
hq_y| | 2008-5-14 17:27 | 只看该作者

使用P1作为高4位的地址

使用特权

评论回复
5
formatC|  楼主 | 2008-5-14 18:21 | 只看该作者

恕小菜鲁顿

恕小菜鲁顿,不知总线操作与IO操作混用为何不行.

按我的理解,先 MOV P0, #A17toA20,
然后LE1置高,把#A17toA20被送到地址线上A17: A20,
然后LE1置低,此时锁存#A17toA20,
然后         MOV DPL, #A1toA8
             MOV DPH, #A9toA16
             MOV A @DPTR;
这样做错在那里,地址线的高4位已经由LE1锁存了,之后在P0上
出现任何数据应该不会影响他们,

我这样错在那里,谢谢!

另外:按HQ_Y的方法,不还是IO与总线操作混用吗

使用特权

评论回复
6
hq_y| | 2008-5-14 18:28 | 只看该作者

怎么会?

读取eprom是按照RAM来读取的,只不过分成了16个块而已;

   block0 equ #0
   block1 equ #1
   block2 equ #2
...
   block15 equ #15

...

read1byte:
   mov p1,#block0; 先选定某一块
   movx a,@dptr
...

直接就把16个512K中的某一个字节的低8位数据读到了ACC;

使用特权

评论回复
7
formatC|  楼主 | 2008-5-14 18:45 | 只看该作者

我同意hq_y的方法可以,问题是

我同意hq_y的方法可以,问题是我的那个方法和您的没什么不同啊,
为什么老农伯伯说不行呢?
         MOV P0, #A17toA20,
         MOV DPL, #A1toA8
         MOV DPH, #A9toA16
         MOVX A @DPTR;

使用特权

评论回复
8
hq_y| | 2008-5-14 18:52 | 只看该作者

这个程序在你的硬件电路上无法实现这一点啊,呵呵

哦大体上明白你的意思了,你先锁存高4位的地址数据;
然后再读取rom中的数据;

这样的做法可能可以把,但是不是标准的做法;

使用特权

评论回复
9
formatC|  楼主 | 2008-5-14 19:02 | 只看该作者

谢谢hy_q的热心帮助

谢谢hy_q的热心帮助,我是想省几个IO,不知道这样行不,
盼望老农来解释下。

使用特权

评论回复
10
hotpower| | 2008-5-14 19:20 | 只看该作者

最近发觉hq_y良心太好了!!!

使用特权

评论回复
11
农民讲习所| | 2008-5-14 19:26 | 只看该作者

P0的端口操作不能和外部XRAM访问混用,一定牢记。

你可以用扩展IO的方式,用总线扩展出高位地址。

使用特权

评论回复
12
hotpower| | 2008-5-14 19:37 | 只看该作者

通常是这样~~~也有例外~~~

使用特权

评论回复
13
农民讲习所| | 2008-5-14 20:24 | 只看该作者

hotpower是不是有要采用特别的技巧了?

最好不要教坏别人,特别刚入门不久的。这时候他们需要的是技术培养。

使用特权

评论回复
14
农民讲习所| | 2008-5-14 20:25 | 只看该作者

技巧的使用,通常带着难言的病痛。

使用特权

评论回复
15
hotpower| | 2008-5-14 20:26 | 只看该作者

哈哈~~~最近农忙,不散播流毒了~~~

使用特权

评论回复
16
formatC|  楼主 | 2008-5-14 20:46 | 只看该作者

hotpower大叔,能否告诉俺

hotpower大叔,能否告诉俺
 为什么“P0的端口操作不能和外部XRAM访问混用,一定牢记”
我想知道问题的根源所在,我是觉得经过LE1锁存后P0上出现
的数据不会再影响到高位地址,到底是为什么。

大家都说不能这样那样,为什么不能这样那样呢没一个人说?

谢谢。

使用特权

评论回复
17
awey| | 2008-5-14 20:47 | 只看该作者

对于硬件来说,技巧的应用往往可以带来成本的大大降低

使用特权

评论回复
18
hotpower| | 2008-5-14 20:48 | 只看该作者

楼主的问题例外~~~确实不要动P2~P0口

使用特权

评论回复
19
hotpower| | 2008-5-14 20:50 | 只看该作者

不过楼主要是用CPLD问题肯定就简单了,线路也简洁的多

使用特权

评论回复
20
formatC|  楼主 | 2008-5-14 21:35 | 只看该作者

谁能说说为甚么不能混用

谁能说说为甚么IO和XRAM访问不能混用,大家都在说题外话
我认为既然锁存了,是没问题的,
        MOV P0, #A17toA20,
         MOV DPL, #A1toA8
         MOV DPH, #A9toA16
         MOVX A @DPTR;

那位老大指点下,那怕拿板砖拍我两下使我清醒

使用特权

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

本版积分规则

23

主题

101

帖子

0

粉丝