• 存储器的结构特点之一是将程序存储器和数据存储器分开 (哈佛结构),并有各自的访问指令。
  • 存储器空间可分为4类

存储器空间的4种分类

1.程序存储器空间 (Flash ROM)

  • 片内片外两部分。
  • 片内8KB Flash ,编程和擦除完全是电气实现。可用通用编程器对其编程,也可在线编程
  • 当片内8KB Flash 存储器不够用时,可片外扩展,最多可扩展至64KB程序存储器。

2.数据存储器空间 (RAM)

  • 片内片外两部分。
  • 片内有256B RAM
  • 片内RAM 不够用时,在片外可扩展至64KB RAM

3.特殊功能寄存器SFR (Special Function Register)

  • 片内各功能部件的控制寄存器及状态寄存器。综合反映了整个单片机基本系统内部实际的工作状态及工作方式。

4.位地址空间

  • 共有219个可寻址位,构成了位地址空间。位于片RAM区字节地址20H~2FH(共128位)和特殊功能寄存器区(片内RAM区字节地址80H~FFH区间内,共定义了91个可寻址位)。

2.4.1 程序存储器空间 (Flash ROM)

  • 存放程序和表格之类的固定常数片内为 8 KB(2^13B)的 Flash ,地址为0000H~1FFFH。16位地址线,可外扩的程序存储器空间最大为64KB(2^16B),地址为0000H~FFFFH
  • 使用时应注意以下问题:
  • (1)分为片内片外两部分,访问片内的还是片外的程序存储器,由EA*引脚电平确定。
    • EA = 1*时,CPU从片内0000H开始取指令,当PC值没有超出0FFFH时,只访问片内Flash 存储器,当PC值超出1FFFH自动转向读片外程序存储器空间2000H~FFFFH 内的程序。
    • EA = 0*时,只能执行片外程序存储器(0000H~FFFFH)中的程序。不理会片内4KB Flash 存储器。
  • (2)程序存储器某些固定单元用于各中断源中断服务程序入口。
    64KB程序存储器空间中有6个特殊单元分别对应于6个中断源的中断入口地址,见表2-3。

    • 通常这6个中断入口地址处都放一条跳转指令跳向对应的中断服务子程序,而不是直接存放中断服务子程序。
    • 表2-3中最后一行,即第6个中断入口地址002BH,是AT89S52在AT89S51单片机基础上新增加的T2对应的中断入口地址。
      使用汇编语言编程时,通常在这些中断入口地址处存放1条跳转指令跳向对应的中断服务子程序,而不是直接存放中断服务子程序。这是因为两个中断入口间隔仅有8个单元,如果这8个单元存放中断服务子程序,有时是不够用的。
    • AT89S52复位后,PC的内容为0000H,从程序存储器地址0000H处开始执行程序。由于外部中断0的中断服务程序入口地址为0003H,为使主程序不与外部中断0的中断服务程序发生冲突,一般在0000H单元存放一条跳转指令转向主程序的入口地址

2.4.2 数据存储器空间

  • 片内与片外两部分。

1.片内数据存储器(内部RAM)

  • AT89S52的片内数据存储器(RAM)共有256个单元,字节地址为00H~FFH。图2-6为AT89S52片内RAM的结构。地址为80H~FFH特殊功能寄存器区,与片内的高128B的RAM单元统一编址,但它是另一专用空间区域,将在后面介绍。

  • 00H~1FH32个单元是4组通用工作寄存器区,每区包含8B,为R7~R0。可通过指令改变RS1、RS0两位来选择。

  • 20H~2FH16个单元的128位可位寻址,也可字节寻址

  • 30H~FFH的单元只能字节寻址,用作存数据以及作为堆栈区。

  • AT89S52与AT89S51片内数据存储器相比,片内数据存储器RAM增加了128B,对应的字节地址为80H~FFH。这高128B的RAM单元地址与特殊功能寄存器区的字节地址重合,但它们是两个不同的物理区域。

  • 对这两个具有相同地址区域进行访问时,是由不同的指令寻址方式(将在指令系统一章中介绍)来区分,对地址为80H~FFH的RAM区,只能采用间接寻址方式访问,而对地址为80H~FFH的特殊功能寄存器区访问只能采用直接寻址方式。但是对于低128B(地址00H~7FH)的RAM区,即可采用直接寻址方式也可采用间接寻址方式来访问。

2.片外数据存储器

  • 当片内256B的RAM不够用时,需外扩,最多可外扩64KB的RAM。注意,片内RAM与片外RAM两个空间是相互独立的片内RAM与片外RAM的低256B的地址是相同的,但由于使用的是不同的访问指令,所以不会发生冲突。

