51单片机存储器的结构

  • 格式:docx
  • 大小:39.38 KB
  • 文档页数:7

下载文档原格式

  / 7
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

MCS-51单片机在物理结构上有四个存储空间:

1、片内程序存储器

2、片外程序存储器

3、片内数据存储器

4、片外数据存储器

但在逻辑上,即从用户的角度上,8051单片机有三个存储空间:

1、片内外统一编址的64K的程序存储器地址空间(MOVC)

2、256B的片内数据存储器的地址空间(MOV )

3、以及64K片外数据存储器的地址空间(MOVX)

在访问三个不同的逻辑空间时,应采用不同形式的指令(具体我们在后面的指令系统学习时将会讲解),以产生不同的存储器空间的选通信号。

程序内存ROM

寻址范围:0000H〜FFFFH 容量64KB

EA = 1,寻址内部ROM ;EA = 0,寻址外部ROM

地址长度:16位

作用:存放程序及程序运行时所需的常数。

七个具有特殊含义的单元是:

0000H ――系统复位,PC指向此处;

0003H ——外部中断0入口

000BH —— T0溢出中断入口

0013H——外中断1入口

001BH —— T1溢出中断入口

0023H——串口中断入口

002BH —— T2溢出中断入口

内部数据存储器RAM

物理上分为两大区:00H〜7FH即128B内RAM 和SFR区。

作用:作数据缓冲器用。

下图是8051单片机存储器的空间结构图

MKB

外那

RAM

内砾載据蒋嶠器外罄

栽据萍储壽

圏1 MCS-51 W的内

存结构

程序存储器

一个微处理器能够聪明地执行某种任务,除了它们强大的硬件外,还需要它们运行的软件,其实微处理

器并不聪明,它们只是完全按照人们预先编写的程序而执行之。那么设计人员编写的程序就存放在微处理

器的程序存储器中,俗称只读程序存储器(ROM )。程序相当于给微处理器处理问题的一系列命令。其实

程序和数据一样,都是由机器码组成的代码串。只是程序代码则存放于程序存储器中。

MCS-51具有64kB程序存储器寻址空间,它是用于存放用户程序、数据和表格等信息。对于内部无RO M的8031单片机,它的程序存储器必须外接,空间地址为64kB,此时单片机的端必须接地。强制CPU从外部程序存储器读取程序。对于内部有ROM的8051等单片机,正常运行时,则需接高电平,使CPU先从内部的程序存储中读取程序,当PC值超过内部ROM的容量时,才会转向外部的程序存储器读取程序。

当=1时,程序从片内ROM开始执行,当PC值超过片内ROM容量时会自动转向外部ROM空间。

当=0时,程序从外部存储器开始执行,例如前面提到的片内无ROM的8031单片机,在实际应用中就

要把8031的引脚接为低电平。

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中断地址区。

OOOOH

0023H—002AH 串行中断地址区。

可见以上的40个单元是专门用于存放中断处理程序的地址单元,中断响应后,按中断的类型,自动转

到各自的中断区去执行程序。从上面可以看岀,每个中断服务程序只有8个字节单元,用8个字节来存放

一个中断服务程序显然是不可能的。因此以上地址单元不能用于存放程序的其他内容,只能存放中断服务程序。但是通常情况下,我们是在中断响应的地址区安放一条无条件转移指令,指向程序存储器的其它真正存放中断服务程序的空间去执行,这样中断响应后,CPU读到这条转移指令,便转向其他地方去继续执行中断服务程序。

下图是ROM的地址分配图:

OFFFFH

002AH/002BH-

OOWI/OOll^-

001 WOOl 3H-

OODGH

从上图中大家可以看到,0000H-0002H,只有三个存储单元,3个存储单元在我们的程序存放时是存放

不了实际意义的程序的,通常我们在实际编写程序时是在这里安排一条ORG指令,通过ORG指令跳转到从0033H开始的用户ROM区域,再来安排我们的程序语言。从0033开始的用户ROM区域用户可以通过ORG指令任意安排,但在应用中应注意,不要超过了实际的存储空间,不然程序就会找不到。

数据存储器

数据存储器也称为随机存取数据存储器。数据存储器分为内部数据存储和外部数据存储。MCS-51内部RAM有128或256个字节的用户数据存储(不同的型号有分别),片外最多可扩展64KB的RAM,构成

两个地址空间,访问片内RAM用“MOV指令,访问片外RAM用“MOVX指令。它们是用于存放执行的中间结果和过程数据的。MCS-51的数据存储器均可读写,部分单元还可以位寻址。

MCS-51单片机的内部数据存储器在物理上和逻辑上都分为两个地址空间,即:数据存储器空间(低128单元);特殊功能寄存器空间(高128单元);

这两个空间是相连的,从用户角度而言,低128单元才是真正的数据存储器。下面我们就来详细的与大家

讲解一下:

低128单元:

片内数据存储器为8位地址,所以最大可寻址的范围为256个单元地址,对片外数据存储器采用间接寻