1.单片机默认的用 MOVX @DPTR,A 来实现将地址线送出,用 MOVX A,@DPTR来实现读数据 。在此条指令的共用两个周期实现,第一个周期将地址送出,后产生一个ALE信号,进行相应的操作,第二个周期将数据发送出去,选中的芯片对数据进行相应的处理,再次产生一个ALE信号,此信号对锁存已经失去了意义,因为操作已经结束。
2.用C语言相应的指令格式为:
(1)利用指针
uint xdata *add;
uchar dat;
dat=0x11;
addr=0x1000; //P2口与P0口组成的16位地址 //相当于16位 DPTR
*addr=dat; //送去的数据为0x11; //相当于8位数据A
(2)利用C51中预定义的宏
uchar dat; //8位数据
uint addr; //16位地址
dat=XBYTE[0x1000]; //将地址0x10000中的8位数据读出放到dat中
XBYTE[addr]=dat;
附录:
1.C51中的存储器类型 (单片机原理及应用 王景景 第78页)
data 直接寻址访问的片内RAM的低128B,访问速度快
bdata 片内RAM的可寻址区(20H~2FH),允许字节和位混合访问
idata 间接寻址访问片内RAM,允许访问全部片内RAM
pdata 用Ri间接访问的片内RAM的低256B
xdata 用DPTR间接访问的片外RAM,允许访问全部64K片外RAM
code 程序存储器ROM的64KB空间
2.C51中的预定义宏指令(81页)
放在#include <absacc.h> 头文件中
CBYTE 以字节形式对code区寻址
DBYTE 以字节形式对data区寻址
PBYTE 以字节形式对pdata区寻址
XBYTE 以字节形式对xdata区寻址
CWORD 以字形式对code区寻址
DWORD 以字形式对data区寻址
PWORD 以字形式对pdata区寻址
XWORD 以字形式对xdata区寻址
使用形式 : 宏名[地址];