第 2章 MCS-51 单片机组成原理
2.1 MCS-51单片机的内部结构
2.2 CPU的结构
2.3 MCS-51单片机存储器
2.4 时钟电路及时序
2.5 输入 /输出端口
2.6 MCS-51单片机的引脚功能
2.7 MCS-51单片机的工作方式退出
2.1 MCS-51单片机的内部结构
MCS-51单片机的内部结构框图如图 2.1所示
2.2 CPU的结构
CPU包括运算器和控制器二大部分 。
2.2.1 运算器运算器包括算术/逻辑部件 (ALU),累加器 A,暂存寄存器,寄存器 B,程序状态寄存器 ( PSW),十进制调整电路等 。 运算器主要用于实现算术 /逻辑运算及位操作运算 。 下面介绍运算器的各组成部分 。
1,算术/逻辑部件 ALU
2,累加器 A
3,寄存器 B
4,程序状态字寄存器 PSW
D 7 D 6 D 5 D 4 D 3 D 2 D 1 D 0
Cy AC F0 RS1 RS0 OV … P PSW
图 2 - 2 程 序 状 态 字 PSW
CY( PSW.7),进位标志位 。 在进行加法 ( 或减法 ) 运算时,若运算结果最高位有进位或借位,则 CY
自动置,1”,否则 CY置,0”,在进行布尔操作运算时,
CY( 简称 C) 作为布尔处理器 。
AC:辅助进位标志位 。 当进行加法或减法时,若低 4位向高 4位有进位 ( 或借位 ) 时,AC被置,1”,否则 AC被置,0”。 在十进制调整指令中 AC还作为十进制调整的判别位 。
F0:用户标志位 。 用户可用软件对 F0位置,1”或清,0”以决定程序的流向 。
OV:溢出标志位,当运算结果溢出时 OV为,1”,
否则为,0”,此标志位反映了运算结果是否溢出。
PSW.1:未定义位。
P( PSW.0):奇偶标志位。 MCS-51单片机采用的是偶校验。当累加器 A中,1”的个数为奇数时,P置
,1”,否则 P置,0”。此位反映累加器 A中内容,1”的奇偶性,它常常用于机间通信。
RS1,RS0:工作寄存器区选择位。用来选择当前工作的寄存器区。用户通过改变 RS1,RS0的内容来选择当前工作寄存器区。 RS1,RS0的内容与工作寄存器区的对应关系如表 2-1所示。
表 2 - 1 R S 1,R S 0 与片内工 作寄存 器组的 对应 关系
RS1 RS0 寄存器区 片内 RA M 地址 通用寄存器名称
0 0 0 0 0 H~ 0 7 H R0 ~ R7
0 1 1 0 8 H~ 0 FH R0 ~ R7
1 0 2 1 0 H~ 1 7 H R0 ~ R7
1 1 3 1 8 H~ 1 FH R0 ~ R7
2.2.2 控制器
1,指令寄存器 IR和指令译码器 ID。
指令寄存器是存放指令代码的地方 。 当执行指令时,CPU把从程序存储器中读取的指令代码送入指令寄存器,然后指令译码器译码后由定时控制电路发生相应的控制信号,最终完成指令所规定的操作 。
2,程序计数器 PC
程序计数器 PC的功能与普通微机相同,它用来存放 CPU执行的下一条指令的地址。当一条指令按照 PC
所指的地址从程序存储器中取出后,PC会自动加 1,
指向下一条指令。程序计数器 PC是一个 16位的寄存器,
可寻址 64KB的程序存储器空间。
3,堆栈指针 SP
4,数据指针寄存器 DPTR
2.2.3 工作寄存器和特殊功能寄存器
1,工作寄存器
MCS-51有 32个工作寄存器,分为四个区(或组)
每个区为 8个寄存器 R0,R1,R2,R3,R4,R5,R6、
R7,每一时刻只有一个区工作。由 PSW寄存器中的
RS1,RS0的值来决定当前的工作区:
当 RS1 RS0= 00时,0区为工作区,
RS1 RS0= 01时,1区为工作区
RS1 RS0= 10时,2区为工作区
RS1 RS0= 11时,3区为工作区这 32个工作寄存器不但有它们的名称和区号,而且还有地址。 00H-1FH共 32个单元。
00H~ 07H为 0区,分别对应 R0~ R7
08H~ 0FH为 1区,分别对应 R0~ R7
10H~ 17H为 2区,分别对应 R0~ R7
18H~ 1FH为 3区,分别对应 R0~ R7
这 32个单元为内部数据存储器(即片内 RAM)的
00H~ 1FH存贮空间,这与普通微机中的通用寄存器基本相同,所不同的是,普通微机的通用寄存器只有名称,不占有 RAM空间,因此只有名字,没有对应的地址;而 MCS-51单片机的工作寄存器 R0~ R7既可以用名字也可以用它的地址来表示 。其中 R0,R1寄存器除做工作寄存器外还常做间址寻址的地址指针。
2,特殊功能寄存器 SFR(又称专用寄存器)
这 21个特殊功能寄存器详情见表 2-2。
表 2 - 2 特殊 功能寄 存器 SFR
特殊功能寄存器功能名称 地 址 复位后初态
B 通用寄存器 F0 H 00H
A 累加器 E0 H 00H
PSW 程序状态寄存器 D 0 H 00H
IP 中断优先级控制寄存器 B 8 H X X X 0 0 0 0 0 B
P3 P3 口数据寄存器 B 0 H FFH
IE 中断允许控制寄存器 A 8 H 0 X X 0 0 0 0 0 B
P2 P2 口数据寄存器 A 0 H FFH
SBU F 串行口发送 / 接收缓冲器 99H 不定
SCO N 串行口控制寄存器 98H 00H
P1 P1 口数据寄存器 90H FFH
T L 1 T1 计数器低 8 位 8 BH 00H
T L 0 T0 计数器低 8 位 8 A H 00H
T H1 T1 计数器高 8 位 8 DH 00H
T H0 T0 计数器高 8 位 8 CH 00H
T M OD
定时器 / 计数器方式控制寄存器
89H 00H
T CON 定时器控制寄存器 88H 00H
P CON 电源控制寄存器 87H 00H
DP L 地址寄存器低 8 位 82H 00H
DP H 地址寄存器高 8 位 83H 00H
SP 堆栈指针寄存器 81H 07H
P0 P0 口数据寄存器 80H FFH
这 21个特殊功能寄存器中,有 11个寄存器具有位寻址功能,即寄存器中的每位都具有位地址,可以按位寻址 。 11
个寄存器的位地址如图 2-3所示 。
(MS B) (L SB)
F0
H
F7 F6 F5 F4 F3 F2 F1 F0 B
E0
H
E7 E6 E5 E4 E3 E2 E1 E0 A
D0
H
D7 D6 D5 D4 D3 D2 D1 D0 PSW
PS
PT
1
PX
1
PT
0
PX
0
B8
H






