keil中怎么用C实现MOVC指令功能

[复制链接]
15707|48
 楼主| hyhjjg 发表于 2008-11-4 11:50 | 显示全部楼层 |阅读模式
MOVC指令可以方便的存储代码区,如果用C51语言如何实现?
请高手给提示以下
 楼主| hyhjjg 发表于 2008-11-4 11:55 | 显示全部楼层

自己看了说明书

可是没有着方面的内容,大家怎么解决的了?教教俺
HWM 发表于 2008-11-4 11:57 | 显示全部楼层

将数据定义在程序存储器内(用code关键字),具体就甭管了

 楼主| hyhjjg 发表于 2008-11-4 12:05 | 显示全部楼层

HWM朋友说的我用过

可是编译器老是报错,大体意思是用CODE定义的结构型变量是不可以更改的,只读的
 楼主| hyhjjg 发表于 2008-11-4 12:10 | 显示全部楼层

PRATICALPROCESS.C(102): error C183: unmodifiable lvalue

PRATICALPROCESS.C(102): error C183: unmodifiable lvalue
HWM 发表于 2008-11-4 12:10 | 显示全部楼层

当然是只能读的,应为MOVC就是只读的!建议先做A人。

HYHJJG 发表于 2008-11-4 12:18 | 显示全部楼层

不才的教材上明明说MOVC可以向代码区送数的啊

我以前用汇编做过其他的,不过没做过51,况且C也是通俗易懂,儒妇拮知的.
computer00 发表于 2008-11-4 12:25 | 显示全部楼层

51的代码区是只读的,无法写。

aceice 发表于 2008-11-4 12:50 | 显示全部楼层

定义为CODE后,读取变量的操作就是MOVC~

51的代码区是不可自写的
huangqi412 发表于 2008-11-4 13:42 | 显示全部楼层

晕 51的代码区当然是只读的...

除非另通过特殊积存器去间接操作
cym_anhui 发表于 2008-11-4 13:45 | 显示全部楼层

keil中怎么用C实现MOVC指令功能

code,+指针就可以了
 楼主| hyhjjg 发表于 2008-11-4 15:08 | 显示全部楼层

cym_anhui 朋友的意思是定义一个指针吗

定义一指针指向CODE区域的结构型变量吗?
computer00 发表于 2008-11-4 16:19 | 显示全部楼层

你去找找51的教材,看看它的基本指令,MOVC的就2条

一条是 MOVC A,@A+DPTR,另一条是 MOVC A,@A+PC,都是从程序区取数据的,根本就没有把数据传输到程序区的指令,实在是搞不清楚你如何能实现?
 楼主| hyhjjg 发表于 2008-11-4 16:32 | 显示全部楼层

TABLW和TABLR指令就是C2000的汇编存取代码区的

指令吗?难道我把数据放在CODE区域就不能在更改了吗?代码运行过程中如果要改变放在程序区的数据难道就不能了吗
yxdengos 发表于 2008-11-4 16:48 | 显示全部楼层

可以通过擦写Flash

 楼主| hyhjjg 发表于 2008-11-4 17:30 | 显示全部楼层

有这么复杂吗?

刚才仔细看看51的汇编指令说明,还真是没的辙了
5880527 发表于 2008-11-4 17:55 | 显示全部楼层

楼主还没把数据和指令区分开

 楼主| hyhjjg 发表于 2008-11-5 16:12 | 显示全部楼层

谢谢杨工,我已经找到了STC系列的

STC89C58怎么样?
xwj 发表于 2008-11-5 17:22 | 显示全部楼层
 楼主| hyhjjg 发表于 2008-11-5 17:58 | 显示全部楼层

回楼上

把数据表做好了不能只读啊
还要有修改功能啊;//
如果要做大量的可存取的矩阵表的话,用CODE 定义的在FLASH的数据速度如何?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

118

主题

438

帖子

0

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