c51单片机怎样存储大量数据?

用c编程,由于单片机本身RAM一共才256字节,可是我要存储一个大数组或者表格,根本不够用;是不是可以把这些数据存储到code区呢?如果不另外加片外存储器,请问应该怎么处... 用c编程,由于单片机本身RAM一共才256字节,可是我要存储一个大数组或者表格,根本不够用;是不是可以把这些数据存储到code区呢?
如果不另外加片外存储器,请问应该怎么处理?
是静态的,就是不知道怎么个用法能存到code
比方说存个数组point[16]
怎么存到code区呢
我直接用:
int code point[16]不行
应该用什么语句呢
这个必须得赋初值吗?比方说
int code point[16];
main()
{
for(i=0;i<16;i++)
point[i]=i;
}
编译出现错误:LOCATION06R.C(40): error C183: unmodifiable lvalue;

明白了
谢谢!
展开
 我来答
eeko2005
2007-07-05 · TA获得超过1357个赞
知道小有建树答主
回答量:825
采纳率:100%
帮助的人:275万
展开全部
如果你的数据是静态的不用变的就可以存在code,否则当上电后code的内容只能读,不能改.数据多了只能加外存,可以用I2C总线的E2PROM(2是平方的意思),前几天买了几块AT24C256(32K),5元/块

例如:int code point[]={-1,-2,-3};就可以了。你说的不行不知道是什么意思,具体点吧

你这样赋初值是不行的,因为这种赋值语句是在RAM里面进行,point[]只可能是变量,不可能是常量,也就是它不能被定义在CODE内。所以你只能一个一个来了。一但point[]被定义为CODE就不能在main()里面再对它赋值了。:)
百度网友3588a6a0dc
推荐于2016-02-14 · TA获得超过2.5万个赞
知道大有可为答主
回答量:5218
采纳率:86%
帮助的人:324万
展开全部
  c51单片机存储大量数据方法:
  存储的只能是8位而已;
  16位分开来,分出高8位和低8位这样来存储;
  51单片机是对所有兼容Intel 8031指令系统的单片机的统称。该系列单片机的始祖是Intel的8031单片机,后来随着Flash rom技术的发展,8031单片机取得了长足的进展,成为应用最广泛的8位单片机之一,其代表型号是ATMEL公司的AT89系列,它广泛应用于工业测控系统之中。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式