重庆分公司,新征程启航

为企业提供网站建设、域名注册、服务器等服务

c语言函数xbyte意义的简单介绍

请问高手 单片机编程中#define ZXK XBYTE[0xfeff]中XBYTE[0xfeff]是什么意思 能讲详细点吗?

你还没听懂楼上几位的意思。其实这个定义就是定义了一个字节的外部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。

单片机里xbyte和xdata到底什么关系啊?

首先说明:由于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。

不知道说明清楚了没有?

XBYTE[0x8000]=0x08是什么意思

是单片机的C语言编程吗?

XBYTE[ ]是用来对一个外部的内存单元进行操作的宏,常常用在将单片机外设作为一个内存单元来访问的情形XBYTE[0x8000]=0x08的意思是对外部的内存单元0x8000写入0x80数据,而且会调用MOVX汇编指令,会产生WR/RD信号,例如你一个外设的使能端接在P2.7脚,在数据线以及WR都接好的情况下就可以给外设写入0x08数据


本文标题:c语言函数xbyte意义的简单介绍
新闻来源:http://cqcxhl.cn/article/dohshph.html

其他资讯

在线咨询
服务热线
服务热线:028-86922220
TOP