MCS-51系列单片机存储器结构


前言

昨天下午把MCS-51系列单片机的硬件结构,包括51单片机的基本结构、51单片机的引脚描述、51单片机的中央处理器(CPU)等部分给梳理了一下,但昨天时间不太够加上我想单独的整理一下存储器结构这部分昨天就没整,来了今天就把存储器结构给整明明白白。


一、存储器总体结构概述

关系: 一般微机通常是程序和数据共用一个存储空间,即ROM和RAM统一编址,属于“冯 诺依曼”结构。而单片机的存储器结构则把存储空间和数据存储空间严格区分开来,即程序存储器ROM和数据存储器RAM分开编址,属于“哈佛”结构。

用途:
程序存储器ROM用于固化程序,常数和数据表。
数据存储器RAM用于存放程序运行中产生的各种数据并用于堆栈。

51单片机存储器结构如图所示:

在这里插入图片描述
储存空间的划分:
(1)51单片机存储器在物理结构上分成四个空间:片内程序存储器、片外程序存储器、片内数据存储器和片外数据存储器。(2)逻辑考虑,则有三个存储空间:片内外统一编址的64KB程序存储器地址空间(0000H ~FFFFH)、256B的片内数据存储器地址空间(00H ~FFH)及片外数据存储器地址空间(0000H ~FFFFH)。

CPU访问指令:
CPU在访问三个不同的逻辑空间时,通过采用不同形式的指令,来产生相应的存储器选通信号,访问程序存储器使用MOVC指令、访问片内数据存储器使用MOV指令、访问片外数据存储器使用MOVX指令。

二、程序存储器ROM

(1)51单片机程序存储器ROM

它用于存放编好的程序、常数或表格。在正常工作时只可读不可写,掉电后数据不丢失。
(1)片内具有4KB的Flash结构的电可擦除只读存储器。
(2)外部可扩展64KB的ROM,建议不用,只有当程序特别大、内部空间无法满足要求时才选择扩展外部ROM。
(3)程序内存最低端的地址可以在片内Flash中或在外部ROM中,可以通过单片机/EA的引脚的电平来选择。
例如:在带有4KB片内Flash的51单片机中,如果把/EA引脚接到VCC,当地址为0000H~0FFFH,则访问内部Flash;地址为1000H ~FFFFH时,将自动转向外部程序内存。
如果/EA端接地,则只访问外部程序内存,不管是否存在内部Flash内存。

(2)51单片机程序存储器管理

(1)每个ROM单元(Byte)对应一个唯一的16bit的地址编码(Address)
(2)CPU要到某个ROM单元去取指令,是通过把地址编码写入16位的程序计数器PC来实现的,因此AT89系列单片机地址的编码范围(通常称为寻址范围)为:

在这里插入图片描述
(3)系统复位后,PC的初始值为0000H,以后的取值是CPU根据用户程序的运行流程自动装载的(程序顺序执行时,PC值自动加1;执行转移指令、子程序调用和中断服务程序时,PC值分别等于转移的目标地址,子程序或中断服务程序的入口地址)

(3)51单片机程序存储器的分配

程序内存的某些单元是保留给系统使用的,这几个单元的配置如图所示:单片机复位后,程序计数器PC的内容为0000H,所以CPU总是从0000H单元开始执行程序。

在这里插入图片描述
从地址0003H开始,系统每隔8个单元为6个中断服务子程序分配有一个固定的入口地址。
如外部中断0的入口地址为0003H;
定时器0的入口地址为000BH;
外部中断1的入口地址为0013H;
定时器的入口地址为001B;以此类推
中断响应后,程序指针PC将自动根据中断类型指向这些入口地址的某一个,CPU就从这里开始执行中断服务子程序。
因此从0003H单元开始的这段区域应该保留给中断使用,所以程序设计时在000H~0002H单元放值一条转移指令,跳过这段区域,直接转到系统主程序,除非系统不使用中断,主程序才可以覆盖这段区域。

三、片内数据存储器

片内数据存储器地址范围是00H~FFH,只有256B,这里仅介绍低128字节区,高128字节区被特殊功能寄存器占有。
低128字节区主要分为三个区域:工作寄存器组区、位寻址区、用户RAM区。
单片机的片内数据存储器结构如图所示:

在这里插入图片描述

(1)工作寄存器区

最低32个单元(地址为00H~1FH)为4个通用工作寄存器组。每个寄存器组含有8个8位寄存器,编号为R0 ~R7。
程序状态字PSW中的2位RS0、RS1用来确定当前采用哪一个工作寄存器组,对应关系昨天单片机的硬件结构整理的有专有图表。
在某一时刻只能选用其中的一组寄存器工作,系统复位后,指向工作寄存器组0.如果用户程序不需要4个工作寄存器区,则不用工作寄存器单元可以作一般的RAM使用

(2)位寻址区

