‘壹’ 用什么方法来区分,片外数据存储器与片内数据存储器分开编址而出现的地址重叠呢
51 单片机的存储器是:哈佛结构。
代码、数据,存放在各自的地址空间,不会重叠的。
‘贰’ 在8051单片机中,片内RAM,片外RAM和片外ROM空间的地址有一部分是重叠的,为何不
片内 RAM、片外 RAM、片外 ROM,这三者,各有各的空间,根本就不会重叠。
当你使用译码法扩充片外 RAM 时,才会有地址重叠。
但是,也仅限于“片外 RAM”的地址之中重叠,与另外两个无关。
‘叁’ 简述51单片机的存储器逻辑空间分布,并说明当存储器地址发生重叠时应如何处
MCS-51单片机存储器结构
1、 程序存储器
MCS-51具有64kB程序存储器寻址空间,它是用于存放用户程序、数据和表格等信息。对于内部无ROM的8031单片机,它的程序存储器必须外接,空间地址为64kB,此时单片机的端必须接地。强制CPU从外部程序存储器读取程序。对于内部有ROM的8051等单片机,正常运行时,则需接高电平,使CPU先从内部的程序存储中读取程序,当PC值超过内部ROM的容量时,才会转向外部的程序存储器读取程序。
8051片内有4kB的程序存储单元,其地址为0000H—0FFFH,单片机启动复位后,程序计数器的内容为0000H,所以系统将从0000H单元开始执行程序。但在程序存储中有些特殊的单元,这在使用中应加以注意:
其中一组特殊是0000H—0002H单元,系统复位后,PC为0000H,单片机从0000H单元开始执行程序,如果程序不是从0000H单元开始,则应在这三个单元中存放一条无条件转移指令,让CPU直接去执行用户指定的程序。
另一组特殊单元是0003H—002AH,这40个单元各有用途,它们被均匀地分为五段,它们的定义如下:
0003H—000AH 外部中断0中断地址区。
000BH—0012H 定时/计数器0中断地址区。
0013H—001AH 外部中断1中断地址区。
001BH—0022H 定时/计数器1中断地址区。
0023H—002AH 串行中断地址区。
可见以上的40个单元是专门用于存放中断处理程序的地址单元,中断响应后,按中断的类型,自动转到各自的中断区去执行程序。因此以上地址单元不能用于存放程序的其他内容,只能存放中断服务程序。但是通常情况下,每段只有8个地址单元是不能存下完整的中断服务程序的,因而一般也在中断响应的地址区安放一条无条件转移指令,指向程序存储器的其它真正存放中断服务程序的空间去执行,这样中断响应后,CPU读到这条转移指令,便转向其他地方去继续执行中断服务程序。
2、 数据存储器
数据存储器也称为随机存取数据存储器。MCS-51单片机的数据存储器在物理上和逻辑上都分为两个地址空间,一个是内部数据存储区和一个外部数据存储区。MCS-51内部RAM有128或256个字节的用户数据存储(不同的型号有分别),它们是用于存放执行的中间结果和过程数据的。MCS-51的数据存储器均可读写,部分单元还可以位寻址。
8051内部RAM共有256个单元,这256个单元共分为两部分。其一是地址从00H—7FH单元(共128个字节)为用户数据RAM。从80H—FFH地址单元(也是128个字节)为特殊寄存器(SFR)单元。从图1中可清楚地看出它们的结构分布。
在00H—1FH共32个单元中被均匀地分为四块,每块包含八个8位寄存器,均以R0—R7来命名,我们常称这些寄存器为通用寄存器。这四块中的寄存器都称为R0—R7,那么在程序中怎么区分和使用它们呢?聪明的INTEL工程师们又安排了一个寄存器——程序状态字寄存器(PSW)来管理它们,CPU只要定义这个寄存的PSW的第3和第4位(RS0和RS1),即可选中这四组通用寄存器。对应的编码关系如图2所示。
内部RAM的20H—2FH单元为位寻址区,既可作为一般单元用字节寻址,也可对它们的位进行寻址。位寻址区共有16个字节,128个位,位地址为00H—7FH。位地址分配如表1所示,CPU能直接寻址这些位,执行例如置“1”、清“0”、求“反”、转移,传送和逻辑等操作。我们常称MCS-51具有布尔处理功能,布尔处理的存储空间指的就是这些为寻址区。
‘肆’ 《单片机原理》造成地址重叠的原因是什么
咨询记录 · 回答于2021-12-26
‘伍’ 存储器扩展时,什么叫地址空间不连续和地址重叠现象
采用部分译码时,未用的地址线,可以随意取1、取0。
那么,对于某个存储单元来说,就可用多个地址号码来选中。
即:一个存储器芯片,占用了一个以上的地址空间。
这种现象,并不是【地址重叠】。Alfg5 的答案,是错误的。
另外,如果未用的地址线,是高位地址线,且都取0,
那么,由部分译码所形成的地址空间,也是连续的。
那么,什么是地址重叠呢?
不同的存储芯片,具有同一个地址空间,这才是【地址重叠】。
采用线选法扩展存储空间,才会有【地址重叠】的现象。
使用重叠的地址,就可令多块芯片,同时写入读出。
那么,重叠的地址,就是不可用的。
因此,可用的地址,就是不连续的。
在 51 单片机中,有许多地址重叠的现象,比如:
程序存储器、数据存储器的地址都是 0000~FFFFH。
特殊功能寄存器和高128B 的片内 RAM,地址,也重叠了。
位地址,也是重复使用了相同的地址号码。
还有,八个寄存器 R0~R7,却占用了 32 个存储单元。
就是说:
【地址重叠】是指:同一个地址空间,涉及到了不同的存储区域。
而不是Alfg5 所答的:不同的地址,选通同一存储单元。
搞清楚了基本概念,求可用的地址,以及,分析不可用的重叠地址,就不是难事了。
‘陆’ 51单片机在选取外部存储器的时候,当程序存储器ROM和数据存储器RAM地址重叠的时候,是怎么区分ROM和RAM的
在硬件上,当读ROM程序区时,是用PSEN(非)选中ROM存储器的,而读/写数据存储器时,是由MOVX指令读/写的,硬件上是用RD(非)读的,用WR(非)写的。
‘柒’ c51单片机地址重叠部分如何区分
这个比较好区分,看地址线的连结方式就行。
‘捌’ 片外rom和片外ram各自的地址范围单片机如何区分两者的访问
原则上说,片外rom和片外ram各自的地址范围可以重叠,也就是都可以从0000H开始到0FFFFH结束。单片机根据指令区分两者的访问,MOVC访问的是片外rom,MOVX访问的是片外ram。
但是,对于片内有ROM和内部集成外部RAM的芯片,要统一编址,各自不能重叠。
‘玖’ 单片机数据存储器内外地址重叠时如何进行区分
movx:访问外部数据存储器空间。
movc:访问程序存储器空间。
采用位寻址的指令访问的是位地址空间。如:JB、JNB、JBC、JC、JNC、MOV C,BIT、ANL C,BIT等
其他指令访问的是内部数据存储器空间。
一句话,单片机的指令系统是通过不同的指令及其寻址方式来区分不同的存储空间的。