第 2章 MCS-51系列单片机的硬件结构第 2章 MCS-51系列单片机的硬件结构
2.1 MCS-51系列单片机简介
2.2 MCS-51系列单片机内部结构与外部引脚说明
2.3 微处理器
2.4 存储器
2.5 并行输入 /输出接口
2.6 定时器 /计数器
2.7 串行输入 /输出口
2.8 MCS-51单片机的中断系统
2.9 复位状态及复位电路第 2章 MCS-51系列单片机的硬件结构
2.1 MCS-51系列单片机简介
MCS-51系列单片机已有十多种产品,可分为两大系列,51
子系列和 52子系列。
51子系列主要有 8031,8051,8751三种机型。它们的指令系统与芯片引脚完全兼容。从表 1.1中可以看出,它们的差别仅在于片内有无 ROM或 EPROM。
52子系列主要有 8032,8052,8752三种机型。从表 1.1中可以看出,52子系列与 51子系列的不同之处在于:片内数据存储器增至 256字节;片内程序存储器增至 8 KB (8032无 );有 3个 16位定时 /
计数器,6个中断源。其它性能均与 51子系列相同。
第 2章 MCS-51系列单片机的硬件结构
2.2 MCS-51系列单片机内部结构与外部引脚说明
2.2.1 内部结构框图
MCS-51系列单片机的内部结构框图如图 2.1所示。
从图 2.1中可看出,MCS-51单片机组成结构中包含运算器、
控制器、片内存储器,4个 I/O口、串行口、定时器 /计数器、中断系统、振荡器等功能部件。图中 SP是堆栈指针寄存器,PC是程序计数器,PSW是程序状态字寄存器,DPTR是数据指针寄存器。
第 2章 MCS-51系列单片机的硬件结构图 2.1 MCS-51单片机内部结构框图第 2章 MCS-51系列单片机的硬件结构
2.2.2 外部引脚说明
1.主电源引脚
VCC(40脚 ):接 +5 V电源正端。
VSS(20脚 ):接 +5 V电源地端。
2.外接晶体引脚
XTAL1(19脚 ):接外部石英晶体的一端。在单片机内部,它是一个反相放大器的输入端,这个放大器构成了片内振荡器。
当采用外部时钟时,对于 HMOS单片机,该引脚接地;对于
CHMOS单片机,该引脚作为外部振荡信号的输入端。
第 2章 MCS-51系列单片机的硬件结构图 2.2 MCS-51系列单片机引脚及总线结构地址总线
( A B )
8 05 1
8 75 1
8 03 1
P 1,7
P 1,6
P 1,5
P 1,4
P 1,3
P 1,2
P 1,1
P 1,0
P3,0
P3,1
P 3,2
P 3,3
P 3,4
P 3,5
P 3,6
P 3,7
PS EN
EA
A L E
R S T
用户
I / O
控制总线
( C B )
锁存器
P 2,7
P 2,6
P 2,5
P 2,4
P 2,3
P 2,2
P 2,1
P 2,0
P 0,7
P 0,6
P 0,5
P 0,4
P 0,3
P 0,2
P 0,1
P 0,0
A L E
A 1 5
A 1 4
A 1 3
A 1 2
A 1 1
A 1 0
A9
A8
A7
A6
A5
A4
A3
A2
A1
A0
D7
D6
D5
D4
D3
D2
D1
D0
V
CC
V
SS
数据总线
( D B )
( a )
( b )
P 1,0
P 1,1
P 1,2
P 1,3
P 1,4
P 1,5
P 1,6
P 1,7
R S T / V
PD
R X D,P3,0
T X D,P3,1
I N T 0,P 3,2
I N T 1,P 3,3
T0,P 3,4
T1,P 3,5
WR,P 3,6
RD,P 3,7
X T A L 2
X T A L 1
V
SS
V
CC
P 0,0
P 0,1
P 0,2
P 0,3
P 0,4
P 0,5
P 0,6
P 0,7
E A / V
PP
A L E / P R O G
P S E N
P 2,7
P 2,6
P 2,5
P 2,4
P 2,3
P 2,2
P 2,1
P 2,0
8 05 1
8 75 1
8 03 1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
40
39
38
37
36
35
34
33
32
31
30
29
28
27
26
25
24
23
22
21
V
CC
V
SS
第 2章 MCS-51系列单片机的硬件结构
3.输入 / 输出引脚
(1) P0口 (39~32脚 ),P0.0~P0.7统称为 P0口。在不接片外存储器与不扩展 I/O口时,可作为准双向输入 /输出口。在接有片外存储器或扩展 I/O口时,P0口分时复用为低 8位地址总线和双向数据总线。
(2) P1口 (1~8脚 ),P1.0~P1.7统称为 P1口,可作为准双向 I/O
口使用。对于 52子系列,P1.0与 P1.1还有第二功能,P1.0可用作定时器 /计数器 2的计数脉冲输入端 T2,P1.1可用作定时器 /计数器
2的外部控制端 T2EX。
第 2章 MCS-51系列单片机的硬件结构
(3) P2口 (21~28脚 ),P2.0~P2.7统称为 P2口,一般可作为准双向 I/O口使用;在接有片外存储器或扩展 I/O口且寻址范围超过 256字节时,P2口用作高 8位地址总线。
(4) P3口 (10~17脚 ),P3.0~P3.7统称为 P3口。除作为准双向
I/O口使用外,还可以将每一位用于第二功能,而且 P3口的每一条引脚均可独立定义为第一功能的输入输出或第二功能。 P3口的第二功能如表 2.1所示。
第 2章 MCS-51系列单片机的硬件结构表 2.1 P3口第二功能表引 脚 第 二 功 能
P3.0 串行口输入端
P3.1 串行口输出端
P3.2 外部中断 0请求输入端,低电平有效
P3.3 外部中断 1请求输入端,低电平有效
P3.4 定时器 /计数器 0计数脉冲输入端
P3.5 定时器 /计数器 1计数脉冲输入端
P3.6 外部数据存储器写选通信号输出端,低电平有效
P3.7
RXD
TXD
INT0
INT1
T0
T1
WR
RD
第 2章 MCS-51系列单片机的硬件结构
4.控制线
(1) ALE/PROG(30脚 ):地址锁存有效信号输出端。 ALE在每个机器周期内输出两个脉冲。在访问片外程序存储器期间,下降沿用于控制锁存 P0输出的低 8位地址;在不访问片外程序存储器期间,可作为对外输出的时钟脉冲或用于定时目的。但要注意,
在访问片外数据存储器期间,ALE脉冲会跳空一个,此时作为时钟输出就不妥了 (详见 2.3.3节 CPU时序 )。
对于片内含有 EPROM的机型,在编程期间,该引脚用作编程脉冲 PROG的输入端。
第 2章 MCS-51系列单片机的硬件结构
(2) PSEN(29脚 ):片外程序存储器读选通信号输出端,低电平有效。当从外部程序存储器读取指令或常数期间,每个机器周期该信号两次有效,以通过数据总线 P0口读回指令或常数。在访问片外数据存储器期间,PSEN信号将不出现。
(3) RST/VPD(9脚 ),RST即为 RESET,VPD为备用电源。该引脚为单片机的上电复位或掉电保护端。当单片机振荡器工作时,
该引脚上出现持续两个机器周期的高电平,就可实现复位操作,
使单片机回复到初始状态。上电时,考虑到振荡器有一定的起振时间,该引脚上高电平必须持续 10 ms以上才能保证有效复位。
当 VCC发生故障,降低到低电平规定值或掉电时,该引脚可接上备用电源 VPD(+5 V)为内部 RAM供电,以保证 RAM中的数据不丢失。
第 2章 MCS-51系列单片机的硬件结构
(4) EA/VPP(31脚 ),EA为片外程序存储器选用端。该引脚有效
(低电平 )时,只选用片外程序存储器,否则单片机上电或复位后选用片内程序存储器。
对于片内含有 EPROM的机型,在编程期间,此引脚用作 21 V
编程电源 VPP的输入端。
综上所述,MCS-51系列单片机的引脚可归纳为以下两点:
(1) 单片机功能多,引脚数少,因而许多引脚都具有第二功能。
(2) 单片机对外呈现 3总线形式,由 P2,P0口组成 16位地址总线;由 P0口分时复用为数据总线;由 ALE,PSEN,RST,EA与 P3
口中的 INT0,INT1,T0,T1,WR,RD共 10个引脚组成控制总线,
如图 2.2(b)所示。由于是 16位地址线,因此,可使片外存储器的寻址范围达到 64 KB。
第 2章 MCS-51系列单片机的硬件结构
2.3 微 处 理 器
2.3.1 运算部件运算部件以算术逻辑单元 ALU为核心,包括累加器 ACC、寄存器 B、暂存器、程序状态字 PSW等许多部件。它能实现数据的算术逻辑运算、位变量处理和数据传输操作。
第 2章 MCS-51系列单片机的硬件结构
1.算术逻辑单元 ALU与累加器 ACC、寄存器 B
算术逻辑单元不仅能完成 8位二进制的加、减、乘、除、加
1、减 1及 BCD加法的十进制调整等算术运算,还能对 8位变量进行逻辑 "与 ","或 ","异或 "、循环移位、求补、清零等逻辑运算,
并具有数据传输、程序转移等功能。累加器 (ACC,简称累加器 A)
为一个 8位寄存器,它是 CPU中使用最频繁的寄存器。进入 ALU
作算术和逻辑运算的操作数多来自于 A,运算结果也常送回 A保存。寄存器 B是为 ALU进行乘除法运算而设置的。若不作乘除运算时,则可作为通用寄存器使用。
第 2章 MCS-51系列单片机的硬件结构
2.程序状态字程序状态字 PSW是一个 8位的标志寄存器,它保存指令执行结果的特征信息,以供程序查询和判别。其各位的定义如下:
字节地址 D0HC AC F0 RS1 RS0 OV --- P
PSW.7 PSW.6 PSW.5 PSW.4 PSW.3 PSW.2 PSW.1 PSW.0
进位标志位 C(PSW.7):在执行某些算术操作类、逻辑操作类指令时,可被硬件或软件置位或清零。它表示运算结果是否有进位或借位。如果在最高位有进位 (加法时 )或有借位 (减法时 ),则
C=1,否则 C=0。
第 2章 MCS-51系列单片机的硬件结构辅助进位 (或称半进位 )标志位 AC(PSW.6):它表示两个 8位数运算,低 4位有无进 (借 )位的状况。当低 4位相加 (或相减 )时,若
D3位向 D4位有进位 (或借位 ),则 AC=1,否则 AC=0。在 BCD码运算的十进制调整中要用到该标志。
用户自定义标志位 F0(PSW.5):用户可根据自己的需要对 F0
赋予一定的含义,通过软件置位或清零,并根据 F0=1或 0来决定程序的执行方式,或反映系统某一种工作状态。
第 2章 MCS-51系列单片机的硬件结构工作寄存器组选择位 RS1,RS0(PSW.4,PSW.3):可用软件置位或清零,用于选定当前使用的 4个工作寄存器组中的某一组
(详见第 2.4节 )。
溢出标志位 OV(PSW.2):做加法或减法时,由硬件置位或清零,以指示运算结果是否溢出。 OV=1反映运算结果超出了累加器的数值范围 (无符号数的范围为 0~255,以补码形式表示一个有符号数的范围为 -128~+127)。进行无符号数的加法或减法时,OV的值与进位位 C的值相同;进行有符号数的加法时,如最高位、次高位之一有进位,或做减法时,如最高位、次高位之一有借位,OV被置位,即 OV的值为最高位和次高位的异或
(C7⊕ C6)。
第 2章 MCS-51系列单片机的硬件结构执行乘法指令 MUL AB也会影响 OV标志,积 >255时 OV =1,
否则 OV =0。
执行除法指令 DIV AB 也会影响 OV标志,如 B中所放除数为 0,OV=1,否则 OV=0。
奇偶标志位 P(PSW.0):在执行指令后,单片机根据累加器
A中 1的个数的奇偶自动给该标志置位或清零。若 A中 1的个数为奇数,则 P=1,否则 P=0。该标志对串行通信的数据传输非常有用,通过奇偶校验可检验传输的可靠性。
第 2章 MCS-51系列单片机的硬件结构
3.布尔处理机布尔处理机 (即位处理 )是 MCS-51单片机 ALU所具有的一种功能。单片机指令系统中的位处理指令集 (17条位操作指令 ),
存储器中的位地址空间,以及借用程序状态寄存器 PSW中的进位标志 CY作为位操作 "累加器 ",构成了 MCS-51单片机内的布尔处理机。它可对直接寻址的位 (bit)变量进行位处理,如置位、
清零、取反、测试转移以及逻辑 "与 ","或 "等位操作,使用户在编程时可以利用指令完成原来单凭复杂的硬件逻辑所完成的功能,并可方便地设置标志等。
第 2章 MCS-51系列单片机的硬件结构
2.3.2 控制部件及振荡器控制部件是单片机的神经中枢,它包括定时和控制电路、指令寄存器、译码器以及信息传送控制等部件。它先以主振频率为基准发出 CPU的时序,对指令进行译码,然后发出各种控制信号,
完成一系列定时控制的微操作,用来协调单片机内部各功能部件之间的数据传送、数据运算等操作,并对外发出地址锁存 ALE、
外部程序存储器选通 PSEN,以及通过 P3.6和 P3.7发出数据存储器读 RD、写 WR等控制信号,并且接收处理外接的复位和外部程序存储器访问控制 EA信号。
单片机的定时控制功能是用片内的时钟电路和定时电路来完成的,而片内的时钟产生有两种方式:内部时钟方式和外部时钟方式。
第 2章 MCS-51系列单片机的硬件结构图 2.3 单片机外接晶体的接法
X T A L 1
X T A L 2
3 0 p F
3 0 p F C
2
C
1 单片机第 2章 MCS-51系列单片机的硬件结构表 2.2 单片机外部时钟接法表芯片类型 XTAL1 XTAL2
HMOS型 接地 接片外振荡脉冲输入端 (带上拉电阻 )
CHMOS型 接片外振荡脉冲输入端 (带上拉电阻 ) 悬浮接 法第 2章 MCS-51系列单片机的硬件结构
2.3.3 CPU时序振荡周期:振荡脉冲的周期。
状态周期:两个振荡周期为一个状态周期,也称为时钟周期,
用 S表示。两个振荡周期作为两个节拍分别称为节拍 P1和节拍 P2。
在状态周期的前半周期 P1有效时,通常完成算术逻辑操作;在后半周期 P2有效时,一般进行内部寄存器之间的传输。
第 2章 MCS-51系列单片机的硬件结构机器周期:一个机器周期包含 6个状态周期,用 S1,S2,…,
S6表示;共 12个节拍,依次可表示为 S1P1,S1P2,S2P1、
S2P2,…,S6P1,S6P2。
指令周期:执行一条指令所占用的全部时间,它以机器周期为单位。 MCS-51系列单片机除乘法、除法指令是 4周期指令外,其余都是单周期指令和双周期指令。若用 12 MHz晶振,则单周期指令和双周期指令的指令周期时间分别为 1 μs和 2 μs,乘法和除法指令为 4 μs。
第 2章 MCS-51系列单片机的硬件结构图 2.4 单周期指令时序
(a) 单字节周期指令 (如 INC A); (b) 双字节单周期指令 (如 ADDA,#data)
( b)
A L E
S 1 S 2 S 3 S 4 S 5 S 6
读操作码 读第 2 个字节
S 1 S 2 S 3 S 4 S 5 S 6
读操作码读第 2 个字节
( a )
读振荡器信号
S ( X T A L 2 端 )
S 1 S 2 S 3 S 4 S 5 S 6 S 1
P 1 P 2 P 1 P 2 P 1 P 2 P 1 P 2 P 1 P 2 P 1 P 2 P 1 P 2
第 2章 MCS-51系列单片机的硬件结构
2.4 存 储 器
2.4.1 程序存储器
1.编址与访问计算机的工作是按照事先编制好的程序命令序列一条条顺序执行的,程序存储器就是用来存放这些已编好的程序和表格常数,
它由只读存储器 ROM或 EPROM组成。计算机为了有序地工作,
设置了一个专用寄存器 -- 程序计数器 PC,用以存放将要执行的指令地址。每取出指令的1个字节后,其内容自动加1,指向下一字节地址,使计算机依次从程序存储器取出指令予以执行,完成某种程序操作。由于 MCS-51单片机的程序计数器为 16位,因此,可寻址的地址空间为 64 KB。
第 2章 MCS-51系列单片机的硬件结构图 2.5 程序存储器编址图
(a) 51子系列; (b) 52子系列第 2章 MCS-51系列单片机的硬件结构
2.程序的 7个特殊入口地址表 2.3 MCS-51单片机复位、中断入口地址操 作 入 口 地 址复位 0000H
外部中断 0 0003H
定时器 /计数器 0溢出 000BH
外部中断 1 0013H
定时器 /计数器 1溢出 001BH
串行口中断 0023H
定时器 /计数器 0溢出或 T2EX端负跳变 (52子系列 ) 002BH
第 2章 MCS-51系列单片机的硬件结构
2.4.2 数据存储器
1.编址与访问
MCS-51单片机片内、外数据存储器是两个独立的地址空间,
应分别单独编址。片内数据存储器除 RAM块外,还有特殊功能寄存器 (SFR)块。对于 51子系列,前者有 128个字节,其编址为
00H~7FH;后者有 128个字节,其编址为 80H~FFH;二者连续而不重叠。对于 52子系列,前者有 256个字节,其编址为 00H~FFH;
后者有 128个字节,其编址为 80H~FFH。后者与前者高 128个字节的编址是重叠的。由于访问它们所用的指令不同,并不会引起混乱。片外数据存储器一般是 16位编址。数据存储器的编址如图 2.6
所示。
第 2章 MCS-51系列单片机的硬件结构图 2.6 数据存储器编址图
(a) 51子系列; (b) 52子系列
00H
7 F H
80H
FFH
片内 R A M
SFR
0 0 0 0 H
F F F F H
片外
R A M
00H
7 F H
80H
FFH
片内 R A M
SFR
片外
R A M
S R F
80H
FFH
0 0 0 0 H
F F F F H
( a ) ( b)
第 2章 MCS-51系列单片机的硬件结构
2.片内数据存储器

00H R0
工作寄存器 0组01H R1
工 07H R7
08H R0
工作寄存器 1组作 09H R1
寄 0FH R7
10H R0
工作寄存器 2组存 11H R1
器 17H R7
18H R0
工作寄存器 3组区 19H R1
1FH R7
图 2.7 51子系列单片机片内 RAM的配置第 2章 MCS-51系列单片机的硬件结构
20H
21H
22H
23H
位 24H
25H
寻 26H
27H
址 28H
29H
区 2AH
2BH
2CH
2DH
2EH
2FH
07 06 05 04 03 02 01 00
0F 0E 0D 0C 0B 0A 09 08
17 16 15 14 13 12 11 10
1F 1E 1D 1C 1B 1A 19 18
27 26 25 24 23 22 21 20
2F 2E 2D 2C 2B 2A 29 28
37 36 35 34 33 32 31 30
3F 3E 3D 3C 3B 3A 39 38
47 46 45 44 43 42 41 40
4F 4E 4D 4C 4B 4A 49 48
57 56 55 54 53 52 51 50
5F 5E 5D 5C 5B 5A 58
67 66 65 64 63 62 61 60
6F 6E 6D 6C 6B 6A 69 68
77 76 75 74 73 72 71 70
7F 7E 7D 7C 7B 7A 79 78
30H
31H
7EH
7FH
第 2章 MCS-51系列单片机的硬件结构
1) 工作寄存器区
00H~1FH单元为工作寄存器区。工作寄存器也称通用寄存器,用于临时寄存 8位信息。工作寄存器分成 4组,每组都有 8个寄存器,用 R0~R7来表示。程序中每次只用 1组,其它各组不工作。使用哪一组寄存器工作由程序状态字 PSW中的 PSW.3(RS0)
和 PSW.4(RS1)两位来选择,其对应关系如表 2.4所示。通过软件设置 RS0和 RS1两位的状态,就可任意选一组工作寄存器工作。
这个特点使 MCS-51单片机具有快速现场保护功能,对于提高程序效率和响应中断的速度是很有利的。
第 2章 MCS-51系列单片机的硬件结构表 2.4 工作寄存器组的选择表
PSW.4(RS1) PSW.3(RS0) 当前使用的工作寄存器组 R0~R7
0 0 0组 (00H~07H)
0 1 1组 (08H~0FH)
1 0 2组 (10H~17H)
1 1 3组 (18H~1FH)
第 2章 MCS-51系列单片机的硬件结构
2) 位寻址区
20H~2FH单元是位寻址区。这 16个单元 (共计 16× 8=128位 )的每一位都赋予了一个位地址,位地址范围为 00H~7FH。位寻址区的每一位都可当作软件触发器,由程序直接进行位处理。通常可以把各种程序状态标志、位控制变量存于位寻址区内。
第 2章 MCS-51系列单片机的硬件结构
3) 数据缓冲区
30H~7FH是数据缓冲区,也即用户 RAM区,共 80个单元。
由于工作寄存器区、位寻址区、数据缓冲区统一编址,使用同样的指令访问,这三个区的单元既有自己独特的功能,又可统一调度使用。因此,前两个区未使用的单元也可作为用户 RAM
单元使用,使容量较小的片内 RAM得以充分利用。
52子系列片内 RAM有 256个单元,前两个区的单元数与地址都和 51子系列的一致,用户 RAM区却为 30H~FFH,有 208个单元。
第 2章 MCS-51系列单片机的硬件结构
4) 堆栈和堆栈指针栈底 SP
S P + 1
数据压入 数据弹出图 2.8 MCS–51单片机堆栈第 2章 MCS-51系列单片机的硬件结构
3.特殊功能寄存器块特殊功能寄存器 (SFR,即 Special Function Registers),又称为专用寄存器,专用于控制、管理片内算术逻辑部件、并行 I/O口、
串行 I/O口、定时器 /计数器、中断系统等功能模块的工作。用户在编程时可以置数设定,却不能自由移作它用。在 51子系列单片机中,各专用寄存器 (PC例外 )与片内 RAM统一编址,且作为直接寻址字节,可直接寻址。除 PC外,51子系列有 18个专用寄存器,其中 3个为双字节寄存器,共占用 21个字节; 52子系列有 21个专用寄存器,其中 5个双字节寄存器,共占用 26个字节。按地址排列的各特殊功能寄存器名称、表示符、地址等如表 2.5所示。其中有 12个专用寄存器可以位寻址,它们字节地址的低半字节都为 0H或
8H(即可位寻址的特殊功能寄存器字节地址具有能被 8整除的特征 ),
共有可寻址位 12× 8-3 (未定义 )=93位。
第 2章 MCS-51系列单片机的硬件结构表 2.5 特殊功能寄存器名称、表示符、地址一览表第 2章 MCS-51系列单片机的硬件结构表 2.5 特殊功能寄存器名称、表示符、地址一览表第 2章 MCS-51系列单片机的硬件结构
2.5 并行输入 /输出接口
2.5.1 P0口
1,P0口结构
P0口是一个三态双向口,可作为地址 /数据分时复用口,也可作为通用 I/O接口。其 1位的结构原理如图 2.9所示。 P0口由 8个这样的电路组成。锁存器起输出锁存作用,8个锁存器构成了特殊功能寄存器 P0;场效应管 (FET)V1,V2组成输出驱动器,以增大带负载能力;三态门 1是引脚输入缓冲器;三态门 2用于读锁存器端口;与门 3、反相器 4及模拟转换开关构成了输出控制电路。
第 2章 MCS-51系列单片机的硬件结构图 2.9 P0口 1位结构图
P 0,x
地址 / 数据 控制
D Q
锁存器
C L K
__
Q
M U X
&
1
V2
V1
读引脚内部总线读 锁存器写锁存器
V
CC
2
1
3
4
第 2章 MCS-51系列单片机的硬件结构
2.地址 /数据分时复用功能当 P0口作为地址 /数据分时复用总线时,可分为两种情况:一种是从 P0口输出地址或数据,另一种是从 P0口输入数据。
在访问片外存储器而需从 P0口输出地址或数据信号时,控制信号应为高电平 "1",使转换开关 MUX把反相器 4的输出端与 V1
接通,同时把与门 3打开。当地址或数据为 "1"时,经反相器 4使
V1截止,而经与门 3使 V2导通,P0.x引脚上出现相应的高电平 "1";
当地址或数据为 "0"时,经反相器 4使 V1导通而 V2截止,引脚上出现相应的低电平 "0"。这样就将地址 /数据的信号输出。
第 2章 MCS-51系列单片机的硬件结构
3.通用 I/O接口功能当 P0口作为通用 I/O口使用,在 CPU向端口输出数据时,对应的控制信号为 0,转换开关把输出级与锁存器 Q端接通,同时因与门 3输出为 0使 V2截止,此时,输出级是漏极开路电路。当写脉冲加在锁存器时钟端 CLK上时,与内部总线相连的 D端数据取反后出现在 Q端,又经输出 V1反相,在 P0引脚上出现的数据正好是内部总线的数据。当要从 P0口输入数据时,引脚信息仍经输入缓冲器进入内部总线。
第 2章 MCS-51系列单片机的硬件结构
(1) 在输出数据时,由于 V2截止,输出级是漏极开路电路,要使
"1"信号正常输出,必须外接上拉电阻。
(2) P0口作为通用 I/O口使用时,是准双向口。其特点是在输入数据时,应先把口置 1(写 1),此时锁存器的 Q端为 0,使输出级的两个场效应管 V1,V2均截止,引脚处于悬浮状态,才可作高阻输入。
因为,从 P0口引脚输入数据时,V2一直处于截止状态,引脚上的外部信号既加在三态缓冲器 1的输入端,又加在 V1的漏极。假定在此之前曾输出锁存过数据 0,则 V1是导通的,这样引脚上的电位就始终被箝位在低电平,使输入高电平无法读入。因此,在输入数据时,
应人为地先向口写 1,使 V1,V2均截止,方可高阻输入。所以说 P0
口作为通用 I/O口使用时,是准双向口。但在 P0用作地址 /数据分时复用功能连接外部存储器时,由于访问外部存储器期间,CPU会自动向 P0口的锁存器写入 0FFH,对用户而言,P0口此时则是真正的三态双向口。
第 2章 MCS-51系列单片机的硬件结构
4.端口操作
MCS-51单片机有不少指令可直接进行端口操作,例如:
ANL P0,A ; (P0)←(P0) ∧ (A)
ORL P0,#data ; (P0)←(P0) ∨ data
DEL P0 ; (P0)←(P0) -1
第 2章 MCS-51系列单片机的硬件结构这些指令的执行过程分成 "读 -修改 -写 "三步,先将 P0口的数据读入 CPU,在 ALU中进行运算,运算结果再送回 P0。执行 "读 -
修改 -写 "类指令时,CPU是通过三态门 2读回锁存器 Q端的数据来代表引脚状态的。如果直接通过三态门 1从引脚读回数据,有时会发生错误。例如,用一根口线去驱动一个晶体管的基极,
当向此口线输出 1时,锁存器 Q=1,V2导通驱动晶体管。当晶体管导通后,引脚上的电平被拉到低电平 (0.7 V),因而,若从引脚直接读回数据,原为 1的状态则会错读为 0,所以要从锁存器 Q端读取数据。
第 2章 MCS-51系列单片机的硬件结构综上所述,P0口在有外部扩展存储器时被作为地址 /数据总线口,此时是一个真正的双向口;在没有外部扩展存储器时,
P0口也可作为通用的 I/O接口,但此时只是一个准双向口。另外,P0口的输出级具有驱动 8个 LSTTL负载的能力,即输出电流不大于 800 μA。
第 2章 MCS-51系列单片机的硬件结构
2.5.2 P1口
P1口为准双向口,其 1位的内部结构如图 2.10所示。它在结构上与 P0口的区别在于输出驱动部分。其输出驱动部分由场效应管
V1与内部上拉电阻组成。当其某位输出高电平时,可以提供拉电流负载,不必像 P0口那样需要外接上拉电阻。
P1口只有通用 I/O接口一种功能 (对 51子系列 ),其输入输出原理特性与 P0口作为通用 I/O接口使用时一样,请读者自己分析。 P1
口具有驱动 4个 LSTTL负载的能力。
另外,对于 52子系列单片机 P1口 P1.0与 P1.1除作为通用 I/O接口线外,还具有第二功能,即 P1.0可作为定时器 /计数器 2的外部计数脉冲输入端 T2,P1.1可作为定时器 /计数器 2的外部控制输入端
T2EX。
第 2章 MCS-51系列单片机的硬件结构图 2.10 P1口 1位结构图
P 2,x
D Q
锁存器
C L K
__
Q
V1
读引脚内部总线读锁存器写锁存器内部上拉电阻
2
1
V
CC
图 2,1 0 P 1 口 1
位结构图第 2章 MCS-51系列单片机的硬件结构
2.5.3 P2口图 2.11 P2口 1位结构图
D Q
锁存器
C L K
__
Q
1
P 2,x
V1
读引脚内部总线读锁存器写锁存器地址控制
V
CC
内部上拉电阻
M U X
2
1
3
图 2,1 1 P 2 口 1
位结构图第 2章 MCS-51系列单片机的硬件结构当作为准双向通用 I/O口使用时,控制信号使转换开关接向左侧,锁存器 Q端经反相器 3接 V1,其工作原理与 P1相同,也具有输入、输出、端口操作三种工作方式,负载能力也与 P1相同。
当作为外部扩展存储器的高 8位地址总线使用时,控制信号使转换开关接向右侧,由程序计数器 PC来的高 8位地址 PCH,或数据指针 DPTR来的高 8位地址 DPH经反相器 3和 V1原样呈现在 P2
口的引脚上,输出高 8位地址 A8~A15。在上述情况下,口锁存器的内容不受影响,所以,取指或访问外部存储器结束后,由于转换开关又接至左侧,使输出驱动器与锁存器 Q端相连,引脚上将恢复原来的数据。
第 2章 MCS-51系列单片机的硬件结构
2.5.4 P3口图 2.12 P3口 1位结构图
P 2,x
读锁存器
D Q
锁存器
C L K
__
Q
&
V1
读引脚内部总线写锁存器
V
CC
内部上拉电阻第二功能输出第二功能输入
1
2
4
3
图 2,12 P 3 口 1
位结构图第 2章 MCS-51系列单片机的硬件结构 2.6 定时器 /计数器对于定时器 /计数器来说,不管是独立的定时器芯片还是单片机内的定时器,大都具有以下特点:
(1) 定时器 /计数器有多种方式,可以是计数方式也可以是定时方式。
(2) 定时器 /计数器的计数值是可变的,当然计数的最大值是有限的,这取决于计数器的位数。计数的最大值也就限定了定时的最大值。
(3) 在到达设定的定时或计数值时发出中断申请,以便实现定时控制。
MCS-51单片机 (51子系列 )内带有两个 16位定时器 /计数器 T0和
T1,它们均可作为定时器或计数器使用。
第 2章 MCS-51系列单片机的硬件结构
2.6.1 定时器 /计数器 T0,T1的结构图 2.13 定时器 /计数器 T0,T1的结构框图第 2章 MCS-51系列单片机的硬件结构
1,16位加法器定时器 /计数器的核心是 16位加法计数器,图中用特殊功能寄存器 TH0,TL0及 TH1,TL1表示 。 TH0,TL0是定时器 /计数器 0
加法计数器的高 8位和低 8位,TH1,TL1是定时器 /计数器 1加法计数器的高 8位和低 8位 。
作计数器用时,加法计数器对芯片引脚 T0(P3.4)或 T1(P3.5)
上的输入脉冲计数。每输入一个脉冲,加法计数器增加 1。加法计数溢出时可向 CPU发出中断请求信号。
第 2章 MCS-51系列单片机的硬件结构作定时器用时,加法计数器对内部机器周期脉冲 Tcy计数。
由于机器周期是定值,所以对 Tcy的计数就是定时,如 Tcy=1
μs,计数值 100,相当于定时 100 μs。
加法计数器的初值可以由程序设定,设置的初值不同,计数值或定时时间就不同。在定时器 /计数器的工作过程中,加法计数器的内容可用程序读回 CPU。
第 2章 MCS-51系列单片机的硬件结构
2.定时器 /计数器方式控制寄存器 TMOD
定时器 /计数器 T0,T1都有四种工作方式,可通过程序对
TMOD设置来选择。 TMOD的低 4位用于定时器 /计数器 0,高 4
位用于定时器 /计数器 1。其位定义如下:
GATE C/ T MI M0 GATE C/T M1 M0TMOD
字节地址
89H
D7 D6 D5 D4 D3 D2 D1 D0
T1 T0
第 2章 MCS-51系列单片机的硬件结构定时或计数功能选择位,当 C/ T =1时为计数方式;当
C/ =0时为定时方式。
M1,M0:定时器 /计数器工作方式选择位,其值与工作方式对应关系如表 2.6所示。
GATE:门控位,用于控制定时器 /计数器的启动是否受外部中断请求信号的影响。如果 GATE=1,定时器 /计数器 0的启动受芯片引脚 (P3.2)控制,定时器 /计数器 1的启动受芯片引脚 (P3.3)控制;如果 GATE=0,定时器 /计数器的启动与引脚,无关。一般情况下 GATE=0。
TC/
_______0INT
_______1INT
_______0INT _______1INT
第 2章 MCS-51系列单片机的硬件结构表 2.6 定时器 /计数器工作方式
M1 M0 工作方式 方 式 说 明
0 0 0 13位定时器 /计数器
0 1 1 16位定时器 /计数器
1 0 2 具有自动重装初值的 8位定时器/计数器
1 1 3
第 2章 MCS-51系列单片机的硬件结构
3.定时器 /计数器控制寄存器 TCON
TCON控制寄存器各位定义如下:
TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0TCON
字节地址
88H
D7 D6 D5 D4 D3 D2 D1 D0
TF0(TF1),T0(T1)定时器 /计数器溢出中断标志位。当 T0(T1)
计数溢出时,由硬件置位,并在允许中断的情况下,向 CPU发出中断请求信号,CPU响应中断转向中断服务程序时,由硬件自动将该位清零。
TR0(TR1),T0(T1)运行控制位。当 TR0(TR1)=1时启动 T0(T1);
TR0(TR1)=0时关闭 T0(T1)。该位由软件进行设置。
第 2章 MCS-51系列单片机的硬件结构
2.6.2 定时器 /计数器 T0,T1的四种工作方式
1.工作方式 0
图 2.14 定时器 /计数器方式 0的逻辑结构第 2章 MCS-51系列单片机的硬件结构可用程序将 0~8191(213-1)的某一数送入 THx,TLx作为初值。
THx,TLx从初值开始加法计数,直至溢出。所以初值不同,定时时间或计数值不同。必须注意的是:加法计数器 THx溢出后,
必须用程序重新对 THx,TLx设置初值,否则下一次 THx,TLx
将从 0开始计数。
如果 C/T=1,图 2.14中开关 S1自动地接在下面,定时器 /计数器工作在计数状态,加法计数器对 Tx引脚上的外部脉冲计数。
计数值由下式确定:
N=213–x=8192–x
第 2章 MCS-51系列单片机的硬件结构式中 N 为计数值,x是 THx,TLx的初值。 x=8191时为最小计数值 1,x=0时为最大计数值 8192,即计数范围为 1~8192。
定时器 /计数器在每个机器周期的 S5P2期间采样 Tx脚输入信号,若一个机器周期的采样值为 1,下一个机器周期的采样值为
0,则计数器加 1。由于识别一个高电平到低电平的跳变需两个机器周期,所以对外部计数脉冲的频率应小于 fosc/24,且高电平与低电平的延续时间均不得小于 1个机器周期。
第 2章 MCS-51系列单片机的硬件结构
C/ T=0时为定时器方式,开关 S1自动地接在上面,加法计数器对机器周期脉冲 Tcy计数,每个机器周期 TLx加 1。定时时间由下式确定:
T=N× Tcy=(8192-x)Tcy
式中 Tcy为单片机的机器周期。如果振荡频率 fosc=12 MHz,则
Tcy=1 μs,定时范围为 1~8192 μs。
第 2章 MCS-51系列单片机的硬件结构定时器 /计数器的启动或停止由 TRx控制。当 GATE=0时,只要用软件置 TRx =1,开关 S2闭合,定时器 /计数器就开始工作;
置 TRx=0,S2打开,定时器 /计数器停止工作。
GATE=1为门控方式。此时,仅当 TRx=1且 引脚上出现高电平 (即无外部中断请求信号 ),S2才闭合,定时器 /计数器开始工作。如果 引脚上出现低电平 (即有外部中断请求信号 ),则停止工作。所以,门控方式下,定时器 /计数器的启动受外部中断请求的影响,可用来测量 引脚上出现正脉冲的宽度。
_______INTx
_______INTx
_______INTx
第 2章 MCS-51系列单片机的硬件结构
2.工作方式 1
当 M1M0=01时,定时器 /计数器设定为工作方式 1,构成了 16
位定时器 /计数器。此时 THx,TLx都是 8位加法计数器。其它与工作方式 0相同。
在方式 1时,计数器的计数值由下式确定:
N=216-x=65 536-x
计数范围为 1~65 536。
定时器的定时时间由下式确定:
T=N× Tcy=(65 536-x) Tcy
如果 fosc=12 MHz,则 Tcy=1 μs,定时范围为 1~65 536 μs。
第 2章 MCS-51系列单片机的硬件结构
3.工作方式 2
图 2.15 定时器 /计数器方式 2的逻辑结构振荡器 ÷ 12
T L x
( 8 位) T F x
&
≥ 1
1
C/
__
T
C/
__
T
f
osc
中断请求
Tx
G A T E
_ _ _ _ _ _
I N T x
T R x
T H x
(8 位 )
4
重装初值控制
S1
T
cy
图 2,1 5 定时器 / 计数器方式 2 的逻辑结构
S2
第 2章 MCS-51系列单片机的硬件结构在工作方式 2时,计数器的计数值由下式确定:
N=28-x=256-x
计数范围为 1~256。
定时器的定时值由下式确定:
T=N× Tcy=(256-x)Tcy
如果 fosc=12 MHz,则 Tcy=1 μs,定时范围为 1~256 μs。
第 2章 MCS-51系列单片机的硬件结构
4.工作方式 3
图 2.16 定时器 /计数器方式 3的逻辑结构振荡器 ÷ 12
TL0
( 8 位)
&
≥ 1
1
C/
__
T
C/
__
T
f
osc
中断请求
T0
G A T E
_ _ _ _ _
TR 0
T H 1
(8 位 )
S2
S1
T F 0
T F 1
T R 1
T
cy
T
cy
I N T x
图 2,1 6 定时器 / 计数器方式 3 的逻辑结构
S
第 2章 MCS-51系列单片机的硬件结构
2.7 串行输入 /输出口
2.7.1 串行通信的基本概念
0
1
0
0
1
0
0
1
D0
D1
D2
D3
D4
D5
D6
D7
状态控制 ( 选通 )
计算机计算机

