【单片机原理与技术】第 2 章 MCS-51 单片机的结构与原理,程序存储器,数据存储器,专用寄存器(北京交通大学)

目录

提要

2.1 MCS-51 单片机的硬件功能

2.2 MCS-51 硬件系统结构

2.2.1 运算部件

2.2.2 控制部件

2.3 存储器结构

  2.3.1 程序存储器

       2.3.2 数据存储器

       1.数据存储器

2.专用寄存器

3.外部数据存储器


提要

本章介绍 MCS-51 单片机的硬件结构与工作原理。熟悉并掌握硬件结构对于应用设计者是十分重
要的,因为它是单片机应用系统设计的基础。通过本章的学习,可以使读者对 MCS-51 单片机的硬件结构、系统结构、存储器结构、I/O 端口、复位电路、CPU 时序、CPU 引脚功能及单片机的工作方式有较为全面的了解。从程序员和应用系统设计的角度,牢记它向我们提供了哪些硬件资源,如何去应用它们。

MCS-51 系列单片机是 Intel 公司生产的一系列单片机的总称,是非常成功的产品,这一系列单片机包括了很多品种,如 8031,8051,8751,8032,8052,8752 等,其中 8051 是最早最典型的产品,该系列其它单片机都是在 8051 的基础上进行功能的增、减、改变而来的,所以人们习惯于用 8051 来称呼MCS-51 系列单片机,而 8031 是前些年在我国最流行的单片机,所以很多场合会看到 8031 的名称。MCS-51 具有性能价格比高、稳定、可靠、高效等特点。自从 Intel 公司将 MCS-51 的核心技术授权给了很多其它公司以来,不断有其他公司生产各种与 MCS-51 兼容或者具有 MCS-51 内核的单片机,如 AT89C51 就是这几年在我国非常流行的单片机,它是由美国 ATMEL 公司开发生产的。SST89E58 属于 8 位微控制 FlashFlex51,是 SST 公司利用其专利快闪 CMOS 半导体处理技术设计和生产的。该器件使用 8051 指令集,与标准 8051 微控制器件的引脚是兼容的。

2.1 MCS-51 单片机的硬件功能

     MCS-51 已成为当今 8 位单片机中具有事实上的“标准”意味的单片机,应用很广泛。本书以 8051为核心,讲述 MCS-51 系列单片机。
        在 MCS-51 系列里,所有产品都是以 8051 为核心电路发展起来的,具有 8051 的基本结构和软件特征。从制造工艺来看,MCS-51 系列中的器件基本上可分为 HMOS 和 CMOS 两类。 CMOS 器件的特点是电流小和功耗低(掉电方式下消耗 10µA 电流),但对电平要求高(高电平大于 4.5V,低电平小于 0.45V),HMOS 对电平要求低(高电平大于 2.0V,低电平小于 0.8V),但功耗大。SST89E58 属于 CMOS 类单片机。

MCS-51 系列单片机的温度适用范围:
民品(商业用)  0~70℃
工业品   -40~85℃
军用品   -55~125℃

SST89E58 单片机的温度适用范围:
商用(0°C 到+70°C)
工业用(-40°C 到+85°C)

8051 系列单片机的主要功能如图 2-1:

1.数据存储器(RAM):片内为 128B 字节的 RAM,片外最多可外扩至 64KB。
2.程序存储器(ROM/EPROM):8031 无此部件;8051 为 4K ROM;8751 则为 4K EPROM。片外最多可外扩至 64K 字节。
3.中断系统:具有 5 个中断源(其中内部 3 个,外部 2 个),2 级中断优先权。
4.定时器/计数器:2 个 16 位的定时器/计数器,具有四种工作方式。
5.串行口:1 个全双工的串行口,具有四种工作方式。
6.P1 口、P2 口、P3 口、P0 口:为 4 个并行 8 位 I/O 口。
7.特殊功能寄存器(SFR):8051 有 128 个特殊功能寄存器寻址空间,有 21 个 SFR,用于对片内各功能模块进行管理、控制、监视。实际上是一些控制寄存器和状态寄存器,是一个特殊功能的RAM 区。
8.微处理器(CPU):为 8 位的 CPU,且内含一个 1 位 CPU(位处理器),不仅可处理字节数据,还可以进行位变量的处理。
    SST89E58 单片机的主要功能如图 2-2。

