MCS-51的存储器分类

发布者:MysticGlow最新更新时间:2023-08-15 来源: elecfans关键字:MCS-51  微处理器 手机看文章 扫描二维码
随时随地手机看文章

  存储器(Memory)是现代信息技术中用于保存信息的记忆设备。其概念很广,有很多层次,在数字系统中,只要能保存二进制数据的都可以是存储器;那么MCS-51单片机的存储器有哪几类呢?如何分类呢?

  程序存储器

  一个微处理器能够聪明地执行某种任务,除了它们强大的硬件外,还需要它们运行的软件,其实微处理器并不聪明,它们只是完全按照人们预先编写的程序而执行之。那么设计人员编写的程序就存放在微处理器的程序存储器中,俗称只读程序存储器(ROM)。程序相当于给微处理器处理问题的一系列命令。其实程序和数据一样,都是由机器码组成的代码串。只是程序代码则存放于程序存储器中。


  MCS-51具有64kB程序存储器寻址空间,它是用于存放用户程序、数据和表格等信息。对于内部无ROM的8031单片机,它的程序存储器必须外接,空间地址为64kB,此时单片机的端必须接地。强制CPU从外部程序存储器读取程序。对于内部有ROM的8051等单片机,正常运行时,则需接高电平,使CPU先从内部的程序存储中读取程序,当PC值超过内部ROM的容量时,才会转向外部的程序存储器读取程序。


  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个地址单元是不能存下完整的中断服务程序的,因而一般也在中断响应的地址区安放一条无条件转移指令,指向程序存储器的其它真正存放中断服务程序的空间去执行,这样中断响应后,CPU读到这条转移指令,便转向其他地方去继续执行中断服务程序。

  数据存储器

  数据存储器也称为随机存取数据存储器。MCS-51单片机的数据存储器在物理上和逻辑上都分为两个地址空间,一个是内部数据存储区和一个外部数据存储区。MCS-51内部RAM有128或256个字节的用户数据存储(不同的型号有分别),它们是用于存放执行的中间结果和过程数据的。MCS-51的数据存储器均可读写,部分单元还可以位寻址。


  8051内部RAM共有256个单元,这256个单元共分为两部分。其一是地址从00H—7FH单元(共128个字节)为用户数据RAM。从80H—FFH地址单元(也是128个字节)为特殊寄存器(SFR)单元。从图1中可清楚地看出它们的结构分布。

  MCS-51的存储器分类

  在00H—1FH共32个单元中被均匀地分为四块,每块包含八个8位寄存器,均以R0—R7来命名,我们常称这些寄存器为通用寄存器。这四块中的寄存器都称为R0—R7,那么在程序中怎么区分和使用它们呢?聪明的INTEL工程师们又安排了一个寄存器——程序状态字寄存器(PSW)来管理它们,CPU只要定义这个寄存的PSW的第3和第4位(RS0和RS1),即可选中这四组通用寄存器。对应的编码关系如图2所示。

  MCS-51的存储器分类

  内部数据存储器的配置

  内部数据存储器的配置 内部RAM的20H—2FH单元为位寻址区,既可作为一般单元用字节寻址,也可对它们的位进行寻址。位寻址区共有16个字节,128个位,位地址为00H—7FH。位地址分配如表1所示,CPU能直接寻址这些位,执行例如置“1”、清“0”、求“反”、转移,传送和逻辑等操作。我们常称MCS-51具有布尔处理功能,布尔处理的存储空间指的就是这些为寻址区。

  表1 RAM位寻址区地址表

  MCS-51的存储器分类

  特殊功能寄存器

  特殊功能寄存器(SFR)也称为专用寄存器,特殊功能寄存器反映了MCS-51单片机的运行状态。很多功能也通过特殊功能寄存器来定义和控制程序的执行。

  MCS-51有21个特殊功能寄存器,它们被离散地分布在内部RAM的80H—FFH地址中,这些寄存的功能已作了专门的规定,用户不能修改其结构。表2是特殊功能寄存器分布一览表,我们对其主要的寄存器作一些简单的介绍。

  程序计数器PC(program Counter)

  程序计数器在物理上是独立的,它不属于特殊内部数据存储器块中。PC是一个16位的计数器,用于存放一条要执行的指令地址,寻址范围为64kB,PC有自动加1功能,即完成了一条指令的执行后,其内容自动加1。PC本身并没有地址,因而不可寻址,用户无法对它进行读写,但是可以通过转移、调用、返回等指令改变其内容,以控制程序按我们的要求去执行。

  累加器ACC(Accumulator)

  累加器A是一个最常用的专用寄存器,大部分单操作指令的一个操作数取自累加器,很多双操作数指令中的一个操作数也取自累加器。加、减、乘、除法运算的指令,运算结果都存放于累加器A或AB累加器对中。大部分的数据操作都会通过累加器A进行,它形象于一个交通要道,在程序比较复杂的运算中,累加器成了制约软件效率的“瓶颈”,它的功能较多,地位也十分重要。以至于后来发展的单片机,有的集成了多累加器结构,或者使用寄存器阵列来代替累加器,即赋予更多寄存器以累加器的功能,目的是解决累加器的“交通堵塞”问题。提高单片机的软件效率。

  表2 特殊功能寄存器

  MCS-51的存储器分类

  寄存器B

  在乘除法指令中,乘法指令中的两个操作数分别取自累加器A和寄存器B,其结果存放于AB寄存器对中。除法指令中,被除数取自累加器A,除数取自寄存器B,结果商存放于累加器A,余数存放于寄存器B中。

  程序状态字(Program Status Word)

  程序状态字是一个8位寄存器,用于存放程序运行的状态信息,这个寄存器的一些位可由软件设置,有些位则由硬件运行时自动设置的。寄存器的各位定义如下,其中PSW.1是保留位,未使用。下表是它的功能说明,并对各个位的定义介绍如下:

  表3 程序状态字

  MCS-51的存储器分类

  PSW.7(CY) 进位标志位,此位有两个功能:一是存放执行某写算数运算时,存放进位标志,可被硬件或软件置位或清零。二是在位操作中作累加位使用。

  PSW.6(AC) 辅助进位标志位,当进行加、减运算时当有低4位向高4位进位或借位时,AC置位,否则被清零。AC辅助进位位也常用于十进制调整。

  PSW.5(F0) 用户标志位,供用户设置的标志位。

  PSW.4、PSW.3(RS1和 RS0) 寄存器组选择位。可参见本章的图2定义。

  PSW.2(OV) 溢出标志。带符号加减运算中,超出了累加器A所能表示的符号数有效范围(-128—+127)时,即产生溢出,OV=1。表明运算运算结果错误。如果OV=0,表明运算结果正确。

  执行加法指令ADD时,当位6向位7进位,而位7不向C进位时,OV=1。或者位6不向位7进位,而位7向C进位时,同样OV=1。

  除法指令,乘积超过255时,OV=1。表面乘积在AB寄存器对中。若OV=0,则说明乘积没有超过255,乘积只在累加器A中。

  除法指令,OV=1,表示除数为0,运算不被执行。否则OV=0。

  PSW.0(P) 奇偶校验位。声明累加器A的奇偶性,每个指令周期都由硬件来置位或清零,若值为1的位数奇数,则P置位,否则清零。

  数据指针(DPTR)

  数据指针为16位寄存器,编程时,既可以按16位寄存器来使用,也可以按两个8位寄存器来使用,即高位字节寄存器DPH和低位字节DPL。

  DPTR主要是用来保存16位地址,当对64kB外部数据存储器寻址时,可作为间址寄存器使用,此时,使用如下两条指令:

  MOVX A, @DPTR

  MOVX @DPTR, A

  在访问程序存储器时,DPTR可用来作基址寄存器,采用基址+变址寻址方式访问程序存储器,这条指令常用于读取程序存储器内的表格数据。

  MOVC A, @A+@DPTR

  堆栈指针SP(Stack Pointer)

  堆栈是一种数据结构,它是一个8位寄存器,它指示堆栈顶部在内部RAM中的位置。系统复位后,SP的初始值为07H,使得堆栈实际上是从08H开始的。但我们从RAM的结构分布中可知,08H—1FH隶属1—3工作寄存器区,若编程时需要用到这些数据单元,必须对堆栈指针SP进行初始化,原则上设在任何一个区域均可,但一般设在30H—1FH之间较为适宜。

  数据的写入堆栈我们称为入栈(PUSH,有些文献也称作插入运算或压入),从堆栈中取出数据称为出栈(POP,也称为删除运算或弹出),堆栈的最主要特征是“后进先出”规则,也即最先入栈的数据放在堆栈的最底部,而最后入栈的数据放在栈的顶部,因此,最后入栈的数据出栈时则是最先的。这和我们往一个箱里存放书本一样,需将最先放入箱底部的书取出,必须先取走最上层的书籍。这个道理非常相似。

  那么堆栈有何用途呢?堆栈的设立是为了中断操作和子程序的调用而用于保存数据的,即常说的断点保护和现场保护。微处理器无论是在转入子程序和中断服务程序的执行,执行完后,还是要回到主程序中来,在转入子程序和中断服务程序前,必须先将现场的数据进行保存起来,否则返回时,CPU并不知道原来的程序执行到哪一步,原来的中间结果如何?所以在转入执行其它子程序前,先将需要保存的数据压入堆栈中保存。以备返回时,再复原当时的数据。供主程序继续执行。

  MCS-51的存储器分类

  转入中断服务程序或子程序时,需要保存的数据可能有若干个,都需要一一地保留。如果微处理器进行多重子程序或中断服务程序嵌套,那么需保存的数据就更多,这要求堆栈还需要有相当的容量。否则会造成堆栈溢出,丢失应备份的数据。轻者使运算和执行结果错误,重则使整个程序紊乱。

  MCS-51的堆栈是在RAM中开辟的,即堆栈要占据一定的RAM存储单元。同时MCS-51的堆栈可以由用户设置,SP的初始值不同,堆栈的位置则不一定,不同的设计人员,使用的堆栈区则不同,不同的应用要求,堆栈要求的容量也有所不同。堆栈的操作只有两种,即进栈和出栈,但不管是向堆栈写入数据还是从堆栈中读出数据,都是对栈顶单元进行的,SP就是即时指示出栈顶的位置(即地址)。在子程序调用和中断服务程序响应的开始和结束期间,CPU都是根据SP指示的地址与相应的RAM存储单元交换数据。

  堆栈的操作有两种方法:其一是自动方式,即在中断服务程序响应或子程序调用时,返回地址自动进栈。当需要返回执行主程序时,返回的地址自动交给PC,以保证程序从断点处继续执行,这种方式是不需要编程人员干预的。第二种方式是人工指令方式,使用专有的堆栈操作指令进行进出栈操作,也只有两条指令:进栈为PUSH指令,在中断服务程序或子程序调用时作为现场保护。出栈操作POP指令,用于子程序完成时,为主程序恢复现场。

  I/O口专用寄存器(P0、P1、P2、P3)

  I/O口寄存器P0、P1、P2和P3分别是MCS-51单片机的四组I/O口锁存器。MCS-51单片机并没有专门的I/O口操作指令,而是把I/O口也当作一般的寄存器来使用,数据传送都统一使用MOV指令来进行,这样的好处在于,四组I/O口还可以当作寄存器直接寻址方式参与其他操作。

  定时/计数器(TL0、TH0、TL1和TH1)

  MCS-51单片机中有两个16位的定时/计数器T0和T1,它们由四个8位寄存器组成的,两个16位定时/计数器却是完全独立的。我们可以单独对这四个寄存器进行寻址,但不能把T0和T1当作16位寄存来使用。

  定时/计数器方式选择寄存器(TMOD)

  TMOD寄存器是一个专用寄存器,用于控制两个定时计数器的工作方式,TMOD可以用字节传送指令设置其内容,但不能位寻址,各位的定义如下,更详细的内容,我们将在《MCS-51定时器和中断系统》章节中叙述。

  MCS-51的存储器分类

  串行数据缓冲器SBUF用来存放需发送和接收的数据,它由两个独立的寄存器组成,一个是发送缓冲器,另一个是接收缓冲器,要发送和接收的操作其实都是对串行数据缓冲器进行。

  其他控制寄存器(TMOD)

  除了以上我们简述的几个专用寄存外,还有IP、IE、TCON、SCON和PCON等几个寄存器,这几个控制寄存器主要用于中断和定时的,我们将在《MCS-51定时器和中断系统》中详细说明。


