请教C51访问外部RAM的问题

[复制链接]
5084|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就可以了。
电子乌托邦 发表于 2010-2-11 13:50 | 显示全部楼层
 楼主| luweiqing 发表于 2010-2-11 14:09 | 显示全部楼层
SPC3是PROFIBUS通讯控制芯片,试了一下,好像是写入的数据跟读出的数据不一致,我也用汇编MOVX试了一下,好像结果是一样的。我用的仿真器是WAVE的,现在不清楚是硬件的问题还是软件的问题,只想确认一下这样写是否可以访问外部RAM地址?
ejack 发表于 2010-2-11 16:02 | 显示全部楼层
正常使用时,这样的写法当然可以访问外部RAM。

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

评分

参与人数 1威望 +1 收起 理由
luweiqing + 1

查看全部评分

sky_2830 发表于 2013-1-6 15:20 | 显示全部楼层
应该可以访问外部RAM。。。
ayb_ice 发表于 2013-1-8 15:41 | 显示全部楼层
#include <absacc.h>

#define SPC3 XBYTE[0x0001]

if(SPC3 == 0xxx){
....
}
SPC3 = 5;
您需要登录后才可以回帖 登录 | 注册

本版积分规则

7

主题

19

帖子

0

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