打印
[应用方案]

51单片机存储地址空间划分

[复制链接]
1046|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
wilhelmina2|  楼主 | 2023-9-18 13:21 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
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 指令。

使用特权

评论回复
沙发
tpgf| | 2023-10-13 08:28 | 只看该作者
哪些区域是用户不能访问的呢

使用特权

评论回复
板凳
木木guainv| | 2023-10-13 09:19 | 只看该作者
最早的8031单片机,只有数据存储器即内部RAM是标配的,其他都需要外扩,而到来的8051兼容机中,内部的数据存储器(RAM)和内部的程序存储器(ROM)都成了标配。只不过更加不同型号,RAM和ROM的大小有些许区别。

使用特权

评论回复
地板
晓伍| | 2023-10-13 09:41 | 只看该作者
ROM的地址范围是0000H到FFFFH,容量即为64KB,地址长度16位,作用是存放程序及程序运行时所需的常数。

使用特权

评论回复
5
观海| | 2023-10-13 22:40 | 只看该作者
片外扩展的rom的大小受到哪些因素的影响呢

使用特权

评论回复
6
八层楼| | 2023-10-13 23:13 | 只看该作者
如果要扩展片外ROM,则其地址范围最大为(0x1000~0xffff)

使用特权

评论回复
7
磨砂| | 2023-10-13 23:45 | 只看该作者
普通51单片机最大可以片外扩展64K字节空间的RAM,其地址范围为0000H~FFFFFH

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

23

主题

1265

帖子

1

粉丝