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

用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;

明白了
谢谢!

如果你的数据是静态的不用变的就可以存在code,否则当上电后code的内容只能读,不能改.数据多了只能加外存,可以用I2C总线的E2PROM(2是平方的意思),前几天买了几块AT24C256(32K),5元/块

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

你这样赋初值是不行的,因为这种赋值语句是在RAM里面进行,point[]只可能是变量,不可能是常量,也就是它不能被定义在CODE内。所以你只能一个一个来了。一但point[]被定义为CODE就不能在main()里面再对它赋值了。:)
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2016-02-14
  c51单片机存储大量数据方法:
  存储的只能是8位而已;
  16位分开来,分出高8位和低8位这样来存储;
  51单片机是对所有兼容Intel 8031指令系统的单片机的统称。该系列单片机的始祖是Intel的8031单片机,后来随着Flash rom技术的发展,8031单片机取得了长足的进展,成为应用最广泛的8位单片机之一,其代表型号是ATMEL公司的AT89系列,它广泛应用于工业测控系统之中。