存储器结构
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
▪ 中断服务程序存放方法:
▪ (1)从中断地址区首地址开始,在中断地址区中直接 存放;
▪ (2)从中断地址区首地址开始,存放一条无条件转移 指令,
▪
以便中断响应后,通过中断地址区,再转到中断
服务程序的实际入口地址区去。
▪ 二、数据存储器
▪
MCS-51 系 列 单 片 机 数 据 存 储 器 分
内部数据存储器(即片内RAM)和外部
片内ROM(4kB) 0000H~0FFFH 片外ROM(64kB)0000H~FFFFH
两者统一编址!
对 于 8051 来 说 , 程 序 存 储 器 ( ROM ) 的 内 部 地 址 为 0000H~0FFFH, 共 4 KB; 外部地址为 1000H~FFFFH, 共 60 KB。 当程序计数器由内部 0FFFH执行到外部 1000H 时, 会自动跳转。 对于 8751 来说, 内部有 4 KB的EPROM, 将它作为内部程序存 储器; 8031 内部无程序存储器, 必须外接程序存储器。
E、数据指针DPTR (16位):
存放片外存储器地址,作为片外存储器的指针。 可分成两个8位寄存器DPH、DPL使用。
(2)专用寄存器的字节寻址
▪ 注意:
21个可字节寻址的专用寄存器是不连续地分散 在内部RAM高128单元之中,共83个可寻址位。 尽管还剩余许多空闲单元,但用户并不能使用。
在22个专用寄存器中,唯一一个不可寻址的 PC。PC不占据RAM单元,它在物理上是独立 的,因此是不可寻址的寄存器。
字
节
地
位地址
址
2、内部数据存储器高128单元
▪ 内部RAM的高128单元 ▪ ——专用寄存器(SFR)区 ▪ 地址为80H~FFH ▪ (也称特殊功能寄存器)
(1)SFR(80H~FFH)介绍:
▪
有2套地址
▪ ▪
字节地址:只21个有效(其中仅11个有位地址) 位地址:只83位有效
▪ 其字节地址可被8整除。
▪ B、位寻址区 :
▪ 字节地址为20H~2FH,既可作RAM,也可位操作。共有 16个RAM单元,共128位,位地址为00H~7FH。
▪ C、用户RAM区:
▪ 32个单元,地址为30H~7FH,在一般应用中常作堆栈区。
用PSW中的两位PSW.4和PSW.3来切换工作寄存 器区,选用一个工作寄存器区进行读写操作。
▪ 专用寄存器:
▪ A、B、PSW、
▪ DPTR、SP。
字
▪ I/O接口寄存器:
节 地
▪ P0、P1、P2、P3、 址
SBUF、TMOD、TCON、
SCON …
位地址
▪ A、程序计数器PC(16位): ▪ CPU总是按PC的指示读取程序。PC是一个16位的计 数器。其内容为将要执行的指令地址(即下一条指令地 址),可自动加1。因此CPU执行程序一般是顺序方式。当 发生转移、子程序调用、中断和复位等操作,PC被强制改 写,程序执行顺序也发生改变。 ▪ 复位时,PC=0000H。
数据存储器(即片外RAM)。
▪
▪ 内部数据存储器
1、内部数据存储器低128单元
▪ 低128单元是单片机的真 正RAM存储器。
▪ 分为三个区域:
▪ A、寄存器区:
▪
4组寄存器(寄存器阵列)。即4个工作寄存器0区~3区。
每组
8个寄存单元(每单元8位),以R0~R7作寄存器名,暂存运 算数据和中间结果。字节地址为00H~1FH。
§2.2.2 存储器结构
8051单片机在结构上采用了哈佛型,将程序 数据分别放在两个存储器内:
一个称为程序存储器(ROM); 另外一个称为数据存储器(RAM)。
两个存储器共有四个物理上相互独立的存 储空间:片内ROM、片外ROM、片内RAM、片外 RAM。
即:
存储器的结构图
一、程序存储器
8051单片机内部有4KB的掩膜Rwk.baidu.comM、 8751单片机内部有4KB的EPROM,而8031内 部没有程序存储器,必须外接程序存储器。
对专用寄存器只能使用直接寻址方式,书写时 既可使用寄存器符号,也可使用寄存器单元地 址。
▪ MCS-51的寄存器在片内RAM都有映像地址。 使用时,既可用寄存器名,也可用对应单元地址。
字
字
节
节
地
地
址
址
位地址
3.
外部数据存储器一般由静态RAM构成,其容量大小由 用户根据需要而定, 最大可扩展到 64 KB RAM , 地址是 0000H~0FFFFH。 CPU通过MOVX指令访问外部数据存储器, 用间接寻址方式, R0、R1和 DPTR都可作间接寄存器。注意, 外部RAM和扩展的I/O接口是统一编址的, 所有的外扩I/O 口都要占用 64 KB中的地址单元。
8031 最多可外扩 64 KB程序存储器, 其中 6 个单元地址具 有特殊用途, 是保留给系统使用的。0000H是系统的启动地址, 一 般 在 该 单 元 中 存 放 一 条 绝 对 跳 转 指 令 。 0003H 、 000BH 、 000BH、001BH和 0023H对应 5 种中断源的中断服务入口地址。
三、堆栈操作
1、堆栈的类型
▪ ▪ ▪ 堆栈类型 ▪ ▪
向上生长型 (向地址增大的方向生成):MCS—51 系列
向下生长型(向地址较低的方向生成):MCS—96 系列
▪ 复位时 SP=07H。但在程序设计时应将SP值初始化为30H以 后,以免占用宝贵的寄存器区和位地址区。
两组特殊单元
▪ 1、0000H---0002H(复位后:PC=0000H) ▪ 2、0003H---002AH(中断入口) ▪ 0003H---000AH(INT0中断地址区) ▪ 000BH---0012H(T/C0中断地址区) ▪ 0013H---001AH(INT1中断地址区) ▪ 001BH---0022H(T/C1中断地址区) ▪ 0023H---002AH(串行口中断地址区)
▪ B、累加器Acc(8位): ▪ 需要ALU处理的数据和计算结果多数要经过累加器A。
▪ C、寄存器B (8位):
▪ 与A累加器配合执行乘、除运算。也可用作通用寄
存器。
▪ D、程序状态字PSW (8位):
存放ALU运算过程的标志状态。
位 序 B7 B6 B5 B4 B3 B2 B1 B0 位符号 CY AC F0 RS1 RS0 OV F1 P