8051微控制器内存组织

在之前的8051微控制器教程中,我们已经看到了8051单片机的介绍和基础知识,针图,引脚描述和架构概述。在本教程中,我们将通过了解8051微控制器内存组织,程序存储器(ROM),数据存储器(RAM),外部存储器来继续探索8051微控制器。

When the differences between microprocessor and microcontroller are mentioned in the previous tutorial, the main difference can be stated as on-chip memory i.e., a Microcontroller has both Program Memory (ROM) and Data Memory (RAM) on the same chip (IC), whereas a Microprocessor has to be externally interface with the memory modules.

因此,很明显内存是8051微控制器体系结构(任何微控制器)的重要组成部分。因此,对我们来说,理解8051微控制器的内存组织是很重要的,即内存是如何组织的,处理器如何访问每个内存,以及如何与8051微控制器接口外部内存。

在详细介绍8051微控制器的内存组织之前,我们将首先了解一点计算机架构,然后继续讨论8051微控制器的内存组织。

也读过8051单片机体系结构概述

计算机架构的类型

基本上,微处理器或微控制器是根据计算机体系结构的两种类型来分类的:冯·诺伊曼体系结构和哈佛体系结构。

冯诺依曼体系结构

冯·诺伊曼体系结构或普林斯顿体系结构是计算机体系结构,其中程序,即指令和数据存储在单个内存中。

由于指令内存和数据内存是相同的,处理器或CPU不能同时访问指令和数据,因为它们使用一个总线。

这种类型的架构对系统的性能具有严重的局限性,因为它在访问存储器时创建瓶颈。

8051存储组织冯·诺伊曼架构

哈佛架构

与冯·诺伊曼体系结构相比,哈佛体系结构使用单独的内存用于指令(程序)和数据。由于指令存储器和数据存储器在哈佛体系结构中是分开的,它们的信号路径也就是总线是不同的,因此,CPU可以同时访问指令和数据。

几乎所有的微控制器,包括8051微控制器都实现了哈佛架构。

8051内存组织哈佛架构

8051微控制器内存组织

8051单片机内存被分离在程序内存(ROM)和数据内存(RAM)。8051单片机的程序存储器用于存储要执行的程序,即指令。另一方面,数据存储器用于存储临时变量数据和中间结果。

8051微控制器有内部ROM和内部RAM。如果内部存储器不足,您可以使用适当的电路增加外部存储器。

阅读这个有趣的帖子:8051微控制器工程学生专题

8051单片机的程序存储器

在8051微控制器中,要执行的代码或指令存储在程序存储器中,该程序存储器也称为微控制器的ROM。Intel原件8051微控制器有4KB的内部ROM。

8051的一些变体,如8031和8032系列,没有任何内部ROM(程序内存),必须与装载指令的外部程序内存接口。

几乎所有现代的8051微控制器,如8052系列,都有8KB的内部程序内存(ROM),以闪存(ROM)的形式,并提供重编程内存的选项。

8051程序内存(ROM)

对于4KB的内部ROM,地址空间是0000H到0FFFH。如果地址空间,即程序地址超过这个值,那么CPU将自动从外部程序内存中获取代码。

For this, the External Access Pin (EA Pin) must be pulled HIGH i.e., when the EA Pin is high, the CPU first fetches instructions from the Internal Program Memory in the address range of 0000H to 0FFFFH and if the memory addresses exceed the limit, then the instructions are fetched from the external ROM in the address range of 1000H to FFFFH.

8051内部和外部存储器

有另一种方法来获取说明:忽略内部ROM,并仅从外部程序存储器(外部ROM)获取所有指令。对于这种情况,EA引脚必须连接到GND。在这种情况下,外部ROM的存储器地址将是0000h到FFFFH。

仅限8051外部内存

8051单片机的数据存储器(RAM)

8051微控制器的数据存储器或RAM存储微控制器正常运行时产生和使用的临时数据和中间结果。最初的英特尔8051微控制器拥有128B的内部RAM。

但几乎所有现代的8051微控制器的变种都有256B的RAM。在该256b中,从00h到7fh的第一128b,第一128b,从00h到7fh被划分为工作寄存器(组织为寄存器库),比特 - 可寻址区域和通用RAM(也称为刮擦区域)。

在RAM的第一个128B(从00H到7FH)中,第一个32B即从地址00H到1FH的内存由32个工作寄存器组成,这些寄存器被组织为四个银行,每个银行有8个寄存器。

8051内存组织哈佛架构

4家银行被命名为Bank0,Bank1,Bank2和Bank3。每个银行由8名称名为R0 - R7的寄存器组成。每个寄存器都可以以两种方式解决:按名称或地址进行解决。

要按名称为登记簿地址,必须首先选择相应的银行。为了选择银行,我们必须使用程序状态字(PSW)寄存器的RS0和RS1位(RS0和RS1是PSW寄存器的第3位和第4位)。

使用其地址地址时,例如,12h地址寄存器时,可以或可能无法选择相应的银行。(12h对应于Bank2中的R2)。

RAM的下一个16B,从20H到2FH为位可寻址存储位置。总共有128位可以使用00h至7fh单独寻址,或者整个字节可以被寻址为20h至2fh。

例如32H是内部RAM位置26H的第2位。

内部RAM的最后80B,即从30H到7FH的地址,是通用的RAM区域,是字节可寻址的。

这些较低的128B内存可以直接或间接寻址。

RAM的上128B即从80H到FFH的内存地址被分配给特殊函数寄存器(SFRs)。SFRs控制8051单片机的特定功能。一些SFRs是I/O端口寄存器(P0, P1, P2和P3), PSW(程序状态字),A(累加器),IE(中断使能),PCON(电源控制)等。

8051微控制器内存组织图像9

SRFS存储器地址仅是可寻址的。尽管80H和FFH之间的一些地址未被分配给任何SFR,但它们也不能用作额外的RAM区域。

在一些微控制器中,有一个额外的128B的RAM,它与SFRs共享内存地址,即80H到FFH。但是,这个额外的RAM块只能通过间接寻址来访问。

外接存储器与8051单片机

可以选择扩展微控制器的功能总是很好的,无论是在内存还是IO或其他任何内容。这种膨胀将有助于避免设计节流。我们已经看到典型的8051微控制器具有4KB的ROM和128B RAM(大多数现代8051微控制器变体具有8K ROM和256B的RAM)。

基于8051微控制器的系统的设计者不限于8051微控制器中存在的内部RAM和ROM。提供连接外部RAM和ROM I.,数据存储器和程序。

使用外部程序存储器或ROM的原因是,用高级语言编写的复杂程序往往更大,占用更多的内存。

另一个重要的原因是像8031或8032这样的芯片,没有任何内部ROM,必须与外部ROM接口。

最大64KB的程序存储器(ROM)和数据存储器(RAM)可以与8051单片机接口。

下图显示了用8051微控制器连接64KB外接RAM和64KB外接ROM的框图。

8051接口外部RAM和ROM

在使用8051微控制器接口外部存储器时要记住的重要点是端口0(P0)不能用作IO端口,因为它将用于多路复用地址和数据总线(A0-A7和D0-D7)。并不总是,但端口2可以用作地址总线的更高字节。

在本教程中,我们已经看到了8051微控制器存储器组织,程序存储器,数据存储器,内部ROM和RAM,以及如何与8051微控制器接口外部存储器(ROM和RAM)。

9的反应

  1. 你好,非常好的介绍,我有一个请求,在地址RAM即000FH, H是十六进制?
    所有的RAM地址都是4位格式吗?

留下一个回复

您的电子邮件地址不会被公开。必需的地方已做标记*