STC单片机内部RAM介绍
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
STC单片机内部RAM介绍
STC内部RAM介绍
一、内部RAM
1.内部RAM共256字节,可分为三个区域:低128字节(与传统8051兼容)、高128字节RAM(Intel在8052中扩展了高128字节RAM)。
2.低128字节RAM既可以直接寻址也可以间接寻址。
低128字节RAM也称通用
RAM区。
通用RAM区又可以分为工作寄存器组区,可位寻址区,用户RAM区和堆
栈区。
工作寄存器组区地址从00H-1FH共32BYTE(字节)单元,分为4组(每一组称为一个工作寄存器组),每组包括8个8位的寄存器,编号均为R0-R7,但
属于不同的物理空间。
通过使用工作寄存器组,可以提高运算速度。
R0-R7是
RAM低128字节地址也是00H-7FH。
从表面看,二者地址是一样的,实际上二者具常用的寄存器,提供4组是因为1组往往不够用。
可位寻址区的地址从20H-7FH
共16个字节单元。
20H-7FH单元既可以像普通RAM区按字节存取,也可以对单元中的任何一个位单独存取,共128个位,所对应的地址范围是:00H-7FH。
内部有本质的区别:位地址指向的是一个位,而字节地址指向的是一个字节单元,在程序中使用不同的指令进行区分。
内部RAM中的30H-FFH是用户RAM和堆栈区一个8位的堆栈指针(SP),用于指向堆栈区。
单片机复位后堆栈指针SP=07H,指向了工作寄存器组0中的R7。
因此,用户初始化程序都应对堆栈设置初值,一般在80H以后的单元为宜。
3.高128字节RAM与特殊功能寄存器区貌似共用相同的地址范围,都使用
80H-FFH,地址空间貌似重叠,但物理上是独立的,使用
时通过不同的寻址
方式加以区分。
高128字节只能间接寻址,特殊功能寄存器区只能直接寻址。
二、内部扩展RAM(物理上是内部,逻辑上是外部,用MOVX访问)
STC某些型号的单片机内除了集成256字节的内部RAM外,还集成了1024
字节的扩展RAM,地址是0000H-3FFFH。
访问内部扩展RAM的方法和传统8051
访问外部扩展RAM的方法相同,但不影响P0、P2、P3.6、P3.7和ALE。
在汇编语言中,内部扩展RAM通过MOVX访问,即使用“MOVX@DPTR”或者
“MOVX@Ri”指令访问。
在C语言中使用XDATA声明即可,如“
unsignedcharxdatai=0”。
----------------------由‘崔家寨大当家’整理。