关键字:MCS-51  微处理器 引用地址:MCS-51的存储器分类

上一篇:51单片机定时器中断_51单片机中断系统_51单片机扩展中断的四种方法
下一篇:MCS51算术运算程序

推荐阅读最新更新时间:2024-11-08 14:28

一种基于微处理器的新型红外抄表系统的设计
  手工抄表效率低下,在查询、记录、传输这几个环节上,手工操作的方式使工作效率大大降低。因此,该局开始寻找更有效的抄表解决方案。以电力营销管理信息系统为基础的抄表机的应用,在电表定位查询、电量数据的采集、传输、处理方面发挥着巨大的作用,并且比集中抄表远程传输更节约成本。   基于P89LPC932微处理器,新型红外抄表系统与已有的同类系统相比,具有结构简单、功耗和成本低的特点,可进行多电量测量,并能长期保存数据。    1 抄表系统的总体结构   红外抄表系统的总体结构框图如图1所示,系统由二部分构成:多功能电度表和手持抄表终端,二者通过红外线进行通信。多功能电度表在单片机的控制下,可测量多种用电数据,并可根据功率因数的不同
[单片机]
一种基于<font color='red'>微处理器</font>的新型红外抄表系统的设计
MCS-51单片机与CPLD/FPGA接口逻辑设计
在功能上,单片机与大规模CPLD有很强的互补性。单片机具有性能价格比高、功能灵活、易于人机对话、良好的数据处理能力潍点;CPLD/FPGA则具有高速、高可靠以及开发便捷、规范等优点。以此两类器件相结合的电路结构在许多高性能仪器仪表和电子产品中仍将被广泛应用。本文就单片机与CPLD/FPGA的接口方式作一简单介绍,希望对从事单片机和CPLD/FPGA研发的朋友能有所启发。 单片机与CPLD/FPGA的接口方式一般有两种,即总线方式与独立方式,分别说明如下: 一、总线方式 单片机以总线方式与CPLD/FPGA进行数据与控制信息通信有许多优点。 (1)速度快。如图一所示,其通信工作时序是纯硬件行为,对于MCS-51单片机,只需一条单字节
[单片机]
ARM开发:一 ARM微处理器概述
1.1ARM-Advanced RISC Machines ARM(Advanced RISC Machines),既可以认为是一个公司的名字,也可以认为是对一类微处理器的通称,还可以认为是一种技术的名字。 1991年ARM公司成立于英国剑桥,主要出售芯片设计技术的授权。目前,采用ARM技术知识产权(IP)核的微处理器,即我们通常所说的ARM微处理器,已遍及工业控制、消费类电子产品、通信系统、网络系统、无线系统等各类产品市场,基于ARM技术的微处理器应用约占据了32位RISC微处理器75%以上的市场份额,ARM技术正在逐步渗入到我们生活的各个方面。 ARM公司是专门从事基于RISC技术芯片设计开发的公司,作为知识产权供应商
[单片机]
基于AT77C101B的指纹识别系统设计
1 指纹识别原理   电容传感器是指纹识别传感器中的一种,它通过电子度量设计捕获指纹图像,表面是绝缘层,里面为结合约100 000个导体金属阵列的传感器。当用户的手指放在上面时,皮肤组成了电容阵列的另一面,由于指纹脊(近的)和指纹谷(远的)之间的距离不同而形成不同的电容值,这个电容值阵列就形成一幅指纹图像。采集到指纹图像,再通过原始图像进行初步的处理,使之更清晰,再通过指纹辨识软件建立指纹的特征数据库。 2 AT77C101B简介   AT77C101B是指纹传感器家族的一员,如图1,图2所示。它是Atmel公司研发的FingerChip系列传感器芯片,采用COMS工艺制造,外形小,性能好,成本低。AT77C101B可以
[医疗电子]
基于AT77C101B的指纹识别系统设计
低成本的微处理器系统温度监控器
    摘要: ADM1021是美国ADI公司出品的一种数字温度计IC。它具有精度高,价格低,体积小等特点,是便携式设备中不可缺少的器件。文章详细介绍了ADM1021的工作原理、技术性能、设计参数、应用范围以及注意事项。     关键词: 串行接口 信号调理 温度监控 ADM1021 1 引言 ADM1021是双通道的数字温度计集成电路,同时可兼做低温/高温报警器,非常适用于需要温度监控的个人计算机及其系统。该器件通过连接的PNP晶体管可以测量微处理器的温度,而PNP晶体管可由奔腾II或类似的处理器芯片,或者由分立的PNP/NPN器件来提供,比如2N3904/2N3906等。ADM1021采用了新颖的测量
