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