STC89C52系列单片机RAM说明1、工作寄存器区工作寄存器区位于片内数据存储器中的00H~1FH单元,共32字节,分成四组。每组8个字节,分别记为R0~R7。通过配置程序状态字(PSW)中的两个位(RS1,RS0)来决定你所操作的Rn是哪一个区的Rn。程序默认在工作寄存器A组存放中间运算数据。当进入中断程序时,中断数据工作寄存器组由组切换到其它区域。2、可位寻址区可位寻址区位于片内存储器中的20H~2FH区间。共计16个Byte,128个bit。每个字节的每个位都拥有单独的地址,即字节地址.位地址,如:SETB020H.1,就是令020字节的第2个位置位。3、数据缓冲区(又叫用户RAM区)该区位于片内寄存器的30H~7FH区间。共计80Byte。其实整个通用RAM区都拥有同样的寻址规则,因此理论上整个通用RAM区(00H~7FH)都可以算作用户RAM区,只不过,唉,尼玛怎么感觉这么墨迹呢???擦!无力吐槽!4、堆栈其实都不应该单独给丫分个名分,这部分用途根本就是打游击的,哪里有地儿,就往哪钻。不过基本上它只在80H~FFH这块活动,可以算是和数据缓冲区共用这片区域吧。5、SFR(特殊用途寄存器)它们是大爷,内部寄存器中的高128个Byte区域内,它们基本就是横行霸道的主。东一榔头西一棒子的,到处都是占坑不拉屎的节奏。6、内部RAM残余在片内RAM高字节区被SFR祸害之后剩下的地盘,也可以拿来用用。7、片外RAM如STC89C52,标称512Byte,那么片内用了256,剩下的256就是这儿了。说这部分是片外,其实挺冤的,撑死了算是计划外超生的孩子吧,这部分还是在单片机内部,但待遇有点不一样。首先寻址规则就变了,变成了16位寻址,地址码也成了int格式了。读写这片区域的内容,需要用MOVXRAM一级分组二级分组三级分组四极分组地址512Byte内部RAM通用RAM128Byte工作寄存器32ByteA组R0~R7RS1=0;RS0=0:00H~07HB组R0~R7RS1=0;RS0=1:08H~0FHC组R0~R7RS1=1;RS0=0:10H~18HD组R0~R7RS1=1;RS0=1:18H~1FH可位寻址区(16Byte)20H~2FH数据缓冲区(用户RAM区)30H~7FH(80Byte)堆栈区(随机分配)特殊用途寄存器SFR,离散分布在高128Byte中80H~FFH(128Byte)剩下的零碎RAM标称RAM容量中剩下的RAM就是片外RAM区访问地址:0000H~FFFFH