统一编址(51系列)

来源:互联网 发布:基尼系数计算 python 编辑:程序博客网 时间:2024/06/06 17:24

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区寻址

 

使用形式 :   宏名[地址];