打印

keil中C语言定义数组

[复制链接]
6161|16
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
discover568|  楼主 | 2013-11-22 21:33 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
南宫云明| | 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,数组的值是否可以任意的修改?

使用特权

评论回复
5
discover568|  楼主 | 2013-11-22 23:47 | 只看该作者
另外说明下我用的单片机型号是AT89S52

使用特权

评论回复
6
ayb_ice| | 2013-11-23 08:30 | 只看该作者
"unsigned char code xdata init_data[300];这样应该可以"

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

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

使用特权

评论回复
7
sunhq02| | 2013-11-23 08:42 | 只看该作者
我觉得问题问的就不清不楚的

使用特权

评论回复
8
南宫云明| | 2013-11-23 10:17 | 只看该作者

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

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

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


既然这样,估计你得外扩ram了吧。。。

使用特权

评论回复
9
discover568|  楼主 | 2013-11-23 11:03 | 只看该作者
定义unsigned char xdata init_data[300];是可以的,编译也通过了,但使用的时候不行。我想定义300是因为用它来存储260个左右的uchar数据,这些数据在程序运行过程中是可以进行更新的,请高手指教该如何解决。
另外刚有说用外扩RAM的,请详细说下可以吗?

使用特权

评论回复
10
南宫云明| | 2013-11-23 11:49 | 只看该作者
另外刚有说用外扩RAM的,请详细说下可以吗?

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

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

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

使用特权

评论回复
11
discover568|  楼主 | 2013-11-23 17:03 | 只看该作者
我的这个AT89S52本身就是增强型的,但我EA端接了高电平,用的是内部闪存。如果我把EA接地,那么会有什么影响,存储的空间是否会增大?

使用特权

评论回复
12
ningling_21| | 2013-11-23 17:08 | 只看该作者
discover568 发表于 2013-11-23 17:03
我的这个AT89S52本身就是增强型的,但我EA端接了高电平,用的是内部闪存。如果我把EA接地,那么会有什么影 ...

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

定义这么多数组变量,要有足够的RAM才行。

使用特权

评论回复
13
xuyaqi| | 2013-11-23 17:14 | 只看该作者
本帖最后由 xuyaqi 于 2013-11-23 17:16 编辑

如果把EA接地就要用外部程序存贮器,太麻烦了不如换AT89S53(12k程序存贮器)管脚兼容AT89S52(8k程序存贮器).

使用特权

评论回复
14
xuyaqi| | 2013-11-23 17:20 | 只看该作者
还有w78e516ddg(64k程序存贮器)管脚兼容AT89S52(8k程序存贮器).

使用特权

评论回复
15
戈卫东| | 2013-11-23 18:23 | 只看该作者
首先你要保证你用的单片机有这么大的RAM

使用特权

评论回复
16
lirunze| | 2013-11-23 21:05 | 只看该作者
楼上说的有道理,硬件上没有,软件上还从何说起呢!

使用特权

评论回复
17
呆板书生| | 2013-11-24 07:25 | 只看该作者
换芯片,

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

8

主题

43

帖子

0

粉丝