数据存储器用于存放运算中间结果、标志位等。51单片机数据存储器由RAM构成,一旦掉电数据将丢失。
数据存储器在物理上和逻辑上都占有两个地址空间:一个是片内256B的RAM,另一个是片外最大可扩充到64KB的RAM,片内RAM的配置如图2.8所示:
图2.8 片内RAM的配置
由图可知,片内RAM分为高128B、低128B两大部分。其中低128B为普通RAM,空间地址为00H-7FH;高128B为特殊功能寄存器区,空间地址为80H-FFH,但其中仅有21个字节被定义。
1.低128B RAM区
在低128B RAM区中,地址00H-1FH共32个存储单元作为工作寄存器使用。这32个单元又被分为4组,每组8个单元,按序命名为工作寄存器R0~R7。
虽然51单片机有4个工作寄存器组,但由于任一时刻CPU只能选用其中一组作为当前工作寄存器组,因此不会发生冲突,未选中的其它三组寄存器可作为一般数据存储器使用。当前工作寄存器组可通过程序状态字寄存器PSW中的RS1和RS0位进行设置。
复位后默认第0组为当前工作寄存器组。表2.3为工作寄存器的地址分配表。
表2.3 工作寄存器的地址分配表
在低128B RAM区中,地址为20H-2FH的16个字节单元,既可以像普通RAM单元按字节地址进行存取,又可以按位进行存取,这16个字节共有128(16*8)位,每位都分配了一个位地址,编址为00H-7FH,如表2.4所示:
表2.4 80C51单片机位地址表
(www.xing528.com)
在低128B RAM区中,地址为30H-7FH的80个字节单元为用户RAM区,这个区只能按字节存取,用户可在此区域设置堆栈和存储中间数据。
2.高128B RAM区
在80H-FFH的高128B RAM区中,离散的分布了21个特殊功能寄存器,所以又称为特殊功能寄存器区。虽然占据了128个单元地址,但系统只定义了其中的部分单元,如累加器ACC、程序状态字PSW等,对未定义的单元进行读/写操作时无意义。
21个特殊功能寄存器的名称、符号与地址分布见表2.5所示,其中字节地址末位为0或8的特殊功能寄存器还具有位地址。
表2.5 SFR的名称及其分布
续表
表2.5中的A、PSW等几个特殊功能寄存器在本节的前面已进行了介绍,其余寄存器的功能将在后续的章节中结合应用再做介绍。
对于增强型52子系列单片机,在51子系列配置的基础上还新增了一个与特殊功能寄存器地址重叠的内部数据存储器空间,地址也为80H-FFH,配置如图2.9所示:
图2.9 52系列单片机片内RAM的配置
对这一部分数据存储器的访问必须采用寄存器间接寻址方式,旨在与特殊功能寄存器SFR的访问相区别,具体内容将在本书3.2节中进行介绍。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。