51单片机外扩存储器62256,前面有个锁存器,存储P0口输出的数据,程序应该怎么写?好的会追分

重点说下 端口怎么控制

由于不知道你的硬件线路,假设P2.7控制62256的CS脚,并且低有效,51的WR和RD连接62256的WR和RD,51的ALE连373的ALE,那么你就可以直接操作这些外存了。
C语言:
某个变量是放在62256里的
char xdata i _at_ 0x0000;//表示这个变量是存放在62256的首地址的
i = 1;//接下来程序里就把i当普通变量使用了,编译器会自动控制端口的操作的。
汇编:
mov dptr,#0000h
mov a,#1
movx @dptr,a ;movx命令自动会控制端口的,此处的命令就是向62256的0地址写1
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-07-08
你说的锁存器应该是地址锁存用的,不用你特意去控制,你注意一下,其控制位是与单片机ALE(地址锁存)相连的,片选一般接地,常有效。当遇到movx命令时,P0口就会送出地址A0~A7并发出ALE将该地址锁存到地址总线上。比如:
MOV DPTR,#1000H ;地址指针赋1000H
MOV A,#5AH ;累加器赋5A准备传送
MOVX @DPTR,A ;将5A存入1000H(此时先将00H送P0发ALE锁存到地址总线,再将5AH送P0
第2个回答  2012-07-08
62256是个64KB的静态存储器,所以为外部数据存储器,扩展后的地址为0000~FFFFH。存储P0口的数据可通过MOVX @DPTR,A来实现,所以只需要把具体数据先送A,然后通过修改DPTR就可对62256的每个单元进行写操作了。
相似回答