keil中C语言定义数组

[复制链接]
6848|16
 楼主| discover568 发表于 2013-11-22 21:33 | 显示全部楼层 |阅读模式
keil中如何定义一个uchar类型,大小为300的数组?这个是否可以做到,有什么其他办法实现可以存储300个uchar数值?
南宫云明 发表于 2013-11-22 22:10 | 显示全部楼层
unsigned char xdata init_data[300];
前提是你的单片机至少有300字节的ram
鼹鼠 发表于 2013-11-22 22:30 | 显示全部楼层
unsigned char code xdata init_data[300];这样应该可以,加了关键字code后,数组会保存到FLASH中 不过加了code后这个数据只能被使用,不能被改变(前提是你的单片机有flash
 楼主| discover568 发表于 2013-11-22 23:45 | 显示全部楼层
南宫云明 发表于 2013-11-22 22:10
unsigned char xdata init_data[300];
前提是你的单片机至少有300字节的ram

请问你的xdata是什么意思,为什么加了它就可以扩展到300,数组的值是否可以任意的修改?
 楼主| discover568 发表于 2013-11-22 23:47 | 显示全部楼层
另外说明下我用的单片机型号是AT89S52
ayb_ice 发表于 2013-11-23 08:30 | 显示全部楼层
"unsigned char code xdata init_data[300];这样应该可以"

可以吗
到底是定义在code区还是xdata区呢

AT89S52总共才256字节RAM,定义300字节变量是不可能的,只能是表格了
sunhq02 发表于 2013-11-23 08:42 | 显示全部楼层
我觉得问题问的就不清不楚的
南宫云明 发表于 2013-11-23 10:17 | 显示全部楼层

"unsigned char code xdata init_data[300];这样应该可以"

可以吗
到底是定义在code区还是xdata区呢

AT89S52总共才256字节RAM,定义300字节变量是不可能的,只能是表格了


既然这样,估计你得外扩ram了吧。。。
 楼主| discover568 发表于 2013-11-23 11:03 | 显示全部楼层
定义unsigned char xdata init_data[300];是可以的,编译也通过了,但使用的时候不行。我想定义300是因为用它来存储260个左右的uchar数据,这些数据在程序运行过程中是可以进行更新的,请高手指教该如何解决。
另外刚有说用外扩RAM的,请详细说下可以吗?
南宫云明 发表于 2013-11-23 11:49 | 显示全部楼层
另外刚有说用外扩RAM的,请详细说下可以吗?

建议还是换单片机吧。。。很多增强型51单片机都自带外扩ram的

说实话51外扩ram我也没用过,如果不够都直接换单片机的,不好意思

或者你自己看一下at89s52的pdf,看有没有介绍

 楼主| discover568 发表于 2013-11-23 17:03 | 显示全部楼层
我的这个AT89S52本身就是增强型的,但我EA端接了高电平,用的是内部闪存。如果我把EA接地,那么会有什么影响,存储的空间是否会增大?
ningling_21 发表于 2013-11-23 17:08 | 显示全部楼层
discover568 发表于 2013-11-23 17:03
我的这个AT89S52本身就是增强型的,但我EA端接了高电平,用的是内部闪存。如果我把EA接地,那么会有什么影 ...

EA只是选择内部或外部ROM的管脚。

定义这么多数组变量,要有足够的RAM才行。
xuyaqi 发表于 2013-11-23 17:14 | 显示全部楼层
本帖最后由 xuyaqi 于 2013-11-23 17:16 编辑

如果把EA接地就要用外部程序存贮器,太麻烦了不如换AT89S53(12k程序存贮器)管脚兼容AT89S52(8k程序存贮器).
xuyaqi 发表于 2013-11-23 17:20 | 显示全部楼层
还有w78e516ddg(64k程序存贮器)管脚兼容AT89S52(8k程序存贮器).
戈卫东 发表于 2013-11-23 18:23 | 显示全部楼层
首先你要保证你用的单片机有这么大的RAM
lirunze 发表于 2013-11-23 21:05 | 显示全部楼层
楼上说的有道理,硬件上没有,软件上还从何说起呢!
呆板书生 发表于 2013-11-24 07:25 | 显示全部楼层
换芯片,
您需要登录后才可以回帖 登录 | 注册

本版积分规则

8

主题

43

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部