1.数据存储器(RAM):片内为 1K 字节的 RAM,片外最多可外扩至 64K 字节。
2.程序存储器(ROM/E2PROM):片内 16/24/40Kbyte 的 E2PROM。片外最多可外扩至 64K 字节。
3.中断系统:具有 10 个中断源(其中内部 6 个,外部 4 个),4 级中断优先权。
4.定时器/计数器:3 个 16 位的定时器/计数器,具有四种工作方式。
5.P1 口、P2 口、P3 口、P0 口,还有一个 4bit 的并行口。
MCS-51 系列单片机还在不断的发展中,如:
 增大内部存储器型
该型产品将内部的程序存储器 ROM 和数据存储器 RAM 增加一倍。如 80C58、87C58 等,内部拥有
32 KB ROM 和 256 B RAM,属于 58 子系列。
 可编程计数阵列(PCA)型
型号中含有字母“F”的系列产品,如 80C51FA、83C51FA、87C51FA、83C51FB、87C51FB、83C51FC、87C51FC 等,均是采用 CHMOS 工艺制造,具有比较/捕捉模块及增强的多机通信接口。
 A/D 型
该型产品如 80C51GB、83C51GB,87C51GB 等具有下列新功能:8 路 8 位 A/D 转换模块,256B 内部 RAM、2 个 PCA 监视定时器,增加了 A/D 和串行口中断,中断源达 7 个,具有振荡器失效检测功能。

2.2 MCS-51 硬件系统结构

MCS-51 系列单片机主要包括算术/逻辑部件 ALU、累加器 A(有时也称 ACC)、只读存储器 ROM、随机存储器 RAM、指令寄存器 IR、程序计数器 PC、定时器/计数器、I/O 接口电路、程序状态寄存器PSW、寄存器组,此外,还有堆栈寄存器 SP,数据指针寄存器 DPTR 等部件。这些部件集成在一块芯片上,通过内部总线连接,构成完整的微型计算机(如图 2-3)。下面按其部件功能分类予以介绍。

2.2.1 运算部件

     运算部件包括算术逻辑部件 ALU、位处理器、累加器 A、寄存器 B、暂存器以及程序状态字 PSW 寄存器等。该模块的功能是实现数据的算术、逻辑运算、位变量处理和数据传送等操作。
       ALU 的功能十分强,它不仅可对 8 位变量进行逻辑“与”“或”、“异或”、循环、求补和清零等基本操作,还可以进行加、减、乘、除等基本运算。ALU 还具有一般微处理器的 ALU 所不具备的功能,即位处理操作,它可对位(bit)变量进行位处理,如置位、清零、求补、测试转移及逻辑“与”、“或”等操作。由此可见,ALU 在算术运算及控制处理方面能力是很强的。
         累加器 A 是一个 8 位的累加器:从功能上看,它与一般微处理器的累加器相比没什么特别之处,但需要说明的是 A 的进位标志 Cy 是特殊的,因为它同时又是位处理器的一位累加器。
        寄存器 B 是为执行乘法和除法操作设置的,在不执行乘、除法操作的一般情况下可把它当作一个普通寄存器使用。
         MCS-51 系列单片机的程序状态寄存器 PSW,是一个 8 位可读写的寄存器,它的不同位包含了程序状态的不同信息,掌握并牢记 PSW 各位的含义是十分重要的,因为在程序设计中,经常会与 PSW 的各个位打交道。程序状态字 PSW 各位的含义如图 2-4

 CY (PSW.7)进位标志位,在执行算术和逻辑指令时,可以被硬件或软件置位或清除,在位处理器中,它是位累加器。
 AC (PSW.6)辅助进位标志位,当进行加法或减法操作而产生由低 4 位数向高 4 位进位或借位时,AC将被硬件置 1,否则就被清除。AC 常用于十进制调整,与 DA  A 指令结合起来用。
 F0 (PSW.5)标志位,它是由用户使用的一个状态标志位,可用软件来使它置位或清除,也可以靠软件测试 FO 以控制程序的流向。编程时,该标志位特别有用。
 RS1、RS0 (PSW.4、PSW.3)寄存器区选择控制位 1 和 0,这两位用来选择 4 组工作寄存器区(4 组寄存器在单片机内的 RAM 区中,将在本章稍后介绍),它们与 4 组工作寄存器区的对应关系如下:

 OV (PSW.2)溢出标志位。当执行算术指令时,由硬件置 1 或清 0,以指示溢出状态。各种算术运算对该位的影响情况较为复杂,将在第三章详细说明。
 PSW.1 是保留位,未用。
 P (PSW.0)奇偶标志位。每个指令周期都由硬件来置位或清除,以表示累加器 A 中值为 1 的位数的奇偶数。若为奇数,则 P=l,否则 P=0。此标志位对串行口通讯中的数据传输有重要的意义,常用奇偶检验的方法来检验数据传输的可靠性。