或外设

0
1
0
0
1
0
0
1
( a )
8 T
计算机计算机计算机

或外设

( b )
.,,,,,
图 2.17 通信的两种基本方式
(a) 并行通信; (b) 串行通信第 2章 MCS-51系列单片机的硬件结构
1.异步传送方式图 2.18 串行异步传送的字符格式
(a) 字符格式; (b) 有空闲位的字符格式
D 0 D 1 D 2 D 3 D 4 D 5 D 6 D 7 D 0 D 1 D 2
0 0 / 1 0 / 1 0 / 1 0 / 1 0 / 1 0 / 1 0 / 1 0 / 1 1 0 0 / 1 0 / 1 0 / 1 …
D 0 D 1 D 2 D 3 D 4 D 5 D 6 D 7 D 0 D 1
0 0 / 1 0 / 1 0 / 1 0 / 1 0 / 1 0 / 1 0 / 1 0 / 1 1 1 1 1 0 0 / 1 0 / 1 …
数据位起始位 奇偶校验位停止位停止位数据位 空闲位起始位下一个空闲位下一个空闲位
( a )
( b )
第 N + 1 个字符第 N 个字符第 N 个字符 第 N + 1 个字符奇偶校验位第 2章 MCS-51系列单片机的硬件结构在串行异步传送中,通信双方必须事先约定:
(1) 字符格式。双方要事先约定字符的编码形式、奇偶校验形式及起始位和停止位的规定。例如用 ASCII码通信,有效数据为 7
位,加一个奇偶校验位、一个起始位和一个停止位共 10位。当然停止位也可以大于 1位。
(2) 波特率 (Baud rate)。波特率就是数据的传送速率,即每秒钟传送的二进制位数,单位为位 /秒。它与字符的传送速率 (字符 /
秒 )之间有以下关系:
波特率 =一个字符的二进制编码位数 × 字符 /秒要求发送端与接收端的波特率必须一致。
异步串行通信的传送速率一般为 50~9600波特,常用于计算机到 CRT终端和字符打印机之间的通信、直通电报以及无线电通信的数据发送等。
第 2章 MCS-51系列单片机的硬件结构
2.同步传送图 2.19 同步通信的格式同步字符 2同步字符 1 数据块
Td
图 2,1 9 同步通信的格式第 2章 MCS-51系列单片机的硬件结构图 2.20 串行通信数据传送的三种方式
(a) 单工方式; (b) 半双工方式; (c) 全双工方式
A
S S
B
( a ) ( b ) ( c )
A B A B
第 2章 MCS-51系列单片机的硬件结构
2.7.2 MCS-51单片机的串行口
1.功能与结构表 2.7 串行口的工作方式
SM0 SM1 工作方式 功 能 波 特 率
0 0 方式 0 移位寄存器方式,用于并行 I/O扩展 fosc /12
0 1 方式 1 8位通用异步接收器 /发送器 可变
1 0 方式 2 9位通用异步接收器 /发送器 fosc /32或 fosc /64
1 1 方式 3 9位通用异步接收器 /发送器 可变第 2章 MCS-51系列单片机的硬件结构图 2.21 串行口方式 0结构示意图
S E N D
R E C V
发送控制器接收控制器发送数据缓冲器
S B U F
接收数据缓冲器
S B U F
移位寄存器移位脉冲
1
3
2
并入启动并出写 S B U F
读 S B U F
装载
S B U F
串入
R I
T I
串行口中断内部移位脉冲内部移位脉冲
8
8
内部总线
≥ 1
≥ 1
&
&
串出
Sb
5
4
7
6
T X D 引脚同步移位脉冲
R X D 引脚
(数据)
启动
R E N
第 2章 MCS-51系列单片机的硬件结构串行口控制寄存器 SCON的格式如下:
SM0 SM1 SM2 REN TB8 RB8 T1 RISCON
字节地址
98H
D7 D6 D5 D4 D3 D2 D1 D0
SM0,SM1:由软件置位或清零,用于选择串行口四种工作方式。
SM2:多机通信控制位。在方式 2和方式 3中,如 SM2=1,则接收到的第 9位数据 (RB8)为 0时不启动接收中断标志 RI(即 RI=0),并且将接收到的前 8位数据丢弃; RB8为 1时,才将接收到的前 8位数据送入 SBUF,并置位 RI,产生中断请求。当 SM2=0时,则不论第 9位数据为 0或 1,都将前 8位数据装入 SBUF中,并产生中断请求。在方式
0时,SM2必须为 0。
第 2章 MCS-51系列单片机的硬件结构
REN:允许串行接收控制位。若 REN=0,则禁止接收;
REN=1,则允许接收,该位由软件置位或复位。
TB8:发送数据 D8位。在方式 2和方式 3时,TB8为所要发送的第 9位数据。在多机通信中,以 TB8位的状态表示主机发送的是地址还是数据,TB8=0为数据,TB8=1为地址;也可用作数据的奇偶校验位。该位由软件置位或复位。
RB8:接收数据 D8位。在方式 2和方式 3时,接收到的第 9位数据,可作为奇偶校验位或地址帧或数据帧的标志。方式 1时,若
SM2=0,则 RB8是接收到的停止位。在方式 0时,不使用 RB8位。
第 2章 MCS-51系列单片机的硬件结构
TI:发送中断标志位。在方式 0时,当发送数据第 8位结束后,或在其它方式发送停止位后,由内部硬件使 TI置位,向
CPU请求中断。 CPU在响应中断后,必须用软件清零。此外,
TI也可供查询使用。
RI:接收中断标志位。在方式 0时,当接收数据的第 8位结束后,或在其它方式接收到停止位的中间由内部硬件使 RI置位,
向 CPU请求中断。同样,在 CPU响应中断后,也必须用软件清零。 RI也可供查询使用。
第 2章 MCS-51系列单片机的硬件结构电源控制寄存器的格式如下:
SMOD --- --- --- CF1 CF0 PD IDL
D7 D6 D5 D4 D3 D2 D1 D0
PCON
字节地址
97H
PCON的最高位 SMOD是串行口波特率系数控制位。
SMOD=1时,波特率增大一倍。其余各位与串行口无关。
第 2章 MCS-51系列单片机的硬件结构
2.串行口的工作方式
● 发送
CPU执行一条写 SBUF的指令,如 MOV SBUF,A,就启动了发送过程。指令执行期间送来的写信号打开三态门 1,将经内部总线送来的 8位并行数据写入发送数据缓冲器 SBUF。写信号的同时启动发送控制器。此后,CPU与串行口并行工作。经过一个机器周期,发送控制端 SEND有效 (高电平 ),打开门 5和门 6,允许 RXD
引脚发送数据,TXD引脚输出同步移位脉冲。在时钟信号 S6触发产生的内部移位脉冲作用下,发送数据缓冲器中的数据逐位串行输出。每一个机器周期从 RXD上发送一位数据。故波特率为
fosc/12。 S6同时形成同步移位脉冲,一个机器周期从 TXD上输出。
8位数据 (一帧 )发送完毕后,SEND恢复低电平状态,停止发送数据。且发送控制器硬件置发送中断标志 TI=1,向 CPU申请中断。
如要再次发送数据,必须用软件将 TI清零,并再次执行写 SBUF指令。
第 2章 MCS-51系列单片机的硬件结构
● 接收在 RI=0的条件下,将 REN(SCON.4)置 1就启动一次接收过程。此时 RXD为串行数据接收端,TXD依然输出同步移位脉冲。
REN置 1启动了接收控制器。经过一个机器周期,接收控制端
RECV有效 (高电平 ),打开门 6,允许 TXD输出同步移位脉冲。 该脉冲控制外接芯片逐位输入数据,波特率为 fosc/12。在内部移位脉冲作用下,RXD上的串行数据逐位移入移位寄存器。当 8位数据 (一帧 )
全部移入移位寄存器后,接收控制器使 RECV失效,停止输出移位脉冲,还发出 "装载 SBUF"信号,打开三态门 2,将 8位数据并行送入接收数据缓冲器 SBUF中保存。与此同时,接收控制器硬件置接收中断标志 RI=1,向 CPU申请中断。 CPU响应中断后,用软件使 RI=0,
使移位寄存器开始接收下一帧信息,然后通过读接收缓冲器的指令,
例如 MOV A,SBUF,读取 SBUF中的数据。在执行这条指令时,
CPU发出的 "读 SBUF"信号打开三态门 3,数据经内部总线进入 CPU。
第 2章 MCS-51系列单片机的硬件结构
2) 方式 1
图 2.22 串行口方式 1,2,3结构示意图输出控制门
S E N D
D A T A
启动发送控制器接收控制器
≥ 1
系统外围芯片接收数据缓冲器
S B U F
移位寄存器 位检测器
1
3
2
波特率发生器并入启动串出并出写 S B U F
读 S B U F
装载
S B U F
串入 R X D 引脚
R EN
R I
T I
串行口中断内部移位脉冲内部移位脉冲
8
8
T X D 引脚内部总线第 2章 MCS-51系列单片机的硬件结构
● 发送
CPU执行一条写 SBUF指令便启动了串行口发送,数据从
TXD输出。在指令执行期间,CPU送来“写 SBUF”信号,将并行数据送入 SBUF,并启动发送控制器。经一个机器周期,发送控制端的,DATA相继有效,通过输出控制门从 TXD
上逐位输出一帧信息。一帧信息发送完毕后,,DATA
失效,发送控制器硬件置发送中断标志 TI=1,向 CPU申请中断。
_______SEND
_______SEND
第 2章 MCS-51系列单片机的硬件结构
● 接收允许接收控制位 REN被置 1,接受器就开始工作,跳变检测器以所选波特率的 16倍速率采样 RXD引脚上的电平。当采样到从
1到 0的负跳变时,启动接收控制器接收数据。由于发送、接受双方各自使用自己的时钟,两者的频率总有少许差异。为了避免这种影响,控制器将 1位的传送时间分成 16等份,位检测器在 7,8、
9三个状态,也就是在信号中央采样 RXD三次。而且,三次采样中至少两次相同的值被确认为数据,这是为了减少干扰的影响。
如果接收到的起始位的值不是 0,则起始位无效,复位接收电路。
如果起始位为 0,则开始接收本帧其它各位数据。控制器发出内部移位脉冲将 RXD上的数据逐位移入移位寄存器,当 8位数据及停止位全部移入后,根据以下状态,进行响应操作。
第 2章 MCS-51系列单片机的硬件结构
① 如果 RI=0,SM2=0,接收控制器发出 "装载 SBUF"信号,
将 8位数据装入接收数据缓冲器 SBUF,停止位装入 RB8,并置
RI=1,向 CPU申请中断。
② 如果 RI=0,SM2=1,那么只有停止位为 1才发生上述操作。
③ RI=0,SM2=1且停止位为 0,所接收的数据不装入 SBUF,
数据将会丢失。
④ 如果 RI=1,则所接收的数据在任何情况下都不装入 SBUF,
即数据丢失。
无论出现哪一种情况,跳变检测器将继续采样 RXD引脚的负跳变,以便接收下一帧信息。
第 2章 MCS-51系列单片机的硬件结构
3) 方式 2与方式 3
方式 2、方式 3都是 9位异步通信接口,其结构示意图如图
2.22所示。发送或接收一帧信息由 11位组成,其中 1位起始位,9
位数据位和 1位停止位。方式 2与方式 3仅波特率不同,方式 2的波特率为 fosc/32(SMOD=1时 )或 fosc/64(SMOD=0时 ),而方式 3的波特率由定时器 /计数器 T1及 SMOD决定。
在方式 2、方式 3时,发送、接收数据的过程与方式 1基本相同,所不同的仅在于对第 9位数据的处理上。发送时,第 9位数据由 SCON中的 TB8位提供。接收数据时,当第 9位数据移入移位寄存器后,将 8位数据装入 SBUF,第 9位数据装入 SCON中的
RB8。
第 2章 MCS-51系列单片机的硬件结构
3.波特率设置串行口的 4种工作方式对应着三种波特率模式。
对于方式 0,波特率是固定的,为 fosc/12。
对于方式 2,波特率由振荡频率 fosc和 SMOD(PCON.7)所决定。其对应公式为波特率 =2SMOD× fosc/64
当 SMOD=0时,波特率为 fosc/64;当 SMOD=1时,波特率为
fosc/32。
对于方式 1和方式 3,波特率由定时器 /计数器 T1的溢出率和
SMOD决定,即由下式确定:
波特率 =2SMOD× 定时器 /计数器 T1溢出率 /32
第 2章 MCS-51系列单片机的硬件结构
4.多机通信图 2.23 主从式多机通信系统
R X D
T X D
主机
8 0 5 1
R X D T X D
8 0 5 1
0 # 从机
R X D T X D
8 0 5 1
1 # 从机
R X D T X D
8 0 5 1
n # 从机

