C51单片机里关于xbyte的问题

请大家看下面这段程序#defineADCOMXBYTE[0xff7c]/*使A0=0,R/C=0,CS=0*/#defineADLOXBYTE[0xff7f]/*使R/C... 请大家看下面这段程序
# define ADCOM XBYTE[ 0xff7c ] /* 使A0=0 ,R/C=0, CS=0 */
# define ADLO XBYTE [ 0xff7f ] /* 使 R/C =1,A0=1, CS=0 */
# define ADHI XBYTE [ 0xff7d ] /* 使R/C=1,A0=0,CS =0 */
本人一直理解是ADCOM是一个指针,指针指向的地址为0xff7c,完事可以通过对ADCOM的操作来更改地址0xff7c内变量的值,但是为何同时在宏定义后,相应的注释里会是同时初始化某值的作用呢?
那在问下像0xff7c这些地址,是应该怎样和外部电路相配合呢?是说地址可以随便写么?
展开
 我来答
alone_1024
推荐于2017-09-05 · TA获得超过536个赞
知道小有建树答主
回答量:123
采纳率:0%
帮助的人:0
展开全部
XBYTE定义的是外部地址,这样才能和接到你的IO口上的器件通信
关于你的不充问题:
你把0xff7c展开成二进制形式就全明白了,0xff7c的二进制是:1111,1111,0111,1100
再结合后面的注释可知外部电路管脚的对应关系为:
CS——P1.7
A0——P1.1
R/C——P1.0
用XBYTE定义的目的是将外部电路不同的功能编程不同的地址而已
这样就可以在程序里面通过直接对地址附置,就能使外部电路实现需要的功能,这样做还有一个好处就是在编译的时候会产生 MOVX 指令,这样可以操作WR和RD引脚,以实现特定的功能
至于用XBYTE定义的地址是多少就得根据实际的外围电路的连接来确定,不是随便写的
意法半导体(中国)投资有限公司
2023-06-12 广告
STM32是ARM Cortex内核单片机和微处理器市场和技术方面的佼佼者,目前提供16大产品线 (F0, G0, F1, F2, F3, G4, F4, F7, H7, MP1, L0, L1, L4, L4+,L5, WB),超过100... 点击进入详情页
本回答由意法半导体(中国)投资有限公司提供
百度网友0ad5d59
2009-03-07 · TA获得超过1192个赞
知道小有建树答主
回答量:378
采纳率:0%
帮助的人:567万
展开全部
#define XBYTE ((unsigned char volatile xdata *) 0)
这个是xbyte的原型..
注释还是注视..根本就没有初始化的作用,

另外后的注视..不是初始化某个值得作用,
而是对应地址的功能..

例如..ADLO 0xff7c 如果写这个地址那么A0=1 R/C=1 CS=0
这个和你电路里面的接法有关..因为地址是0x7f = 0b0111 1111所以A0肯定=1,,,,
具体的你 R/C CS也要具体配合电路才行
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式