2.2.2 控制部件

    控制部件是单片机的神经中枢,以主振频率为基准(每个主振周期称为振荡周期),控制器控制 CPU的时序,对指令进行译码,然后发出各种控制信号,它将各个硬件环节组织在一起。CPU 的时序将在本章 2.6 介绍。

2.3 存储器结构

       MCS-51 系列单片机的存储器组织采用的是哈佛(Harvard)结构,即将程序存储器和数据存储器分开,程序存储器和数据存储器具有各自独立的寻址方式、寻址空间和控制信号。这种结构对于单片机“面向控制”的实际应用较为方便。MCS-51 的存储器结构如图 2-5 所示 (内部数据 RAM 的高 128B 仅为 52 子系列单片机拥有,51 子系列无)。
       MCS-51 系列(8031 和 8032 除外)有 4 个物理上相互独立的存储器空间,即内、外程序存储器和内、外数据存储器。逻辑上分为三个存储空间,即片内外统一编址的 64K 字节的程序存储器地址空间、256B 字节的片内数据存储器以及 64K 字节的片外数据存储器地址空间(可扩展数据 RAM 或 I/O 接口)。
      SST89E58 具有两个内部闪存存储器:主闪存存储器模块(模块 0)有 8/16/32KB,第二闪存存储器模块(模块 1)具有 8KB。全部程序地址空间是 64KB,SFCF[1:0]位用来控制程序组选择。程序存储器配置可以参照图 2-6 到图 2-8。

  2.3.1 程序存储器

           程序存储器用于存放编好的程序和表格常数。由于 8031 无内部程序存储器,程序存储器只能外扩,最大的扩展空间为 64K 字节。SST89E58 单片机具有片内外统一编址的 64K 字节的程序存储器地址空间。

       在 MCS-51 系列的指令系统中,同外部程序存储器打交道的指令仅有两条:

 MOVC  A,@A+DPTR
 MOVC  A,@A+PC
        两条指令的功能将在下一章中详细介绍。
      MCS-51 复位后,程序计数器 PC 的内容为 0000H,故系统必须从 0000H 单元开始取指令,执行程序。程序存储器中的 0000H 地址是系统程序的启动地址,这一点初学者要牢牢记住。一般在该单元存放一条跳转指令,跳向用户设计的主程序的起始地址。
       MCS-51 最多可外扩 64K 字节程序存储器,64K 程序存储器中有 5 个单元具有特殊用途,5 个特殊单元分别对应于 5 种中断源的中断服务程序的入口地址,见表 2-2。
         SST89E58 外扩的 64K 程序存储器中有 10 个单元具有特殊用途,10 个特殊单元分别对应于 10 种中断源的中断服务程序的入口地址,见表 2-3。
        通常在这些入口地址处都放一条跳转指令。加跳转指令的目的是,由于两个中断入口间隔仅有八个单元,存放中断服务程序往往是不够用的。

         SST89 系列单片机程序和数据存储空间分开独立寻址。程序存储器有两个片内 FLASH 存储块。基本 FLASH 存储块(Block0)占用 64/32/16K 字节,二级 FLASH 存储块 Block1 为 8K 字节(4K,89C54/58)。因为整个内部程序空间被限制为 64/32K 字节,SFCF[1:0]位用于控制存储块的切换。64/32K*8 的基本超级 FLASH 块被组织成 512/256 个扇区,每个扇区由 128 字节组成。8K*8 二级 FLASH 存储块被组织成 64 个扇区,每个扇区是 128 字节。对两个块来说,程序地址空间的低 7 位选择扇区内的字节,剩下的地址位选择块内扇区。单片机允许在程序地址空间的 Block1 或 Block0 的低 8K 之间切换。SFCF[1:0]控制程序存储块的切换。

       2.3.2 数据存储器

       1.数据存储器

   数据存储器用以存放和读取数据,它不能存放和执行程序指令。数据存储器在物理上和逻辑上都分为两个地址空间;内部数据存储器(简称内部 RAM)和外部数据存储器(外部 RAM)。内部 RAM 的地址空间为 00H-7FH,128B (8052 为 00H~0FFH 为 256B),外部 RAM 地址空间为 0000H~0FFFFH 的 64KB,两者是由不同指令来访问的:访问内部 RAM 用 MOV 类指令;访问外部 RAM 用 MOVX 指令。

     SST89E58 有四组片内数据存储器:低 128 字节的 RAM 的地址空间为 00H-7FH,通过直接和间接寻址访问;内部高 128 字节的 RAM 的地址空间为 80H-FFH,只能通过直接寻址访问;特殊功能寄存器(SFRS,80H-FFH)只能通过直接寻址访问;内部扩展 768 字节 RAM 的地址空间为 000H-2FFH,通过清零 EXTRAM 和外部传送指令 MOVX 来实现间接寻址。见图 2-9。

   8051 内部 RAM 的 128B 单元,可按功能分为三个区域(如表 2-4):

     (1)从 00H~1FH 的 32B 单元是 4 个工作寄存器组。前面已介绍每一组包括 8 个工作寄存器,寄存器名用 R0、R1、R2、R3、R4、R5、R6、R7 表示,单片机执行程序时同时只能选用其中的一组,具体使用哪一组是通过对 PSW 的 RS1、RS0 两位的设置来实现的。设置四组工作寄存器,给程序设计带来了好处,很容易实现子程序嵌套、中断嵌套时的现场保护,如果在用户程序中只使用了一组内部 RAM 单元作为工作寄存器,则其他三组 RAM 单元可作为一般的内部 RAM 作用,MCS-51 在复位后,RS1、RS0都为 0,即指定 00H—07H 单元为 R0—R7。
     (2)地址 20H 一 2FH 的 16B 共 128 位,是可位寻址的内部 RAM 区,它们既可字节寻址,亦可位寻址。这些位寻址单元构成了布尔处理器的数据存储器空间。它们的位地址定义为 00H—7FH,见表 2-4。
      (3)其他 80B 是只能按字节寻址的内部 RAM 区,为用户区。
