欢迎来到天天文库
浏览记录
ID:36464855
大小:915.10 KB
页数:56页
时间:2019-05-09
《C51单片机的存储器结构》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第3章80C51单片机的存储器结构3.1存储器的分类存储器的的作用是用来存放程序和数据,存储器可分为磁存储和半导体存储器,半导体存储器按功能又可分为只读存储器ROM和随机存储器RAM,如图3-1所示。单片机存储器结构中都采用半导体存储器。1.只读存储器ROM只读存储器在正常工作状态下只能从中读出数据,用户不能快速地随时修改或者重新写入数据,数据可长时间的保存。(1)可编程ROM,可通过专用设备(编程器)将数据写入ROM。PROM:用户可一次编程;EPROM:紫外线擦除,电改写(多次);EEPROM:电擦除,电改写(多次);FLASHROM:闪存(多
2、次)。(2)掩膜ROM用户不能将数据写入,由厂家写入数据。由于上述特点,所以在单片机中一般做为程序存储器。2.随机存取存储器RAM在加电期间,可以随时向存储器里写入数据或从中读出数据,但掉电后,数据丢失。SRAM:静态存储器,加电期间数据可以长久保存,掉电信息丢失。DRAM:动态存储器,即使在加电期间数据也会丢失(数据要刷新)。由于上述特点,所以在单片机中一般作为数据储存器。3.2计算机中储存器的两种结构在计算机中存储器的用途是存放程序和数据,它有两种结构:冯•诺伊曼结构和哈佛结构。冯•诺伊曼结构:程序和数据共用一个存储器逻辑空间,统一编址。哈佛结
3、构:程序与数据分为两个独立存储器逻辑空间,分开编址。注:★个人电脑(PC机)采用的是冯•诺伊曼结构;★单片机一般采用哈佛结构(8051);★8051(80C51)单片机,数据存储器用的是SRAM程序存储器用的是ROM。3.380C51单片机的储存器3.3.18051(80C51)系列存储器结构1.物理空间有四个部分(1)内部数据存储器(128BSRAM)。(2)外部扩展数据存储器(最大64KRAM)。(3)内部程序存储器(4KFlashROMAT89S51)。(4)外部扩展程序存储器(最大64KRAM)。2.逻辑空间有三个部分(1)程序存储器ROM
4、:包括内部和外部,共用一个64K的寻址空间。(2)内部数据存储器RAM(128B),独立的一个128B的寻址空间。(3)外部数据存储器RAM(64K),独立的一个64K的寻址空间。如图3-2所示。★内部数据存储器和外部数据存储器相互之间独立编址,★内部程序存储器和外部程序存储器统一编址,共用一个64K的寻址空间。3.3.2数据储存器数据存储器是采用了静态随机存储器(SRAM)的结构,掉电信息丢失,故用于暂存数据及运算的中间结果。1.内部数据存储器的结构内部数据储存器它由工作寄存器区、位寻址区、用户区三个部分组成,地址范围00H~7FH,共128个单
5、元。用户对这些单元的访问,可以用“直接寻址”的方法,即在指令中用“direct”表示,指的就是00H~7FH这128个地址单元,指令中直接给出操作数所在单元地址的这种寻址方式称之为“直接寻址”。何为寻址方式,即寻找操作数的方法。图3-3内部数据存储器结构(1)工作寄存器区(00H~1FH)共32个单元,又分为4组,每组8个单元,都用R0~R7表示,如图3-4所示,个寄存器对应的地址见表3-1所示在内部工作寄存器中的地址是唯一,但寄存器名重名,一个寄存器名对应有4个单元,为了解决重名问题,单片机用特殊功能寄存器PSW中的RS1、RS0来选择,也就是说
6、,单片机在工作时不会同时使用这4组寄存器,在某一时刻,只能选择其中的一组。工作寄存器组地址寄存器名RS1RS00组00H~07HR0~R7001组08H~0FHR0~R7012组10H~17HR0~R7103组18H~1FHR0~R711在指令系统中对于这些空间的访问有以下方法:●直接使用地址,在指令系统中用“direct”表示,这种方式称之为直接寻址。如:指令MOVA,direct;指令中的“direct”就是指内部数据存储器中的地址(00H~7FH)该指令就是把direct这个单元中的操作数传送到A中。操作数是指指令中参与操作的数据。指令系统中
7、出现的“direct”,在实际编程的过程中不能出现,必须写对应的实际地址“00H~7FH”,这一点非常重要。如:MOVA,30H;就是将30H中的数送给A。●直接使用寄存器名R0~R7,指令系统中用“Rn”表示这8个寄存器,这种方式的寻址称之为“寄存器寻址”,就是操作数放在寄存器中。如:指令MOVA,Rn;指令中的“Rn”就是指工作寄存器R0~R7。该指令就是把Rn中的操作数传送到A中。指令系统中出现的“Rn”,在实际编程的过程中不能出现,必须写对应的寄存器“R0~R7”。如:MOVA,R3;就是将工作寄存器R3中的数传送到A中。●R0和R1这两个
8、寄存器还有一种用法,称之为“寄存器间接寻址”,用“@Ri”表示,i=0、1。R0和R1存放的是操作数所在单元的地址。如:M
此文档下载收益归作者所有