第2章 MCS-51单片机的结构与原理
2.1 MCS-51单片机的硬件功能
2.2 MCS-51硬件系统结构
2.3 存储器结构
2.4 I/O端口
2.5 复位电路
2.6 CPU时序
2.7 CPU引脚功能
2.8 单片机的工作方式
2.8.1 复位方式
2.8.2 程序执行方式
- 单步执行方式
- 连续执行方式
2.8.3 节电方式
- 待机方式
- 掉电保护方式
2.8.4 EPROM的编程和校验方式
8051单片机的主要功能方框图
共性:
- 一个8位CPU;
- 片内振荡和定时电路;
- 128B内部RAM(00H~7FH);
- 4个8位并行I/O口;
- 2个16位可编程定时/计数器;
- 一个全双工串行口;
- 5个中断源(可编程为两个优先级);
- 22个SFR(除PC外,其余21个分散在 80H~FFH之间)
- 堆栈深度可达80B(30H~7FH);
- 16B(128位,20H~2FH)可位寻址区。
MCS-51硬件系统结构
CPU内部结构
- 算术逻辑运算单元ALU (8位)
- +、–、×、÷算术运算,与、或、非、异或 逻辑运算、循环移位、位处理。
- 寄存器阵列
- 工作寄存器R0~R7 (8位):暂存运算数据和中间结果。4个工作寄存器区,工作寄存器0区~3区。每个区均含8个寄存器R0~R7 。用PSW中的两位PSW.4和PSW.3来切换工作寄存器区,选用一个工作寄存器区进行读写操作。
- 累加器Acc(8位):需要ALU处理的数据和计算结果多数要经过A累加器。
- 寄存器B(8位):与A累加器配合执行乘、除运算。也可用作通用寄存器。
- 程序状态字PSW(8位):存放ALU运算过程的标志状态。
- 数据指针DPTR(16位):存放片外存储器地址,作为片外存储器的指针。可分成两个8位寄存器DPH、DPL使用。
- 堆栈指针SP(8位):堆栈是按"先进后出"原则存取数据的存储区。MCS-51堆栈设在片内RAM区。数据入栈/出栈时, SP自动加1/减 1,其内容始终为栈顶地址。复位时 SP=07H。
- 程序计数器PC(16位):CPU总是按PC的指示读取程序。PC可自动加1。因此CPU执行程序一般是顺序方式。当发生转移、子程序调用、中断和复位等操作,PC被强制改写,程序执行顺序也发生改变。复位时,PC=0000H。
8051存储器结构
8051存储器结构
程序存储器
- 在MCS-51的指令系统仅有两条:MOVC A,@A+DPTR 和 MOVC A,@A+PC
- 复位后,程序计数器PC的内容为0000H
- MCS-51最多可外扩64K字节程序存储器
数据存储器
- 从00H~1FH的32B单元是4个工作寄存器组。
- 地址20H~2FH的16B共128位,是可位寻址的内部RAM区,它们既可字节寻址,亦可位寻址。
- 其他80B是只能按字节寻址的内部RAM区,为用户区。
- MCS-51单片机的堆栈安排在内部RAM内,堆栈的深度以不超过内部RAM的空间为限。
堆栈
- 堆栈是一种只允许在其一端进行数据插入和删除操作的一种数据结构。数据存取为"后进先出"。
- 堆栈功能:保护断点和现场信息。
- 堆栈的建立:MCS-51的堆栈是设置在内部RAM 30H~7FH空间中,栈底为低地址单元,堆栈指针为SP。
特殊功能寄存器SFR
SFR区
SFR区部分寄存器功能介绍如下:
- 程序计数器(PC、16位):存放将要执行的指令地址。
- 累加器(ACC、8位):存放数据或中间结果。
- B寄存器(8位):主要用于乘、除运算。
- 数据指针(DPTR、16位):存放外部数据存储器的地址。
程序状态字(PSW、8位):用于寄存程序运行的状态信息。格式如下:
PSW格式
标志位功能:
- CY:(1)执行算术运算时,最高位向前进位或借位时,CY为1;否则,CY为0。(2)在位操作中,作"位"累加器。
- AC: 用于十进制调整。当低四位向高四位进位或借位时,AC为1;否则AC为0。
- F0:供用户定义的标志位,可以用指令置位或复位,用以控制程序的转向。
- OV:(1)在带符号数的加减运算中,结果产生溢出,OV=1;否则,OV=0。(2)在乘法运算中,乘积超过255,OV=1,表示积存放在B与A中;否则,OV=0,表示积只存放在A中。(3)在除法运算中,当除数为0时,OV=1,除法无意义。
- P:累加器A中数的奇偶性,若A中"1"的个数为奇数,则P=1;否则,P=0。
对专用寄存器的两点说明
- 单片机的22个专用寄存器中,有21个是可按字节寻址的(PC除外)。这些字节地址不连续的分散在内部RAM存储空间的高128B中,剩余的空闲地址不允许用户使用。
- SFR只能使用直接寻址方式来访问它们,书写时既可使用寄存器名,也可使用寄存器单元地址。
具有位寻址能力专用寄存器
- 在21个特殊功能寄存器中,有11个特殊功能寄存器具有位寻址能力,它们的字节地址正好能被8整除,其十六进制地址的末位,只能是0H或8H。
外部数据存储器
- MCS-51外部数据存储器寻址空间为64KB
- MCS-51同外部数据存储器的指令有4条: MOVX A,@Ri;MOVX A,@DPTR;MOVX @Ri, A;MOVX @DPTR,A
- R0,R1为8位寄存器,寻址范围256B
- DPTR为16位的数据指针,寻址范围64KB。
I/O端口
- MCS-51有4个双向的8位并行I/O口:P0~P3
- 每一个口都有一个8位的锁存器
- 复位后它们的初始状态为全"1"
- P0口是三态双向口:既可作为并行I/O口,也可作为数据总线口。当外部扩展了存储器或I/O端口,则只能作数据总线和地址总线低8位。
- P1口是专门供用户使用的I/O口,是准双向接口
- P2口是准双向接口,既可作为并行I/O口,也可作为地址总线高8位口。当外部扩展了存储器或I/O端口,则只能作地址总线高8位
- P3口是准双向口,又是双功能口。该口的每一位均可独立地定义为第二功能,作为第一功能使用时,口的结构与操作与P1口相同
I/O端口
I/O的接口要求与负载能力
- P1,P2,P3口内部均有上拉电阻,当它们用作输入方式时,对应的口锁存器必须先"置"1
- P0口内部没有上拉电阻,当它作为通用I/O时,外接上拉电阻,在用作地址/数据线时,不必外加上拉电阻
- P0口的每位输出可驱动8个LSTTL负载,P1-P3口可驱动4个LSTTL负载。
复位电路
- 复位后PC值为0000H,故复位后的程序入口地址为0000H;
- 复位后PSW=00H,使片内存储器中选择0区工作寄存器,用户标志为F0为0状态;
- 复位后SP=07H,设定推栈栈底为07H;
- 复位后的P1,P2,P3口锁存器全为1状态,使这些准双向口皆处于输入状态;
- 内部RAM不受复位的影响。
复位电路的基本功能是:系统上电时提供复位信号,在加电瞬间,RST端出现一定时间的高电平,直至系统电源稳定后,撤销复位信号。
CPU时序
MCS-51内部有一个用于构成振荡器的高增益反相放大器,引脚XTAL1和XTAL2分别是此放大器的输入端和输出端。
- CPU执行一条指令的时间称为指令周期,它是以机器周期为单位的,MCS-51典型的指令周期为一个机器周期。
- 每个机器周期由6个状态周期组成,每个状态周期由2个振荡周期组成,状态周期即S1、S2、 S3、S4、S5、S6,而每个状态周期由两个节 拍Pl,P2组成。
- 大多数8051指令执行时间为一个机器周期, MUL(乘法)和DIV(除法)需要4个机器周期。
CPU引脚功能
- 双列直插式封装(DIP,Dual Inline Package)
- 方形封装(PLCC,Plastic Leaded Chip Carrier)
引脚功能
- 端口线(4×8 = 32条)
- P0.0-P0.7
- P1.0-P1.7
- P2.0-P2.7
- P3.0-P3.7
- 电源线(2条):VCC为+5V电源线,VSS为地线
- 控制线(6条)
- ALE/PROG :地址锁存允许/编程线
- EA/VPP:允许访问片外存储器/编程电源线
- PSEN:片外ROM选通线
- RST/VPD:复位/备用电源线
- XTAL1和XTAL2:片内振荡电路输入/输出线
控制线
-
ALE/PROG :地址锁存允许/编程线
- 配合P0口引脚的第二功能使用 ,用于把这个片外存储器低8位地址锁存到外部专用地址锁存器
- 在不访问片外存储器时,MCS-51自动在 ALE线上输出频率为fosc/6的脉冲序列。该脉冲序列可用作外部时钟源或作为定时脉冲源使用
- 它可以在对8751片内EPROM编程/校验时传送5ms宽的负脉冲。
-
EA/VPP:允许访问片外存储器/编程电源线
- 控制MCS-51使用片内ROM还是使用外ROM。若=1,则允许使用片内ROM;若=0,则只能使用片外ROM。
- 对8751的EA/VPP用于在片内EPROM编程/校验时输入21V或12.5V编程电源。
-
PSEN:片外ROM选通线
- 执行访问片外ROM的指令MOVC时,自动在PSEN线上产生一个负脉冲,用于为片外ROM芯片的选通(相当于读信号RD)。其他情况下,PSEN线均为高电平封锁状态。
-
RST/VPD:复位/备用电源线
- 使CPU处于复位(即初始化)工作状态。复位有上电自动复位和人工按钮复位两种。
- RST/VPD的第二功能是作为备用电源输入端。当主电源VCC发生故障而降低到规定低电平时,RST/VPD线上的备用电源自动投入,以保证片内RAM中信息不丢失。
-
XTAL1和XTAL2:片内振荡电路输入/输出线
- 这两个端子用来外接石英晶体和微调电容,即用来连接片内OSC的定时反馈回路。
单片机的工作方式
- 复位方式
- 程序执行方式
- 单步执行方式
- 连续执行方式
- 节电方式
- 待机方式
- 掉电保护方式
- EPROM的编程和校验方式
复位方式
- 单片机在开机时都需要复位,以便CPU以及其他功能部件都处于一个确定的初始状态,并从这个状态开始工作。
- RST引脚是复位信号的输入端。
- 复位信号是高电平有效,持续时间要有24个时钟周期以上。
- 若时钟频率为12MHz,则复位脉冲宽度至少应为2µS。
- 单片机复位后,其片内各寄存器状态如表2-4所列。这时,堆栈指针SP为07H、ALE、PSEN、P0、P1、P2、和P3口各引脚均为高电平,片内RAM中内容不变。
程序执行方式
- 单步执行方式
- 单步执行方式是指按一次单步执行键就执行一条用户指令的方式。
- 单步执行方式常常用于用户程序的调试。
- 单步执行方式是利用单片机外部中断功能实现的。
- 连续执行方式
- 连续执行方式是单片机都需要的一种工作方式。
- 被执行程序可以放在片内或片外ROM中。
- 由于复位后程序计数器PC=0000H,可以预先在0000H处放一条转移指令,以便跳转到0000H~0FFFFH中的任何地方执行程序。
CHMOS型单片机低功耗工作方式
- CHMOS型的51单片机具有低功耗的特点
- 两种节电工作方式:待机方式和掉电保护方式
- 待机方式和掉电方式都是由电源控制寄存器PCON的有关位来控制的。
PCON寄存器格式:
- SMOD:串行口波特率系数控制位;
- PD:掉电方式控制位,PD=l,系统进入掉电保护方式;
- IDL:待机方式控制位,IDL=1,系统进人待机方式。
待机方式
- 待机方式的进入:使用指令将PCON寄存器的IDL位置1即可。
- 单片机进入待机方式时振荡器仍然运行
- CPU不工作
- 通用寄存器都保持原有状态不变
- 退出待机方式的方法有两种:中断和硬件复位。
掉电保护方式
- 掉电保护方式的进入:使用指令将PCON寄存器的PD位置1即可。
- 单片机的一切工作全部停止
- 只有内部的RAM单元的内容被保存
- I/O引脚状态和相关的特殊功能寄存器的内容相对应
- ALE和PSEN为逻辑低电平。
- 退出掉电保护方式的方法只有一个:硬件复位。复位后特殊功能寄存器的内容被初始化,但RAM的内容仍然保持不变。
编程和校验方式
- 编程:是指利用特殊手段对单片机片内EPROM进行写入的过程
- 校验:是对刚刚写入的程序代码进行读出验证的过程
- 单片机的编程和校验方式只有EPROM型器件才有,如8751这样的器件。
以上就是第2章MCS-51单片机的结构与原理的全部内容。主要包括了以下几个方面:
MCS-51单片机的硬件功能和硬件系统结构,介绍了单片机的主要功能模块以及CPU内部结构。
存储器结构,包括程序存储器、数据存储器、堆栈等。详细说明了内部RAM的分配和特点。
I/O端口,介绍了MCS-51的4个并行I/O口P0~P3的结构和特点,以及它们的接口要求和驱动能力。
复位电路,说明了单片机复位的作用以及复位后各个部件的状态。
CPU时序,介绍了指令周期、机器周期、状态周期等概念,以及单片机的时钟振荡电路。
CPU引脚功能,详细介绍了MCS-51的各个引脚的功能定义,尤其是几个控制引脚的作用。
单片机的工作方式,包括复位方式、程序执行方式、节电方式以及EPROM的编程和校验方式。
通过本章的学习,可以比较全面地了解MCS-51单片机的内部结构、工作原理和硬件特性,为后续学习单片机的指令系统和应用开发打下基础。理解存储器和I/O端口的组织方式,掌握单片机的时序和复位过程,熟悉各种低功耗工作模式,是学好单片机的重要基础。