将我今晚的心得说下吧。
![](https://gsp0.baidu.com/5aAHeD3nKhI2p27j8IqW0jdnxx1xbK/tb/editor/images/jd/j_0047.gif)
P0 在字节地址80H单元 CLR P0.0 清的是80H单元的第一位80H^0。其他7位不变。
P0.0-P0.7 在位地址80H-87H(教材没错)。但注意两者80H是不一样的(我猜的)
原因借用如下教材:
RAM 20H-2FH中每一位都可单独寻址,其位地址为00H-7FH,这个和RAM中低128字节的地址外表看是一样的,但有本质区别(纯属同名巧合-编者加),两者的物理地址是不同的,通过不同的指令区分。//这段话每本书都有,大概意思如此。
把上述直接用到sfr中,就好理解了。那两个地址的含义也是不同的。
比如SFR P0=0x80;指向的是字节地址,比如可以称为 1号楼80H
SBIT P0.0=0x80;指向的是位 地址,比如可以称为 2号楼80H
同时呢,这个字节地址80H是特殊功能寄存器专区,和RAM高128字节也是重名的但物理地址也是不同的(RAM高128字节地址可以称为3号楼),区别是1.3号楼是大平米,每户可以住8位;2号楼是小单元,每户可以住1位。使用时用不同的指令来区别。
以上是我的个人意见,欢迎拍砖。
![](https://gsp0.baidu.com/5aAHeD3nKhI2p27j8IqW0jdnxx1xbK/tb/editor/images/jd/j_0043.gif)