打印

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

[复制链接]
1943|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

使用特权

评论回复
5
蓝色日出| | 2008-7-10 12:01 | 只看该作者

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

使用特权

评论回复
6
古道热肠| | 2008-7-10 12:09 | 只看该作者

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

答案在DataSheet中很容易找到.

使用特权

评论回复
7
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

粉丝