打印

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

[复制链接]
14010|48
手机看帖
扫描二维码
随时随地手机跟帖
沙发
hyhjjg|  楼主 | 2008-11-4 11:55 | 只看该作者

自己看了说明书

可是没有着方面的内容,大家怎么解决的了?教教俺

使用特权

评论回复
板凳
HWM| | 2008-11-4 11:57 | 只看该作者

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

使用特权

评论回复
地板
hyhjjg|  楼主 | 2008-11-4 12:05 | 只看该作者

HWM朋友说的我用过

可是编译器老是报错,大体意思是用CODE定义的结构型变量是不可以更改的,只读的

使用特权

评论回复
5
hyhjjg|  楼主 | 2008-11-4 12:10 | 只看该作者

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

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

使用特权

评论回复
6
HWM| | 2008-11-4 12:10 | 只看该作者

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

使用特权

评论回复
7
HYHJJG| | 2008-11-4 12:18 | 只看该作者

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

我以前用汇编做过其他的,不过没做过51,况且C也是通俗易懂,儒妇拮知的.

使用特权

评论回复
8
computer00| | 2008-11-4 12:25 | 只看该作者

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

使用特权

评论回复
9
aceice| | 2008-11-4 12:50 | 只看该作者

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

51的代码区是不可自写的

使用特权

评论回复
10
huangqi412| | 2008-11-4 13:42 | 只看该作者

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

除非另通过特殊积存器去间接操作

使用特权

评论回复
11
cym_anhui| | 2008-11-4 13:45 | 只看该作者

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

code,+指针就可以了

使用特权

评论回复
12
hyhjjg|  楼主 | 2008-11-4 15:08 | 只看该作者

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

定义一指针指向CODE区域的结构型变量吗?

使用特权

评论回复
13
computer00| | 2008-11-4 16:19 | 只看该作者

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

一条是 MOVC A,@A+DPTR,另一条是 MOVC A,@A+PC,都是从程序区取数据的,根本就没有把数据传输到程序区的指令,实在是搞不清楚你如何能实现?

使用特权

评论回复
14
hyhjjg|  楼主 | 2008-11-4 16:32 | 只看该作者

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

指令吗?难道我把数据放在CODE区域就不能在更改了吗?代码运行过程中如果要改变放在程序区的数据难道就不能了吗

使用特权

评论回复
15
yxdengos| | 2008-11-4 16:48 | 只看该作者

可以通过擦写Flash

使用特权

评论回复
16
hyhjjg|  楼主 | 2008-11-4 17:30 | 只看该作者

有这么复杂吗?

刚才仔细看看51的汇编指令说明,还真是没的辙了

使用特权

评论回复
17
5880527| | 2008-11-4 17:55 | 只看该作者

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

使用特权

评论回复
18
hyhjjg|  楼主 | 2008-11-5 16:12 | 只看该作者

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

STC89C58怎么样?

使用特权

评论回复
19
xwj| | 2008-11-5 17:22 | 只看该作者

唉....

使用特权

评论回复
20
hyhjjg|  楼主 | 2008-11-5 17:58 | 只看该作者

回楼上

把数据表做好了不能只读啊
还要有修改功能啊;//
如果要做大量的可存取的矩阵表的话,用CODE 定义的在FLASH的数据速度如何?

使用特权

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

本版积分规则

118

主题

438

帖子

0

粉丝