第 2章 MCS-51单片机的硬件结构
2.1 MCS-51单片机的物理结构及逻辑结构
2.2 MCS-51单片机的片外总线结构
2.3 MCS-51单片机的存储器配置
2.4 CPU的时序及辅助电路
2.1 MCS-51单片机的物理结构及逻辑结构
2.1.1 MCS-51单片机的封装和引脚分配
2.1.2 MCS-51单片机的系统结构
2.1.3 MCS-51单片机的引脚定义
2.1.4 MCS-51单片机硬件结构要点
2.1.5 MCS-51单片机内部结
2.1.6 输入 /输出( I/O)端口结构返回本章首页
MC
S-
51
单片机的引脚配置图
P1.0
P1.1
P1.2
P1.3
P1.4
P1.5
P1.6
P1.7
RST/VPD
RXD/P3.0
TXD/P3.1
INT0/P3.2
INT1/P3.3
T0/P3.4
T1/P3.5
WR/P3.6
RD/P3.7
XTAL2
XTAL1
VSS
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
8031
8051
8751
40
39
38
37
36
35
34
33
32
31
30
29
28
27
26
25
21
22
23
24
VCC
P0.0
P0.1
P0.2
P0.3
P0.4
P0.5
P0.6
P0.7
EA/Vpp
ALE/PROG
PSEN
P2.7
P2.6
P2.5
P2.4
P2.3
P2.2
P2.1
P2.0
返回本节
2.1.2 MCS-51单片机的系统结构图 2-1 MCS-51单片机 系统结构 示意图时钟电路 SFR和 RAM ROM
CPU
定时 /计数器并行端口 中断系统串行端口系 统 总 线时钟源 T0 T1
P0 P1 P2 P3 TXD RXD INT0 INT1
下一页
( 1) 一个 8位微处理器 CPU。
( 2) 数据存储器 RAM和特殊功能寄存器 SFR。
( 3) 内部程序存储器 ROM。
( 4) 两个定时 /计数器,用以对外部事件进行计数,也可用作定时器 。
( 5) 四个 8位可编程的 I/O( 输入 /输出 ) 并行端口,每个端口既可做输入,也可做输出 。
( 6) 一个串行端口,用于数据的串行通信 。
( 7) 中断控制系统 。
( 8) 内部时钟电路 。
下一页图 2-2 MCS-51芯片内部结构框图通道 0驱动器 通道 2驱动器
RAM地址锁存器 RAM 通道 0 锁存器通道 2 锁存器
ROM/
EPROM
B寄存器程序地址寄存器缓冲器
PC递增器程序计数器 PC
DPTR指针
VCC
GND
P1.0~ P1.7
堆栈指针 SPACC
TMP2
PSW
通道 3锁存器通道 1锁存器通道 1驱动器 通道 3驱动器
TMP1
SCON TMODPCON TCON
TL0 TH1TH0 TL1
IESBUF(TX/RX) IP
中断,串行口和定时器逻辑振荡器
P3.0~ P3.7
RST
ALE
PSEN
XTAL2XTAL1
ALU
(+5V)
指令寄存器定时和控制逻辑指令译码器
P0.0~ P0.7 P2.0~ P2.7
返回本节
2.1.3 MCS-51单片机的引脚定义
1,输入输出口,P0,P1,P2,P3
2,RST(复位) / VPD(后备电源引入端)
3,EA (读内 /外 ROM控制) /Vpp(编程电压)
4,ALE(地址低 8位锁存) / PROG(编程脉冲)
5,PSEN 外部 ROM读选通信号
6,XTAL1,XTAL2 外接晶振端
7,Vcc +5v电源
8,Vss 地
9,P3口的第二功能返回本节
WR(外部数据存储器写脉冲)
INT1(外部中断 1)
INT0(外部中断 0)
表2-
2 P
3
口的第二功能表
P3.2
P3.3
位线 引脚 第二功能
P3.0 10 RXD(串行输入口)
P3.1 11 TXD(串行输出口)
12
13
P3.4 14 T0(定时器 0的计数输入)
P3.5 15 T1(定时器 1的计数输入)
16
17 RD(外部数据存储器读脉冲)P3.7
P3.6
上一页
2.1.4 MCS-51单片机硬件结构要点
1,内部程序存储器 ( ROM) 和内部数据存储器 ( RAM) 容量 ( 如表 2-1所示 ) 。
2,输入 /输出 ( I/O) 端口
3,外部程序存储器和外部数据存储器寻址空间
4,中断与堆栈
5,定时 /计数器与寄存器区
6,指令系统下一页存储器类型单片机系列掩膜 ROM EPROM RAM
MCS-
51
51子系列
803
1 / / 128B
805
1 4KB / 128B
875
1 / 4KB 128B
52子系列
803
2 / / 256B
805
2 8KB / 256B
875
2 / 8KB 256B
表2-
1 M
CS
-51
单片机存储器容量返回本节
2.1.5 MCS-51单片机内部结构
1,运算器运算器由 8位算术逻辑运算单元 ALU
( Arithmetic Logic Unit),8位累加器 ACC
( Accumulator),8位寄存器 B、程序状态字寄存器 PSW( Program Status Word),8位暂存寄存器 TMP1和 TMP2等组成。
2.控制器主要由程序计数器 PC,指令寄存器 IR,指令译码器 ID,堆栈指针 SP,数据指针 DPTR,时钟发生器及定时控制逻辑等组成 。
返回本节
2.1.6 输入 /输出( I/O)端口结构
MCS-51单片机有 4个双向并行的 8位 I/O
口 P0~ P3,P0口为三态双向口,可驱动 8个
TTL电路,P1,P2,P3口为准双向口 ( 作为输入时,口线被拉成高电平,故称为准双向口 ),其负载能力为 4个 TTL电路 。
下一页
1,P0口的结构
VCC
P0.X
锁存器读锁存器地址 /数据 控制
D
读引脚写锁存器内部总线 Q
Q MUX T2
P0.X
T1
CL
图 2-3 P0口的 1位结构图
1
0
下一页
2,P1口的结构
VCC
P1.X
锁存器读锁存器
D
读引脚写锁存器内部总线 Q
Q T
内部上拉电阻
CL
图 2-4 P1口的一位结构图下一页
3,P2口的结构图 2-5 P2口的一位结构图
VCC
P2.X
锁存器读锁存器 地址 控制
D
读引脚写锁存器内部总线 Q
Q
MUX
T
P2.X
内部上拉电阻
CL
下一页
4,P3口的结构图 2-6 P3口的一位结构图
VCC
P3.X
锁存器读锁存器 第二输出功能
D
读引脚写锁存器内部总线 Q
Q
T
内部上拉电阻第二输入功能
CL
返回本节
2.2 MCS-51单片机的片外总线结构
P0.3
地址锁存器
CB
I/O
A15
A14
A13
A12
A11
A10
A9
A8A
7A
6A
5A
4A
3A
2A
1A
0D
7D
6D
5D
4D
3D
2D
1D
0
DB
AB
P1.0
P1.1P
1.2P
1.3P
1.4P
1.5P
1.6P
1.7
RESET
P3.0P
3.1
P3.3
P3.4
P3.5
P3.6
P3.7
VSS
VCC
P0.0
P0.1
P0.2
P0.5P0.6
P0.7
EA
ALE
PSEN
P2.7
P2.6P
2.5P
2.4P
2.3P
2.2P
2.1P
2.0
P3.2
图 2-8 MCS-51片外总线结构示意图下一页微型计算机中的总线通常分为:
( 1) 地址总线 ( AB),地址总线宽度为 16位,
由 P0口经地址锁存器提供低 8位地址 ( A0-A7) ;
P2口直接提供高 8位地址 ( A8~ A15) 。 地址信号是由 CPU发出的,故地址总线是单方向的 。
( 2) 数据总线 ( DB),数据总线宽度为 8位,
用于传送数据和指令,由 P0口提供 。
( 3)控制总线( CB):控制总线随时掌握各种部件的状态,并根据需要向有关部件发出命令。
返回本章首页
2.3 MCS-51单片机的存储器配置
2.3.1 存储器空间分配
2.3.2 片内数据存储器
2.3.3 片外数据存储器
2.3.4 程序存储器返回本章首页
2.3.1 存储器空间分配空间分配图物理上有四个存储器空间:
(a)程序存储器 [片内、片外 ]
(b)数据存储器 [片内、片外 ]
逻辑上有三个存储空间:
(a)片内外统一的 64KB程序存储地址空间
(b) 256B内部数据存储器地址空间
(c) 64KB外部数据存储器地址空间下一页使用 上有 五 个存储器空间:
可被直接寻址的数据地址空间
位地址空间
外部的数据地址空间
程序地址空间
可间接寻址的数据空间特点,1、数据、程序存储器空间分开。
2、物理存储器有内外之分。
返回本节内部数据存储器
( a)
外部数据存储器
( b)
MCS-51单片机存储器空间分配特殊功能寄存器
00H
1FH
20H
2FH
30H
7FH
80H
FFH
80H
88H
90H
98H
A0H
A8H
B0H
B8H
D0H
E0H
F0H 特殊功能寄存器中位寻址外部
ROM
内部
ROM
(EA=1)
外部
ROM
(EA=0)
0000H 0000H
0FFFH 0FFFH
1000H
FFFFH
外 部
RAM
(I/O口地址 )
0000H
FFFFH
程序存储器
( c)
工作寄存器区位寻址区通用
RAM区返回
2.3.2 片内数据存储器
1,片内数据存储器低 128单元,00H— 7FH。
( 1) 寄存器区,32个 8位寄存器,00H— 1FH分为 4组 。 每组 8个寄存器,分别为 R0— R7,4个组的选择由状态字中的 RS1,RS0的值确定 。 见教材 P20
( 2) 位地址区,20H— 2FH,共 16个字节单元,128个位单元 。
( 3) 用户 RAM区,30H— 7FH,通常堆栈放在此区 。
2,片内数据存储器高 128单元,80H— 0FFH。
(1)专用 (特殊功能 )寄存器 SFR,22个,其中 21个可寻址,PC不可寻址 。
A,程序计数器 PC( 16位 ),用于存放将要执行的指令地址 ( 程序存储器地址 ),并具有自动加 1的功能 。
B,累加器 A( 8位 ),存放运算中的操作数据及运算后的结果 。
C,B寄存器 ( 8位 ),用于乘除法中的第二个操作数和运算后的结果 。
下一页内部数据存储器中的位地址返回表 2-4 特殊功能寄存器地址及功能表 返回
D7 D6 D5 D4 D3 D2 D1 D0
CY AC F0 RS1 RS0 OV / P
RS1 RS0 选择工作寄存器组
0 0 0组( 00H~ 07H)
0 1 1组( 08H~ 0FH)
1 0 2组( 10H~ 17H)
1 1 3组( 18H~ 1FH)
工作寄存器组选择控制表程序状态字 PSW
返回
D、程序状态字 PSW( 8位):寄存着程序运行中的状态信息,各位代表的状态见教材 P20。
E,栈指针寄存器 SP( 8位 ),其值始终指向栈的顶部,PUSH时值先加 1,后存数 。
F,其它专用寄存器:数据指针寄存器 DPTR( 16位 ),端口寄存器 P0/P1/P2/P3( 8位 ),串行数据缓冲器 SBUF( 8位 ),定时 /计数器 T0/T1( 16位 ),控制寄存器 IP/IE/TMOD/TCON/SCON/PCON
( 8位 )
( 2)专用寄存器的字节寻址:只能使用直接寻址方式,在指令中既可以使用寄存器符号表示,也可以使用寄存器地址表示。
( 3)专用寄存器的位寻址,21个 SFR中的 11个可以位寻址。见教材 P22表 2-4
返回本节
2.3.2 片外数据存储器外部数据存储器又称外部 RAM,当片内
RAM不能满足数量上的要求时,可通过总线端口和其他 I/O口扩展外部数据 RAM,其最大容量可达 64K字节。
在片外数据存储器中,数据区和扩展的
I/O口是统一编址的,使用的指令也完全相同,
因此,用户在应用系统设计时,必须合理地进行外部 RAM和 I/O端口的地址分配,并保证译码的唯一性。
返回本节
2.3.3 程序存储器程序存储器的包括片内和片外程序存储器两个部分 。
其主要用来存放编好的用户程序和表格常数,它以 16
位的程序计数器 PC作为地址指针,故寻址空间为 64KB。
8051片内有 4kB( 0000H— 0FFFH),其中特殊保留单元:系统复位后 PC=0000H
0000H— 0002H 无条件转移指令
0003H— 000AH INT0中断地址区
000BH— 0012H T0中断地址区
0013H— 001AH INT1中断地址区
001BH— 0022H T1中断地址区
0023H— 002AH 串行中断地址区返回本节
2.4 CPU的时序及辅助电路
2.4.1 单片机的时钟电路
2.4.2 振荡周期、时钟周期、机器周期和指令周期
2.4.3 MCS-51单片机指令的取指和执行时序
2.4.4 单片机复位电路及复位状态返回本章首页
2.4.1 单片机的时钟电路单片机时钟电路通常有两种形式:
1,内部振荡方式,MCS-51单片机片内有一个用于构成振荡器的高增益反相放大器,引脚
XTAL1和 XTAL2分别是此放大器的输入端和输出端 。 把放大器与作为反馈元件的晶体振荡器或陶瓷谐振器连接,就构成了内部自激振荡器并产生振荡时钟脉冲 ( 如图 1所示 ) 。
2,外部振荡方式,外部振荡方式就是把外部已有的时钟信号引入单片机内 ( 如图 2所示 ) 。
返回本节
XTAL2
XTAL1
MCS-51
C1
C2
CYS
XTAL2
XTAL1
MCS-51
+5V
VSS
TTL
外部时钟源图 1 内部振荡方式 图 2 外部振荡方式返回
P1 P2
S1
振荡周期时钟周期机器周期 机器周期指令周期
XTAL2
(OSC)
S2 S3 S4 S5 S6 S1 S2 S4 S5S3 S6
P1 P1 P1 P1 P1 P1 P1 P1 P1 P1 P1P2 P2 P2 P2 P2 P2 P2 P2 P2 P2 P2
图 MCS-51单片机各种周期的相互关系
2.4.2 振荡周期、时钟周期、机器周期和指令周期下一页
1,振荡周期,为单片机提供时钟信号的振荡源的周期 。
2,时钟周期,是振荡源信号经二分频后形成的时钟脉冲信号 。
3,机器周期,通常将完成一个基本操作所需的时间称为机器周期 。
4,指令周期,是指 CPU执行一条指令所需要的时间 。 一个指令周期通常含有 1~ 4个机器周期 。
下一页若 MCS-51单片机外接晶振为 12MHz时,则单片机的四个周期的具体值为:
振荡周期= 1/12MHz= 1/12μs= 0.0833μs
时钟周期= 1/6μs= 0.167μs
机器周期= 1μs
指令周期= 1~ 4μs
返回本节
2.4.3 MCS-51单片机指令的取指和执行时序图M
CS
-
51
单片机典型指令的取指和执行时序再读下一条指令再读下 一条指令
XTAL2
(OSC)
P 2
S1
ALE
读操作码 读下一个操作码( 丢弃 )
读第二字节
( a) 单字节,单周期指令 例,MOV A R1
( d) 单字节,双周期指令,如 MOVX
P 1 P 2
S1
P 1 P 2
S2
P 1 P 2
S3
P 1 P 2
S4
P 2
S5
P 2
S6
P 2
S1
P 1 P 1 P 1 P 1 P 2
S2
P 1 P 2
S3
P 1 P 2
S4
P 1 P 2
S5
P 2
S6
P 2
S1 S2
P 1 P 1 P 1
P 1 P 2
S2
P 1 P 2
S3
P 1 P 2
S4
P 1 P 2
S5
P 1 P 2
S6
P 1 P 2
S1
P 1
P 2
S1
读操作码
P 1 P 2
S2
P 1 P 2
S3
P 1 P 2
S4
P 1 P 2
S5
P 1 P 2
S6
P 1 P 2
S1
P 1
读下一个操作码 ( 丢弃 )
( b) 双字节,单周期指令 例,ADD A dir
( c) 单字节,双周期指令 例,INC DPTR
读操作码 (
MOVX)
读下一个操作码 (
丢弃 )
无取指无 ALE 无取指地址 数据 ( DATA)
访问外部存储器
P 2
S1
读操作码
P 1 P 2
S2
P 1 P 2
S3
P 1 P 2
S4
P 1 P 2
S5
P 1 P 2
S6
P 1 P 2
S1
P 1 P 2
S2
P 1 P 2
S3
P 1 P 2
S4
P 1 P 2
S5
P 1 P 2
S6
P 1 P 2
S1
P 1 P 2
S2
P 1
P 2
S1
P 1 P 2
S2
P 1 P 2
S3
P 1 P 2
S4
P 1 P 2
S5
P 1 P 2
S6
P 1 P 2
S1
P 1 P 2
S2
P 1 P 2
S3
P 1 P 2
S4
P 1 P 2
S5
P 1 P 2
S6
P 1 P 2
S1
P 1 P 2
S2
P 1
返回本节
2.4.4 单片机复位电路及复位状态
1,复位电路单片机复位电路包括片内、片外两部分。外部复位电路就是为内部复位电路提供两个机器周期以上的高电平而设计的。 MCS-51单片机通常采用上电自动复位和按键手动复位两种方式。 如图所示 。
2.单片机复位后的状态单片机运行出错或进入死循环时,可按复位键重新运行。 21个特殊功能寄存器复位后的状态为确定值,如表所示 。
下一页复位后,P0— P3口输出高电平,初值 07H
写入栈指针 SP,清,0”其余的特殊功能寄存器和程序计数器 PC。只要 RESET保持高电平,
单片机循环复位 RESET由高变低后,单片机从
0地址开始执行程序。单片机初始复位不影响内部 RAM的状态,包括工作寄存器 R0— R7。
返回本节
22μF
C1
RST
R1
1KΩ
+5V
22μF
C1
RST
+5V
R2
200Ω
RST
R1
+5V
C2
22μF
8031
8051
8751
8031
8051
8751
8031
8051
8751
( a) 上电复位电路 ( c) 按键脉冲复位电路( b) 按键电平复位电路
R1
1KΩ
22μF
C1
1K
Ω
R2
1K
Ω
图 几种复位电路返回特殊功能寄存器初始状态 特殊功能寄存器初始状态
A 00H TMOD 00H
B 00H TCON 00H
PSW 00H TH0 00H
SP 07H TL0 00H
DPL 00H TH1 00H
DPH 00H TL1 00H
P0~ P3 FFH SBUF ××××××
×× B
IP ××× 00000
B
SCON 00H
IE 0×× 00000B PCON 0××××××
× B
表单片机复位后特殊功能寄存器的状态返回