51单片机存储器的结构
- 格式:doc
- 大小:80.00 KB
- 文档页数:5
51 单片机片内256 字节数据存储器的结构划分以及对应的寻址方式1. 引言1.1 概述在现代电子技术的快速发展下,单片机已经成为各种电子设备中必不可少的核心控制部件之一。
而51单片机作为最常用的单片机之一,其内部结构和功能一直备受关注。
本文将主要探讨51单片机中的一个重要组成部分——256字节数据存储器,介绍其结构划分以及对应的寻址方式。
1.2 文章结构本文总共包含五个部分。
首先是引言部分,介绍文章的概述、结构和目的。
第二部分将详细阐述51单片机中256字节数据存储器的结构划分,强调其在整个单片机系统中的重要性。
第三部分将着重介绍对应于256字节数据存储器的寻址方式,包括直接寻址方式、间接寻址方式和寄存器间接寻址方式等。
第四部分将通过具体实例来探讨256字节数据存储器在不同应用场景下的使用方法和优化方案。
最后一部分是结论和展望,在对前文进行总结基础上,提出未来研究方向和发展建议。
1.3 目的本文旨在深入探讨51单片机中256字节数据存储器的结构划分和对应的寻址方式,通过具体实例的分析,揭示其在不同应用场景下的优势和应用方法。
希望通过本文的研究和讨论,读者能够更好地理解和应用256字节数据存储器,为单片机系统设计提供有益的参考和指导。
2. 51单片机片内256字节数据存储器的结构划分2.1 片内数据存储器的重要性在嵌入式系统设计中,片内数据存储器是非常重要的组成部分。
它用于存储程序指令、变量数据以及其他运行时需要使用的临时数据。
片内数据存储器的规模和结构会直接影响到系统性能和资源利用率。
2.2 51单片机中的256字节数据存储器概述51单片机是一款广泛应用于各种电子设备中的经典单片机。
其中包含了一个256字节大小的片内数据存储器,用于存储程序指令和变量数据。
这256字节数据存储器可以被划分为不同的区域,每个区域有不同的功能和使用方式。
下面将介绍这些区域以及其对应功能。
2.3 256字节数据存储器的物理结构划分在51单片机中,256字节数据存储器可以被划分为以下几个区域:1) SFR(特殊功能寄存器)区域:这个区域占据了部分地址空间,用于保存各种特殊功能寄存器的值。
51单片机的基本结构51单片机是一种高性能、低功耗的微控制器,是嵌入式系统中常用的一种芯片。
它具有集成度高、易编程、可编程性强等特点,在各种电子设备中广泛应用,包括家电、工业控制、汽车电子、智能仪器等领域。
51单片机的基本结构主要包括CPU、存储器、输入输出端口、定时计数器和串口通信等部分。
1.CPU51单片机的CPU是其核心部分,负责执行指令、进行运算处理。
它通常采用哈佛结构,即指令和数据分开存储。
51单片机的CPU主要由ALU (算术逻辑单元)、寄存器组、指令寄存器、程序计数器等部分组成,能够完成基本的运算和控制功能。
2.存储器51单片机的存储器包括ROM(只读存储器)和RAM(随机存储器)。
ROM用于存储程序代码和常量数据,是只读的;RAM用于存储变量数据和临时结果,是可读写的。
在51单片机中,通常ROM用于存储程序代码和初始化数据,RAM用于存储运行时数据和临时结果。
3.输入输出端口51单片机的输入输出端口用于与外部设备进行数据交换。
它可以通过不同的接口与外部设备连接,比如并行口、串行口、通用输入输出口等。
通过输入输出端口,51单片机可以与外部设备进行数据传输和通信,实现各种功能。
4.定时计数器51单片机的定时计数器可以用于计时和计数,通常用于控制时序和频率。
在51单片机中,定时计数器可以生成各种定时中断,实现定时控制功能。
定时计数器可以根据需要设定不同的时钟源和计数模式,实现灵活的定时控制。
5.串口通信51单片机的串口通信功能可以用于与外部设备进行串行通信,比如与PC机、外围设备等进行数据传输。
串口通信包括串行口和UART(通用异步收发器),可以通过串行口进行双向数据传输。
串口通信在51单片机中广泛应用于各种通信设备和控制系统中。
总的来说,51单片机的基本结构包括CPU、存储器、输入输出端口、定时计数器和串口通信等部分,通过这些部分的组合和协作,可以实现各种功能和应用。
在实际应用中,设计人员可以根据需要对这些部分进行配置和扩展,实现更丰富的功能和性能要求。
51单片机数据存储器结构详解1、bit是在内部数据存储空间中20H..2FH区域中一个位的地址,这在DATA的20H以后以字节形式出现,可互相参照。
另外加上8051可寻址的SFR,但刚刚试过,只是00H--7FH起作用,也就是说当数据有变化时颜色变红,以后的从80H到--FFH就不是位寻址区了,是位寻址的特殊寄存器,如涉及到了可位寻址的那11个当然会有反应。
复位后,程序计数器PC的内容为0000H,内部RAM各单元的值不确定。
各功能寄存器的复位值如下:堆栈指针SP的复位值为07H,累加器ACC、寄存器B的复位值为00H,数据指针DPTR的复位值为0000H,而p0、p1、p2、p3四个口的复位值为0FFH。
其他SFR如PSW、TCON、TMOD、TL0、TH0、TL1、TH1的复位值也为00H。
2、wave中是低128字节和高128字节(0-7FH),低128字节是片内RAM区,高128字节(80-FFH)是SFR(特殊功能寄存器)bit则是位于低128字节的20H..2FH区域,即data的20H..2FH区域3、code是在0000H..0FFFFH之间的一个代码地址。
例如:ORG5000HTAB:DB22H,3BH,43H,66H,5H,6DH,88H后,CODE从5000H开始以后变成DB各位4、data是在0到127之间的一个数据存储器地址,或者加128..255范围内的一个特殊功能寄存器(SFR)地址。
两者访问的方式不同。
实际上由于PSW的复位设置PSW.3=RS0和PSW.4=RS1皆为0,所以通用工作寄存器区就是第0区,所以data的00--07H部分是与REG栏中的R0--R7对应的。
以后的则仅代表低128字节的内部RAM。
5、idata是0to255范围内的一个idata存储器地址。
idata与data 重合低128字节,有的地方只有DATA表示256字节的片内RAM,某data 是0to65535范围内的一个某data存储器地址。
简述51系列单片机的内部组成结构51系列单片机是一种广泛应用的单片机,是微控制器中的经典代表之一。
该系列单片机由中央处理器(CPU)、存储器、输入输出(I/O)接口、时钟和电源等部分组成。
以下是51系列单片机的内部组成结构的简要概述:1. CPU51系列单片机的CPU由一个4位二进制数组成的处理器核心组成,具有高速、低功耗、低延迟的特点。
CPU负责控制整个系统的运行,包括指令的执行、数据的读取和写入、程序的控制等。
2. 存储器51系列单片机的存储器分为外存储器和内存储器两种。
外存储器包括一个或多个随机存取存储器(RAM)和一个或多个只读存储器(ROM),RAM用于存储程序和数据,ROM用于存储固定的程序和数据。
内存储器是51系列单片机的核心存储器,包括一个数据存储器和一个指令存储器,数据存储器用于存储程序和数据,指令存储器用于存储程序的指令集。
3. 输入输出(I/O)接口51系列单片机的输入输出接口包括多个引脚,用于与外部设备进行通信。
输入接口用于接收外部设备的数据,输出接口用于将外部设备的数据发送出去。
I/O 接口的主要功能是控制外部设备的运行,包括读取、写入、控制等。
4. 时钟51系列单片机的时钟由一个时钟芯片组成,用于驱动系统的运行。
时钟芯片可以控制CPU和存储器的读写速度,控制I/O接口的响应速度等。
5. 电源51系列单片机的电源由一个电源芯片组成,用于提供系统的直流供电。
电源芯片可以控制电流的大小和流向,保证系统的稳定运行。
除了以上基本组成部分外,51系列单片机还具有其他一些重要的组成部分,如控制电路、中断控制器、寄存器等。
这些组成部分共同构成了一个完整的系统,使51系列单片机能够实现各种复杂的功能。
51系列单片机的内部组成结构非常复杂,包括多个重要的组成部分,能够实现各种复杂的功能。
深入了解51系列单片机的内部组成结构,有助于我们更好地理解和使用该系列单片机。
MCS-51 单片机的存储器组织结构
特点:哈佛结构,程序存储器与数据存储器分开,两者各有一个相互独
立的64K(0x0000 ~ 0xFFFF)的寻址空间(准确地说,内部数据存储器与外部数据存储器不是一回事)。
程序存储器:
①用于存放程序(可执行的二进制代码映像文件,包括程序中的数据信息),还包括初始化代码等固件。
②为只读存储器。
注意,这里的只读,是指单片机(CPU)在正常工作时对其的访问方式是只读的;而现在大多数单片机的程序存储器(不管是内部还
是外部)都采用了FLASH ROM,来取代以前所用的ROM、E2PROM 等,可方便地进行在线编程(ISP)。
③标准8051 的内部程序存储器大小为4KB(0x0000 ~ 0x0FFF);而具体的
51 核的兼容单片机的内部ROM 大小需要参考其Datasheet,例如
P89C51RA2xx 的内部程序存储器是8K 的Flash。
④内部、外部存储器统一编址,在软件设计上(指令系统中)没有差别;是否使用外部程序存储器是通过引脚EA 在硬件电路上控制的:不使用外部程
序存储器时,EA=0(接地);如果扩展了外部程序存储器,则使EA=1,当寻址
到内部存储空间以外时,会自动转向外部程序存储器空间(与扩展外部程序存。
MCS-51单片机在物理结构上有四个存储空间:1、片内程序存储器2、片外程序存储器3、片内数据存储器4、片外数据存储器但在逻辑上,即从用户的角度上,8051单片机有三个存储空间:1、片内外统一编址的64K的程序存储器地址空间(MOVC)2、256B的片内数据存储器的地址空间(MOV)3、以及64K片外数据存储器的地址空间(MOVX)在访问三个不同的逻辑空间时,应采用不同形式的指令(具体我们在后面的指令系统学习时将会讲解),以产生不同的存储器空间的选通信号。
程序内存ROM寻址范围:0000H ~ FFFFH 容量64KBEA = 1,寻址内部ROM;EA = 0,寻址外部ROM地址长度:16位作用:存放程序及程序运行时所需的常数。
七个具有特殊含义的单元是:0000H ——系统复位,PC指向此处;0003H ——外部中断0入口000BH —— T0溢出中断入口0013H ——外中断1入口001BH —— T1溢出中断入口0023H ——串口中断入口002BH —— T2溢出中断入口内部数据存储器RAM物理上分为两大区:00H ~ 7FH即128B内RAM 和 SFR区。
作用:作数据缓冲器用。
下图是8051单片机存储器的空间结构图程序存储器一个微处理器能够聪明地执行某种任务,除了它们强大的硬件外,还需要它们运行的软件,其实微处理器并不聪明,它们只是完全按照人们预先编写的程序而执行之。
那么设计人员编写的程序就存放在微处理器的程序存储器中,俗称只读程序存储器(ROM)。
程序相当于给微处理器处理问题的一系列命令。
其实程序和数据一样,都是由机器码组成的代码串。
只是程序代码则存放于程序存储器中。
MCS-51具有64kB程序存储器寻址空间,它是用于存放用户程序、数据和表格等信息。
对于内部无ROM的8031单片机,它的程序存储器必须外接,空间地址为64kB,此时单片机的端必须接地。
强制CPU从外部程序存储器读取程序。
MCS-51单片机存储器结构从用户的角度上,8051单片机有三个存储空间:1、片内外统一编址的64K的程序存储器地址空间(MOVC)2、256B的片内数据存储器的地址空间(MOV)3、以及64K片外数据存储器的地址空间(MOVX)在访问三个不同的逻辑空间时,应采用不同形式的指令,以产生不同的存储器空间的选通信号。
【程序内存ROM】寻址范围:0000H ~ FFFFH 容量64KBEA = 1,寻址内部ROM;EA = 0,寻址外部ROM地址长度:16位作用:存放程序及程序运行时所需的常数。
七个具有特殊含义的单元是:0000H ——系统复位,PC指向此处;0003H ——外部中断0入口000BH —— T0溢出中断入口0013H ——外中断1入口001BH —— T1溢出中断入口0023H ——串口中断入口002BH —— T2溢出中断入口【内部数据存储器RAM】物理上分为两大区:00H ~ 7FH(低128单元用户RAM 和高128单元SFR区)作用:作数据缓冲器用。
一个微处理器能够聪明地执行某种任务,除了它们强大的硬件外,还需要它们运行的软件,其实微处理器并不聪明,它们只是完全按照人们预先编写的程序而执行之。
那么设计人员编写的程序就存放在微处理器的程序存储器中,俗称只读程序存储器(ROM)。
程序相当于给微处理器处理问题的一系列命令。
其实程序和数据一样,都是由机器码组成的代码串。
只是程序代码则存放于程序存储器中。
MCS-51具有64kB程序存储器寻址空间,它是用于存放用户程序、数据和表格等信息。
(对于内部无ROM的8031单片机,它的程序存储器必须外接,空间地址为64kB,此时单片机的EA端必须接地。
强制CPU从外部程序存储器读取程序。
)对于内部有ROM的8051等单片机,正常运行时,则需接高电平,使CPU先从内部的程序存储中读取程序,当PC 值超过内部ROM的容量时,才会转向外部的程序存储器读取程序。
MCS-51单片机在物理结构上有四个存储空间:
1、片程序存储器
2、片外程序存储器
3、片数据存储器
4、片外数据存储器
但在逻辑上,即从用户的角度上,8051单片机有三个存储空间:
1、片外统一编址的64K的程序存储器地址空间(MOVC)
2、256B的片数据存储器的地址空间(MOV)
3、以及64K片外数据存储器的地址空间(MOVX)
在访问三个不同的逻辑空间时,应采用不同形式的指令(具体我们在后面的指令系统学习时将会讲解),以产生不同的存储器空间的选通信号。
程序存ROM
寻址围:0000H ~ FFFFH 容量64KB
EA = 1,寻址部ROM;EA = 0,寻址外部ROM
地址长度:16位
作用:存放程序及程序运行时所需的常数。
七个具有特殊含义的单元是:
0000H ——系统复位,PC指向此处;
0003H ——外部中断0入口
000BH —— T0溢出中断入口
0013H ——外中断1入口
001BH —— T1溢出中断入口
0023H ——串口中断入口
002BH —— T2溢出中断入口
部数据存储器RAM
物理上分为两大区:00H ~ 7FH即128BRAM 和 SFR区。
作用:作数据缓冲器用。
下图是8051单片机存储器的空间结构图
程序存储器
一个微处理器能够聪明地执行某种任务,除了它们强大的硬件外,还需要它们运行的软件,其实微处理器并不聪明,它们只是完全按照人们预先编写的程序而执行之。
那么设计人员编写的程序就存放在微处理器的程序存储器中,俗称只读程序存储器(ROM)。
程序相当于给微处理器处理问题的一系列命令。
其实程序和数据一样,都是由机器码组成的代码串。
只是程序代码则存放于程序存储器中。
MCS-51具有64kB程序存储器寻址空间,它是用于存放用户程序、数据和表格等信息。
对于部无ROM 的8031单片机,它的程序存储器必须外接,空间地址为64kB,此时单片机的端必须接地。
强制CPU从外部程序存储器读取程序。
对于部有ROM的8051等单片机,正常运行时,则需接高电平,使CPU先从部的程序存储中读取程序,当PC值超过部ROM的容量时,才会转向外部的程序存储器读取程序。
当=1时,程序从片ROM开始执行,当PC值超过片ROM容量时会自动转向外部ROM空间。
当=0时,程序从外部存储器开始执行,例如前面提到的片无ROM的8031单片机,在实际应用中就要把8031的引脚接为低电平。
8051片有4kB的程序存储单元,其地址为0000H—0FFFH,单片机启动复位后,程序计数器的容为0000H,所以系统将从0000H单元开始执行程序。
但在程序存储中有些特殊的单元,这在使用中应加以注意:其中一组特殊是0000H—0002H单元,系统复位后,PC为0000H,单片机从0000H单元开始执行程序,如果程序不是从0000H单元开始,则应在这三个单元中存放一条无条件转移指令,让CPU直接去执行用户指定的程序。
另一组特殊单元是0003H—002AH,这40个单元各有用途,它们被均匀地分为五段,它们的定义如下:
0003H—000AH 外部中断0中断地址区。
000BH—0012H 定时/计数器0中断地址区。
0013H—001AH 外部中断1中断地址区。
001BH—0022H 定时/计数器1中断地址区。
0023H—002AH 串行中断地址区。
可见以上的40个单元是专门用于存放中断处理程序的地址单元,中断响应后,按中断的类型,自动转到各自的中断区去执行程序。
从上面可以看出,每个中断服务程序只有8个字节单元,用8个字节来存放一个中断服务程序显然是不可能的。
因此以上地址单元不能用于存放程序的其他容,只能存放中断服务程序。
但是通常情况下,我们是在中断响应的地址区安放一条无条件转移指令,指向程序存储器的其它真正存放中断服务程序的空间去执行,这样中断响应后,CPU读到这条转移指令,便转向其他地方去继续执行中断服务程序。
下图是ROM的地址分配图:
从上图家可以看到,0000H-0002H,只有三个存储单元,3个存储单元在我们的程序存放时是存放不了实际意义的程序的,通常我们在实际编写程序时是在这里安排一条ORG指令,通过ORG指令跳转到从0033H开始的用户ROM区域,再来安排我们的程序语言。
从0033开始的用户ROM区域用户可以通过ORG指令任意安排,但在应用中应注意,不要超过了实际的存储空间,不然程序就会找不到。
数据存储器
数据存储器也称为随机存取数据存储器。
数据存储器分为部数据存储和外部数据存储。
MCS-51部R AM有128或256个字节的用户数据存储(不同的型号有分别),片外最多可扩展64KB的RAM,构成两个地址空间,访问片RAM用“MOV”指令,访问片外RAM用“MOVX”指令。
它们是用于存放执行的中间结果和过程数据的。
MCS-51的数据存储器均可读写,部分单元还可以位寻址。
MCS-51单片机的部数据存储器在物理上和逻辑上都分为两个地址空间,即:
数据存储器空间(低128单元);
特殊功能寄存器空间(高128单元);
这两个空间是相连的,从用户角度而言,低128单元才是真正的数据存储器。
下面我们就来详细的与大家讲解一下:
低128单元:
片数据存储器为8位地址,所以最大可寻址的围为256个单元地址,对片外数据存储器采用间接寻址方式,R0、R1和DPTR都可以做为间接寻址寄存器,R0、R1是8位的寄存器,即R0、R1的寻址围最大为
256个单元,而DPTR是16位地址指针,寻址围就可达到64KB。
也就是说在寻址片外数据存储器时,寻址围超过了256B,就不能用R0、R1做为间接寻址寄存器,而必须用DPTR寄存器做为间接寻址寄存器。
从上图中我们可以看到,8051单片机片RAM共有256个单元(00H-FFH),这256个单元共分为两部分。
其一是地址从00H—7FH单元(共128个字节)为用户数据RAM。
从80H—FFH地址单元(也是128个字节)为特殊寄存器(SFR)单元。
从图1中可清楚地看出它们的结构分布。
1、通用寄存器区(00H-1FH)
在00H—1FH共32个单元中被均匀地分为四块,每块包含八个8位寄存器,均以R0—R7来命名,我们常称这些寄存器为通用寄存器。
这四块中的寄存器都称为R0—R7,那么在程序中怎么区分和使用它们呢?聪明的INTEL工程师们又安排了一个寄存器——程序状态字寄存器(PSW)来管理它们,CPU只要定义这个寄存的PSW的D3和D4位(RS0和RS1),即可选中这四组通用寄存器。
对应的编码关系如下表所示。
惹程序中并不需要用4组,那么其余的可用做一般的数据缓冲器,CPU在复位后,选中第0组工作寄存器。
2、位寻址区(20H-2FH)
片RAM的20H—2FH单元为位寻址区,既可作为一般单元用字节寻址,也可对它们的位进行寻址。
位寻址区共有16个字节,128个位,位地址为00H—7FH。
位地址分配如下表所示:
CPU能直接寻址这些位,执行例如置“1”、清“0”、求“反”、转移,传送和逻辑等操作。
我们常称MC S-51具有布尔处理功能,布尔处理的存储空间指的就是这些为寻址区。
3、用户RAM区(30H-7FH)
在片RAM低128单元中,通用寄存器占去32个单元,位寻址区占去16个单元,剩下的80个单元就是供用户使用的一般RAM区了,地址单元为30H-7FH。
对这部份区域的使用不作任何规定和限制,但应说明的是,堆栈一般开辟在这个区域。
高128单元:(80H-FFH)
前面提到,在片的RAM中,高128位是专用寄存器区,因这节比较重要,所以我们单独的安排一节课跟大家介绍。
下节课我们就重点介绍51单片机片RAM的高128位,即专用寄存器区。