
#define XBYTE ((unsigned char volatile xdata *) 0) 谁给详细讲解一下这个宏定义。谢谢
2个回答
展开全部
这个宏可以当做一个常量用,也可以当做一个数组
常量就不用说了,直接赋值就好,赋值给谁,谁就是这个数组的首地址,然后这个变量(应该也是无符号字符指针类型的)也就可以当做数组使用了
取值的时候,应该是取硬件寄存器或者管脚的值
这种定义不太可能出现在PC开发中,应该是单片机中的吧?
CPU系统指定了0地址作为一系列管脚或者寄存器的首地址值,于是可以通过这个宏进行读取和写入
常量就不用说了,直接赋值就好,赋值给谁,谁就是这个数组的首地址,然后这个变量(应该也是无符号字符指针类型的)也就可以当做数组使用了
取值的时候,应该是取硬件寄存器或者管脚的值
这种定义不太可能出现在PC开发中,应该是单片机中的吧?
CPU系统指定了0地址作为一系列管脚或者寄存器的首地址值,于是可以通过这个宏进行读取和写入
展开全部
修饰0地址的见过,但是没有见过还使用了volatile的;
能将这个XBYTE的被使用的语句一并发出来么?不需要完整程序,少数语句就可以了
能将这个XBYTE的被使用的语句一并发出来么?不需要完整程序,少数语句就可以了
追问
C51的P0,P2口做外部扩展时使用,其中XBYTE [0x0002],P2口对应于地址高位,P0口对应于地址低位。一般P2口用于控制信号,P0口作为数据通道。
XBYTE定义的是外部地址,这样才能和接到你的IO口上的器件通信
在一般的读写外部RAM的程序中,经常看到这样的句子:
XBYTE[address]=data 写数据
data=XBYTE[address] 读数据1
追答
呵呵,真的是第一次见到这种用法阿,学习了
Ref:
http://zhidao.baidu.com/question/451953338.html
这个更为详细:
http://blog.mcuol.com/User/zhjr1220/Article/18249_1.htm
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询