51单片机 位地址 单元地址 字节地址

2019-07-15 23:10发布

大家好,51单片机 位地址 单元地址 字节地址?我对着三个概念比较模糊,有懂的朋友请讲,越详细越好。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
5条回答
dongyumin
2019-07-16 03:35
本帖最后由 dongyumin 于 2013-8-9 12:38 编辑
我截断51地址映射文件给你看。
如下:
/*  BYTE Registers  */
sfr P0    = 0x80;
sfr P1    = 0x90;
sfr P2    = 0xA0;
sfr P3    = 0xB0;

sfr PSW   = 0xD0;

sfr类型:C51编译器扩展的一个类型,用于定义特殊功能寄存器。这是对寄存器8位字节操作的定义。在用户代码中,P0就代表了0x80这么一个地址。

/*  BIT Registers  */
/*  PSW  */
sbit CY    = PSW^7;
sbit AC    = PSW^6;
sbit F0    = PSW^5;
sbit RS1   = PSW^4;

sbit同上,是扩展类型。定义某一位。用于用户位带操作。这样在用户代码中,CY就代表PSW中第7位。当然这个PSW字符已经在前面被定义成sfr(特殊功能寄存器)类型了,实质是一个指向0XD0这个字节。如果对位操作,必须满足改寄存器允许位操作,有些是不能对位操作的。比如:SBUF。

你可以理解成,位操作就是对某个字节的某位操作,如果允许位操作,应该是可以字节操作的。
比如:以上例说明,位类型 CY=1;  可以写成 PSW|=1<<7;。顺便说下,只是举例说明,PSW是状态寄存器不做写操作,道理是一样的。
以上仅个人观点,仅供参考。

一周热门 更多>