C51的P0,P2口做外部扩展时使用,其中XBYTE [0x0002],P2口对应于地址高位,P0口对应于地址低位。一般P2口用于控制信号,P0口作为数据通道。
XBYTE定义的是外部地址,这样才能和接到你的IO口上的器件通信
在一般的读写外部RAM的程序中,经常看到这样的句子:
XBYTE[address]=data 写数据
data=XBYTE[address] 读数据1
外部总线由3组总线组成,数据 地址 控制,我们常常一般就叫他外部总线,既然是有3组不同的信号,那么他们是怎么协调工作的呢?一般情况CPU有特殊的外部数据
访问指令如你这里讲51的MOVX指令(在C语言中他会编译成这个指令)在执行这个指令的时候3组线是协调工作
mov dptr,#1000h
mov a,#55h
movx @dptr,a
上面3调语句的C语言可以表示如下
#define W_DATA XBYTE[0x1000]
W_DATA=0X55;
在使用外部总线的时候,数据 地址和控制信号是直接按照规定的时序输出高低电平的,所以不用你管,当然你必须要满足时序工作如何理解#define XBYTE ((unsigned char
volatile xdata * ))
8051 特有的内存型态
code 以 MOVC @A+DPTR