MCS-51 单片机的存储器地址空间如何划分?各地址空间的地址范围和容量如何

如题所述

MCS-51 单片机的存储器地址空间,讲起来,要用几页。
简单介绍如下:
MCS-51的存储器有片内RAM、片外RAM 和 ROM 三个空间。
片内RAM:
地址范围是00H到7FH (52系列延伸到FFH)。
其中00H到1FH,共32字节,分成四个工作寄存器区,每区有寄存器 R0~R7。
对此区域,可以使用 R0~R7 来操作,但是,当前只有一个区是可以这样读写的。
对此区域,也可以使用字节地址,来读写。
20H-2FH,共16字节,是位寻址区,共有128个“位”,位地址:00~7FH。
此区域,也可按照字节寻址,来读写。
30H-7FH,没有什么特色,只进行字节寻址。
80H-FFH,共有128个地址号码,其中离散的分布着21个特殊功能寄存器,必须直接寻址才能读写。
(52系列,在此范围,还有128字节的 RAM,必须间接寻址才能读写)。
对上述空间读写,需用MOV指令。
----
片外RAM:
片外RAM的地址范围是0000H到FFFFH,容量即为64KB。
对片外RAM读写,需用MOVX指令。
----
ROM:
ROM的地址范围是0000H到FFFFH,容量即为64KB。
其中0000~0FFFH,即4K,在片内,其它在片外。
(对于8031,这64K的ROM,都在片外。)
对ROM读出,需用MOVC指令。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-03-13
MCS-51的存储器分RAM(数据存储器)和ROM(程序存储器),RAM和ROM是独立编址的。片内RAM与片内的寄存器是统一编址的,均用MOV 指令进行访问。片内RAM的地址范围是00H到7FH,其中00H到1FH为四组工作寄存器区,每组有八个八位寄存器。20H-2FH可作位寻址,也可当普通寄存器用。30H-7FH为用户数据区,一般只进行字节寻址。80H-FFH为特殊功能寄存器区,特殊功能寄存器就分布在这个地址空间内。如果是片外RAM,则用MOVX指令访问,片外RAM的编址范围是0000H到FFFFH,片外最大可扩展64KB的RAM。好了,RAM基本说完了,再来说ROM,片内ROM与片外ROM是统一编址的,二都都用MOVC指令访问(只能读不能写),编址范围是0000H到FFFFH,片内ROM的编址范围取决于片内ROM的空间大小,这个大小可以从单片机的型号上看出,我想这个你应该知道,如果型号是C5*,那它的内部ROM大小就是*乘4KB;片外ROM的编址在片内之后,二者是连续的,片内片外的ROM总大小不能超出64KB。
你可能也发现了,片外RAM、片内RAM、和ROM区的编址是有重叠的(比如都有00H-FFH这个编址范围),为什么没发生寻址混乱呢?就是因为访问他们用的指令不同。
基本就这些了,希望能帮到你。有什么不懂的再问我,我Q:826051706
一起学习
第2个回答  2011-03-15
分 ROM 和 RAM
ROM 可以寻址 64KB(片内片外均可,通过控制管脚选择)
RAM 外部可寻址 64KB
RAM 内部 128或256字节
RAM 片内 片外 寻址方式(即调用时指令)不同 分别编制。
第3个回答  2011-03-13
我博客上有篇仿真器的文章,您可以去看看,讲得比较清楚
相似回答