单片机基本原理
51系列单片机简介
MCS-51系列单片机是美国Intel公司在1980年推出的高性能8位单片机,它包含51和52两个子系列。
对于51子系列,主要有8031,8051,8751三种机型,它们的指令系统与芯片引脚完全兼容,仅片内程序存储器有所不同。8031芯片不带ROM,8051芯片带4KB的ROM,8751芯片带4KB的EPROM。
对于52子系列,有8031、8052、8752三种机型。52子系列与51子系列相比大部分相同,不同之处在于:片内数据存储器增至256B;8032芯片不带ROM,8052芯片带8KB的ROM,8752芯片带8KB的EPROM ;有3个16位定时/计数器;6个中断源。
MCS-51系列单片机的结构原理
MCS-51系列单片机的基本组成
MCS-51系列单片机的内部结构
它集成了中央处理器(CPU)、存储器系统(RAM和ROM)、定时\计数器,并行接口、串行接口、中断系统及一些特殊功能寄存器(SFR)。他们通过内部总线紧密地联系在一起。它的总体结构仍是通用cpu加上外围芯片的总线结构。只是在功能部件的控制上与一般微机的通用寄存器加接口寄存器控制不同,CPU与外设的控制不再分开,采用特殊功能寄存器集中控制,使用更方便。
51系列单片机的中央处理器
运算部件
以算术逻辑运算单元ALU为核心,包含累加器ACC(A)、B寄存器、暂存器1、暂存器2、标志寄存器PSW等部件。
逻辑运算单元ALU:8位的运算器,可以实现算术运算、逻辑运算,数据传输、程序转移等功能。
累加器ACC(A):参与绝大多数运算处理。
寄存器B称为辅助寄存器:辅助累加器ACC(A)完成乘法和除法运算。
标志寄存器PSW:用于保存指令执行的状态,以供程序查询和判别;4位状态标志和2位控制标志。
其中RS0和RS1是寄存器组选择位,用软件置1或清0。在51单片机中为了弥补CPU寄存器的不足,在片内数据存储器中用了32个字节作寄存器使用。,这32个字节分成4组,每组8个,用寄存器R0~R7表示,这两位用于从4组工作寄存器中选定当前的工作寄存器组。
控制部件
控制部件:包括定时和控制电路、指令寄存器、指令译码器、程序指针PC、PC增量器、堆栈指针SP、数据指针DPTR以及信息传送控制部件等。
程序指针寄存器PC是一个16位的寄存器,8051单片机通过PC控制从程序存储器取指令。
堆栈指针寄存器SP,8位,用于控制对堆栈空间进行操作,堆栈空间位于片内数据存储器。
数据指针寄存器DPTR,16位,DPTR作指针控制对片外64KB数据存储器进行访问。可分为高8位(DPH)和低8位(DPL)。
MCS-51系列单片机的存储器结构
MCS-51系列单片机的存储结构与一般微机的存储结构不同,采用哈佛结构,,分程序存储器ROM和数据存储器RAM。程序存储器存放程序、固定常数和数据表格,数据存储器用作工作区及存放数据,两者完全分开。
程序存储器
注意,对于51单片机程序存储器的64KB存储空间,使用时有7个特殊的地址,即复位地址和各种中断地址,复位地址占3个单元,其他的中断地址占8个单元,中断地址的8个单元用于存放中断服务程序往往不够用,通常会放一条绝对转移指令,转到真正的中断服务程序。
6个中断入口地址之后是用户程序区,用户可以把用户程序放在用户程序区的任一位置,一般我们把用户程序放在从0100H开始的区域 。
数据存储器
数据存储器用于存取程序执行时所需的数据,它从物理结构上分为片内数据存储器和片外数据存储器。这两个部分在编址和访问方式上各不相同,其中片内数据存储器又可分成多个部分,采用多种方式访问。
1、片内数据存储器
MCS -51系列单片机的片内数据存储器可分为片内随机存储块和特殊功能寄存器( SFR )块。对于 MCS -51子系列,前者有128字节,编址为00H-7FH;后者也占128字节,编址为80H- 0FFH :二者连续不重叠。对于52子系列,前者有256字节,编址为00H~ OFFH :后者也有128字节,编址为80H~ 0FFH :后者与前者的后128字节编址重叠访问时通过不同的指令相区分。片内随机存储块按功能又可以分成以下几个部分:工作寄存器组区、位寻址区、一般 RAM 区和堆栈区。具体分配情况如图所示。
片内存储器便于CPU快速频繁访问
容量有限,51系列仅128B
-
工作寄存器组区
工作寄存器也称为通用寄存器。共32个字节,为00H~1FH单元。共四组,分为0组,1组,2组,3组,每组8个寄存器,依次用R0-R7表示和使用。这一点注意与CPU中的标志寄存器PSW建立起联系。使用哪一组当中的寄存器由程序状态寄存器PSW中的RS0和RS1两位来选择。 -
位寻址区
20H-2FH为位寻址区,共16字节,128位。这128位每位都可以按位方式使用,每一位都有一个直接位地址,位地址范围为00H-7FH。
-
一般RAM区
30H-7FH是一般RAM区,也称用户RAM区,共80字节。一般可以用来存放用户建的表或其他一些数据。 -
堆栈区与堆栈指针
堆栈是在存储器中按“先入后出,后入先出”的原则进行管理的一段存储区域,通过堆栈指针SP管理。 -
特殊功能寄存器
特殊功能寄存器( SFR )也称为专用寄存器,专门用于控制、管理片内算术逻辑部件、并行 O 接口、串行口、定时/计数器、中断系统等功能模块的工作。用户在编程时可以给其设定值,但不能移作他用。 SFR 分布在80H~ OFFH 的地址空间,与片内随机存储块统一编址。
这里注意,有一个小问题,我们知道51子系列单片机片内数据存储器只有128B那么为什么SFR可以分布在80H-0FFH这一段不存在的地址空间呢,其实SFR只是在逻辑上与片内随机存储块统一编址,而实际的物理地址并不在片内数据存储器中。
除 PC 外, MCS -51子系列有18个特殊功能寄存器,其中3个为双字节,共占用21个字节;52子系列有21个特殊寄存器,其中5个为双字节,共占用26个字节。它们的分配情况如下。
MCS-51系列单片机的输入输出接口
MCS -51系列单片机有4个8位的并行 I / O 接口:P0、P1、 P 和P3。它们是特殊功能寄存器中的4个。这4个接口,既可以作输入,也可以作输出,既可按8位处理,也可按位方式使用。输出时具有锁存能力,输入时具有缓冲功能。每个接口的具体功能有所不同。下面分别介绍。
1. P0口
P0口是一个三态双向口,可作为地址/数据分时复用接口,也可作为通用的I/O接口。由控制信号决定,当控制信号为高电平1时,P0口作为地址/数据分时复用总线。当控制信号为低电平0时,作为普通的I/O接口使用。
当P0作为通用I/O时,应注意以下两点:
2. P1口
P1口是准双向口,它只能用作通用I/O接口使用,内部有上拉电阻,不需要外接上拉电阻。
3. P2口
P2口也是准双向口,它有两种用途:通用I/O接口和高8位地址线。
4. P3口
P3口除了作为准双向通用I/O接口外,它的每一根线还有第二种功能。当P3口作为第二功能使用时,锁存器的Q输出端必须为高电平,否则V1管导通,引脚将被钳位在低电平,无法实现第二功能。‘
51系列单片机的外部引脚及片外总线
外部引脚
MCS-51系列单片机有40个引脚
片外总线结构
-
地址总线
地址总线的宽度为16位,寻址范围都为64KB。由 P0 口经地址锁存器提供低8位(A7-A0),P2口提供高8位(A15-A8)而形成。可对片外程序存储器和片外数据存储器寻址。 -
数据总线
数据总线的宽度为8位,由 P0口直接提供。 -
控制总线
控制总线由第二功能状态下的P3口和4根独立的控制线 RST 、 EA 、 ALE 和 PSEN 组成。
51系列单片机的工作方式
复位方式
51系列单片机的时序
时钟周期、机器周期和指令周期
时钟周期(振荡周期):单片机内部时钟电路产生(或外部时钟电路送入)的信号周期,单片机的时序信号是以时钟周期信号为基础而形成,在它的基础上形成了机器周期、指令周期和各种时序信号。
机器周期:机器周期是单片机的基本操作周期,每个机器周期包含S1、S2、……、S6共6个状态,每个状态包含两拍 Pl 和P2,每一拍为一个时钟周期(振荡周期)。因此,一个机器周期包含12个时钟周期。依次可表示为SiP1、SIP2、S2P1、S2P2、……、S6P1、S6P2。
指令周期:计算机从取一条指令开始,到执行完该指令所需要的时间称为指令周期。不同的指令,指令长度不同,指令周期也不一样。但指令周期以机器周期为单位。51单片机指令根据指令长度和指令周期可分为:单字节单周期指令、单字节双周期指令、双字节单周期指令、双字节双周期指令、三字节双周期指令以及一字节四周期指令。