程序存储器以程序计数器PC作为地址指针,通过16位地址总线,可寻址的地址空间为64KB,片内/外统一编址。根据单片机的类型及引脚的电平,CPU可从内部也可从外部程序存储器开始执行。而当EA=0时,内部程序存储器被忽略,程序直接从外部程序存储器的0000H开始执行。64KB程序存储器中有一些特殊的单元,在使用时应加以注意。0023H——串行口的中断服务子程序入口地址。......
2023-11-17
经过外扩展,构成了完整的单片机存储器系统。下面对单片机存储器系统的特点和使用方法进行介绍。
1.单片机存储器系统的特点
(1)程序存储器与数据存储器并存
单片机的存储器系统中程序存储器与数据存储器并存,其中程序存储器是保存程序的需要,而数据存储器则是运行程序的需要。在系统中两种存储器是截然分开的,它们有各自的地址空间、操作指令和控制信号。
其实任何计算机都存在程序的保存问题。例如,微型机用磁盘(硬盘与软盘)来保存程序,每次开机或每当需要时启动磁盘,即可把程序调入内存运行。而单片机一般不配备磁盘等外存储设备,故只能使用ROM构成的程序存储器来解决。有了程序存储器之后还得靠数据存储器来运行程序,从而就有了单片机系统中程序存储器和数据存储器并存的结构。
(2)内、外存储器并存
图8-18 8051单片机存储器的4个物理 存储空间和3个逻辑存储空间
单片机的存储器有内、外之分,即片内存储器和片外存储器。片内存储器是芯片固有的,它使用方便、存取快捷,但容量有限,难以满足系统的需要;而片外存储器是系统扩展的,从而形成了单片机系统既有内部存储器又有外部存储器的结构。内部存储器有ROM和RAM之分,外部存储器也有ROM和RAM之分。换一种说法,即程序存储器有内、外之分,数据存储器也有内、外之分这样一种复杂的结构。这种存储器的交叠配置在任何其他计算机中都不曾出现过。因此,在8051单片机系统中形成了存储器的4个物理存储空间和3个逻辑存储空间,如图8-18所示。
4个物理存储空间分别是片内程序存储空间、片外程序存储空间、片内数据存储空间及片外数据存储空间。
(3)程序存储器地址具有连续性要求
在编程使用时,内、外程序存储器空间的地址必须是连续的。而对应的数据存储器则没有这个要求,内、外数据存储空间是各自编址的,地址都是从00H(0000H)开始。所以从软件的角度看,8051单片机系统有3个逻辑存储空间,即片内、外统一编址的64KB程序存储空间,256B的片内数据存储空间以及64KB的片外数据存储空间。
2.8051单片机存储器的使用
为了正确地使用8051存储器,首先要注意如何区分4个不同的存储空间,其次在编程时还要注意内、外程序存储器的衔接问题。
在8051单片机中,为了区分不同的存储空间,采用了硬件和软件相结合的措施。所谓硬件措施,就是对不同的存储空间使用不同的控制信号,而软件措施则是访问不同的存储空间使用不同的指令。
(1)内部程序存储器与数据存储器的区分(www.chuimin.cn)
芯片内部的ROM与RAM是通过指令来相互区分的。读ROM时使用MOVC指令,而读RAM时则使用MOV指令。
(2)外部程序存储器与数据存储器的区分
对外部扩展ROM与RAM,同样使用指令来加以区分。读外部ROM使用MOVC指令,而读/写外部RAM则使用MOVX指令。此外,在电路连接上提供了两个不同的选通信号,为外部ROM的读选通信号
和
作为外部RAM的读/写选通信号。
(3)内、外数据存储器的区分
内部RAM和外部RAM是分开编址的,这就造成了外部RAM前256个单元的地址重叠。但由于有不同的指令加以区分,访问内部RAM使用MOV指令,访问外部RAM使用MOVX指令,所以不会发生操作混乱。
(4)内、外程序存储器的衔接
出于连续执行程序的需要,内、外程序存储器必须统一连续编址(内部占低位,外部占高位),并使用相同的读指令MOVC,所以内、外ROM面临的不是地址区分问题而是地址衔接问题。再考虑到8051单片机系列芯片中,有些芯片有内部ROM,有些芯片没有内部ROM,为此,8051单片机特别配置了(访问、内外程序存储器控制)信号。
对于8051这样有内部ROM的单片机,应使=1(接高电平)。此时,当地址为0000H~0FFFH时,在内部ROM寻址;等于或超过1000H时,自动到外部ROM中寻址,从而形成了如图8-19所示的内、外ROM的衔接形式,使内、外程序存储器成为一个地址连续的存储空间。
图8-19 内、外程序存储器衔接示意图
从图8-19中可以看出,由于0000H~0FFFH存储空间已被内部ROM占据,所以外部ROM就不能再使用这部分存储空间了,相当于外部ROM损失了4KB的存储空间。
对于8051这样没有内部ROM的单片机,应使=0(接地)。这样,只需对外部ROM进行寻址,寻址范围为0000H~FFFFH,是一个完整的64KB ROM空间。
总结上述内容可知,在8051单片机系统中,虽然存储器交叠增强了单片机的寻址能力,但同时也给学习和使用增加了一些困难。例如,增加了指令的类型和控制信号的数目,给程序设计和电路连接增加了麻烦,使程序设计容易出错,且出错后又不易查找,从而加大了程序调试的难度。
单片机存储 器扩展小结
有关单片机基础及应用的文章
程序存储器以程序计数器PC作为地址指针,通过16位地址总线,可寻址的地址空间为64KB,片内/外统一编址。根据单片机的类型及引脚的电平,CPU可从内部也可从外部程序存储器开始执行。而当EA=0时,内部程序存储器被忽略,程序直接从外部程序存储器的0000H开始执行。64KB程序存储器中有一些特殊的单元,在使用时应加以注意。0023H——串行口的中断服务子程序入口地址。......
2023-11-17
从物理地址空间看,MCS-51单片机有4个存储器地址空间,即片内程序存储器、片外程序存储器、片内数据存储器和片外数据存储器,其结构如图2-3所示。内部程序存储器的大小根据单片机型号的不同分别有1、2、4、8、32、64KB。在MCS-51单片机系列中,内、外部程序存储器是统一编址的,故内、外程序存储器存储空间之和最大为64KB。......
2023-11-17
Arduino控制器是由DFRobot出品的Arduino click,如图4-15所示。它继承了Arduino328控制器所有的特性而且集成了电机驱动、键盘、IO扩展板、无线数据串行通信等接口。它不仅可以兼容几乎所有Arduino系列的传感器和扩展板,而且可以直接驱动12个舵机。图4-15Arduino控制板AVR内核具有丰富的指令集和32个通用工作寄存器。ATmega48、ATmega88与ATmega168这三个型号只是在存储器大小、boot loader支持及中断向量长度上存在差别。芯片具有独立的BootLoader区,SPM指令只能在这个Flash区里得到执行。......
2023-06-26
8051系列单片机内部集成的串行通信接口全称为“通用异步收发器”,它既可作异步传输使用,也可作同步移位寄存器使用,还可用于数据的组网通信。图9-7 8051系列单片机通用异步收发器的内部结构UART工作时,定时器T1用于产生通信需要的时钟,控制寄存器用于对串行口的工作状态进行相应的监控和设置。......
2023-11-17
目前在单片机市场上,8位单片机和32位的ARM嵌入式微处理器占据的市场份额达70%以上。在单片机市场中,代表性的产品有MCS-51系列产品,其中ATMEL公司的AT89C51/C52两个系列8位单片机在焊接领域应用较为广泛。1994年ATMEL公司以其E2PROM和Intel公司的80C31单片机核心技术进行交换,从而取得80C31核的使用权。......
2023-06-26
51单片机数据存储器用于存放运算中间结果、数据暂存和数据缓冲、标志位等。CPU在复位后默认选择表3-3中第0组工作寄存器。图3-9 片内RAM地址分配图表3-3 工作寄存器地址列表高128B地址空间,80H~FFH为特殊功能寄存器空间。图3-10 特殊功能寄存器地址分配图表3-4 特殊功能寄存器说明表3-4中论述的特殊功能寄存器需要在程序中处理,实际应用中与硬件操作相结合,需要开发人员按功能需求进行控制。......
2023-11-04
故对于8031,其内部没有用户可用的程序存储器需接地;对于8051、8751、8951单片机,其内部存在用户程序存储器,为了充分利用单片机资源,一般接高电平,如图8-12所示为8051扩展一片2716EPROM的连接方法。控制信号,程序存储器的扩展只涉及,把该信号连接到2716的引脚,用于存储器读出选通。......
2023-11-17
相关推荐