求助!!!单片机内部RAM是如何划分的?

最好能详细些,会加分的

AT89s52片内用户使用RAM为256字节,地址范围00~ffh。
低128字节RAM根据存储器用途,分为三部分。
00h~1fh为通用工作寄存器区
20h~2fh为位寻址区
30h~7fh为用户RAM区

通用工作寄存器
80c51工作寄存器共分为4组,每组由8个工作寄存器R0~R7组成,共占用32个单元。每组寄存器均可选作CPU当前的工作寄存器组,且可通过对程序状态字PSW中RS1 RS0设置来决定CPU当前使用那一组。
如果程序不需要四组,那么其余的可用作一般数据寄存器。
位寻址区
工作寄存器区后16字节,他们可用作软件标志位或用于1位的处理。
用户RAm区
可通过直接或间接寻址方式对其访问。不使用的通用寄存器或位寻址区域就可以作为一般RAM使用。

好运
温馨提示:答案为网友推荐,仅供参考
第1个回答  2009-03-18
00H~1FH为通用工作寄存器区
就是R0到R7,编程时多数忽略不计

20h~2fh为位寻址区 (汇编时非常宝贵)
多用作标志位
可以用SETB\CLR\JNB直接操作
例 FLAG EQU 20H.1
SETB FLAG
CLR FLAG
JB 20H.1,FLAG1

30h~7fh为用户RAM区 (汇编时非常珍贵,C语言自动分配)
多用作数据存储,但断电后数据会丢失
可以用MOV指令直接赋值
例 将数字#22H存入RAM的34H单元
MOV A,#22H
MOV 34H,A本回答被提问者采纳
第2个回答  2009-03-12
AT89C52
片内地址低128字节地址:
00h~1fh 寄存器地址 R1~R7 共4组 RS1 RS0设置
20h~2fh 为位存储区 位地址为00H~7FH
30h~7fh 字节地址 直接寻址 间接寻址均可
片内地址高128字节地址:
80H~0FFH 只能间址使用:
例:MOV R0,#80H
MOV @R0,#00H
另:
F0H=B
E0H=A
D0H=PSW
B8H=IP
B0H=P3口
A8H=IE
A0H=P2口
98H=SCON
90H=P1口
88H=TCON
80H=P0口
以上高128地址,直接使用为特殊寄存器,间址为字节地址
一般书上都有详细介绍~
第3个回答  2009-03-12
00H~1FH为通用工作寄存器区
就是R0到R7,编程时多数忽略不计

20h~2fh为位寻址区 (汇编时非常宝贵)
多用作标志位
可以用SETB\CLR\JNB直接操作
例 FLAG EQU 20H.1
SETB FLAG
CLR FLAG
JB 20H.1,FLAG1

30h~7fh为用户RAM区 (汇编时非常珍贵,C语言自动分配)
多用作数据存储,但断电后数据会丢失
可以用MOV指令直接赋值
例 将数字#22H存入RAM的34H单元
MOV A,#22H
MOV 34H,A
相似回答