第 2章 MCS-51系列单片机的硬件结构在主从式多机系统中,主机发出的信息有两类,而且具有特征,能够有所区分。一类为地址,用来确定需要和主机通信的从机,特征是串行传送的第 9位数据为 1;另一类是数据,特征是串行传送的第 9位数据为 0。对从机来说,要利用 SCON寄存器中的 SM2位的控制功能。在接收时,若 RI=0,则只要
SM2=1,接收总能实现;而若 SM2=0,则发送的第 9位 TB8必须为 0接收才能进行。因此,对于从机来说,在接收地址时,应使
SM2=1,以便接收到主机发来的地址,从而确定主机是否打算和自己通信,一经确认后,从机应使 SM2=0,以便接收 TB8=0
的数据。
第 2章 MCS-51系列单片机的硬件结构主从多机通信的过程如下:
(1) 使所有的从机的 SM2位置 1,以便接收主机发来的地址。
(2) 主机发出一帧地址信息,其中包括 8位需要与之通信的从机地址,第 9位为 1。
(3) 所有从机接收到地址帧后,各自将所接收到的地址与本机地址相比较,对于地址相同的从机,使 SM2位清零以接收主机随后发来的所有信息;对于地址不符合的从机,仍保持 SM2=1的状态,对主机随后发来的数据不予理睬,直至发送新的地址帧。
(4) 主机给已被寻址的从机发送控制指令和数据 (数据帧的第 9
位为 0)。
第 2章 MCS-51系列单片机的硬件结构
2.8 MCS-51单片机的中断系统
2.8.1 中断的基本概念所谓中断是指 CPU对系统中或系统外发生的某个事件的一种响应过程,即 CPU暂时停止现行程序的执行,而自动转去执行预先安排好的处理该事件的服务子程序。当处理结束后,再返回到被暂停程序的断点处,继续执行原来的程序。实现这种中断功能的硬件系统和软件系统统称为中断系统。
中断系统是计算机的重要组成部分。实时控制、故障自动处理时往往用到中断系统,计算机与外部设备间传送数据及实现人机联系也常常采用中断方式。
第 2章 MCS-51系列单片机的硬件结构中断系统需要解决以下基本问题:
(1) 中断源:中断请求信号的来源。包括中断请求信号的产生及该信号怎样被 CPU有效地识别。而且要求中断请求信号产生一次,只能被 CPU接收处理一次,即不能一次中断申请被 CPU
多次响应。这就涉及到中断请求信号的及时撤除问题。
(2) 中断响应与返回,CPU采集到中断请求信号后,怎样转向特定的中断服务子程序及执行完中断服务子程序怎样返回被中断的程序继续正确地执行。中断响应与返回的过程中涉及到
CPU响应中断的条件、现场保护等问题。
第 2章 MCS-51系列单片机的硬件结构
(3) 优先级控制:一个计算机应用系统,特别是计算机实时测控应用系统,往往有多个中断源,各中断源所要求的处理具有不同的轻重、缓急程度。与人处理问题的思路一样,希望重要紧急的事件先处理,而且如果当前处于正在处理某个事件的过程中,有更重要、更紧急的事件到来,就应当暂停当前事件的处理,转去处理新事件。这就是中断系统优先级控制所要解决的问题。中断优先级的控制形成了中断嵌套。
第 2章 MCS-51系列单片机的硬件结构
2.8.2 中断源
1.外部中断外部中断是指从单片机外部引脚,输入中断请求信号的中断,即外部中断源有两个。输入 /输出的中断请求、实时事件的中断请求、掉电和设备故障的中断请求都可以作为外部中断源,从引脚,输入。
外部中断请求,有两种触发方式:电平触发及跳变 (边沿 )触发。这两种触发方式可以通过对特殊功能寄存器
TCON编程来选择。下面再给出 TCON的位定义格式,并对与中断有关的定义位予以说明。
_______0INT _______1INT
_______0INT _______1INT
_______0INT _______1INT
第 2章 MCS-51系列单片机的硬件结构
TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0
D7 D6 D5 D4 D3 D2 D1 D0
TCON
字节地址
98H
IT0(IT1):外部中断 0(或 1)触发方式控制位。 IT0(或 IT1)被设置为 0,则选择外部中断为电平触发方式; IT0(或 IT1)被设置为 1,则选择外部中断为跳变触发方式。
第 2章 MCS-51系列单片机的硬件结构
IE0(IE1):外部中断 0(或 1)的中断请求标志位。当 IT0(或
IT1)=0,即电平触发方式时,CPU在每个机器周期的 S5P2采样
(x=0,1)。若 引脚为低电平,将直接触发外部中断。跳变触发方式时,若第一个机器周期采样到 引脚为高电平,第二个机器周期采样到 引脚为低电平时,由硬件置位 IT0(或 IT1),并以此 向 CPU请求中断。当 CPU响应中断转向中断服务程序时由硬件将 IE0(或 IE1)清零。
若把外部中断设置为跳变触发方式,CPU在每个机器周期都采样 。为了保证检测到负跳变,输入到 引脚上的高电平与低电平至少应保持 1个机器周期。对于电平触发的外部中断,由于 CPU对 引脚没有控制作用,也没有相应的中断请求标志位,因此需要外接电路来撤除中断请求信号。
)1.0(_ _ _ _ _ _?xIN T x ______INTx
______INTx
______INTx
______INTx
______INTx ______INTx
______INTx
第 2章 MCS-51系列单片机的硬件结构图 2.24 撤除外部中断请求的电路中断外部请求信号
I N T x
单片机
P 1,0
Q D
S C L K
第 2章 MCS-51系列单片机的硬件结构图 2.24是一种可行的参考方案。外部中断请求信号通过 D触发器加到单片机 引脚上。当外部中断请求信号使 D触发器的
CLK端发生正跳变时,由于 D端接地,Q端输出 0,向单片机发出中断请求。 CPU响应中断后,利用一根口线,如 P1.0作应答线,
在中断服务程序中用两条指令
ANL P1.0 #0FEH
ORL P1.0 #01H
来撤除中断请求。第一条指令使 P1.0为 0,而 P1口其它各位的状态不变。由于 P1.0与直接置 1端 相连,故 D触发器 Q=1,撤除了中断请求信号 。第二条指令将 P1.0变成 1,从而 =1,使以后产生的新的外部中断请求信号又能向单片机申请中断。
第 2章 MCS-51系列单片机的硬件结构
2.内部中断内部中断是单片机芯片内部产生的中断。 MCS-51单片机 (51
子系列 )的内部中断有定时器 /计数器 T0,T1的溢出中断,串行口的发送 /接收中断。前已述及,当定时器 /计数器 T0,T1的定时或计数到由硬件自动置位 TCON的 TF0或 TF1,便向 CPU申请中断。
CPU响应中断而转向中断服务程序时,由硬件自动将 TF0或 TF1
清零,即 CPU响应中断后能自动撤除中断请求信号。当串行口发送完或接收完一帧信息,由接口硬件自动置位 SCON的 TI或 RI,
以此向 CPU申请中断,CPU响应中断后,接口硬件不能自动将 TI
或 RI清零,即 CPU响应中断后不能自动撤除中断请求信号,需用户采用软件方法将 TI或 RI清零,来撤除中断请求信号。
第 2章 MCS-51系列单片机的硬件结构
2.8.3 中断控制
1.中允控制
MCS-51单片机中没有专设的开中断和关中断指令,对各中断源的中断开放或关闭是由内部的中断允许寄存器 IE的各位来控制的。 IE各位的定义如下:
EA ET2 ES ET1 EX1 ET0 EX0
D7 D6 D5 D4 D3 D2 D1 D0
IE
字节地址
A8H
第 2章 MCS-51系列单片机的硬件结构
EA:中断允许总控位。 EA=0,屏蔽所有的中断请求; EA=1,
开放中断。 EA的作用是使中断允许形成两级控制。即各中断源首先受 EA位的控制;其次还要受各中断源自己的中断允许总控位控制。
ET2:定时器 /计数器 T2的溢出中断允许位,只用于 52子系列,
51子系列无此位。 ET2=0,禁止 T2中断; ET2=1,允许 T2中断。
ES:串行口中断允许位。 ES=0,禁止串行口中断; ES=1允许串行口中断。
ET1:定时器 /计数器 T1的溢出中断允许位。 ET1=0,禁止 T1
中断; ET1=1,允许 T1中断。
第 2章 MCS-51系列单片机的硬件结构
EX1:外部中断 1( )的中断允许位。 EX1=0,禁止外部中断 1中断; EX1=1,允许外部中断 1中断。
ET0:定时器 /计数器 T0的溢出中断允许位。 ET0=0,禁止
T0中断; ET0=1,允许 T0中断。
EX0:外部中断 0( )的中断允许位。 EX0=0,禁止外部中断 0中断; EX0=1允许外部中断 0中断。
_______1INT
_______0INT
第 2章 MCS-51系列单片机的硬件结构
2.中断优先级控制
MCS-51单片机的中断源有两个用户可控的中断优先级,从而可实现二级中断嵌套。中断系统遵循如下三条规则:
(1) 正在进行的中断过程不能被新的同级或低优先级的中断请求所中断,一直到该中断服务程序结束,返回了主程序且执行了主程序中的一条指令后,CPU才响应新的中断请求。
(2) 正在进行的低优先级中断服务程序能被高优先级中断请求所中断,实现两级中断嵌套。
(3) CPU同时接收到几个中断请求时,首先响应优先级最高的中断请求。
第 2章 MCS-51系列单片机的硬件结构
PT2 PS PT1 PX1 PT0 PX0
D7 D6 D5 D4 D3 D2 D1 D0
IP
字节地址
B8H
PT2:定时器 /计数器 T2的中断优先级控制位,只用于 52子系列。
PS:串行口的中断优先级控制位。
PT1:定时器 /计数器 T1的中断优先级控制位。
PX1:外部中断 的中断优先级控制位。
PT0:定时器 /计数器 T0的中断优先级控制位。
PX0:外部中断 的中断优先级控制位。_______0INT
_______1INT
第 2章 MCS-51系列单片机的硬件结构表 2.8 中 断 优 先 级中 断 源 同级的中断优先级外部中断 0
定时器 /计数器 0中断外部中断 1
定时器 /计数器 1中断串行口中断定时器 /计数器 2中断最高最低第 2章 MCS-51系列单片机的硬件结构图 2.25 中断系统的逻辑结构示意图
1
1
I E 0
I E 0
≥ 1
查询顺序识别查询顺序识别
≥ 1
≥ 1
≥ 1
中断入口地址中断入口地址低级中断请求低级中断请求查询硬件
IP
P X 0
P T 0
P X 1
P T 1
PS
P T 2ET2
ES
ET1
E X 1
ET0
E X 0
I E
I N T 0
T F 0
I N T 1
T F 1
TI
RI
T F 2
E X F 2
第 2章 MCS-51系列单片机的硬件结构
2.8.4 中断响应的条件、过程与时间
1.中断响应的条件单片机响应中断的条件为中断源有请求 (中断允许寄存器 IE相应位置 1),且 CPU开中断 (即 EA=1)。这样,在每个机器周期的
S5P2期间,对所有中断源按用户设置的优先级和内部规定的优先级进行顺序检测,并可在 S6期间找到所有有效的中断请求。如有中断请求,且满足下列条件,则在下一个机器周期的 S1期间响应中断,否则将丢弃中断采样的结果。
(1) 无同级或高级中断正在处理。
(2) 现行指令执行到最后 1个机器周期且已结束。
(3) 若现行指令为 RETI或访问 IE,IP的指令时,执行完该指令且紧随其后的另一条指令也已执行完毕。
第 2章 MCS-51系列单片机的硬件结构
2.中断响应过程
CPU响应中断后,由硬件自动执行如下的功能操作:
(1) 根据中断请求源的优先级高低,对相应的优先级状态触发器置 1。
(2) 保护断点,即把程序计数器 PC的内容压入堆栈保存。
(3) 清内部硬件可清除的中断请求标志位 (IE0,IE1,TF0、
TF1)。
(4) 把被响应的中断服务程序入口地址送入 PC,从而转入相应的中断服务程序执行。各中断服务程序的入口地址见表
2.3。
第 2章 MCS-51系列单片机的硬件结构
3.中断响应时间所谓中断响应时间是指 CPU检测到中断请求信号到转入中断服务程序入口所需要的机器周期数。了解中断响应时间对设计实时测控应用系统有重要指导意义。
MCS-51单片机响应中断的最短时间为 3个机器周期。若 CPU
检测到中断请求信号时间正好是一条指令的最后一个机器周期,
则不需等待就可以立即响应。所谓响应中断就是由内部硬件执行一条长调用指令,需要 2个机器周期,加上检测需要 1个机器周期,一共需要 3个机器周期才开始执行中断服务程序。
第 2章 MCS-51系列单片机的硬件结构中断响应的最长时间由下列情况所决定:若中断检测时正在执行 RETI或访问 IE或 IP指令的第一个机器周期,这样包括检测在内需要 2个机器周期 (以上三条指令均需两个机器周期 );若紧接着要执行的指令恰好是执行时间最长的乘除法指令,其执行时间均为 4个机器周期;再用 2个机器周期执行一条长调用指令才转入中断服务程序。这样,总共需要 8个机器周期。
其它情况下的中断响应时间一般为 3~8个机器周期。
第 2章 MCS-51系列单片机的硬件结构
2.9 复位状态及复位电路
2.9.1 复位状态
MCS-51系列单片机的复位引脚 RST上只要出现 10 ms以上的高电平,单片机就实现复位。
单片机在 RST引脚高电平的控制下,特殊功能寄存器和程序计数器 PC复位后的状态如表 2.9所示。
第 2章 MCS-51系列单片机的硬件结构表 2.9 MCS-51单片机复位状态表寄 存 器 复 位 状 态 寄 存 器 复 位 状 态
PC 0000H TCON 00H
A 00H T2CON 00H
B 00H TH0 00H
PSW 00H TL0 00H
SP 07H TH1 00H
DPTR 0000H TL1 00H
P0~P3 FFH SCON 00H
第 2章 MCS-51系列单片机的硬件结构
(PSW)=00H,由于 RS1(PSW.4)=0,RS0(PSW.3)=0,复位后单片机选择工作寄存器 0组。
(SP)=07H,复位后堆栈在片内 RAM的 08H单元处建立。
TH1,TL1,TH0,TL0的内容为 00H,定时器 /计数器的初值为 0。
(TMOD)=00H,复位后定时器 /计数器 T0,T1为定时器方式
0,非门控方式。
(TCON)=00H,复位后定时器 /计数器 T0,T1停止工作,外部中断 0,1为电平触发方式。
第 2章 MCS-51系列单片机的硬件结构
(T2CON)=00H,复位后定时器 /计数器 T2停止工作。
(SCON)=00H,复位后串行口工作在移位寄存器方式,且禁止串行口接收。
(IE)=00H,复位后屏蔽所有中断。
(IP)=00H,复位后所有中断源都设置为低优先级。
P0~ P3口锁存器都是全 1状态,说明复位后 4个并行接口设置为输入口。
第 2章 MCS-51系列单片机的硬件结构
2.9.2 复位电路与其它计算机一样,MCS-51单片机系统常常有上电复位和按钮复位两种方法。所谓上电复位,是指计算机加电瞬间,要在
RST引脚上出现大于 10 ms的正脉冲,使单片机进入复位状态。
按钮复位是指用户按下 "复位 "按钮,使单片机进入复位状态。
复位是靠外部电路实现的。图 2.26是上电复位及按钮复位的一种实用电路。
第 2章 MCS-51系列单片机的硬件结构图 2.26 复位电路
R S T
M C S - 51
C
3
C
2
10 μ F10pF
C
1
+ 5 V
+ 5 V
R 1 0 k?
系统外围芯片
V
C C