7.1.2 片内RAM的存储器结构

多数单片机均提供片内RAM,片内RAM是指单片机的片内数据存储区。C51程序中的变量一般保存在片内RAM中,因为该存储区的取址速度较快,便于及时调用数据。51系列单片机的片内数据存储区(片内RAM)可以划分为如下所示的两大区域。

❑片内低128字节RAM区:地址范围为00H~7FH。该区域主要采用直接字节地址寻址方式,用来存储数据,也可存放堆栈和寄存器。

❑特殊功能寄存器区(SFR):地址范围为80H~0FFH。该区域可位寻址、字节寻址或字寻址,用以控制定时器、计数器、串口、I/O以及其他一些硬件资源。

其中,地址范围为00H~07FH的低128字节片内RAM区,又可进一步划分为如下所示的3个区域。

❑通用寄存器区。地址范围为00H~1FH,共有如下所示的4个寄存器组构成。

❑第0组寄存器:地址范围为00H~07H。

❑第1组寄存器:地址范围为08H~0FH。

❑第2组寄存器:地址范围为10H~17H。

❑第3组寄存器:地址范围为18H~1FH。

每个寄存器组都分别含有8个通用寄存器:R0、R1、R2、R3、R4、R5、R6、R7,即R0~R7。通用寄存器区总共有32个通用寄存器。每个通用寄存器既可以采用寄存器名寻址方式,也可以直接采用字节地址寻址方式,地址范围为00H~1FH。

❑可位寻址区。地址范围为20H~2FH,共16个字节单元,这些单元既可以采用按字节寻址方式,也可以采用按位寻址方式,共128位。

❑用户RAM区。地址范围为30H~7FH。这个区域只能采用字节地址寻址方式,可以在该区设置堆栈。

说明变量除了可以存放在片内数据存储区中外,也可以存放在片外数据存储区,由于这两种存储区的结构不同,变量的存储与寻址等都不尽相同。