微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 51单片机 位地址 单元地址 字节地址

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

时间:10-02 整理:3721RD 点击:
大家好,51单片机 位地址 单元地址 字节地址?我对着三个概念比较模糊,有懂的朋友请讲,越详细越好。

我截断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是状态寄存器不做写操作,道理是一样的。
以上仅个人观点,仅供参考。

谢谢,很详细

嗯确实详细           赞

看下内部数据存储器的地址分布,就了解了:)

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top