内部RAM区中的20H~2FH单元(16B)可供位寻址,这16个单元共有128位,每位均可直接寻址,其位地址范围为00H ~7FH,具体情况见下表:

在这里插入图片描述
在这里插入图片描述
两种寻址方式:
1、位地址形式,即00H~7FH
2、单元地址(20H~2FH).位数方式 表示,即20H.0 ~20H.7

(3)用户RAM区

30H~7FH共有80个字节单元,为字节寻址的内部RAM区,可供用户作为数据存储区。

堆栈: 按先进先出或后进先出原则进行读/写的特殊RAM区域。51单片机的堆栈区是不固定的,原则上可设置在内部RAM的任意区域内,实际根据片内RAM各功能区的使用情况确定,避开工作寄存区、位寻址区、用户实际使用数据区,一般在2FH地址单元以后的区域。

堆栈作用: 主要用在子程序调试或中断处理过程中,用于保护断点和现场,实现子程序或中断的多级嵌套处理。还可以保护其他一些重要信息。也可作为数据交换区使用。

确定堆栈的位置: 栈顶的位置由专门设置的堆栈指针SP指出。

(4)特殊功能寄存器

内部RAM的高128字节区是给特殊寄存器使用的,也称为专用寄存器区,单元地址位为80H~FFH。寄存器的功能已专门规定,也称为专用寄存器或特殊功能寄存器,简称SFR。51单片机SFR总数为26个,占80H ~0FFH中很小一部分,是单片机内的指挥单元。
51系列单片机内I/O锁存器、定时器、串行口数据缓冲区以及各种控制寄存器和状态寄存器都以特殊功能寄存器的形式出现。他们离散地分布在80H~0FFH的地址空间范围内,具体如下表所示:
在这里插入图片描述
图中列出了所有特殊功能寄存器及其地址和初始值。
SFR的使用方法如下:
1)除了SFR之外剩余的空闲单元,用户不得使用。读这些地址,一般将得到一个随机数据,写入的数据将会无效。

2)必须使用直接寻址方式对SFR进行访问,可使用寄存器名称(是它的符号地址)或地址。例如:
0EOH——累加器的地址
ACC——累加器名称

3)具有位地址和位名称的SFR才可以进行位寻址,位地址有以下4种表示形式:
①直接使用位地址表示:0D7H——PSW最高位的位地址
②使用位名称表示:CY——PSW最高位的名称
③使用SFR字节地址和位形式表示:0D7H.7——PSW字节地址.最高位
④使用SFR名称和位形式表示:PSW.7——PSW名称.最高位

四、片外数据存储器

片外数据存储器的P0端口作为RAM的地址/数据总线,当外部地址空间小于FFH时,只需P0口作为地址总线即可,P2口可作为一般的I/O口使用。

当外部地址空间大于FFH时,则由P2端口传送高8位地址。对片外数据存储器的访问,使用MOVX的间接寻址指令,以区别对内部RAM(片内用MOV)的访问,同时自动产生读/写控制信号RD和WR。

片外RAM做通用RAM使用,主要存放大量采集的或接收的数据、运算的中间数据、最后结构和堆栈数据等。

五、地址空间

(1)片外总线结构

1)地址总线(AB)。地址总线的宽度是16位,因此可以寻址的范围是64KB。采用分时复用技术,可以对外部64KB的数据存储器或程序存储器直接寻址。它由P0口提供16位地址总线的低8位(A0~A7),由P2口提供地址总线的高8位(A8 ~A15)

2)数据总线(DB)。数据总线的宽度是8位,它由P0口提供

3)控制总线(CB)。控制总线由P3口的第二功能(RXD、TXD、INT0、INT1、T0、T1、RD、WR)和4根独立的控制线(RST、EA、ALE、PSEN)组成

(2)程序存储器地址空间

程序存储器通过16位程序计数器寻址,寻址能力为64KB,可使指令能在64KB空间内任意跳转。51单片机ROM的地址范围为0000H~0FFFH。
在这里插入图片描述

(3)数据存储地址空间

1)片内RAM
①工作寄存区:51单片机的前32个单元(地址00H~1FH)称为寄存器区。通过对特殊功能寄存器PSW中RS1、RS0两位的编程设置,可选择任一寄存器组为工作寄存器组。
②位寻址区:字节地址20H到2FH称为位地址区,共16B,计128位,每位都有相应的位地址,位地址范围00H~7FH。
③便笺j(ian)区:30H~7FH,便笺区共有80个RAM单元,用于存放用户数据或作堆栈区使用。51单片机对便笺区中每个RAM单元是按字节存取的。
④特殊功能寄存器(26个):51单片机片内高128B RAM中,有26个特殊功能寄存器(SFR),他们离散地分布在80H~FFH地RAM空间中。访问特殊功能寄存器只允许使用直接寻址方式。特殊功能寄存器见下表:
在这里插入图片描述
在这里插入图片描述
2)片外RAM
51单片机构成的应用系统当片内RAM不够用时,可在片外部扩充数据存储器。51单片机给用户提供了可寻址64KB(0000H~FFFFH)的外部扩充RAM的能力,扩充RAM的多少,根据用户实际需要来定。


