STC15F2K61S2存储结构
摘要
STC15F2K61S2的存储结构由程序存储器和数据存储器构成。该单片机的程序存储器和数据存储器是独立编址的,特殊功能寄存器与高128B RAM共用相同的地址范围,都使用 80H~FFH,特殊功能寄存器必须用直接寻址指令访问。
程序存储器地址空间
程序存储器用于存放用户程序、数据和表格等信息。STC15F2K61S2有 61KB 的Flash程序存储空间,不能访问外部程序存储器。

单片机复位后,程序计数器(PC)的内容为0000H,从0000H单元开始执行程序。另外中断服务程序的入口地址(中断向量)也位于程序存储单元。在程序存储器中,每个中断都有一个固定的入口地址,当中断发生并得到响应后,单片机就会自动跳转到相应的中断入口去执行程序。由于相邻中断入口地址的间隔区间(8B)有限,一般情况下无法完整的保存中断服务程序,因此,一般在中断响应的地址区域存放一条无条件转移指令,指向真正存放中断服务程序的空间去执行。
数据存储器地址空间
数据存储器空间分为内部RAM和内部扩展RAM,也可外部扩展64KB数据存储器。特殊功能寄存器与高128B RAM共用相同的地址范围,实际使用不同的寻址方式加以区分。
STC15F2K61S2内部集成的总SRAM大小为:2K(256B <idata>+1792B <xdata>),内部扩展RAM空间 1792B。内部集成的RAM可用来存放程序执行的中间结果和过程数据。
内部RAM
内部RAM共256B,可分为三个部分:低128字节RAM(与传统8051兼容)、高128字节及特殊功能寄存器。低128字节的数据存储器既可以直接寻址也可以间接寻址。特殊功能寄存器与高128B RAM共用相同的地址范围,但是物理上是独立的。高128字节RAM只能间接寻址,特殊功能寄存器只可直接寻址。
地址范围:00H~FFH。

工作寄存器组区从00H~1FH共32B单元,分为4组(每一组称为一个寄存器组),每组包含8个8位的工作寄存器,编号R0~R7,但属于不同的物理空间。通过使用工作寄存器组,可以提高运算速度。R0~R7是常用的寄存器,为满足使用故而提供4组。PSW决定使用当前工作寄存器组。
可位寻址区的地址从20H~2FH共16个字节单元。可位寻址区即可按字节存取也可按位单独存取,共128位,对应地址00H~7FH,该地址指向的是位,而低128位的00H~7FH指向的是字节单元,在程序中使用不同的指令区分。
用户RAM和堆栈区在内部RAM的30H~FFH。一个8位的堆栈指针(SP),用于指向堆栈区,堆栈是向上生长的,数据压入堆栈之后,SP内容增大。单片机复位后,堆栈指针SP为07H,指向工作寄存器组0中的R7,因此用户初始化程序都应对SP设置初值一般在80H之后为宜。
内部扩展RAM
STC15F2K61S2内部扩展了 1792B RAM,地址范围0000H~06FFH。访问内部扩展RAM的方法和传统8051单片机访问外部扩展RAM相同,但是不影响P0口(数据总线和高八位地址总线)、P2口(低八位地址总线)、\({\overline{\text WR}}\) / P4.2、\({\overline{\text RD}}\) / P4.4和ALE/P4.5。
访问内部扩展RAM方式:
MOVX @DPTR or MOVX @Ri //汇编
[Type] xdata [arg] //C51
内部扩展RAM受辅助功能寄存器AUXR(8EH)中的EXTRAM位控制。

特殊功能寄存器
特殊功能寄存器是用来对片内各功能模块进行管理、控制、监视的控制寄存器和状态寄存器,是一个特殊功能的RAM区。

常用特殊功能寄存器
1.程序计数器(PC)
程序计数器PC在物理上是独立的,不属于SFR。PC字长16位,专门用来控制指令执行顺序的寄存器。单片机上电或复位后,PC=0000H。
2.累加器(ACC)
累加器常用于存放参加算数或逻辑运算的操作数及运算结果。
3.B寄存器
B寄存器在乘法和除法运算中需与累加器A配合使用。MUL AB指令把累加器A和寄存器B中的8位无符号数相乘,所得16位乘积的低字节存放在A中,高字节存放在B中。DIV AB指令用B除以A,整数商放在A中,余数存放在B中。寄存器B还可以用作通用暂存寄存器。
4.程序状态字(PSW)寄存器

AC——半进位标志:或称辅助进位标志。如果低4位向高4位进位或者借位,其置1
F0——用户标志位:软件可置0或1,可测定F0的状态决定程序的转移
RS1,RS0——工作寄存器选择位
OV——溢出标志位:算数运算影响该位
P——累加器A的奇偶标志位
5.堆栈指针(SP)寄存器
SP为8位专用寄存器。它指示出堆栈顶部在内部RAM块中的位置。系统复位后,SP初始化位07H,使得堆栈事实上由08H单元开始。用户自定义设置范围应在80H之后。堆栈向上生长。SP的内容可由硬件改变(中断)和软件设置。
6.数据指针(DPTR)寄存器
DPTR是16位专用寄存器,由DPL(低8位,地址82H)和DPH(高8位,地址83H)组成.DPTR是唯一可以直接进行16位操作的寄存器也可分别对DPL和DPH进行操作。主要作用:1.作间接寄存器,存放16位地址,访问64K的外RAM区;2.作基址寄存器,存放16位基址,加上变址后可访问ROM,用来读取常数、表格等。
7.并行I/O端口(P0、P1、P2、P3、P4)寄存器
对应端口引脚的输入/输出值。