打印

请教C51访问外部RAM的问题

[复制链接]
3897|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
luweiqing|  楼主 | 2010-2-11 09:04 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
C51因为要访问SPC3,需要总线支持,问一下我这写法是否可行,谢谢。
void main(void)
{
   uchar  xdata *dt;
   uchar x;

   dt=0x0001;    //指向外部总线地址0x0001地址
   *dt=0x02;      //对外部RAM地址0X0001写入0X02

   x=*dt;          //将外部RAM地址0X0001读入到X变量中



}

相关帖子

沙发
原野之狼| | 2010-2-11 09:39 | 只看该作者
呵呵 都写出来了 你测试一下不就知道了么

使用特权

评论回复
板凳
ejack| | 2010-2-11 12:13 | 只看该作者
弱弱地请教一下:SPC3是什么设备啊?

使用特权

评论回复
地板
chunyang| | 2010-2-11 13:48 | 只看该作者
定义XDATA就可以了。

使用特权

评论回复
5
电子乌托邦| | 2010-2-11 13:50 | 只看该作者
mark!

使用特权

评论回复
6
luweiqing|  楼主 | 2010-2-11 14:09 | 只看该作者
SPC3是PROFIBUS通讯控制芯片,试了一下,好像是写入的数据跟读出的数据不一致,我也用汇编MOVX试了一下,好像结果是一样的。我用的仿真器是WAVE的,现在不清楚是硬件的问题还是软件的问题,只想确认一下这样写是否可以访问外部RAM地址?

使用特权

评论回复
7
ejack| | 2010-2-11 16:02 | 只看该作者
正常使用时,这样的写法当然可以访问外部RAM。

写入读出不一致可能跟寄存器有关?或跟仿真有关?

使用特权

评论回复
评分
参与人数 1威望 +1 收起 理由
luweiqing + 1
8
sky_2830| | 2013-1-6 15:20 | 只看该作者
应该可以访问外部RAM。。。

使用特权

评论回复
9
ayb_ice| | 2013-1-8 15:41 | 只看该作者
#include <absacc.h>

#define SPC3 XBYTE[0x0001]

if(SPC3 == 0xxx){
....
}
SPC3 = 5;

使用特权

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

本版积分规则

7

主题

19

帖子

0

粉丝