MCS-51 单片机的堆栈安排在内部 RAM 内,堆栈的深度以不超过内部 RAM 的空间为限。对 8051
类芯片最多为 128B,对 8052 类芯片最多为 256B。

2.专用寄存器

    805l 内部有 21 个专用寄存器(8052 子系列多 5 个专用寄存器),其中 DPTR 是双字节寄存器,PC寄存器在物理上是独立的,其余 20 个寄存器都属于内部数据存储器的专用寄存器(SFR)块。表 2-5 列出了 25 个专用寄存器的名称、物理地址分配及复位后的状态。

   SST89E58 内部有 26 个专用寄存器,FlashFlex51 单片机家族大多数的独特功能被位于 SFR 内存映射如表 2-6 所示的特殊功能寄存器(SFRs)位所控制。每个 SFR 的特殊描述以及复位值显示在表 2-7 到表 2-11 中。

  在 21 个特殊功能寄存器中,有 11 个特殊功能寄存器具有位寻址能力,它们的字节地址正好能被 8整除,其十六进制地址的末位,只能是 0H 或 8H。其地址分布见表 2-12,表内的数字表示的是十六进制位地址,位地址的下面是该位的位定义,如:PSW 的字节地址是 0D0H,其位地址即从 0D0H 到 0D7H共 8 个位地址,位地址 0D7H 表示的位变量是 CY(进位)。另外,要注意的是,128B 的 SFR 地址空间中仅有 20 个字节是有定义的,对于尚未定义的地址单元,用户不能作寄存器使用,若访问没有定义的单元,则将得到—个不确定的随机数。

   下面简单介绍程序计数器 PC 及 SFR 中的某些寄存器,其它没有介绍的寄存器将在有关章节中叙述。
     1) 程序计数器 PC
