您的位置 首页 传感器

单片机存储系统完全研讨(总结)

一,单片机基本存储系统MCS-51单片机在物理结构上有四个存储空间:1、片内程序存储器2、片外程序存储器3、片内数据存储器4、片外数据存储器

一,单片机根本存储体系

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

1、片内程序存储器
2、片外程序存储器
3、片内数据存储器
4、片外数据存储器

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

1、片表里一致编址的64K的程序存储器地址空间(MOVC)
2、256B的片内数据存储器的地址空间(MOV)
3、以及64K片外数据存储器的地址空间(MOVX)
在拜访三个不同的逻辑空间时,应选用不同方法的指令,以发生不同的存储器空间的选通信号。

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


A,程序存储器

一个微处理器能够聪明地履行某种使命,除了它们强壮的硬件外,还需要它们运转的软件,其实微处理器并不聪明,它们仅仅彻底依照人们预先编写的程序而履行之。那么规划人员编写的程序就存放在微处理器的程序存储器中,俗称只读程序存储器(ROM)。程序相当于给微处理器处理问题的一系列指令。其实程序和数据相同,都是由机器码组成的代码串。仅仅程序代码则存放于程序存储器中。
MCS-51具有64kB程序存储器寻址空间,它是用于存放用户程序、数据和表格等信息。关于内部无ROM的8031单片机,它的程序存储器有必要外接,空间地址为64kB,此刻单片机的端有必要接地。强制CPU从外部程序存储器读取程序。关于内部有ROM的8051等单片机,正常运转时,则需接高电平,使 CPU先从内部的程序存储中读取程序,当PC值超越内部ROM的容量时,才会转向外部的程序存储器读取程序。
当EA=1时,程序从片内ROM开端履行,当PC值超越片内ROM容量时会主动转向外部ROM空间。
当EA=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中止地址区。
0023H—002AH 串行中止地址区。
可见以上的40个单元是专门用于存放中止处理程序的地址单元,中止呼应后,按中止的类型,主动转到各自的中止区去履行程序。从上面能够看出,每个中止服务程序只需8个字节单元,用8个字节来存放一个中止服务程序显然是不可能的。因而以上地址单元不能用于存放程序的其他内容,只能存放中止服务程序。可是一般情况下,咱们是在中止呼应的地址区安放一条无条件搬运指令,指向程序存储器的其它真实存放中止服务程序的空间去履行,这样中止呼应后,CPU读到这条搬运指令,便转向其他地方去持续履行中止服务程序。

下图是ROM的地址分配图:


从上图中咱们能够看到,0000H-0002H,只需三个存储单元,3个存储单元在咱们的程序存放时是存放不了实践意义的程序的,一般咱们在实践编写程序时是在这里组织一条ORG指令,经过ORG指令跳转到从0033H开端的用户ROM区域,再来组织咱们的程序语言。从0033开端的用户ROM区域用户能够经过ORG指令恣意组织,但在运用中应留意,不要超越了实践的存储空间,否则程序就会找不到。

B,数据存储器

数据存储器也称为随机存取数据存储器。数据存储器分为内部数据存储和外部数据存储。MCS-51内部RAM有128或256个字节的用户数据存储(不同的类型有别离),片外最多可扩展64KB的RAM,构成两个地址空间,拜访片内RAM用“MOV”指令,拜访片外RAM用“MOVX”指令。它们是用于存放履行的中心成果和进程数据的。MCS-51的数据存储器均可读写,部分单元还能够位寻址。
MCS-51单片机的内部数据存储器在物理上和逻辑上都分为两个地址空间,即:
数据存储器空间(低128单元);
特别功用存放器空间(高128单元);
这两个空间是相连的,从用户视点而言,低128单元才是真实的数据存储器。下面咱们就来具体的与咱们解说一下:

低128单元:
片内数据存储器为8位地址,所以最大可寻址的规模为256个单元地址,对片外数据存储器选用直接寻址方法,R0、R1和DPTR都能够做为直接寻址存放器,R0、R1是8位的存放器,即R0、R1的寻址规模最大为256个单元,而DPTR是16位地址指针,寻址规模就可到达64KB。也便是说在寻址片外数据存储器时,寻址规模超越了256B,就不能用R0、R1做为直接寻址存放器,而有必要用DPTR存放器做为直接寻址存放器。

8051单片机片内RAM共有256个单元(00H-FFH),这256个单元共分为两部分。其一是地址从00H—7FH单元(共128个字节)为用户数据RAM。从80H—FFH地址单元(也是128个字节)为特别存放器(SFR)单元。从图1中可清楚地看出它们的结构散布。

(1)、通用存放器区(00H-1FH)
在00H—1FH共32个单元中被均匀地分为四块,每块包括八个8位存放器,均以R0—R7来命名,咱们常称这些存放器为通用存放器。这四块中的存放器都称为R0—R7,那么在程序中怎样区别和运用它们呢?聪明的INTEL工程师们又组织了一个存放器——程序状态字存放器(PSW)来办理它们,CPU只需界说这个存放的PSW的D3和D4位(RS0和RS1),即可选中这四组通用存放器。对应的编码联系如下表所示。惹程序中并不需要用4组,那么其他的可用做一般的数据缓冲器,CPU在复位后,选中第0组作业存放器。

(2)、位寻址区(20H-2FH)
片内RAM的20H—2FH单元为位寻址区,既可作为一般单元用字节寻址,也可对它们的位进行寻址。位寻址区共有16个字节,128个位,位地址为00H—7FH。位地址分配如下表所示:

CPU能直接寻址这些位,履行例如置“1”、清“0”、求“反”、搬运,传送和逻辑等操作。咱们常称MCS-51具有布尔处理功用,布尔处理的存储空间指的便是这些为寻址区。

(3)、用户RAM区(30H-7FH)
在片内RAM低128单元中,通用存放器占去32个单元,位寻址区占去16个单元,剩余的80个单元便是供用户运用的一般RAM区了,地址单元为30H-7FH。对这部份区域的运用不作任何规则和约束,但应阐明的是,仓库一般拓荒在这个区域。

高128单元:(80H-FFH)
前面说到,在片内的RAM中,高128位是专用存放器区,因这节比较重要,下面咱们就要点介绍51单片机片内RAM的高128位,即专用存放器区。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/yingyong/chuanganqi/261954.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部