STC12C5A60S2单片机的程序存储器和数据存储器各自独立编址,程序存储器都是片上flash
,不可以访问外部存储器。
内部有1280字节的数据存储器,分为两个地址空间:内部RAM256字节+内部扩展RAM1024字节,可访问片外扩展的64KB外部数据存储器
一、程序存储器
内部集成8k~62k字节的flash程序存储器,
二、数据存储器SRAM
1、内部RAM(256字节)
低128字节RAM+高128字节RAM+特殊功能寄存器区
1)低128字节RAM
可直接寻址+间接寻址
通用RAM区,包括工作寄存器组区+可位寻址区(20H~2FH)+用户RAM区+堆栈区
a.工作寄存器组区(00H~1FH共32B字节)
分为4个寄存器组,每组8个8位工作寄存器,8组编号均为R0~R7,通过PSW程序状态字寄存器中的RS1/RS0决定
b.可位寻址区(20H~2FH共16个字节128位)
可按字节存取,可按位存取
128位对应地址范围00H~7FH
c.用户RAM和堆栈区(30H~FFH)
一个8位的堆栈指针SP(8位专用寄存器)用于指向堆栈区,单片机复位后SP为07H,指向了工作寄存器组0中的R7
用户初始化程序都应对SP设置初值,一般设置在80H以后
堆栈向上生长,即数据压入堆栈后,SP内容增大
2)高128字节RAM+特殊功能寄存器区
共用地址(80H~FFH),但物理上独立,可通过不同寻址方式加以区分
高128字节RAM只能间接寻址,特殊功能寄存器区只能直接寻址
2、内部扩展RAM(1024字节)
单片机上集成了1024字节的内部扩展RAM,0000H~03FFH
C语言编程时用xdata声明存储类型,如“unsigned char xdata i=0;”
单片机内部扩展RAM是否可访问受AUXR寄存器中的EXTRAM位控制
3、外部扩展的64KB片外RAM
控制外部64KB数据总线速度的特殊功能寄存器:BUS_SPEED
三、特殊功能寄存器SFRs
具体见手册,只写常用的
1、累加器ACC
存放参与算数/逻辑运算的操作数及结果
2、程序状态字寄存器PSW
3、堆栈指针SP
具体见上述
4、数据指针DPTR
16位专用寄存器,DPL(低8位,地址82H)+DPH(高8位,地址83H),
单片机有2个16位的数据指针DPTR0和DPTR1,俩指针共用一个地址空间,可通过设置DPS/AUXR1.0来选择被使用的数据指针