总结

哇,终于给写完了,这部分的知识真的是太琐碎了,从存储器总体结构概述说起,还有51单片机程序存储器ROM,又包括51单片机程序存储器管理和51单片机程序存储器的分配。
再到片内数据存储器,工作寄存器区,位寻址区,用户RAM区,特殊功能寄存器等
还有片外数据存储器和地址空间这些知识学起来简单,但真正学完让我去用,我觉得还有很长的路,不管了,就当是回忆簿等忘记了再来找吧/(ㄒoㄒ)/~~。继续加油!

  • 50
    点赞
  • 118
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
### 回答1: MCS-51 单片机是一种可编程控制器(Programmable Controller,简称 PLC),是一种广泛使用的微控制器。它的硬件结构由 CPU、存储器、输入/输出(I/O)以及中断控制器组成。 - CPU(中央处理器)是 MCS-51 单片机的核心,负责执行程序指令。MCS-51 单片机采用 Harvard 结构的 CPU,其中有一个可编程指令寄存器(Programmable Instruction Register,简称 PIR),用于存储执行的指令。 - 存储器包括内部存储器和外部存储器。内部存储器包括程序存储器、数据存储器和系统寄存器。程序存储器用于存储程序指令,数据存储器用于存储程序运行时的数据,系统寄存器包括栈指针、程序计数器等。外部存储器可以是 ROM、RAM 或 EPROM 等,用于存储更多的程序和数据。 - 输入/输出(I/O)是 MCS-51 单片机与外界交互的接口,包括数字输入/输出模块、模拟输入/输出模块和串行通信模块。 - 中断控制器负责处理外部中断,包括定时器中断、串行通信中断 ### 回答2: MCS-51 单片机是一种经典的8位单片机,内部包含了许多重要的硬件结构。 首先,MCS-51 单片机的核心是一个8位的CPU,它支持多种数据操作指令和地址计算方式。CPU 还具有内部寄存器,包括累加器、程序计数器、数据指针和状态寄存器等,用于执行各种指令和管理程序运行。 MCS-51 单片机还拥有4KB到64KB的存储器,包括ROM和RAM。ROM 用于存放程序代码,而RAM 则用于存储数据。此外,它还提供了特殊功能的SFR(特殊功能寄存器),用于控制外设和执行特定功能。 MCS-51 单片机还具有多个输入/输出端口,用于连接外部设备。这些输入/输出端口可以被程序读写,用于与外界交互,实现数据的输入和输出。 此外,MCS-51 单片机还包含多个定时器/计数器和串行通信接口。定时器/计数器用于生成精确的时间延迟和计数操作,而串行通信接口则负责与外部设备进行数据传输。 最后,MCS-51 单片机还具有一些辅助功能,如中断控制器、时钟控制器和电源管理等。中断控制器可以实现中断处理,时钟控制器则用于产生CPU时钟,电源管理功能用于节约电能和提高系统效率。 综上所述,MCS-51 单片机的硬件结构包括CPU、存储器、输入/输出端口、定时器/计数器、串行通信接口和辅助功能等部分,这些硬件结构相互配合,共同实现了单片机的各种功能和特性。 ### 回答3: MCS-51是Intel公司推出的一款经典的8位单片机,其内部硬件结构包括CPU、存储器、定时器、串行通信接口等模块。 首先,MCS-51单片机的核心是CPU,它使用了面向寄存器的架构。它包含有8位的累加器A、8位的指令寄存器IR,以及可供程序访问的8位工作寄存器B。CPU还包括了算术逻辑单元ALU,用于执行算术和逻辑运算。 其次,MCS-51单片机内部集成了存储器模块。其中,片内RAM用于存储程序和数据,有128字节或256字节的容量可选。另外,片内ROM用于存储程序代码,可以是4KB或8KB的容量。这两种存储器都可以通过直接地址访问。 此外,MCS-51单片机还具有定时器和计数器模块。其中,定时器0和定时器1可以用作16位定时器,也可以配置为计数器。另外,还有可编程的串行通信接口P1和P3,用于实现与其他设备的串行通信。 最后,MCS-51单片机还具有一些外部接口,如串口通信接口、中断控制器等。其串口通信接口可实现与外部设备的串行通信,其中包括UART和SPI等不同通信模式。而中断控制器可管理外部中断和定时器中断,提供了针对中断的优先级和屏蔽。 总之,MCS-51单片机具有丰富的内部硬件结构,包括CPU、存储器、定时器、串行通信接口等模块。这些模块的结合使得MCS-51单片机成为一款灵活且强大的微控制器,广泛应用于嵌入式系统和物联网设备中。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值