找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2373|回复: 11
打印 上一主题 下一主题
收起左侧

单片机C语言位定义不太明白

[复制链接]
跳转到指定楼层
楼主
ID:352989 发表于 2023-3-9 17:21 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
sfr P0      = 0x80;
sfr SP      = 0x81;
sfr DPL     = 0x82;
sfr DPH     = 0x83;


sbit P0_0 = 0x80;
sbit P0_1 = 0x81;
sbit P0_2 = 0x82;
sbit P0_3 = 0x83;


这种定义,地址都重复了也可以,网上看了看解释,还是不明白。大家能帮忙解释下吗?


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:624769 发表于 2023-3-9 22:16 | 只看该作者
两种寻址方式, 一个字节寻址,一个是位寻址,  
位的  0x80   对应到 字节的 0x80 的 0 位
位的  0x81   对应到 字节的 0x80 的 1 位
位的  0x82   对应到 字节的 0x80 的 2 位

你可以把  
sbit P0_0 = 0x80;   理解成: sbit P0_0 = 0x80^0;
sbit P0_1 = 0x81;   理解成: sbit P0_1 = 0x80^1;
回复

使用道具 举报

板凳
ID:824490 发表于 2023-3-10 01:00 | 只看该作者
同样一个男人,在家里是老公,在厂旦是电工。
回复

使用道具 举报

地板
ID:883242 发表于 2023-3-10 06:07 | 只看该作者
哪怕把MCS51汇编稍微理解一些都不会问出这种问题。
回复

使用道具 举报

5#
ID:149799 发表于 2023-3-10 07:54 | 只看该作者
sfr P0   =0x80;   sfr  SP   =0x81; sfr  DPL   =0x82;  sfr  DPH   =0x83;这里定义的和下面的定义重复了,是不是说为了好分析程序才这样写的,比如SP/DPL/DPH,代表的是某个功能。有大佬帮忙详细的解释解释吗,谢谢。
回复

使用道具 举报

6#
ID:378108 发表于 2023-3-12 00:17 | 只看该作者
注意,一个是 sfr,一个是sbit,两套系统
回复

使用道具 举报

7#
ID:352989 发表于 2023-3-12 17:00 | 只看该作者
Hephaestus 发表于 2023-3-10 06:07
哪怕把MCS51汇编稍微理解一些都不会问出这种问题。

还请赐教!
回复

使用道具 举报

8#
ID:1048293 发表于 2023-3-12 17:15 | 只看该作者

大神请赐教!!! 跪谢!
回复

使用道具 举报

9#
ID:57657 发表于 2023-3-12 17:50 | 只看该作者
sfr为字节寄存器地址,范围:0x80~0xFF,其中有16个地址可以位寻址,不能被8整除的不能位寻址访问(STC32除外)。
sbit为位寄存器地址,16个可位寻址字节有128个位地址,范围:0x80~0xFF,用于寄存器的位寻址访问。
回复

使用道具 举报

10#
ID:883242 发表于 2023-3-12 17:56 | 只看该作者

你去看下51汇编。
回复

使用道具 举报

11#
ID:1034262 发表于 2023-3-13 10:46 | 只看该作者
寻址方式不同,地址可以重复。
回复

使用道具 举报

12#
ID:352989 发表于 2023-3-14 16:57 | 只看该作者
感谢大家的帮助,我还是好好学下汇编吧。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表