程序计数器 PC 用于存放下—条要执行的指令地址,是一个 16 位专用寄存器,可寻址范围为 0—
65535(64K),PC 在物理上是独立的,不属于 SFR,但它与 SFR 有密切联系,故放在此处介绍。
  2) 累加器 A
累加器 A 是一个最常用的专用的寄存器,它属于 SFR,大部分单操作数指令的操作数取自累加器,很多双操作数指令的一个操作数取自累加器,加、减、乘、除算术运算指令的运算结果都存放在累加器A 或 A、B 寄存器中。
  3) B 寄存器
在乘、除指令中,用到了 B 寄存器。乘法指令的两个操作数分别取自 A 和 B,其结果存放在 A、B
寄存器对中。除法指令中,被除数取自 A,除数取自 B,运算后商数存放于 A,余数存放于 B。
4) 程序状态字寄存器 PSW
PSW 是一个 8 位寄存器,它包含了程序状态信息,已在 2.3 节中作了详细介绍。
5) 堆栈指针 SP
堆栈指针 SP 是一个 8 位专用寄存器。它指示出堆栈顶部在内部 RAM 块中的位置。系统复位后SP
初始化为 07H,使得堆栈事实上由 08H 单元开始,考虑到 0BH—1FH 单元分别属于工作寄存器区 1~3,若在程序设计中要用到这些区,则最好把 SP 值改置为 1FH 或更大的值。单片机的堆栈是向上生成的。例如 SP=60H,CPU 执行一条调用指令或响应中断后,PC 进栈,PC 的低 8 位送入到 61H,PC 高 8 位送入到 62H,(SP)=62H。
6) 数据指针 DPTR
数据指针 DPTR 是一个 16 位的 SFR,其高位字节寄存器用 DPH 表示,低位字节寄存器用 DPL 表示。DPTR 即可以作为一个 16 位寄存器 DPTR 来用,也可以作为两个独立的 8 位寄存器 DPH 和 DPL 来用。
7) 端口 P0-P3
特殊功能寄存器 P0-P3 分别为 I/O 端口 P0-P3 的锁存器。即每一个 8 位 I/O 口都对应 SFR 的一个地址(8 位)。在 MCS-51 中,I/O 和 RAM 统一编址,使用起来较为方便,访问 I/O 端口可用访问 RAM 的指令。
8) 串行数据缓冲器 SBUF
串行数据缓冲器 SBUF 用于存放欲发送或已接收的数据,它在 SFR 块中只有一个字节地址,但在物理上是由两个独立的寄存器组成,一个是发送缓冲器 SBUF,另一个是接收缓冲器 SBUF,当要发送的数据传送到 SBUF 时,进的是发送缓冲器 SBUF;接收时,外部来的数据存入接收缓冲器 SBUF。
9) 定时器
MCS-51 单片机有两个 16 位定时器/计数器 T0 和 T1,它们各由两个独立的 8 位寄存器组成,共为 4个独立的寄存器:TH0、TL0、THL、TL1。可以对这 4 个寄存器寻址,但不能把 T0 或 T1 当作一个 16位寄存器来对待。

3.外部数据存储器

  MCS-51 外部数据存储器寻址空间为 64KB,这对多数应用领域已足够使用。对外部数据存储器可用R0,R1 及 DPTR 间接寻址寄存器。R0,R1 为 8 位寄存器,寻址范围为 256B,DPTR 为 16 位的数据指针,寻址范围为 64KB。在 MCS-51 的指令系统中,同外部数据存储器打交道的指令有 4 条:

 MOVX  A,@Ri
 MOVX  A,@DPTR
 MOVX  @Ri, A
 MOVX  @DPTR,A



资料仅供学习使用

如有错误欢迎留言交流

上理考研周导师的其他专栏:

光电融合集成电路技术     电路原理

C语言       复变函数与积分变换

单片机原理

模式识别原理

数字电子技术

自动控制原理     ​​​​​​ 传感器技术

模拟电子技术

数据结构

 概率论与数理统计

高等数学

传感器检测技术

智能控制

嵌入式系统

图像处理与机器视觉

热工与工程流体力学

数字信号处理

线性代数

工程测试技术

上理考研周导师了解更多

  • 10
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值