打印

关于c51程序存储问题

[复制链接]
1743|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
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

粉丝