打印
[51单片机]

C51如何根据一个立即数访问相应地址的SFR?????

[复制链接]
1644|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
ss掷弹专业|  楼主 | 2015-11-3 15:34 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
ayb_ice| | 2015-11-3 16:01 | 只看该作者
只能是
if(sfr_addr == 0xf9){
   return P0M;
}

使用特权

评论回复
评分
参与人数 1威望 +1 收起 理由
ss掷弹专业 + 1 多谢!
板凳
xuyaqi| | 2015-11-3 16:08 | 只看该作者
先定义 sfr PCA0L         = 0xF9;
然后  x = PCA0L

使用特权

评论回复
地板
znmcu| | 2015-11-4 16:42 | 只看该作者
C51无法将SFR作为参数

使用特权

评论回复
5
mcu5i51| | 2015-11-9 08:58 | 只看该作者
SFR只能是直接寻址,如果一定用变量的话,可以用一个多选命令,把用到的地址处理一下,这样一般都要牺牲时间和空间

使用特权

评论回复
6
123654789| | 2015-11-9 11:39 | 只看该作者
*(unsigned char *)0xf9=0xaa;  ///  往0xf9地址写入数据0xaa

temp=*(unsigned char *)0xf9;  ///  从0xf9地址读入数据

使用特权

评论回复
7
ayb_ice| | 2015-11-9 11:46 | 只看该作者
123654789 发表于 2015-11-9 11:39
*(unsigned char *)0xf9=0xaa;  ///  往0xf9地址写入数据0xaa

temp=*(unsigned char *)0xf9;  ///  从0xf9 ...

这是写RAM,不是写SFR

使用特权

评论回复
8
123654789| | 2015-11-9 12:13 | 只看该作者
ayb_ice 发表于 2015-11-9 11:46
这是写RAM,不是写SFR

RAM和SFR 统一编址
写RAM等于写SFR

使用特权

评论回复
评论
wh6ic 2015-11-9 12:19 回复TA
只能老老实实建128的表,它们在51里不统一 
9
ayb_ice| | 2015-11-9 13:30 | 只看该作者
123654789 发表于 2015-11-9 12:13
RAM和SFR 统一编址
写RAM等于写SFR

只能说你不懂51了

使用特权

评论回复
10
123654789| | 2015-11-10 08:54 | 只看该作者
我的答案错误了

使用特权

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

本版积分规则

12

主题

28

帖子

1

粉丝