[测试测量]
微处理器智能步进电机控制卡开发方案
1 引言 数控技术是一种采用计算机对机械加工过程中各种控制信息进行数字化运算处理,并通过高性能的驱动单元对机械执行构件进行自动化控制的高新技术。现代机械加工业逐步向柔性化、集成化、智能化方向发展,因此新一代数控技术就必需强调具有开放式、智能化、网络化的特征 。本文采用新型微处理器、高性能集成电路,研究开发 智能步进电机 控制卡。 2 系统总体结构设计 通过对步进电机控制器关键技术进行分析、研究和比较,并综合国内外运动控制器产品智能化、集成化、开放化的发展趋势,我们提出的步进电机运动控制器总体结构如图1所示。 图1 系统总体结构 3 系统硬件电路设计 3.1 脉冲分频电路设计 本系统的主要控制对象为步进电机。步进电机是一种
[单片机]
<font color='red'>微处理器</font>智能步进电机控制卡开发方案
瑞萨电子推出基于ARM Cortex-A处理器的mbed微处理器开发板
瑞萨电子推出全球首个支持ARM® Cortex®-A处理器的ARM mbed™开发平台 — 采用了达1000 DMIPS的RZ/A1。 采用RZ/A1系列微处理器的瑞萨电子mbed板 2014年11月11日,日本东京讯—全球领先的半导体解决方案供应商瑞萨电子株式会社(TSE: 6723)将通过最新发布的ARM mbed IoT平台帮助工程师和开发人员简化嵌入式开发工作,助力产品制造和新兴应用开发。瑞萨利用RZ/A1微处理器产品开发出全球首个基于ARM Cortex-A9处理器的mbed微处理器开发板,该产品将方便互联设备设计人员更快地开发出高性能、高功能型嵌入式系统产品。 ARM mbed IoT设备平台提
[单片机]
瑞萨电子推出基于ARM Cortex-A处理器的mbed<font color='red'>微处理器</font>开发板
ARM Cortex-M3 微处理器测试方法研究与实现
0 引言 随着半导体技术的发展,集成电路制程工艺从深亚微米发展到纳米级,晶体管集成度的大幅提高使得芯片复杂度增加,单个芯片的功能越来越强。二十世纪90 年代ARM 公司成立于英国剑桥,主要出售芯片设计技术的授权。采用ARM 技术知识产权( IP 核)的微处理器,即ARM 微处理器,已遍及工业控制。消费类电子产 品。通信系统。网络系统。无线系统等各类产品市场,基于ARM 技术的微处理器应用约占据了32 位RISC 微处理器七成以上的市场份额。ARM 芯片的广泛应用和发展也给测试带来了挑战,集成电路测试一般采用实际速度下的功能测试,但半导体技术的发展使得测试开发工程资源按几何规律增长,自动测试 设备(ATE)的性能赶不上日益增加的器
[单片机]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved