51单片机存储器的结构.docx

上传人:scccc 文档编号:13548586 上传时间:2022-01-15 格式:DOCX 页数:8 大小:85.55KB
返回 下载 相关 举报
51单片机存储器的结构.docx_第1页
第1页 / 共8页
51单片机存储器的结构.docx_第2页
第2页 / 共8页
51单片机存储器的结构.docx_第3页
第3页 / 共8页
51单片机存储器的结构.docx_第4页
第4页 / 共8页
51单片机存储器的结构.docx_第5页
第5页 / 共8页
点击查看更多>>
资源描述

《51单片机存储器的结构.docx》由会员分享,可在线阅读,更多相关《51单片机存储器的结构.docx(8页珍藏版)》请在三一文库上搜索。

1、MCS-51单片机在物理结构上有四个存储空间: 1 片内程序存储器2、片外程序存储器3、片内数据存储器4、片外数据存储器但在逻辑上,即从用户的角度上,8051单片机有三个存储空间:1、片内外统一编址的64K的程序存储器地址空间(MOVC )2、256B的片内数据存储器的地址空间(MOV )3、以及64K片外数据存储器的地址空间(MOVX)以产生不同在访问三个不同的逻辑空间时,应采用不同形式的指令(具体我们在后面的指令系统学习时将会讲解), 的存储器空间的选通信号。程序内存ROM寻址范围:OOOOH-FFFFH容量64KBEA=1,寻址内部ROM ; EA = 0,寻址外部ROM地址长度:16位

2、作用:存放程序及程序运行时所需的常数。七个具有特殊含义的单元是:0000H 系统复位,PC指向此处;0003H外部中断0人口000BH T0溢出中断入口0013H一一外中断1人口001BHT1溢出中断入口0023H串口中断入口002BH T2溢出中断入口内部数据存储器RAM物理上分为两大区:00H-7FH即128B内RAM和SFR区。作用:作数据缓冲器用。F图是8051单片机存储器的空间结构图MKB外那RAM内砾载据蒋崎器外罄 栽据萍储毒OOOOH图1 MCS-51 W的内存结构程序存储器一个微处理器能够聪明地执行某种任务,除了它们强大的硬件外,还需要它们运行的软件,其实微处理 器并不聪明,它

3、们只是完全按照人们预先编写的程序而执行之。那么设计人员编写的程序就存放在微处理 器的程序存储器中,俗称只读程序存储器(ROM ) -程序相当于给微处理器处理问题的一系列命令。其实程序和数据一样,都是由机器码组成的代码串。只是程序代码则存放于程序存储器中。MCS-51具有64kB程序存储器寻址空间,它是用于存放用户程序、数据和表格等信息。对于内部无R0M的8031单片机,它的程序存储器必须外接,空间地址为64kB,此时单片机的端必须接地。强制CPU从外部程 序存储器读取程序。对于内部有ROM的8051等单片机,正常运行时,则需接高电平,使CPU先从内部的程序存 储中读取程序,当PC值超过内部RO

4、M的容量时,才会转向外部的程序存储器读取程序。当=1时,程序从片内ROM开始执行,当PC值超过片内ROM容量时会自动转向外部ROM空间。当=0时,程序从外部存储器开始执行,例如前面提到的片内无ROM的8031单片机,在实际应用中就要把8031的引脚接为低电平。8051片内有4kB的程序存储单元,其地址为0000H - OFFFH,单片机启动复位后,程序计数器的内容为0000H,所以系统将从0000H单元开始执行程序。但在程序存储中有些特殊的单元,这在使用中应加以注 ren 忌.其中一组特殊是0000H - 0002H单元,系统复位后,PC为0000H,单片机从0000H单元开始执行程序,如果程

5、序不是从0000H单元开始,则应在这三个单元中存放一条无条件转移指令,让CPU直接去执行用户指定的程序。另一组特殊单元是0003H-002AH,这40个单元各有用途,它们被均匀地分为五段,它们的定义如下:0003H- 000AH外部中断0中断地址区。000BH0012H定时/计数器0中断地址区。0013H- 001AH外部中断1中断地址区。001BH0022H定时/计数器1中断地址区。0023H002AH串行中断地址区。可见以上的40个单元是专门用于存放中断处理程序的地址单元,中断响应后,按中断的类型,自动转到各自的中断区去执行程序。从上面可以看出,每个中断服务程序只有8个字节单元,用8个字节

6、来存放一个中断服务程序显然是不可能的。因此以上地址单元不能用于存放程序的其他内容,只能存放中断服务程序。但是 通常情况下,我们是在中断响应的地址区安放一条无条件转移指令,指向程序存储器的其它真 正存放中断服务程序的 空间去执行,这样中断响应后,CPU读到这条转移指令,便转向其他地方去继续执行中断服务程序。下图是ROM的地址分配图:OFFFFHM32H/M33H”002AH/002BH-用户RUHRoowi/ooir-_t羹少生近J惴001 wool 3H- 行口中 as外部中Bfil INTIWQAH/WOBR-(W02H/aQO3H-OODGH从上图中大家可以看到,0000H-0002H,只

7、有三个存储单元,3个存储单元在我们的程序存放时是存放不了实际意义的程序的,通常我们在实际编写程序时是在这里安排一条ORG指令,通过ORG指令跳转到从0033H开始的用户ROM区域,再来安排我们的程序语言。从0033开始的用户ROM区域用户可以通过ORG指令任意安排,但在应用中应注意,不要超过了实际的存储空间,不然程序就会找不到。数据存储器数据存储器也称为随机存取数据存储器。数据存储器分为内部数据存储和外部数据存储。MCS-51内部RAM有128或256个字节的用户数据存储(不同的型号有分别),片外最多可扩展64KB的RAM,构成两个地址空间,访问片内RAM用“MOV指令,访问片外RAM用“MO

8、VX指令。它们是用于存放执行的中间结果 和过程数据的。MCS-51的数据存储器均可读写,部分单元还可以位寻址。MCS-51单片机的内部数据存储器在物理上和逻辑上都分为两个地址空间,即:数据存储器空间(低128单 元);特殊功能寄存器空间(高128单元); 这两个空间是相连的,从用户角度而言,低128单元才是真正的数据存储器。下面我们就来详细的与大家讲解一下:低128单元:片内数据存储器为8位地址,所以最大可寻址的范围为256个单元地址,对片外数据存储器采用间接寻址方式,RO、R1和DPTR都可以做为间接寻址寄存器,RO、R1是8位的寄存器,即RO、R1的寻址范围最大为256个单元,而DPTR是

9、16位地址指针,寻址范围就可达到64KB。也就是说在寻址片外数据存储器时,寻址范围超过了 256B,就不能用RO、R1做为间接寻址寄存器,而必须用DPTR寄存器做为间接寻址寄存器。从上图中我们可以看到,8051单片机片内RAM共有256个单元(OOH-FFH ),这256个单元共分为两部分。其一 是地址从00H 7FH单元(共128个字节)为用户数据RAM。从80H - FFH地址单元(也是128个字节)为特 殊寄存器(SFR )单元。从图1中可清楚地看出它们的结构分布。1、通用寄存器区(00H-仆H )在00H 1FH共32个单元中被均匀地分为四块,每块包含八个8位寄存器,均以RO -R7来

10、命名,我们 常称这些寄存器为通用寄存器。这四块中的寄存器都称为RO- R7,那么在程序中怎么区分和使用它们呢?聪明的 INTEL工程师们又安排了一个寄存器一一程序状态字寄存器(PSW)来管理它们,CPU只要定义这个寄存的PSW 的D3和D4位(RSO和RS1 ),即可选中这四组通用寄存器。对应的编码关系如下表所示。惹程序中并不需要用4 组,那么其余的可用做一般的数据缓冲器,CPU在复位后,选中第0组工作寄存器。2、位寻址区(20H-2FH)片内RAM的20H - 2FH单元为位寻址区,既可作为一般单元用字节寻址,也可对它们的位进行寻址。位寻址区共有16个字节,128个位,位地址为00H - 7

11、FH。位地址分配如下表所示:RAM位寻址区地址表单元地址MSB 位地址LSB2FH7FH7EH7DH7CH7BH7AH79H78H2EH77H76H75H74H73H72H71H70H2DH6FH6EH6DH6CH6BH6AH69H68H2CH67H66H65H64H63H62H61H60H2BH5FH5EH5DH5CH5BH5AH59H58H2AH57H56H55H54H53H52H51H50H29H4FH4EH4DH4CH4BH4AH49H48H28H47H46H45H44H43H42H41H40H27H3FH3EH3DH3CH3BH3AH39H38H26H37H36H35H34H33H3

12、2H31H30H25H2FH2EH2DH2CH2BH2AH29H28H24H27H26H25H24H23H22H21H20H23H1FH1EH1DH1CH1BH1AH19H18H22H17H16H15H14H13H12H11H10H21H0FH0EH0DH0CH0BH0AH09H08H20H07H06H05H04H03H02H01H00HCPU能直接寻址这些位,执行例如置“1、清“0”求反“、转移,传送和逻辑等操作。我们常称MCS-51具有布尔处理功能,布尔处理的存储空间指的就是这些为寻址区。3、用户 RAM 区(30H-7FH)在片内RAM低128单元中,通用寄存器占去32个单元,位寻址区占去16个单元,剩下的80个单元就是供用户使 用的一般RAM区了,地址单元为30H-7FH。对这部份区域的使用不作任何规定和限制,但应说明的是,堆栈一般 开辟在这个区域。高 128 单元:(80H-FFH )前面提到,在片内的RAM中,高128位是专用寄存器区,因这节比较重要,所以我们单独的安排一节课跟大家介绍。下节课我们就重点介绍51单片机片内RAM的高128位,即专用寄存器区。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1