关于c51程序存储问题

[复制链接]
 楼主| xvezhe 发表于 2013-7-26 15:50 | 显示全部楼层 |阅读模式
本帖最后由 xvezhe 于 2013-7-26 15:52 编辑

         uchar  one_time[]   = {0,0,0,0,0,0};          //存储步长时间1
         uchar  two_time[]   = {0,0,0,0,0,0};          //存储步长时间2
         uchar  three_time[] = {0,0,0,0,0,0};          //存储步长时间2


         uchar  dqb_one[]    = {0,0,0,0,0,0};          //存储当前相位1
         uchar  dqb_two[]    = {0,0,0,0,0,0};          //存储当前相位2
         uchar  dqb_three[]  = {0,0,0,0,0,0};          //存储当前相位2

在没有外置存储设备,如何节约ROM,用的是stc89c51,  若改成uchar code dqb_one[]    = {0,0,0,0,0,0};          //存储当前相位1 ,到程序编译的时候怎么出错了呢?   请教如何更改才能不会出错,又能节约内存空间,现在data都用了112,但程序还没写完。。。   以上定义数组是用来临时存储变量的。。。。。
 楼主| xvezhe 发表于 2013-7-29 08:41 | 显示全部楼层
各位高手,有空指教一下小弟,:dizzy:
ccxlslr 发表于 2013-7-29 12:37 | 显示全部楼层
code定义的数据,是在烧写程序的时候,和程序一起烧录的。是不可改变的。因些只能定义常量。也就是这些数据,只能读,不能写

编译器在编译会用,movc汇编语句,来读取数据。

类似汇编的查表。

如果你用的变量,数组多,且真的无法精简的话。 只有换单片机了。
 楼主| xvezhe 发表于 2013-8-1 15:05 | 显示全部楼层
ccxlslr 发表于 2013-7-29 12:37
code定义的数据,是在烧写程序的时候,和程序一起烧录的。是不可改变的。因些只能定义常量。也就是这些数据 ...

谢谢。。。。呵呵,若没办法只能如你这样的咯。。。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

54

主题

225

帖子

2

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

54

主题

225

帖子

2

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