一个微处理器能够聪明地执行某种任务,除了它们强大的硬件外,还需要它们运行的软件,其实微处理器并不聪明,它们只是完全按照人们预先编写的程序而执行之。那么设计人员编写的程序就存放在微处理器的程序存储器中,俗称只读程序存储器(ROM)。程序相当于给微处理器处理问题的一系列命令。其实程序和数据一样,都是由机器码组成的代码串。只是程序代码则存放于程序存储器中。
MCS-51具有64kB程序存储器寻址空间,它是用于存放用户程序、数据和表格等信息。对于内部无ROM的8031单片机,它的程序存储器必须外接,空间地址为64kB,此时单片机的端必须接地。强制CPU从外部程序存储器读取程序。对于内部有ROM的8051等单片机,正常运行时,则需接高电平,使CPU先从内部的程序存储中读取程序,当PC值超过内部ROM的容量时,才会转向外部的程序存储器读取程序。
当=1时,程序从片内ROM开始执行,当PC值超过片内ROM容量时会自动转向外部ROM空间。
当=0时,程序从外部存储器开始执行,例如前面提到的片内无ROM的8031单片机,在实际应用中就要把8031的引脚接为低电平。
在MCS-51单片机应用系统中,外接程序存储器和数据存储器的地址空间允许重叠而不会发生冲突,
--MCS-51的存储器采用哈佛结构。
--程序存储器和数据存储器,是各自独立的地址空间。
--两者毫不相关,根本就没有任何重叠。
为什么?
--因为,哈弗结构,就是不冲突的结构。
外部I/O接口地址是否允许与存储器地址重叠?
--MCS-51单片机,跟本就没有“外部I/O接口地址”。
为什么?
--这题目,是谁出的呀? 没有任何意义。
--都是无聊或误导。
在MCS-51单片机应用系统中,外接程序存储器和数据存储器的地址空间允许重叠而不会发生冲突,为什么?
允许重叠?
谁说的?
程序存储器、数据存储器,各有各的地址空间,毫不相关。
它们,根本就没有重叠。 更没有“允许重叠”。
什么是重叠?
出题的老师,应该好好想一想。
MCS-51的存储器采用哈佛结构,就是64KB程序存储器和64KB数据存储器是各自单独编址,各自独立的地址空间。其地址编号是允许重叠的。
不会发生重叠的原因是:从硬件连线上,访问外部程序存储器(读取)是控制线EA、PSEN有效,访问外部数据存储器是RD(读)、WR(写有效;从指令系统来说,如果是程序主动访问,采用不同的指令来访问,一般MOVC访问程序存储器,MOVX访问外部数据存储器。
在MCS-51中外部I/O接口地址是和外部数据存储器的地址在一起统一编址的,换句话说,就是I/O地址是外部数据存储器地址空间的一部分,因此其和外部数据存储器一样可以和外部程序存储器重叠。