关于XBYTE,问一个菜菜的问题,希望高人解答

[复制链接]
3115|6
 楼主| keaiduole 发表于 2008-7-9 22:33 | 显示全部楼层 |阅读模式
在一般的读写外部RAM的程序中,经常看到这样的句子:
    XBYTE[address]=data   写数据
    data=XBYTE[address]   读数据
但是我想问的是,为什么用了XBYTE后,就不用顾及其时序了呢?
就是说,读写数据的时候,WR和RD怎么都不用用程序去控制了呢?
参考了很多读写外部RAM的程序,都找不到其控制WR和RD控制线的语句
哪位大侠能帮忙解释一下这是为什么嘛?
最好还能说说XBYTE具体的用法.....
computer00 发表于 2008-7-9 23:16 | 显示全部楼层

XBYTE其实是个地址为0的xdata的指针

相当于movx指令。51单片机会自动产生读写时序的,这个单片机书上都有讲。
ayb_ice 发表于 2008-7-10 08:59 | 显示全部楼层

LS已经回答完毕

janying 发表于 2008-7-10 11:54 | 显示全部楼层

转换成汇编看看

转换成汇编看看,你就明白了,就相当于MOVX
蓝色日出 发表于 2008-7-10 12:01 | 显示全部楼层

占个位置,收藏一下,这个问题我之前也不懂

古道热肠 发表于 2008-7-10 12:09 | 显示全部楼层

参考程序还要参考芯片的DataSheet

答案在DataSheet中很容易找到.
acmilann 发表于 2008-7-10 19:23 | 显示全部楼层

在ABSACC中你看一下就明白了

#define CBYTE ((unsigned char volatile code  *) 0)
#define DBYTE ((unsigned char volatile data  *) 0)
#define PBYTE ((unsigned char volatile pdata *) 0)
#define XBYTE ((unsigned char volatile xdata *) 0)

XBYTE [address]=data;
相当于
unsigned char  xdata *p;
p = address;
*p=data;
但是用XBYTE 会节省一个指针变量的RAM空间
您需要登录后才可以回帖 登录 | 注册

本版积分规则

12

主题

47

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部