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 指令。
上一篇:51单片机 HC05蓝牙模块学习
下一篇:51单片机 | 实现SMC1602液晶屏显示实例
推荐阅读最新更新时间:2024-11-16 23:45
推荐帖子
- RTC不准!!!
- 使用万利的开发板,外部晶振,一天下来快了12秒,这个算正常吗?RTC不准!!!非常正常。你最好用一个独立的计数器,直接测量一下晶振的震荡频率,你就会发现这个现象是非常正常的。算了一下误差在138.9ppm,一般晶振误差应该在20ppm以内吧。你能确定你的晶振能达到这个精度吗?另一方面讲,精度和准确度不是一个概念,所以我说“你最好用一个独立的计数器,直接测量一下晶振的震荡频率”。另外,请确认你使用的补偿电容是准
- xhy stm32/stm8
- 【TI首届低功耗设计大赛】关于通信接口的问题讨论
- 关于MSP-EXP430FR5969LaunchPad与电脑通信的问题。加入需要用板子向电脑传输一大批数据需要用什么接口?粗略了解以后有以下两种想法:1》使用仿真接口与电脑实现数据传输,但是这样的话上位机很难写吧?官方给的OutOfBox_FR5969_GUI功能太局限了,很难实现具体的任务。加入要使用仿真器实现数据传输的话估计需要单独学习内部的协议??2》使用UART提供RS-232C数据接口,和计算机串口相连来实现数据的传输,这样的话该怎么实现?——通过查阅MSP4
- qq1042248300 微控制器 MCU
- EVC 界面闪烁问题,在线等
- 我用EVC开发界面,发现界面的控件比较多时出现了比较严重的界面闪烁问题,有没什么方法不让系统重绘我的控件啊!?VC 中好象可以解决的,有没朋友在EVC中解决过的?谢谢EVC界面闪烁问题,在线等图片比较多的话就容易出现闪烁的。你画图的时候最后先画到内存中再bitblt。刷新的时候也要注意一下是替换的时候?打开窗体的时候设置为顶层就看不出来了如果是界面交替的时候闪烁建议打开窗体的时候使用顶层显示就不会了CWnd::OnDrawItem建议用双缓存画图,保证不闪之前就碰到过这个问题了
- doublesex 嵌入式系统
- 【ufun学习】uFUN+TB6612FNG控制电机正反转
- 此内容由EEWORLD论坛网友闵丨大原创,如需转载或用于商业用途需征得作者同意并注明出处硬件使用TB6612FNG+uFUN学习板(STM32F103RCT6)。实现效果:PWM控制电机正转5s--停止等待1s--反转5s--正转5s,往复运动。1.TB6612FNG电机驱动模块此模块比L298N效率高、体积少且在额定范围内其芯片基本不发热。引脚说明 A控制信号输入---PWMA VM---电机驱动电压输
- 闵丨大 综合技术交流
- 为STM32通过FPGA扩展SDRAM.
- SDRAM价格便宜,容量大。用FPGA/CPLD为STM32扩展SDRAM,这个提议如何?为STM32通过FPGA扩展SDRAM.烧钱汗,这样还不如直接用那些244X。FPGA/CPLD用途真的很窄!顺便扩一个TFT控制器。SRAM太贵了扩SDRAM还是非常可行的还有就是扩展接口的速度问题!高性能的SDRAM接口是必需用FPGA的,那个FPGA片子的价格已经不菲了
- yuanlei stm32/stm8
- Wince X86平台串口拨号功能加载
- 如题,按照常规的方法加入了拨号的组件、串口等,但是新建拨号链接时总是不成功,不知还需要什么修改啊各位有没有处理过,帮忙指点。WinceX86平台串口拨号功能加载你是怎么做的,怎么个不成功法?
- wangkj22 WindowsCE