51单片机定义一个大数组存在idata与xdata中有什么区别?

 我来答
仁昌爱娱乐
高粉答主

2019-12-11 · 专注关心娱乐
仁昌爱娱乐
采纳数:760 获赞数:459785

向TA提问 私信TA
展开全部

51单片机定义一个大数组存在idata与xdata区别为:空间不同、访问不同、获取不同。

一、空间不同

1、idata:idata占用51单片机内部RAM的固定0x00-0xff空间。

2、xdata:xdata占用51单片机外部RAM扩展的0x0000-0xffff空间。

二、访问不同

1、idata:idata用类似C中的指针方式进行访问。

2、xdata:xdata用DPTR进行访问。

三、获取不同

1、idata:51单片机编译成功后,在idata区中,可以直接获取到定义的数组。

2、xdata:51单片机编译成功后,在xdata区中,不可以直接获取到定义的数组。

ljcljc0000
推荐于2017-11-24 · TA获得超过526个赞
知道小有建树答主
回答量:133
采纳率:0%
帮助的人:186万
展开全部
区别如下:1、位置不同 idata定义在高128字节中,xdata定义在外部RAM中,一些单片机内部集成了外部RAM。
2、访问速度不一样 访问idata的速度稍快。
3、最后,可能也是最重要的,二者在初始化上区分很大。
在基本所有编译器下,unsigned char idata num[3]={1,2,3};可以正确编译,在idata区中,可以看到该数组。
但是unsigned char xdata num[3]={1,2,3},在一些编译器下,xdata中,看不到该数组,程序可能不正确运行。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
德昂当
2011-04-29 · TA获得超过2842个赞
知道大有可为答主
回答量:1074
采纳率:100%
帮助的人:741万
展开全部
存储的区域不同
idata 是存在 内部RAM 80H--FFH,(对汇编指令来说,不可直接寻址,只能间接寻址)。
xdata 是存在外部RAM ,有些单片机会在芯片内扩展一些RAM,这部分也要用 xdata,因为是同外部RAM共同编址的,汇编指令中都是用 MOVX来寻址。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
西门不败
2011-04-29 · TA获得超过4078个赞
知道大有可为答主
回答量:3749
采纳率:75%
帮助的人:4425万
展开全部
一个是内部RAM 一个是外部扩展RAM
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2011-04-29
展开全部
idata间接寻址
xdata外部地址
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式