2.4.3 特殊功能寄存器

  • 特殊功能寄存器映射在片内RAM的 80H~FFH 区域中,共32个。表2-4 SFR的名称及其分布。有些还可位寻址,位地址见表2-4。
  • 与AT89S51相比,新增加了6个特殊功能寄存器:T2CON、T2MOD、RCAP2L、RCAP2H、TL2和TH2,已在表2-4中标出。
  • 凡是可位寻址的SFR字节地址末位只能是0H或8H。另外,若读/写未定义单元,将得到一个不确定的随机数。
  • 下面介绍某些SFR,余下的SFR将在后面介绍。

1.堆栈指针SP

  • 堆栈只能设在片内的RAM区, SP指示堆栈顶部在内部RAM块中的位置。
  • 堆栈结构—向上生长型。单片机复位后,SP为07H,使得堆栈实际上从08H单元开始,由于08H~1FH单元分别是属于1~3组的工作寄存器区,最好在复位后把SP值改置为60H或更大的值,避免堆栈与工作寄存器冲突。
  • 堆栈是为子程序调用中断操作而设,用来保护断点和现场
    • (1)保护断点。无论是子程序调用操作还是中断服务子程序调用,最终都要返回主程序。应预先把主程序的断点在堆栈中保护起来,为程序正确返回做准备。
    • (2)现场保护。执行子程序或中断服务子程序时,要用到一些寄存器单元,会破坏原有内容。要把有关寄存器单元的内容保存起来,送入堆栈,这就是所谓的“现场保护”。
      两种操作:**数据压入(PUSH)**堆栈,**数据弹出(POP)**堆栈。数据压入堆栈,SP自动加1;数据弹出堆栈,SP自动减1。

2.寄存器B

  • 为执行乘法和除法而设。在不执行乘、除法操作的情况下,可把它当作一个普通寄存器来使用。
  • 乘法,两乘数分别在A、B中,执行乘法指令后,乘积在BA中。A * B = BA
  • 除法,被除数取自A,除数取自B,商存放在A中,余数存B中。A ÷ B = A ……B

3.AUXR寄存器

  • AUXR是辅助寄存器,其格式如图2-7所示:
  • 其中:
  • DISALE:ALE的禁止/允许位
    0:ALE有效,发出脉冲;
    1:ALE仅在执行MOVC和MOVX类指令时有效,不访问外部存储器时,ALE不输出脉冲信号。
  • DISRTO:禁止/允许WDT溢出时的复位输出。
    0:WDT溢出时,在RST引脚输出一个高电平脉冲;
    1:RST引脚仅为输入脚。
  • WDIDLE:WDT在空闲模式下的禁止/允许位。
    0: WDT在空闲模式下继续计数;
    1: WDT在空闲模式下暂停计数。

4. 数据指针DPTR0和DPTR1

  • 双数据指针寄存器,便于访问数据存储器
  • DPTR0:AT89C51单片机原有的数据指针;
  • DPTR1新增加的数据指针。
  • AUXR1DPS位用于选择两个数据指针。当DPS=0时,选用DPTR0;当DPS=1时,选用DPTR1。
  • 数据指针可作为一个16位寄存器来用,也可作为两个独立的8位寄存器DP0H(或DP1H)和DP0L(或DP1L)来用。

5. AUXR1寄存器

  • AUXR1是辅助寄存器,格式如图2-8所示:

  • DPS:数据指针寄存器选择位。

    • 0:选择数据指针寄存器DPTR0;
    • 1:选择数据指针寄存器DPTR1。

6. 看门狗定时器WDT

  • WDT包含一个14位计数器看门狗定时器复位寄存器——(WDTRST)。
  • 当CPU由于干扰,程序陷入死循环或跑飞状态时,WDT提供了一种使程序恢复正常运行的有效手段
  • 有关WDT在抗干扰设计中的应用以及低功耗模式下运行的状态,将在本章的2.9节中介绍。

2.4.4 位地址空间

  • 219个寻址位的位地址,位地址范围为 00H~FFH,其中 00H~7FH 这128位处于片内RAM 字节地址 20H~2FH 单元中,如表2-5所示。
  • 其余的91个可寻址位分布在特殊功能寄存器SFR中,见表2-6。


  • 从表2-6中可发现一个规律,凡是可位寻址的特殊功能寄存器,其最低的位地址等于其字节地址,且其字节地址的末位都为0H或8H

2.4.5 存储器结构总结

  • 作为对AT89S52存储器结构的总结,图2-9为各类存储器结构图。从图中可清楚看出各类存储器在存储器空间的位置。

