打印

如何用C代码操作51的片外RAM啊

[复制链接]
2455|15
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
huangli211|  楼主 | 2008-9-20 17:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
xuyaqi| | 2008-9-20 17:07 | 只看该作者

XBYTE[0x8000]=0x55;

使用特权

评论回复
板凳
huangli211|  楼主 | 2008-9-20 17:11 | 只看该作者

在KEIL里吗

XBYTE[0x8000]=0x55在KEIL里怎么用啊

使用特权

评论回复
地板
hotyong| | 2008-9-20 17:31 | 只看该作者

re

就是这样用的呀,,再在后面加个分号就可以了
XBYTE[0x8000]=0x55;

只不过一般为了便于修改,使用宏定义
#define myExRam XBYTE[0x8000]

.
.
.

main()
{
..
.
myExRam=0x55;
..

}

使用特权

评论回复
5
huangli211|  楼主 | 2008-9-20 21:33 | 只看该作者

我刚刚用hotyong 给的方法性不同拉

宏定义的时候没问题
可在代码里不可以使用 
使用就报C202错误

使用特权

评论回复
6
hyhjjg| | 2008-9-20 21:51 | 只看该作者

那里地方不要先定义吗

使用特权

评论回复
7
nin124| | 2008-9-21 02:59 | 只看该作者

#include加了没有啊.

使用特权

评论回复
8
hotyong| | 2008-9-21 09:36 | 只看该作者

nin124说得对

要加  #include<absacc.h>
差点忘了!

使用特权

评论回复
9
huangli211|  楼主 | 2008-9-21 10:33 | 只看该作者

我把INCLUDE那句家上了

0

使用特权

评论回复
10
xuyaqi| | 2008-9-21 11:25 | 只看该作者

去掉“XBYTE[0x8000];”后面的分号“;”。

使用特权

评论回复
11
hyhjjg| | 2008-9-21 21:54 | 只看该作者

谢谢XUYAQI朋友

没有发现错误

使用特权

评论回复
12
hyhjjg| | 2008-9-21 22:05 | 只看该作者

我在KEIL里面看到有定义好的P口地址

如下
        1    P1=0xFA;
        2    P0=0X20;
        3    exram=0x30;
        4    P2=0x80;
        5    P3=0x81;
        6    P1=0XFF;
1,2,4,5,6在仿镇的时候都可以看到端口的变化,可是用4句代码无法显示出来
是什么原因那?

使用特权

评论回复
13
xuyaqi| | 2008-9-22 14:33 | 只看该作者

exram=0x30;要在外存看,看图。

使用特权

评论回复
14
huangli211|  楼主 | 2008-9-22 16:06 | 只看该作者

谢谢xuyaqi朋友

那么如果想把数据写到8004H地址的外设
宏定义应当为下面的数值把
#define myExRam XBYTE[0x8004]

使用特权

评论回复
15
hotyong| | 2008-9-22 16:40 | 只看该作者

是的

那么如果想把数据写到8004H地址的外设
宏定义应当为下面的数值
#define myExRam XBYTE[0x8004]

使用特权

评论回复
16
huangli211|  楼主 | 2008-9-22 20:24 | 只看该作者

谢谢hotyong

使用特权

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

本版积分规则

19

主题

86

帖子

0

粉丝