80C51讲义单片机的存储器结构
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
R6
05H
R5
04H
0组
R4
03H
R3
02H
R2
01H
R1
00H
R0
个寄存器对应的地址见表3-1所示 在内部工作寄存器中的地址是唯一,但寄存器名重名,
一个寄存器名对应有4个单元,为了解决重名问题,单片机 用特殊功能寄存器PSW中的RS1、RS0来选择,也就是说, 单片机在工作时不会同时使用这4组寄存器,在某一时刻, 只能选择其中的一组。
由于上述特点,所以在单片机中一般做为程序 存储器。
2. 随机存取存储器RAM
在加电期间,可以随时向存储器里写入数据或 从中读出数据,但掉电后,数据丢失。
SRAM:静态存储器,加电期间数据可以长久保 存,掉电信息丢失。
DRAM:动态存储器,即使在加电期间数据也会 丢失(数据要刷新)。
由于上述特点,所以在单片机中一般作为数据 储存器。
据,用户不能快速地随时修改或者重新写入数据, 数据可长时间的保存。
(1)可编程ROM,可通过专用设备(编程器)将 数据写入ROM。
PROM:用户可一次编程; EPROM:紫外线擦除,电改写(多次); EEPROM:电擦除,电改写(多次); FLASHROM:闪存(多次)。 (2)掩膜ROM 用户不能将数据写入,由厂家写入数据。
在指令系统中对于这些空间的访问有以下方法: ●直接使用地址,在指令系统中用“direct”表示, 这种方式称之为直接寻址。
如:指令 MOV A , direct ;指令中的“direct” 就是指内部数据存储器中的地址(00H~7FH)
该指令就是把direct这个单元中的操作数传送到 A中。操作数是指指令中参与操作的数据。
指令系统中出现的“direct”,在实际编程的过 程中不能出现,必须写对应的实际地址 “00H~7FH”,这一点非常重要。
如:MOV A , 30H ;就是将30H中的数送给A。
●直接使用寄存器名R0~R7,指令系统中用“Rn” 表示这8个寄存器,这种方式的寻址称之为“寄存 器寻址”,就是操作数放在寄存器中。
SRAM程序存储器用的是ROM。
3.3 80C51单片机的储存器 3.3.1 8051(80C51)系列存储器结构 1. 物理空间有四个部分
(1)内部数据存储器(128B SRAM)。 (2)外部扩展数据存储器(最大64K
RAM)。 (3)内部程序存储器(4K FlashROM
AT89S51)。 (4)外部扩展程序存储器(最大64K
1000H 0FFFH
外部程序储 存器64K (ROM)
80H 7FH 内部数据
储存器
128B 00H (SRAM)
0000H
内部程序储 存器4K
(ROM)
0000H
★内部数据存储器和外部数据存储器相互之间独立编址,
★内部程序存储器和外部程序存储器统一编址,共用一个64K的寻址空
间。
3.3.2 数据储存器
3.2 计算机中储存器的两种结构 在计算机中存储器的用途是存放程序和数据,
它有两种结构:冯•诺伊曼结构和哈佛结构。 冯•诺伊曼结构:程序和数据共用一个存储器逻
辑空间,统一编址。
哈佛结构:程序与数据分为两个独立存储器逻 辑空间,分开编址。
注: ★ 个人电脑(PC机)采用的是冯•诺伊曼结 构;
★ 单片机一般采用哈佛结构(8051); ★ 8051(80C51)单片机,数据存储器用的是
数据存储器是采用了静态随机存储器(SRAM) 的结构,掉电信息丢失,故用于暂存数据及运算的 中间结果。
1. 内部数据存储器的结构
内部数据储存器它由工作寄存器区、位寻址区 、用户区三个部分组成,地址范围00H~7FH,共 128个单元。用户对这些单元的访问,可以用“直 接寻址”的方法,即在指令中用“direct”表示,指 的就是00H~7FH这128个地址单元,指令中直接给 出操作数所在单元地址的这种寻址方式称之为“直 接寻址”。 何为寻址方式,即寻找操作数的方法。
3-5所示, 指令MOV A , @R0 操作示意。 可以用((R0))=(40H)=AAH表示。
RAM)。
2. 逻辑空间有三个部分
(1)程序存储器ROM:包括内部和外部,共用 一个64K的寻址空间。
(2)内部数据存储器RAM(128B),独立的一 个128B的寻址空间。
(3)外部数据存储器RAM(64K),独立的一 个64K的寻址空间。
如图3-2所示。
FFFFH
FFFFH
FFH SFR
外部数据 储存器64K (SRAM)
如:MOV A, @Ri ; 指令中的“@Ri”就是指 工作寄存器R0和R1。该指令就是把Ri中的数取出作 为所取数据的单元地址。指令系统中出现“@Ri”, 在实际编程的过程中不能出现,必须写 “@R0或 @R1”。
如:MOV A , @R0 ;就是将R0中的数取出, 作为所取数据的地址,将该地Βιβλιοθήκη Baidu单元的数取出送到 A中。如图3-5所示, @R0所指的操作数就是 10101010B(AAH)。
精品jing
80C51单片机的存储器结构
3.1 存储器的分类
存储器的的作用是用来存放程序和数据,存储 器可分为磁存储和半导体存储器,半导体存储器按 功能又可分为只读存储器ROM和随机存储器RAM, 如图3-1所示。单片机存储器结构中都采用半导体存 储器。
1. 只读存储器ROM 只读存储器在正常工作状态下只能从中读出数
图3-3 内部数据存储器结构
7FH
用户区
30H 2FH
位寻址区
20H 1FH
工作寄存 器区
00H
(1)工作寄存器区(00H~1FH)
共32个单元,又分为4组,每组8个单元,都用 R0~R7表示,如图3-4所示,
1FH
R7
3组
18H
R0
17H
R7
2组
10H
R0
0FH
R7
1组
08H
R0
07H
R7
06H
如:指令 MOV A , Rn ;指令中的“Rn”就是 指工作寄存器R0~R7。该指令就是把Rn中的操作数 传送到A中。
指令系统中出现的“Rn”,在实际编程的过程中 不能出现,必须写对应的寄存器“R0~R7”。
如:MOV A , R3 ;就是将工作寄存器R3中的 数传送到A中。
●R0和R1这两个寄存器还有一种用法,称之为“ 寄存器间接寻址”,用“@Ri”表示,i=0、1。R0和 R1存放的是操作数所在单元的地址。