历史上的今天
今天是:2026年03月24日(星期二)
2023年03月24日 | MCS-51单片机存储地址空间划分
2023-03-24 来源:zhihu
1.前言
MCS-51的存储器有片内RAM、片外RAM 和 ROM 三个空间。
MCS-51单片机在物理结构上有四个存储空间
1、片内程序存储器(片内ROM)
2、片外程序存储器(片外ROM)
3、片内数据存储器(片内RAM)
4、片外数据存储器(片外RAM)
在逻辑上(即从用户的角度上)MCS-51单片机有三个存储空间
1、片内外统一编址的64K的程序存储器(ROM)地址空间(MOVC)
2、256B的片内数据存储器(片内RAM)的地址空间(MOV)
3、以及64K片外数据存储器(片外RAM)的地址空间(MOVX)
注:在访问三个不同的逻辑空间时,应采用不同形式的指令以产生不同的存储器空间的选通信号。
2.存储空间划分
2.1 片内RAM

图 片内AM地址空间划分
地址范围是00H到7FH (52系列延伸到FFH),为8位地址,所以最大可寻址的范围为256个单元地址
00H到1FH
共32字节,分成四个工作寄存器区,每区有寄存器 R0~R7。
对此区域,可以使用 R0~R7 来操作,代码短捷,但是,只有一个当前工作区是可以这样读写的。
对此区域,也可以使用字节地址,来读写。
20H-2FH
共16字节,是位寻址区,共有128个“位”,位地址:00~7FH。
此区域,也可按照字节寻址,来读写。
30H-7FH
没有什么特色,只进行字节寻址。
80H-FFH
共有128个地址号码,其中离散的分布着21个特殊功能寄存器,必须直接寻址才能读写。
(52系列,在此范围,还有128字节的 RAM,必须间接寻址才能读写)。
注:对上述空间读写,必须使用 MOV 指令。
2.2 片外RAM
片外RAM的地址范围是0000H到FFFFH,容量即为64KB。对片外RAM读写,必须使用 MOVX 指令。
对片外RAM采用间接寻址方式,R0、R1和DPTR都可以做为间接寻址寄存器,R0、R1是8位的寄存器,即R0、R1的寻址范围最大为256个单元,而DPTR是16位地址指针,寻址范围就可达到64KB。
也就是说在寻址片外RAM时,寻址范围超过了256B,就不能用R0、R1做为间接寻址寄存器,而必须用DPTR寄存器做为间接寻址寄存器。
2.3 ROM
ROM的地址范围是0000H到FFFFH,容量即为64KB,地址长度16位,作用是 存放程序及程序运行时所需的常数。
其中0000~0FFFH,即4K,在片内,其它在片外。
EA = 1,寻址内部ROM;EA = 0,寻址外部ROM
对ROM读出,必须使用 MOVC 指令。
史海拾趣
|
有谁在Windows mobile平台上开发过双camera驱动, 我们将用PXA310处理器, 如何开发,应该注意哪些? 经常出现的问题有哪些? 谢谢了。 请问大侠: 有谁在Windows mobile平台上开发过双camera驱动, 我们将用PXA310处理器, 如何开发,应该注意哪些? 经常出现的问题有哪些? 谢谢了。… 查看全部问答> |
|
大家好,我第一次着手自己制作电路板,调试的时候单片机烧掉了,我一直找不出原因,希望大家能知道我一下,谢谢哦~,这是我的电路图,我调试过了电源部分是正常的,单片机部分用亮灯程序调试也是可以正常亮灭,但是当我调试继电器的时候,因为继电 ...… 查看全部问答> |
|
请教:生成SPWM波时,那一串数组代码是怎么来的?看了好些个SPWM程序,发现都有一串数组代码,知道它是形成波形的代码,但不知怎么来的?怎么计算出来的,请各位大神帮帮忙… 查看全部问答> |
|
SensorTag的蓝牙4.0是单模的还是双模的,也就是BLE4.0向下兼容不?我试过用蓝牙3.0搜索蓝牙设备,能够搜索到SensorTag的蓝牙,这是不是意味BLE4.0可以与蓝牙3.0通信并互传数据。(当然暂且不考虑低功耗问题)… 查看全部问答> |




