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;
明白了
谢谢! 展开
如果不另外加片外存储器,请问应该怎么处理?
是静态的,就是不知道怎么个用法能存到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;
明白了
谢谢! 展开
2个回答
展开全部
如果你的数据是静态的不用变的就可以存在code,否则当上电后code的内容只能读,不能改.数据多了只能加外存,可以用I2C总线的E2PROM(2是平方的意思),前几天买了几块AT24C256(32K),5元/块
例如:int code point[]={-1,-2,-3};就可以了。你说的不行不知道是什么意思,具体点吧
你这样赋初值是不行的,因为这种赋值语句是在RAM里面进行,point[]只可能是变量,不可能是常量,也就是它不能被定义在CODE内。所以你只能一个一个来了。一但point[]被定义为CODE就不能在main()里面再对它赋值了。:)
例如:int code point[]={-1,-2,-3};就可以了。你说的不行不知道是什么意思,具体点吧
你这样赋初值是不行的,因为这种赋值语句是在RAM里面进行,point[]只可能是变量,不可能是常量,也就是它不能被定义在CODE内。所以你只能一个一个来了。一但point[]被定义为CODE就不能在main()里面再对它赋值了。:)
展开全部
c51单片机存储大量数据方法:
存储的只能是8位而已;
16位分开来,分出高8位和低8位这样来存储;
51单片机是对所有兼容Intel 8031指令系统的单片机的统称。该系列单片机的始祖是Intel的8031单片机,后来随着Flash rom技术的发展,8031单片机取得了长足的进展,成为应用最广泛的8位单片机之一,其代表型号是ATMEL公司的AT89系列,它广泛应用于工业测控系统之中。
存储的只能是8位而已;
16位分开来,分出高8位和低8位这样来存储;
51单片机是对所有兼容Intel 8031指令系统的单片机的统称。该系列单片机的始祖是Intel的8031单片机,后来随着Flash rom技术的发展,8031单片机取得了长足的进展,成为应用最广泛的8位单片机之一,其代表型号是ATMEL公司的AT89系列,它广泛应用于工业测控系统之中。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询