- 1、本文档共58页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
80C51单片机的存储器结构,单片机存储器结构,单片机的存储器,单片机的程序存储器,单片机存储器,单片机外部存储器,单片机程序存储器,单片机flash存储器,单片机存储器扩展,单片机数据存储器
3.1 存储器的分类 存储器的的作用是用来存放程序和数据,存储器可分为磁存储和半导体存储器,半导体存储器按功能又可分为只读存储器ROM和随机存储器RAM,如图3-1所示。单片机存储器结构中都采用半导体存储器。 1. 只读存储器ROM 只读存储器在正常工作状态下只能从中读出数据,用户不能快速地随时修改或者重新写入数据,数据可长时间的保存。 (1)可编程ROM,可通过专用设备(编程器)将数据写入ROM。 PROM:用户可一次编程; EPROM:紫外线擦除,电改写(多次); EEPROM:电擦除,电改写(多次); FLASHROM:闪存(多次)。 (2)掩膜ROM 用户不能将数据写入,由厂家写入数据。 由于上述特点,所以在单片机中一般做为程序存储器。 2. 随机存取存储器RAM 在加电期间,可以随时向存储器里写入数据或从中读出数据,但掉电后,数据丢失。 SRAM:静态存储器,加电期间数据可以长久保存,掉电信息丢失。 DRAM:动态存储器,即使在加电期间数据也会丢失(数据要刷新)。 由于上述特点,所以在单片机中一般作为数据储存器。 3.2 计算机中储存器的两种结构 在计算机中存储器的用途是存放程序和数据,它有两种结构:冯?诺伊曼结构和哈佛结构。 冯?诺伊曼结构:程序和数据共用一个存储器逻辑空间,统一编址。 哈佛结构:程序与数据分为两个独立存储器逻辑空间,分开编址。 注: ★ 个人电脑(PC机)采用的是冯?诺伊曼结 构; ★ 单片机一般采用哈佛结构(8051); ★ 8051(80C51)单片机,数据存储器用的是 SRAM程序存储器用的是ROM。 3.3 80C51单片机的储存器 3.3.1 8051(80C51)系列存储器结构 1. 物理空间有四个部分 (1)内部数据存储器(128B SRAM)。 (2)外部扩展数据存储器(最大64K RAM)。 (3)内部程序存储器(4K FlashROM AT89S51)。 (4)外部扩展程序存储器(最大64K RAM)。 2. 逻辑空间有三个部分 (1)程序存储器ROM:包括内部和外部,共用一个64K的寻址空间。 (2)内部数据存储器RAM(128B),独立的一个128B的寻址空间。 (3)外部数据存储器RAM(64K),独立的一个64K的寻址空间。 如图3-2所示。 ★内部数据存储器和外部数据存储器相互之间独立编址, ★内部程序存储器和外部程序存储器统一编址,共用一个64K的寻址空间。 3.3.2 数据储存器 数据存储器是采用了静态随机存储器(SRAM)的结构,掉电信息丢失,故用于暂存数据及运算的中间结果。 1. 内部数据存储器的结构 内部数据储存器它由工作寄存器区、位寻址区、用户区三个部分组成,地址范围00H~7FH,共128个单元。用户对这些单元的访问,可以用“直接寻址”的方法,即在指令中用“direct”表示,指的就是00H~7FH这128个地址单元,指令中直接给出操作数所在单元地址的这种寻址方式称之为“直接寻址”。 何为寻址方式,即寻找操作数的方法。 图3-3 内部数据存储器结构 (1)工作寄存器区(00H~1FH) 共32个单元,又分为4组,每组8个单元,都用R0~R7表示,如图3-4所示, 个寄存器对应的地址见表3-1所示 在内部工作寄存器中的地址是唯一,但寄存器名重名,一个寄存器名对应有4个单元,为了解决重名问题,单片机用特殊功能寄存器PSW中的RS1、RS0来选择,也就是说,单片机在工作时不会同时使用这4组寄存器,在某一时刻,只能选择其中的一组。 在指令系统中对于这些空间的访问有以下方法: ●直接使用地址,在指令系统中用“direct”表示,这种方式称之为直接寻址。 如:指令 MOV A , direct ;指令中的“direct”就是指内部数据存储器中的地址(00H~7FH) 该指令就是把direct这个单元中的操作数传送到A中。操作数是指指令中参与操作的数据。 指令系统中出现的“direct”,在实际编程的过程中不能出现,必须写对应的实际地址“00H~7
文档评论(0)