标题:
单片机C语言位定义不太明白
[打印本页]
作者:
duanlian
时间:
2023-3-9 17:21
标题:
单片机C语言位定义不太明白
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;
这种定义,地址都重复了也可以,网上看了看解释,还是不明白。大家能帮忙解释下吗?
作者:
188610329
时间:
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;
作者:
名字不是重点
时间:
2023-3-10 01:00
同样一个男人,在家里是老公,在厂旦是电工。
作者:
Hephaestus
时间:
2023-3-10 06:07
哪怕把MCS51汇编稍微理解一些都不会问出这种问题。
作者:
王秋冬
时间:
2023-3-10 07:54
sfr P0 =0x80; sfr SP =0x81; sfr DPL =0x82; sfr DPH =0x83;这里定义的和下面的定义重复了,是不是说为了好分析程序才这样写的,比如SP/DPL/DPH,代表的是某个功能。有大佬帮忙详细的解释解释吗,谢谢。
作者:
zhxzhx
时间:
2023-3-12 00:17
注意,一个是 sfr,一个是sbit,两套系统
作者:
duanlian
时间:
2023-3-12 17:00
Hephaestus 发表于 2023-3-10 06:07
哪怕把MCS51汇编稍微理解一些都不会问出这种问题。
还请赐教!
作者:
mino223
时间:
2023-3-12 17:15
duanlian 发表于 2023-3-12 17:00
还请赐教!
大神请赐教!!! 跪谢!
作者:
npn
时间:
2023-3-12 17:50
sfr为字节寄存器地址,范围:0x80~0xFF,其中有16个地址可以位寻址,不能被8整除的不能位寻址访问(STC32除外)。
sbit为位寄存器地址,16个可位寻址字节有128个位地址,范围:0x80~0xFF,用于寄存器的位寻址访问。
作者:
Hephaestus
时间:
2023-3-12 17:56
duanlian 发表于 2023-3-12 17:00
还请赐教!
你去看下51汇编。
作者:
coody_sz
时间:
2023-3-13 10:46
寻址方式不同,地址可以重复。
作者:
duanlian
时间:
2023-3-14 16:57
感谢大家的帮助,我还是好好学下汇编吧。
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1