第 2章 MCS-51单片机的硬件结构
第 2章 MCS-51单片机的硬件结构
2.1 MCS-51单片机的基本结构
2.2 MCS-51单片机的引脚及片外总线结构
2.3 微处理器, CPU的时序及辅助电路
2.4MCS-51单片机的存储器配置
2.1.1 MCS-51单片机的基本组成
图 2-1 MCS-51单片机基本结构示意图
时钟电路 SFR和 RAM ROM
CPU
定时 /计数器
并行端口 中断系统串行端口
系 统 总 线
时钟源 T
0 T1
P0 P1 P2 P3 TXD RXD INT0 INT1
MCS-51单片机的基本组成
( 1) 一个 8位微处理器 CPU。
( 2) 数据存储器 RAM和特殊功能寄存器 SFR。
( 3) 内部程序存储器 ROM。
( 4) 两个定时 /计数器, 用以对外部事件进行
计数, 也可用作定时器 。
( 5) 四个 8位可编程的 I/O( 输入 /输出 ) 并行
端口, 每个端口既可做输入, 也可做输出 。
( 6) 一个串行端口, 用于数据的串行通信 。
( 7) 中断控制系统 。
( 8) 内部时钟电路 。
返回本节
2.1.2 MCS-51单片机的外部引脚说明
8031
8051
8751
?1,I/O口线功能
4个 8位并行 I/O 接口引脚
P0.0~ P0.7, P1.0~ P1.7,P2.0~
P2.7和 P3.0~ P3.7
为多功能引脚,可自动切换
用作数据总线、地址总线、
控制总线和或 I/O 接口外部
引脚。
40个引脚分为四类:电源、地 2条;
时钟 2条;控制 4条; I/O线 32条。
P0.0--P0.7(39-32):双向 I/O口 P0.
第二功能是在访问外部存储器时,可分时用作低 8位
地址和 8位数据线;在对 8751编程和校验时,用于数
据的输人/输出。
PO口能以吸收电流的方式驱动 8个 LS型 TTL负载
Pl,0--Pl,7(1-8):双向 I/O口 Pl。 P1口能驱动(吸收
或输出电流 )4个 LS型 TTL负载。
在对 EPROM编程和程序验证时,它接收低 8位地址。
在 8052单片机中 P1,0还用作定时器 2的计数触发输人
端 T2,P1,1还用作定时器 2的外部控制端 T2EX。
P2,0--P2,7(21-28),双向 I/O口 P2。 P2口可以驱动
( 吸收或输出电流 ) 4个 LS型 TTL负载 。
第二功能是在访问外部存储器时, 输出高 8位地址 。
在对 EPROM编程和校验时, 它接收高位地址 。
P3,0--P3.7(10-17):双向 I/O口 P3。 P3口能驱动(吸
收或输出电流) 4个 LS型 TTL负载。
P3口的每条引脚都有各自的第二功能,详见 2,6节。
2.控制线
ALE,地址锁存允许信号端
PSEN,外部程序存储器读
选通信号端
EA/VPP,程序存储器选择信
号端和编程电源输入端
8031
8051
8751
RST/VPD( 9),
RST是复位信号输人端
ALE/ ( 30):
ALE是地址锁存允许信号
PROG
PROG
在访问外部存储器时,用来锁存由 PO口送出的低 8
位地址信号 。在不访问外部存储器时,ALE以振荡频
率 1/ 6的固定速率输出脉冲信号 。因此它可用作对外
输出的时钟。但要注意,只要外接有存储器,ALE端输
出的就不再是连续的周期脉冲信号。
第二功能 用于对 8751片内 EPROM编程的脉冲输
人端 。
它是外部程序存储器 ROM的读选通信号 。 在执行访
问外部 ROM指令时, 会自动产生 PSEN信号;而在访
问外部数据存储器 RAM或访问内部 ROM时, 不产生
PSEN信号 。
PSEN (29):
访问外部存储器的控制信号。
当 EA高电平时,访问内部程序存储器;但当程序计
数器 PC的值超过 OFFFH(对 8051/80051/8751)或 1
FFFH(对 8052)时,将自动转向执行外部程序存储器
内的程序。
当 EA保持低电平时,只访问外部程序存储器,不管
是否有内部程序存储器。
第二功能 VPP为对 8751片内 EPROM的 21 V编程电源
输入。
/ PPEA V
( 31):
RST/VPD( 9),
RST是复位信号输人端 。 当此
输人端保持两个机器周期 ( 24
个振荡周期 ) 的高电平时, 就
可以完成复位操作 。
第二功能是 VPD, 即备用电源
输人端 。 当主电源发生故障,
降低到规定的低电平以下时,
vl,1。 将为片内 RAM提供备
用电源, 以保证存储在 RAM
中的信息不丢失 。
单片机的复位操作使单片机进
入初始化状态,其中包括使程
序计数器 PC= 0000H,这表明
程序从 0000H地址单元开始执
行。 21个特殊功能寄存器复
位后的状态为确定值。 。
XTALl( 19):
接外部晶体的一个引脚。 当单片机采用外部时钟信号时,此脚应
接地。
XTAL2( 18), 接外部晶体的一个引脚。当单片机采用外部时
钟信号时,外部时钟信号由此引脚接入 。
使用单片机内部振荡电路时,用来接外部晶体的两端和微调电
容。当单片机采用外部时钟信号时,则用来输入时钟脉冲。
Vss( 20),接地端。
Vcc( 40),电源端,接十 5V。
2.2 微处理器
1,运算器
运算器由 8位算术逻辑运算单元 ALU( Arithmetic
Logic Unit),8位累加器 ACC( Accumulator),8位
寄存器 B、程序状态字寄存器 PSW( Program Status
Word),8位暂存寄存器 TMP1和 TMP2等组成。 主要
进行数据的处理和加工。
1),ALU功能,用来完成二进制数的算术四则运算
和值的逻辑运算。并通过对运算结果的判定,影响
程序状态字寄存器 PSW相关位的状态。
2) ACC, 8位专用 寄存器,作 ALU的一个输入端,
同时 ALU的输出运算结果也送到 ACC,最忙。
运算器
通道 0驱动器 通道 2驱动器
RAM地址
锁存器 RAM 通道 0 锁
存器
通道 2 锁
存器
ROM/
EPROM
B寄存器
程序地址寄存器
缓冲器
PC递增器
程序计数器 PC0
驱动器
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
EA
ALE
PSEN
XTAL2XTAL1
ALU
(+5V)
指
令
寄
存
器
定时
和
控制
逻辑
指
令
译
码
器
图 2-2 MCS-51片内总体结构框图
内部总线
思考题
1,ALU的功能是什么?解释 ADD A,#24H。
2,ALU的两个输入端的操作数来自何处?
3、暂存寄存器 TMP起作用?
4、什么总线?有何特点?什么是内部总线?
什么是外部总线?( P7)
5、什么是缓冲器?工作原理?
3)程序状态字寄存器 PSW
定义格式,C:进借位标志; AC:辅助进借位标志;
F0:用户标志; RS1,RS0:工作寄存器组选择。
D7 D6 D5 D4 D3 D2 D1 D0
C AC F0 RS
1
RS
0
OV X P
RS1 RS0 选择工作寄存器组
0 0 0组( 00H~ 07H)
0 1 1组( 08H~ 0FH)
1 0 2组( 10H~ 17H)
1 1 3组( 18H~ 1FH)
OV:溢出标志
P:奇偶标志
2.控制器
是 CPU的大脑中枢, 主要由 控制部件, 时钟发
生器, 指令寄存器 IR,指令译码器 ID,数据指
针 DPTR,程序计数器 PC,堆栈指针 SP等组成 。
功能,对逐条指令进行译码,并通过定时和控制电路
在规定的时刻发出各种操作所需的内部和外部控制信
号,协调各部分的工作,从而使指令得以执行。
存入指
令寄存
器寄存
指令译码器译码
由定时与控制电路产生一系列控制信号
思考题:一条指令如何执行?
通道 0驱动器 通道 2驱动器
RAM地址
锁存器 RAM 通道 0 锁
存器
通道 2 锁
存器
ROM/
EPROM
B寄存器
程序地址寄存器
缓冲器
PC递增器
程序计数器 PC0
驱动器
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
EA
ALE
PSEN
XTAL2XTAL1
ALU
(+5V)
指
令
寄
存
器
定时
和
控制
逻辑
指
令
译
码
器
图 2-2 MCS-51片内总体结构框图
通道 0驱动器 通道 2驱动器
RAM地址
锁存器 RAM 通道 0 锁
存器
通道 2 锁
存器
ROM/
EPROM
B寄存器
程序地址寄存器
缓冲器
PC递增器
程序计数器 PC0
驱动器
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
EA
ALE
PSEN
XTAL2XTAL1
ALU
(+5V)
指
令
寄
存
器
定时
和
控制
逻辑
指
令
译
码
器
图 2-2 MCS-51片内总体结构框图
P0.0~ P0.7 P2.0~ P2.7
返回本节
单片机时钟电路通常有两种形式:
1,内部振荡方式,MCS-51单片机片内有一个
用于构成振荡器的高增益反相放大器, 引脚
XTAL1和 XTAL2分别是此放大器的输入端和输
出端 。 把放大器与作为反馈元件的晶体振荡器
或陶瓷谐振器连接, 就构成了内部自激振荡器
并产生振荡时钟脉冲 ( 如图 2-10所示 ) 。
2,外部振荡方式,外部振荡方式就是把外部
已有的时钟信号引入单片机内 ( 如图 2-11所
示 ) 。
3、单片机时钟电路及 CPU基本时序
3、单片机时钟电路及 CPU基本时序
向 CPU提供两相时钟信号
振荡器输出信号
一、机器周期、状态、振荡周期
一个机器周期 =6个状态 =12个振荡周期
1、振荡周期, 振荡器输出的 振荡时钟脉冲 信号的 周
期。 单片机以晶体振荡器的振荡周期 (或外部引入的
时钟周期 )为最小的时序单位,片内的各种微操作都
以此周期为时序基准。
2、时钟周期, 又称状态周期、状态时间 S,是振
荡周期的两倍。分为 P1,P2节拍。 P1节拍通常完
成逻辑操作,P2节拍通常完成内部寄存器间数据
传送。
3,机器周期
若把一条指令执行过程分为几个基本操作,则执行
每个基本操作所需要的时间,称为机器周期。 单片机
的一个机器周期包括 12个振荡周期,分为 6个 S状态:
S1 -S6。每个状态又分为 2拍,即前面介绍的 P1和 P2信
号;个机器周期中的 12个振荡周期可表示为
S1P1,S1P2,S2P1…… S6P1,S6P2o
4、指令周期
CPU执行一条指令所需要的时间。是以机器周期
为单位的, CPU执行一条指令通常需要 1~ 4个机器周
期 。
P1 P2
S1
P2
振荡周期
时钟周期
机器周期 机器周期
指令周期
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单片机各种周期的相互关系
思考题:若采用 12MHZ晶振,各周期是多少?
振荡周期= 1/fosc=1/12MHZ=0.0833us
再读下一条
指令
再读下一条
指令
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
二,CPU执行指令时序
2.3 MCS-51单片机的存储器配置
2.3.1 片内数据存储器
2.3.2 片外数据存储器
2.3.3 程序存储器
返回本章首页
2.3.1 片内数据存储器
见下张幻灯片
特
殊
功
能
寄
存
器
SFR
通用
RAM区
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
内部数据存储器
( a)
外部数据存储器
( b)
程序存储器
( c)
工作寄
存器区
图 2-9 MCS-51单片机存储器结构
位寻址区
128B
RAM
当某一组被设定成工作寄存器组后,该组中
的 8个寄存器,从低地址到高地址就分别称为
Ro-R7,从而可以把它们用作通用寄存器, 并
可按寄存器寻址方式被访问。 一旦工作寄存
器组被指定后,另外三组寄存器则同其它数
据 RAM一样,只能按字节地址被予以读写。
工作寄存器区
00H— 1FH,供用户编程使用,临时存放 8位
信息。共四组,每组 8个单元,即 8个 寄存器
位寻址区
20H— 2FH,16个字节。或布尔处理区。
该区每一位都被赋予一个地址,供 128位。
每个地址单元可进行字节操作之外,还可
进行为操作。
表 2-3 内部数据存储器中的位地址
数据缓冲区
30H— 7FH,即
用户区,供 80个
单元。用于存放
运算数据和结果。
实际上不使用的
位寻址的字节和
不使用的工作寄
存器区都可以用
作 数据缓冲区使
用。
堆栈区
用户可以指定内部 RAM的最高若干字节做为堆栈区。
在初始化程序中,可以对堆栈指针 SP写入栈底的地址,
于是从 SP指定的栈底直到 7FH单元都是堆栈区。 例如
MOV SP # 5FH.那么.从 60H— 7FH单元都是堆栈区。
堆栈是片内 RAM中临时开辟的暂存区, 堆栈主要是
为子程序调用和中断操作而设立的 。 其具体功能有
两种:保护现场和保护断点 。 计算机无论是执行子
程序还是执行中断操作, 最后都要返回主程序, 因
此计算机在转去执行这些程序之前, 必须考虑其返
回问题 。 这就要预先把主程序的断点保护起来, 为
程序的正确返回作准备 。 那么, 把断点和现场内容
保护在哪里? 这就必须保护在堆栈内,
思考题(教材 P31-P33页)
1、何谓堆栈?
2、为什么要设置堆栈?
3、栈区是如何确定?
5、数据进栈、出栈按何规律?用何指令?
6、进栈、出栈时指针如何变化?
7、栈区存放什么内容?
特殊功能寄存器区( SFR)
特殊功能寄存器 也叫专用寄存器,专用于控制、
管理片内算术逻辑部件、并行 I/O口、定时器 /
计数器、中断系统等功能模块的工作,用户在
编程时可以设定,却不能自由移作它用。
表 2-4 特殊功能寄存器地址及功能表
2.3.2 片外数据存储器
外部数据存储器又称外部 RAM,当片内 RAM
不能满足数量上的要求时,可通过总线端口和
其他 I/O口扩展外部数据 RAM,其最大容量可
达 64K字节,其结构如图所示。
在片外数据存储器中,数据区和扩展的 I/O口
是统一编址的,使用的指令也完全相同,因此,
用户在应用系统设计时,必须合理地进行外部
RAM和 I/O端口的地址分配,并保证译码的唯
一性。
返回本节
2.3.3 程序存储器
程序存储器的结构如图 2-9( c) 所示, 包括片
内和片外程序存储器两个部分 。 其主要用来存
放编好的用户程序和表格常数, 它以 16位的程
序计数器 PC作为地址指针, 故寻址空间为
64KB。
返回本节
2.4.4 单片机复位电路及复位状态
1,复位电路
单片机复位电路包括片内、片外两部分。外部
复位电路就是为内部复位电路提供两个机器周
期以上的高电平而设计的。 MCS-51单片机通
常采用上电自动复位和按键手动复位两种方式。
如图 2-14所示。
2.单片机复位后的状态
单片机运行出错或进入死循环时,可按复位键
重新运行。 21个特殊功能寄存器复位后的状态
为确定值,如表 2-6所示。
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
Ω
图 2-14 几种复位电路
特殊功能寄
存器
初始状态 特殊功能寄存
器
初始状态
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
表2-
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.4 输入 /输出( I/O)端口结构
正如图 2-2所示, MCS-51单片机有 4个双向
并行的 8位 I/O口 P0~ P3,P0口为三态双向口,
可驱动 8个 TTL电路, P1,P2,P3口为准双
向口 ( 作为输入时, 口线被拉成高电平, 故
称为准双向口 ), 其负载能力为 4个 TTL电
路 。
1,P0口的结构
P0端口由锁存器、输入缓冲器、切换开关与相应控制电路、场效应
管驱动电路构成。
总线 I/ O端口,双向,三态,数据地址分
时复用,该端口除用于数据的输入/输出
外,在 8031单片机外接程序存储器时,还
分时地输出/输入地址/指令。由 Po端口
输出的信号无锁存,输入的信息有读端口
引脚和读端口锁存器之分。 P0端口 8位中
的一位结构图见下图:
P0口的作用
在输出状态下,当切换开关 MUX向下时,
从内部总线来的数据经锁存器反相和场效应
管 T2反相,输出到端口引脚线上。此时,
场效应管 T1关断,因而这种输出方式应为
外接上拉电阻的漏极开路式。当切换开关
MUX向上时,一位地址/数据信号分时地
输出到端口线上。此外,由 T1,T2的通断
组合,形成高电平、低电平与高阻浮动三态
的输出。
P0口的工作原理
在输入状态下,从锁存器和从引脚上读来的信
号一般是一致的,但也有例外。例如,当从内
部总线输出低电平后,锁存器 Q= 0,Q= 1,
场效应管 T2开通,端口线呈低电平状态。此时
无论端口线上外接的信号是低电乎还是高电平,
从引脚读入单片机的信号都是低电平,因而不
能正确地读入端口引脚上的信号。又如,当从
内部总线输出高电平后,锁存器 Q= 1,Q= 0,
场效应管 T2截止。如外接引脚信号为低电平,
从引脚上读入的信号就与从锁存器读入的信号
不同。
8031单片机在对端口 P0一 P3的 输入操作上,
有如下约定,为此,8031单片机在对端口 P0
一 P3的输入操作上,有如下约定:凡属于读 -
修改 -写方式的指令,从锁存器读入信号,其
它指令则从端口引脚线上读入信号。
读 -修改 -写指令的特点是,从端口输入 (读 )信
号,在单片机内加以运算 (修改 )后,再输出
(写 )到该端口上。
ANL P0,#立即
数 ;P0→ 立即数 P0
ORL P0,A ;P0→AP0
INC P1 ;P1+1→P1
DEC P3 ;P3-1→P3
CPL P2 ;P2→P2
P0端口是 8031单片机的总线口,分时出现数
据 D7一 D0、低 8位地址 A7一 AO,以及三态,
用来接口存储器、外部电路与外部设备。 P0
端口是使用最广泛的 I/ O端口。
2,P1口的结构
VCC
P1.X
锁存器
读锁存器
D
读引脚
写锁存器
内部总线 Q
Q T
内部上拉电
阻
CL
图 2-4 P1口的一位结构图
P1.X
通用 I/ 0端口,准双向静态口。输出的信息有锁
存,输入有读引脚和读锁存器之分。 P1端口的
一位结构见下图, 由图可见,P1端口与 P0端口的
主要差别在于,P1端口用内部上拉电阻 R代替了
P0端口的场效应管 T1,并且输出的信息仅来自
内部总线。由内部总线输出的数据经锁存器反相
和场效应管反相后,锁存在端口线上,所以,
P1端口是具有输出锁存的静态口。
P1口的特点
要正确地从引脚上读入外部信息,必须先使
场效应管关断,以便由外部输入的信息确定
引脚的状态。为此,在作引脚读入前,必须
先对该端口写入 l。具有这种操作特点的输入
/输出端口,称为准双向 I/ O口。 8031单片
机的 P1,P2,P3都是准双向口。 P0端口由于
输出有三态功能,输入前,端口线已处于高
阻态,无需先写入 l后再作读操作。
单片机复位后,各个端口已自动地被写入了 1,
此时,可直接作输入操作。如果在应用端口
的过程中,已向 P1一 P3端口线输出过 0,则
再要输入时,必须先写 1后再读引脚,才能得
到正确的信息。此外,随输入指令的不同,
H端口也有读锁存器与读引脚之分。
Pl端口是 803l单片机中唯一仅有的单功能 I/
O端口,并且没有特定的专用功能,输出信
号锁存在引脚上,故又称为通用静态口。
3,P2口的结构
图 2-5 P2口的一位结构图
VCC
P2.X
锁存
器
读锁存器 地址 控制
D
读引脚
写锁存器
内部总线 Q
Q
MU
X T
P2.X
内部上拉电
阻
CL
4,P3口的结构
图 2-6 P3口的一位结构图
VCC
P3.X
锁存器
读锁存器 第二输出功能
D
读引脚
写锁存器
内部总线 Q
Q T
P3.X
内部上拉电
阻
第二输入功
能
CL
表2-
2 P
3
口
的
第
二
功
能
表
P3.2
P3.3
位线 引脚 第二功能
P3.0 10 RXD(串行输入口)
P3.1 11 TXD(串行输出口)
12 INT0(外部中断 0)
13 INT1(外部中断 1)
P3.4 14 T0(定时器 0的计数输入)
P3.5 15 T1(定时器 1的计数输入)
16 WR(外部数据存储器写
脉冲)
17 RD(外部数据存储器读脉
冲)
P3.7
P3.6
返回本节
使 P3端品各线处于第二功能的条件是,
1\串行 I/O处于运行状态 (RXD,TXD);
2\打开了处部中断 (INT0,INT1);
3\定时器 /计数器处于外部计数状态 (T0,T1)
4\执行读写外部 RAM的指令 (RD,WR)
在应用中,如不设定 P3端口各位的第二功能 (WR,RD信
号的产生不用设置 ),则 P3端口线自动处于第一功能状
态,也就是静态 I/ O端口的工作状态。在更多的场合
是根据应用的需要,把几条端口线设置为第二功能,
而另外几条端口线处于第一功能运行状态。在这种情
况下,不宜对 P3端口作字节操作,需采用位操作的形
式。
2.2 MCS-51单片机的引脚及片外总线结构
2.2.1 MCS-51单片机芯片引脚描述
2.2.2 MCS-51单片机的片外总线结构
返回本章首页
2.2.1 MCS-51单片机芯片引脚描述
图 2-7为 MCS-51单片机的引脚配置图 。
1,主电源引脚 VCC和 VSS
2,外接晶振引脚 XTAL1和 XTAL2
3,控制或其他电源复用引脚 RST/ VPD,ALE/、
和 /VPP
4,输入 /输出引脚 P0,P1,P2,P3( 共 32根 )
PO,0一 P0,7,P0数据/地址复用总线端口
(详见 1,4)。
P1,0一 P1,7,P1静态通用端口 (详见 1,4)。
P2,0-P2,7,P2动态地址端口 (详见 1,4)。
P3,0一 P3,7,P3双功能静态端口 (详见 1,4)。
图
2-
7M
CS
-
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.2.2 MCS-51单片机的片外总线结构
地
址
锁
存
器
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.3
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):控制总线随时掌握各
种部件的状态,并根据需要向有关部件发出命
令。
返回本节
THANK YOU VERY MUCH !
本章到此结束,
谢谢您的光临!
结束放映 返回本章首页
第 2章 MCS-51单片机的硬件结构
2.1 MCS-51单片机的基本结构
2.2 MCS-51单片机的引脚及片外总线结构
2.3 微处理器, CPU的时序及辅助电路
2.4MCS-51单片机的存储器配置
2.1.1 MCS-51单片机的基本组成
图 2-1 MCS-51单片机基本结构示意图
时钟电路 SFR和 RAM ROM
CPU
定时 /计数器
并行端口 中断系统串行端口
系 统 总 线
时钟源 T
0 T1
P0 P1 P2 P3 TXD RXD INT0 INT1
MCS-51单片机的基本组成
( 1) 一个 8位微处理器 CPU。
( 2) 数据存储器 RAM和特殊功能寄存器 SFR。
( 3) 内部程序存储器 ROM。
( 4) 两个定时 /计数器, 用以对外部事件进行
计数, 也可用作定时器 。
( 5) 四个 8位可编程的 I/O( 输入 /输出 ) 并行
端口, 每个端口既可做输入, 也可做输出 。
( 6) 一个串行端口, 用于数据的串行通信 。
( 7) 中断控制系统 。
( 8) 内部时钟电路 。
返回本节
2.1.2 MCS-51单片机的外部引脚说明
8031
8051
8751
?1,I/O口线功能
4个 8位并行 I/O 接口引脚
P0.0~ P0.7, P1.0~ P1.7,P2.0~
P2.7和 P3.0~ P3.7
为多功能引脚,可自动切换
用作数据总线、地址总线、
控制总线和或 I/O 接口外部
引脚。
40个引脚分为四类:电源、地 2条;
时钟 2条;控制 4条; I/O线 32条。
P0.0--P0.7(39-32):双向 I/O口 P0.
第二功能是在访问外部存储器时,可分时用作低 8位
地址和 8位数据线;在对 8751编程和校验时,用于数
据的输人/输出。
PO口能以吸收电流的方式驱动 8个 LS型 TTL负载
Pl,0--Pl,7(1-8):双向 I/O口 Pl。 P1口能驱动(吸收
或输出电流 )4个 LS型 TTL负载。
在对 EPROM编程和程序验证时,它接收低 8位地址。
在 8052单片机中 P1,0还用作定时器 2的计数触发输人
端 T2,P1,1还用作定时器 2的外部控制端 T2EX。
P2,0--P2,7(21-28),双向 I/O口 P2。 P2口可以驱动
( 吸收或输出电流 ) 4个 LS型 TTL负载 。
第二功能是在访问外部存储器时, 输出高 8位地址 。
在对 EPROM编程和校验时, 它接收高位地址 。
P3,0--P3.7(10-17):双向 I/O口 P3。 P3口能驱动(吸
收或输出电流) 4个 LS型 TTL负载。
P3口的每条引脚都有各自的第二功能,详见 2,6节。
2.控制线
ALE,地址锁存允许信号端
PSEN,外部程序存储器读
选通信号端
EA/VPP,程序存储器选择信
号端和编程电源输入端
8031
8051
8751
RST/VPD( 9),
RST是复位信号输人端
ALE/ ( 30):
ALE是地址锁存允许信号
PROG
PROG
在访问外部存储器时,用来锁存由 PO口送出的低 8
位地址信号 。在不访问外部存储器时,ALE以振荡频
率 1/ 6的固定速率输出脉冲信号 。因此它可用作对外
输出的时钟。但要注意,只要外接有存储器,ALE端输
出的就不再是连续的周期脉冲信号。
第二功能 用于对 8751片内 EPROM编程的脉冲输
人端 。
它是外部程序存储器 ROM的读选通信号 。 在执行访
问外部 ROM指令时, 会自动产生 PSEN信号;而在访
问外部数据存储器 RAM或访问内部 ROM时, 不产生
PSEN信号 。
PSEN (29):
访问外部存储器的控制信号。
当 EA高电平时,访问内部程序存储器;但当程序计
数器 PC的值超过 OFFFH(对 8051/80051/8751)或 1
FFFH(对 8052)时,将自动转向执行外部程序存储器
内的程序。
当 EA保持低电平时,只访问外部程序存储器,不管
是否有内部程序存储器。
第二功能 VPP为对 8751片内 EPROM的 21 V编程电源
输入。
/ PPEA V
( 31):
RST/VPD( 9),
RST是复位信号输人端 。 当此
输人端保持两个机器周期 ( 24
个振荡周期 ) 的高电平时, 就
可以完成复位操作 。
第二功能是 VPD, 即备用电源
输人端 。 当主电源发生故障,
降低到规定的低电平以下时,
vl,1。 将为片内 RAM提供备
用电源, 以保证存储在 RAM
中的信息不丢失 。
单片机的复位操作使单片机进
入初始化状态,其中包括使程
序计数器 PC= 0000H,这表明
程序从 0000H地址单元开始执
行。 21个特殊功能寄存器复
位后的状态为确定值。 。
XTALl( 19):
接外部晶体的一个引脚。 当单片机采用外部时钟信号时,此脚应
接地。
XTAL2( 18), 接外部晶体的一个引脚。当单片机采用外部时
钟信号时,外部时钟信号由此引脚接入 。
使用单片机内部振荡电路时,用来接外部晶体的两端和微调电
容。当单片机采用外部时钟信号时,则用来输入时钟脉冲。
Vss( 20),接地端。
Vcc( 40),电源端,接十 5V。
2.2 微处理器
1,运算器
运算器由 8位算术逻辑运算单元 ALU( Arithmetic
Logic Unit),8位累加器 ACC( Accumulator),8位
寄存器 B、程序状态字寄存器 PSW( Program Status
Word),8位暂存寄存器 TMP1和 TMP2等组成。 主要
进行数据的处理和加工。
1),ALU功能,用来完成二进制数的算术四则运算
和值的逻辑运算。并通过对运算结果的判定,影响
程序状态字寄存器 PSW相关位的状态。
2) ACC, 8位专用 寄存器,作 ALU的一个输入端,
同时 ALU的输出运算结果也送到 ACC,最忙。
运算器
通道 0驱动器 通道 2驱动器
RAM地址
锁存器 RAM 通道 0 锁
存器
通道 2 锁
存器
ROM/
EPROM
B寄存器
程序地址寄存器
缓冲器
PC递增器
程序计数器 PC0
驱动器
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
EA
ALE
PSEN
XTAL2XTAL1
ALU
(+5V)
指
令
寄
存
器
定时
和
控制
逻辑
指
令
译
码
器
图 2-2 MCS-51片内总体结构框图
内部总线
思考题
1,ALU的功能是什么?解释 ADD A,#24H。
2,ALU的两个输入端的操作数来自何处?
3、暂存寄存器 TMP起作用?
4、什么总线?有何特点?什么是内部总线?
什么是外部总线?( P7)
5、什么是缓冲器?工作原理?
3)程序状态字寄存器 PSW
定义格式,C:进借位标志; AC:辅助进借位标志;
F0:用户标志; RS1,RS0:工作寄存器组选择。
D7 D6 D5 D4 D3 D2 D1 D0
C AC F0 RS
1
RS
0
OV X P
RS1 RS0 选择工作寄存器组
0 0 0组( 00H~ 07H)
0 1 1组( 08H~ 0FH)
1 0 2组( 10H~ 17H)
1 1 3组( 18H~ 1FH)
OV:溢出标志
P:奇偶标志
2.控制器
是 CPU的大脑中枢, 主要由 控制部件, 时钟发
生器, 指令寄存器 IR,指令译码器 ID,数据指
针 DPTR,程序计数器 PC,堆栈指针 SP等组成 。
功能,对逐条指令进行译码,并通过定时和控制电路
在规定的时刻发出各种操作所需的内部和外部控制信
号,协调各部分的工作,从而使指令得以执行。
存入指
令寄存
器寄存
指令译码器译码
由定时与控制电路产生一系列控制信号
思考题:一条指令如何执行?
通道 0驱动器 通道 2驱动器
RAM地址
锁存器 RAM 通道 0 锁
存器
通道 2 锁
存器
ROM/
EPROM
B寄存器
程序地址寄存器
缓冲器
PC递增器
程序计数器 PC0
驱动器
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
EA
ALE
PSEN
XTAL2XTAL1
ALU
(+5V)
指
令
寄
存
器
定时
和
控制
逻辑
指
令
译
码
器
图 2-2 MCS-51片内总体结构框图
通道 0驱动器 通道 2驱动器
RAM地址
锁存器 RAM 通道 0 锁
存器
通道 2 锁
存器
ROM/
EPROM
B寄存器
程序地址寄存器
缓冲器
PC递增器
程序计数器 PC0
驱动器
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
EA
ALE
PSEN
XTAL2XTAL1
ALU
(+5V)
指
令
寄
存
器
定时
和
控制
逻辑
指
令
译
码
器
图 2-2 MCS-51片内总体结构框图
P0.0~ P0.7 P2.0~ P2.7
返回本节
单片机时钟电路通常有两种形式:
1,内部振荡方式,MCS-51单片机片内有一个
用于构成振荡器的高增益反相放大器, 引脚
XTAL1和 XTAL2分别是此放大器的输入端和输
出端 。 把放大器与作为反馈元件的晶体振荡器
或陶瓷谐振器连接, 就构成了内部自激振荡器
并产生振荡时钟脉冲 ( 如图 2-10所示 ) 。
2,外部振荡方式,外部振荡方式就是把外部
已有的时钟信号引入单片机内 ( 如图 2-11所
示 ) 。
3、单片机时钟电路及 CPU基本时序
3、单片机时钟电路及 CPU基本时序
向 CPU提供两相时钟信号
振荡器输出信号
一、机器周期、状态、振荡周期
一个机器周期 =6个状态 =12个振荡周期
1、振荡周期, 振荡器输出的 振荡时钟脉冲 信号的 周
期。 单片机以晶体振荡器的振荡周期 (或外部引入的
时钟周期 )为最小的时序单位,片内的各种微操作都
以此周期为时序基准。
2、时钟周期, 又称状态周期、状态时间 S,是振
荡周期的两倍。分为 P1,P2节拍。 P1节拍通常完
成逻辑操作,P2节拍通常完成内部寄存器间数据
传送。
3,机器周期
若把一条指令执行过程分为几个基本操作,则执行
每个基本操作所需要的时间,称为机器周期。 单片机
的一个机器周期包括 12个振荡周期,分为 6个 S状态:
S1 -S6。每个状态又分为 2拍,即前面介绍的 P1和 P2信
号;个机器周期中的 12个振荡周期可表示为
S1P1,S1P2,S2P1…… S6P1,S6P2o
4、指令周期
CPU执行一条指令所需要的时间。是以机器周期
为单位的, CPU执行一条指令通常需要 1~ 4个机器周
期 。
P1 P2
S1
P2
振荡周期
时钟周期
机器周期 机器周期
指令周期
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单片机各种周期的相互关系
思考题:若采用 12MHZ晶振,各周期是多少?
振荡周期= 1/fosc=1/12MHZ=0.0833us
再读下一条
指令
再读下一条
指令
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
二,CPU执行指令时序
2.3 MCS-51单片机的存储器配置
2.3.1 片内数据存储器
2.3.2 片外数据存储器
2.3.3 程序存储器
返回本章首页
2.3.1 片内数据存储器
见下张幻灯片
特
殊
功
能
寄
存
器
SFR
通用
RAM区
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
内部数据存储器
( a)
外部数据存储器
( b)
程序存储器
( c)
工作寄
存器区
图 2-9 MCS-51单片机存储器结构
位寻址区
128B
RAM
当某一组被设定成工作寄存器组后,该组中
的 8个寄存器,从低地址到高地址就分别称为
Ro-R7,从而可以把它们用作通用寄存器, 并
可按寄存器寻址方式被访问。 一旦工作寄存
器组被指定后,另外三组寄存器则同其它数
据 RAM一样,只能按字节地址被予以读写。
工作寄存器区
00H— 1FH,供用户编程使用,临时存放 8位
信息。共四组,每组 8个单元,即 8个 寄存器
位寻址区
20H— 2FH,16个字节。或布尔处理区。
该区每一位都被赋予一个地址,供 128位。
每个地址单元可进行字节操作之外,还可
进行为操作。
表 2-3 内部数据存储器中的位地址
数据缓冲区
30H— 7FH,即
用户区,供 80个
单元。用于存放
运算数据和结果。
实际上不使用的
位寻址的字节和
不使用的工作寄
存器区都可以用
作 数据缓冲区使
用。
堆栈区
用户可以指定内部 RAM的最高若干字节做为堆栈区。
在初始化程序中,可以对堆栈指针 SP写入栈底的地址,
于是从 SP指定的栈底直到 7FH单元都是堆栈区。 例如
MOV SP # 5FH.那么.从 60H— 7FH单元都是堆栈区。
堆栈是片内 RAM中临时开辟的暂存区, 堆栈主要是
为子程序调用和中断操作而设立的 。 其具体功能有
两种:保护现场和保护断点 。 计算机无论是执行子
程序还是执行中断操作, 最后都要返回主程序, 因
此计算机在转去执行这些程序之前, 必须考虑其返
回问题 。 这就要预先把主程序的断点保护起来, 为
程序的正确返回作准备 。 那么, 把断点和现场内容
保护在哪里? 这就必须保护在堆栈内,
思考题(教材 P31-P33页)
1、何谓堆栈?
2、为什么要设置堆栈?
3、栈区是如何确定?
5、数据进栈、出栈按何规律?用何指令?
6、进栈、出栈时指针如何变化?
7、栈区存放什么内容?
特殊功能寄存器区( SFR)
特殊功能寄存器 也叫专用寄存器,专用于控制、
管理片内算术逻辑部件、并行 I/O口、定时器 /
计数器、中断系统等功能模块的工作,用户在
编程时可以设定,却不能自由移作它用。
表 2-4 特殊功能寄存器地址及功能表
2.3.2 片外数据存储器
外部数据存储器又称外部 RAM,当片内 RAM
不能满足数量上的要求时,可通过总线端口和
其他 I/O口扩展外部数据 RAM,其最大容量可
达 64K字节,其结构如图所示。
在片外数据存储器中,数据区和扩展的 I/O口
是统一编址的,使用的指令也完全相同,因此,
用户在应用系统设计时,必须合理地进行外部
RAM和 I/O端口的地址分配,并保证译码的唯
一性。
返回本节
2.3.3 程序存储器
程序存储器的结构如图 2-9( c) 所示, 包括片
内和片外程序存储器两个部分 。 其主要用来存
放编好的用户程序和表格常数, 它以 16位的程
序计数器 PC作为地址指针, 故寻址空间为
64KB。
返回本节
2.4.4 单片机复位电路及复位状态
1,复位电路
单片机复位电路包括片内、片外两部分。外部
复位电路就是为内部复位电路提供两个机器周
期以上的高电平而设计的。 MCS-51单片机通
常采用上电自动复位和按键手动复位两种方式。
如图 2-14所示。
2.单片机复位后的状态
单片机运行出错或进入死循环时,可按复位键
重新运行。 21个特殊功能寄存器复位后的状态
为确定值,如表 2-6所示。
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
Ω
图 2-14 几种复位电路
特殊功能寄
存器
初始状态 特殊功能寄存
器
初始状态
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
表2-
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.4 输入 /输出( I/O)端口结构
正如图 2-2所示, MCS-51单片机有 4个双向
并行的 8位 I/O口 P0~ P3,P0口为三态双向口,
可驱动 8个 TTL电路, P1,P2,P3口为准双
向口 ( 作为输入时, 口线被拉成高电平, 故
称为准双向口 ), 其负载能力为 4个 TTL电
路 。
1,P0口的结构
P0端口由锁存器、输入缓冲器、切换开关与相应控制电路、场效应
管驱动电路构成。
总线 I/ O端口,双向,三态,数据地址分
时复用,该端口除用于数据的输入/输出
外,在 8031单片机外接程序存储器时,还
分时地输出/输入地址/指令。由 Po端口
输出的信号无锁存,输入的信息有读端口
引脚和读端口锁存器之分。 P0端口 8位中
的一位结构图见下图:
P0口的作用
在输出状态下,当切换开关 MUX向下时,
从内部总线来的数据经锁存器反相和场效应
管 T2反相,输出到端口引脚线上。此时,
场效应管 T1关断,因而这种输出方式应为
外接上拉电阻的漏极开路式。当切换开关
MUX向上时,一位地址/数据信号分时地
输出到端口线上。此外,由 T1,T2的通断
组合,形成高电平、低电平与高阻浮动三态
的输出。
P0口的工作原理
在输入状态下,从锁存器和从引脚上读来的信
号一般是一致的,但也有例外。例如,当从内
部总线输出低电平后,锁存器 Q= 0,Q= 1,
场效应管 T2开通,端口线呈低电平状态。此时
无论端口线上外接的信号是低电乎还是高电平,
从引脚读入单片机的信号都是低电平,因而不
能正确地读入端口引脚上的信号。又如,当从
内部总线输出高电平后,锁存器 Q= 1,Q= 0,
场效应管 T2截止。如外接引脚信号为低电平,
从引脚上读入的信号就与从锁存器读入的信号
不同。
8031单片机在对端口 P0一 P3的 输入操作上,
有如下约定,为此,8031单片机在对端口 P0
一 P3的输入操作上,有如下约定:凡属于读 -
修改 -写方式的指令,从锁存器读入信号,其
它指令则从端口引脚线上读入信号。
读 -修改 -写指令的特点是,从端口输入 (读 )信
号,在单片机内加以运算 (修改 )后,再输出
(写 )到该端口上。
ANL P0,#立即
数 ;P0→ 立即数 P0
ORL P0,A ;P0→AP0
INC P1 ;P1+1→P1
DEC P3 ;P3-1→P3
CPL P2 ;P2→P2
P0端口是 8031单片机的总线口,分时出现数
据 D7一 D0、低 8位地址 A7一 AO,以及三态,
用来接口存储器、外部电路与外部设备。 P0
端口是使用最广泛的 I/ O端口。
2,P1口的结构
VCC
P1.X
锁存器
读锁存器
D
读引脚
写锁存器
内部总线 Q
Q T
内部上拉电
阻
CL
图 2-4 P1口的一位结构图
P1.X
通用 I/ 0端口,准双向静态口。输出的信息有锁
存,输入有读引脚和读锁存器之分。 P1端口的
一位结构见下图, 由图可见,P1端口与 P0端口的
主要差别在于,P1端口用内部上拉电阻 R代替了
P0端口的场效应管 T1,并且输出的信息仅来自
内部总线。由内部总线输出的数据经锁存器反相
和场效应管反相后,锁存在端口线上,所以,
P1端口是具有输出锁存的静态口。
P1口的特点
要正确地从引脚上读入外部信息,必须先使
场效应管关断,以便由外部输入的信息确定
引脚的状态。为此,在作引脚读入前,必须
先对该端口写入 l。具有这种操作特点的输入
/输出端口,称为准双向 I/ O口。 8031单片
机的 P1,P2,P3都是准双向口。 P0端口由于
输出有三态功能,输入前,端口线已处于高
阻态,无需先写入 l后再作读操作。
单片机复位后,各个端口已自动地被写入了 1,
此时,可直接作输入操作。如果在应用端口
的过程中,已向 P1一 P3端口线输出过 0,则
再要输入时,必须先写 1后再读引脚,才能得
到正确的信息。此外,随输入指令的不同,
H端口也有读锁存器与读引脚之分。
Pl端口是 803l单片机中唯一仅有的单功能 I/
O端口,并且没有特定的专用功能,输出信
号锁存在引脚上,故又称为通用静态口。
3,P2口的结构
图 2-5 P2口的一位结构图
VCC
P2.X
锁存
器
读锁存器 地址 控制
D
读引脚
写锁存器
内部总线 Q
Q
MU
X T
P2.X
内部上拉电
阻
CL
4,P3口的结构
图 2-6 P3口的一位结构图
VCC
P3.X
锁存器
读锁存器 第二输出功能
D
读引脚
写锁存器
内部总线 Q
Q T
P3.X
内部上拉电
阻
第二输入功
能
CL
表2-
2 P
3
口
的
第
二
功
能
表
P3.2
P3.3
位线 引脚 第二功能
P3.0 10 RXD(串行输入口)
P3.1 11 TXD(串行输出口)
12 INT0(外部中断 0)
13 INT1(外部中断 1)
P3.4 14 T0(定时器 0的计数输入)
P3.5 15 T1(定时器 1的计数输入)
16 WR(外部数据存储器写
脉冲)
17 RD(外部数据存储器读脉
冲)
P3.7
P3.6
返回本节
使 P3端品各线处于第二功能的条件是,
1\串行 I/O处于运行状态 (RXD,TXD);
2\打开了处部中断 (INT0,INT1);
3\定时器 /计数器处于外部计数状态 (T0,T1)
4\执行读写外部 RAM的指令 (RD,WR)
在应用中,如不设定 P3端口各位的第二功能 (WR,RD信
号的产生不用设置 ),则 P3端口线自动处于第一功能状
态,也就是静态 I/ O端口的工作状态。在更多的场合
是根据应用的需要,把几条端口线设置为第二功能,
而另外几条端口线处于第一功能运行状态。在这种情
况下,不宜对 P3端口作字节操作,需采用位操作的形
式。
2.2 MCS-51单片机的引脚及片外总线结构
2.2.1 MCS-51单片机芯片引脚描述
2.2.2 MCS-51单片机的片外总线结构
返回本章首页
2.2.1 MCS-51单片机芯片引脚描述
图 2-7为 MCS-51单片机的引脚配置图 。
1,主电源引脚 VCC和 VSS
2,外接晶振引脚 XTAL1和 XTAL2
3,控制或其他电源复用引脚 RST/ VPD,ALE/、
和 /VPP
4,输入 /输出引脚 P0,P1,P2,P3( 共 32根 )
PO,0一 P0,7,P0数据/地址复用总线端口
(详见 1,4)。
P1,0一 P1,7,P1静态通用端口 (详见 1,4)。
P2,0-P2,7,P2动态地址端口 (详见 1,4)。
P3,0一 P3,7,P3双功能静态端口 (详见 1,4)。
图
2-
7M
CS
-
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.2.2 MCS-51单片机的片外总线结构
地
址
锁
存
器
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.3
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):控制总线随时掌握各
种部件的状态,并根据需要向有关部件发出命
令。
返回本节
THANK YOU VERY MUCH !
本章到此结束,
谢谢您的光临!
结束放映 返回本章首页