从品牌网站建设到网络营销策划,从策略到执行的一站式服务
你还没听懂楼上几位的意思。其实这个定义就是定义了一个字节的外部RAM,其地址为0xfeff。即将外部RAM中地址为0xfeff的字节定义为了ZXK这个名字。对它赋值即是对片外RAM的地址为0xfeff的字节赋值。这个和P0、P2没有关系,只是在程序执行过程中,访问这个外部RAM字节的时候P0口是0xff,P2口是0xfe。(根据这个地址来确定RAM中的哪个单元被选中)
成都创新互联公司是一家专业提供冷水江企业网站建设,专注与成都做网站、网站制作、成都外贸网站建设、HTML5建站、小程序制作等业务。10年已为冷水江众多企业、政府机构等服务。创新互联专业网络公司优惠进行中。
比如ZXK=0x00bf这条赋值是不行的,因为ZXK是字节变量,ZXK=0xbf这条赋值是对的,作用是将片外RAM的地址为0xfeff的字节赋值为0xbf。
首先说明:由于C语言是字符大小写敏感的,所以没有xbyte,而只有XBATE!
下面说一下,XBATE和xdata的意思。
xdata是C51关键字,说明变量的存储区间,它是指单片机的扩展存储区域(也称外部存储、片外存储,尽管物理存储器也可能在单片机芯片内部),最大64kByte,在汇编语言中,需要通过用16位指针DPTR来访问。
XBATE在ABSACC.H文件中为一个宏定义
#define XBYTE ((unsigned char volatile xdata *) 0)
也就是说,通过直接地址引用该位置的值。例如在xdata的04H单元内存放了一个字符'c',则
XDATA[4]就是引用了04H的内容,也就是'c'。
同样的还有DBYTE,CBYTE,PBYTE等单字节引用data、pdata,code空间的数据,还有XWORD,DWORD,CWORD,PWORD等双字节引用xdata,data,code,pdata空间的数据的,但要注意它们是以2字节为一个计数单元。例如 XWORD[4]是引用xdata空间中08H,09H两个单元构成的unsigned int。
不知道说明清楚了没有?
是单片机的C语言编程吗?
XBYTE[ ]是用来对一个外部的内存单元进行操作的宏,常常用在将单片机外设作为一个内存单元来访问的情形XBYTE[0x8000]=0x08的意思是对外部的内存单元0x8000写入0x80数据,而且会调用MOVX汇编指令,会产生WR/RD信号,例如你一个外设的使能端接在P2.7脚,在数据线以及WR都接好的情况下就可以给外设写入0x08数据
成都网站建设公司地址:成都市青羊区太升南路288号锦天国际A座10层 建设咨询028-86922220
成都快上网科技有限公司-四川网站建设设计公司 | 蜀ICP备19037934号 Copyright 2020,ALL Rights Reserved cdkjz.cn | 成都网站建设 | © Copyright 2020版权所有.
专家团队为您提供成都网站建设,成都网站设计,成都品牌网站设计,成都营销型网站制作等服务,成都建网站就找快上网! | 成都网站建设哪家好? | 网站建设地图