BC BB BA B9 B8 IP
B0
H
B7 B6 B5 B4 B3 B2 B1 B0 P3
EA ES
ET
1
EX
1
ET
0
EX
0
A8
H
AF




AC AB AA A9 A8 IE
A0
H
A7 A6 A5 A4 A3 A2 A1 A0 P2
SM
0
SM
1
SM
2
RE
N
TB
8
RB
8
TI RI
98H 9F 9E 9D 9C 9B 9A 99 98
SCO
N
90H 97 96 95 94 93 92 91 90 P1
T F1
TR
1
T F0 T R0 IE1 IT 1 IE0 IT 0
88H 8F 8E 8D 8C 8B 8A 89 88
T CO
N
80H 87 86 85 84 83 82 81 80 P0
图 2 - 3 S F R 块 中 具 有 位 寻 址 功 能 寄 存 器 的 位 地 址
2.3 MCS-51单片机存储器
2.3.1 程序存储器
8051单片机内部有 4KB的掩膜 ROM,8751单片机内部有 4KB的 EPROM,而 8031内部没有程序存储器,
必须外接程序存储器 。
2.3.2 数据存储器
MCS-51系列单片机数据存储器分内部数据存储器
( 即片内 RAM) 和外部数据存储器 ( 即片外 RAM) 。
1,内部数据存储器
2,外部数据存储器由于 MCS-51子系列单片机内部数据存储器只有
128个字节,往往不够用,这就需要扩展外部数据存储器,外部数据存储器最多可扩至 64KB。
2.4 时钟电路及时序
2.4.1 时钟电路
1,内部方式时钟电路
2,外部方式时钟电路
2.4.2 时序
1,基本概念
( 1) 振荡周期振荡周期指为单片机提供定时信号的振荡源的周期,即晶体振荡器直接产生的振荡信号的振荡周期 。
( 2) 时钟周期时钟周期是振荡周期的两倍。是对振荡器 2分频的信号。时钟周期又称状态周期,用 S来表示,一个时钟周期,分为两个节拍,P1和 P2节拍。 P1节拍通常完成算术逻辑操作,P2节拍通常完成内部寄存器间数据的传递。
( 3) 机器周期一个机器周期由 6个时钟周期组成,即 S1~ S6,如果把一条指令的执行过程划分为几个基本操作,则完成一个基本操作所需的时间称为机器周期。
( 4) 指令周期指令周期是执行一条指令所需的全部时间。 MCS-
51单片机的指令周期通常由 1~ 4个机器周期组成。
2,几种典型的取指和执行时序
( 1) 单字节单周期指令
( 2) 双字节单周期指令
( 3) 单字节双周期指令
( 4) 访问外部数据存储器指令 MOVX时序
2.5 输入 /输出端口
2.5.1 P0口
P0口有8位,每一位由一个锁存器,两个三态输入缓冲器以及控制电路和驱动电路组成,其位结构如图 2-7( a) 所示 。
1,P0口作通用 I/O口
2,作分时复用的地址 /数据总线
2.5.2 P1口
P1口是一个专用的 8位准双向 I/O口,只具有通用输入 /输出口功能,每一位都能设定为输入或输出,它的位结构如图 2-7( b) 所示 。
2.5.3 P2口
P2口是一个 8位准双向 I/O口,具有两种功能 。 一是作通用 I/O口用,与 P1口相同 。 二是作扩展系统的高
8位地址总线 。 输出高 8位地址,与 P0口一起组成 16位地址总线 。 它的位结构如图 2-7( c) 所示 。
2.5.4 P3口
P3口也是一个 8位准双向 I/O口,除具有与 P1口同样的功能 ( 即可以作通用 I/O口使用 ) 外,还具有第二功能 。 当工作在第二功能时,每位都具有新的功能,
各位的定义如表 2-4。
P3口的位结构如图 2-7( d) 所示,当 P3口作通用
I/O口时,与 P1口相同 。
2.5.5 P0~ P3口的负载能力及接口要求
P0口的输出级的每一位可驱动 8个 LSTTL门 。 P0
口作通用 I/O口时,由于输出级是开漏电路,故用它驱动 NMOS电路时需外加上拉电阻;而作地址 /数据总线时,无需外接上拉电阻 。
P1口 ~ P3口的输出级的每一位可驱动 4个 LSTTL
门 。 由于它们的输出级内部有上拉电阻,因此组成系统时无需外加上拉电阻 。
2.6 MCS-51单片机的引脚功能
MCS-51单片机共有 40个引脚 。
2.7 MCS-51单片机的工作方式
MCS-51单片机有三种工作方式,复位方式,程序执行方式以及节电工作方式 。
2.7.1 复位方式
1,单片机复位后的工作状态
2,复位电路
2.7.2 程序执行方式
1,连续执行方式
2,单步执行方式
2.7.3 节电工作方式
1,HMOS单片机的掉电工作方式
2,CHMOS单片机的节电工作方式
( 1) 电源控制寄存器 PCON
P C O N ( 8 7 H ) D7 D 6 D 5 D 4 D3 D2 D1 D0
SM O D GF
1
GF 0 PD ID
L
( 2) 等待工作方式将 PCON中的 IDL位置 1,单片机进入等待工作方式,如图 2-11所示 。
( 3) 掉电工作方式