【单片机】2.4 AT89S52的存储器结构相关推荐

  1. 8051单片机的存储器结构

    MCS-51单片机在物理结构上有四个存储空间: 1.片内程序存储器 2.片外程序存储器 3.片内数据存储器 4.片外数据存储器 但在逻辑上,即从用户的角度上,8051单片机有三个存储空间: 1.片内外 ...

  2. stm32的存储器结构

    https://blog.csdn.net/qq_33114231/article/details/78658465 首页 博客 学院 下载 图文课 论坛 APP CSDNCSDN学院 问答 商城 V ...

  3. DDR3内存详解,存储器结构+时序+初始化过程

    转载 DDR3内存详解,存储器结构+时序+初始化过程 2017-06-17 16:10:33 a_chinese_man 阅读数 23423更多 分类专栏: 硬件开发基础 转自:http://www. ...

  4. MCS-51单片机存储器结构-特殊功能寄存器 :堆栈指针SP(Stack Pointer)

    堆栈指针SP(Stack Pointer) 堆栈是一种数据结构,它是一个8位寄存器,它指示堆栈顶部在内部RAM中的位置.系统复位后,SP的初始值为07H,使得堆栈实际上是从08H开始的.但我们从RAM ...

  5. 单片机概述+AT89S51片内硬件结构

    文章目录 一.什么是单片机 MCS-51系列与AT89S51X系列单片机 二. AT89S51片内硬件结构 AT89S51单片机片内结构 引脚及功能 一.什么是单片机 单片机就是在一片半导体硅片上,集 ...

  6. PIC单片机入门_框架与存储器

    1.PIC16F877A单片机框架 1.1 为何性能如此之高? PIC单片机之所以有很高的性能是因为其具备如下特性: 内部为哈佛结构.寄存器文档.大多数单指令周期.指令流水线操作.长字型指令.指令数很 ...

  7. 计算机系统中三级存储器结构,计算机三级存储体系(1)

    ,四小组第二次讨论报告,计算机三级存储体系,first,,Introduction:,一级缓存都内置在CPU内部并与CPU同速运行,可以有效的提高CPU的运行效率.一级缓存越大,CPU的运行效率越高, ...

  8. C51 - 存储器结构

    STC89C516RD+存储器 1> 冯诺依曼 与 哈佛结构 1.1> 冯诺伊曼结构 1.2> 哈佛结构 2> AT89C51内部结构 3> STC89C51RC/RD+ ...

  9. AVR 单片机与GCC 编程之存储器操作

    AVR 系列单片机内部有三种类型的被独立编址的存储器,它们分别为:Flash 程序存储器.内部SRAM 数据存储器和EEPROM 数据存储器. Flash 存储器为1K-128K 字节,支持并行编程和 ...

  10. 0x18 大容量存储器结构

    一.磁盘结构和管理 磁盘结构 盘片是存储数据的介质,正反两面可以存储数据: 磁头可以读写数据,沿磁盘半径移动,有多少盘面就有多少磁头: 主轴由马达驱动,使盘片以固定速度旋转. 磁盘和计算机之间有接口, ...

最新文章

  1. R构建lasso回归模型并获得最佳正则化系数
  2. 片(Slice)结构
  3. 我的Java开发学习之旅------gt;Base64的编码思想以及Java实现
  4. 【论文解读】NLP重铸篇之Word2vec
  5. python爬虫爬微信红包_python 微信红包
  6. 将一段区间的偶数分解为两个素数相加(Java)
  7. 微信小程序父子组件通信
  8. 资源放送丨《Oracle数据库之Object的Access方法和结合方法》PPT视频
  9. 【Kafka】Kafka topic 的消费组 出现 CURRENT_OFFSET 为 unknown
  10. Python 基于sympy模块求极值 导数 偏导
  11. 总结jquery-seat-charts插件使用方法
  12. 中国象棋马走日(要求打印每一种走法) — 递归
  13. linux虚拟网卡卸载,virbr0虚拟网卡如何卸载?virbr0虚拟网卡的卸载方法
  14. Keil MDK5工程文件不可修改(文件符号上带一个黄色的钥匙)
  15. 如何创建一个微信公众号(手把手、超详细)
  16. 记一次天地图https无法访问
  17. 初识Matlab以及Matlab一般性教程
  18. shell du命令
  19. 交换机loopback口
  20. 污染源动态管控系统 污染源动态管理系统

热门文章

  1. 解决 The file will have its original line endings in your working directory
  2. caxa齿轮零件图_CAXA软件如何快速地画一个齿轮?
  3. 蔡学镛:写SOP(标准作业程序)就是写程序
  4. pyecharts(9)-动态可视化-树形图-思维导图
  5. JS基础知识思维导图
  6. 工具分享: 一键保存网页为PDF文件
  7. 使用Py-OpenCV(SIFT关键点)实现自然图像中的logo商标识别和定位
  8. java图片转换pdf_Java将图片转化为PDF的方法(1)
  9. Caffe框架的基本操作和分析
  10. MongoDb学习(五)--Gridfs--上传下载