http://www.wenyuan.com.cn/webnew/
第 2章 单片机的结构原理与简单应用
(课时,10学时)
http://www.wenyuan.com.cn/webnew/
教学目的
了解单片机的内部结构与主要型号。
掌握单片机引脚信号功能定义。
掌握单片机的存储器空间分配及各 I/O口的特点。
掌握单片机的复位电路、时钟电路及指令时序。
利用单片机的 I/O口实现循环灯的控制。
学习重点和难点
单片机的结构特点。
存储器配置与空间的分布。
程序状态寄存器 (PSW)。
单片机的指令时序。
http://www.wenyuan.com.cn/webnew/
第 2章 单片机的结构原理与简单应用
2.1 单片机的结构与原理
2.2 单片机的存储器
2.3 单片机的输入 /输出端口
2.4 时钟电路
2.5 复位电路
2.6 常用单片机功能简介
本章小结
习题
http://www.wenyuan.com.cn/webnew/
2.1 单片机的结构与原理
2.1.1 8051单片机的基本组成
2.1.2 8051单片机的内部结构
2.1.3 8051单片机的引脚及功能
2.1.4 单片机的工作原理
http://www.wenyuan.com.cn/webnew/
2.1.1 8051单片机的基本组成
MCS-51是美国 Intel公司的 8位高档单片机系列,也是我国目前应用最为广泛的一种单片机系列 。 8051/80C51是整个 MCS-
51系列单片机的核心,该系列其他型号的单片机都是在这一内核的基础上发展起来的 。
MCS-51单片机系列分为 51和 52子系列,并以芯片型号的末位数字加以标识 。 其中,51子系列 是基本型,而 52子系列 是增强型 。
单片机型号带有字母,C”的,表示该单片机采用的是 CHMOS
工艺,具有低功耗的特点 。
8051的功耗为 630mW,而 80C51的功耗只有 120mW。
http://www.wenyuan.com.cn/webnew/
MCS-51系列单片机技术参数表子系列片内 ROM形式片内
ROM
片内
RAM
寻址范围
I/O特性 中断源无 ROM EPROM 定时器 并行口 串行口
51 子系列
8031 8051 8751 4KB 128B 2× 64KB 2× 16 4× 8 1 5
80C31 80C51 87C51 4KB 128B 2× 64KB 2× 16 4× 8 1 5
52 子系列
8032 8052 8752 8KB 256B 2× 64KB 3× 16 4× 8 1 6
80C32 80C52 87C52 8KB 256B 2× 64KB 3× 16 4× 8 1 6
http://www.wenyuan.com.cn/webnew/
2.1.1 8051单片机的基本组成
8051单片机的结构框图如下图所示,可以看出,在一块芯片上集成了一个微型计算机的主要部件,它包括以下几部分:
1个 8位微处理器 (CPU)。
1个时钟电路。
4KB程序存储器。
256B数据存储器。
2个 16位定时 /计数器。
64KB扩展总线控制电路。
4个 8位并行 I/O接口 P0~ P3。
1个全双工串行 I/O接口。
5个中断源,其中包括 2个优先级嵌套中断。
http://www.wenyuan.com.cn/webnew/
8051单片机结构框图振荡器和时序 O SC
程序存储器
4 K B RO M
数据存储器
2 5 6 B RA M
定时 / 计数器
2 个 16 位
8051
CP U
6 4 K B 总线扩展控制器并行 I/O
接口 4 个串行 I/O
接口 1 个内 部 总 线内中断外中断 控制 P0 P1 P2 P3 串行输出 串行输入外部时钟源外部事件计数
http://www.wenyuan.com.cn/webnew/
2.1.2 8051单片机的内部结构
CPU即中央处理器,是单片机的核心部件,是计算机的控制指挥中心 。 同微型计算机 CPU类似,8051内部 CPU由运算器和控制器两部分组成 。
运算器 电路以算术逻辑单元 (ALU,Arithmetic Logic Unit)
为核心,由暂存器 1,暂存器 2,累加器 (ACC,Accumulator)、
寄存器 B,程序状态寄存器 (PSW,Program Status Word)及布尔处理机共同组成 。 它的主要任务是完成算术运算,逻辑运算,位运算和数据传送等操作,运算结果的状态由程序状态寄存器 (PSW)保存 。
控制器 电路包括 程序计数器 (PC),PC增 1寄存器,指令寄存器 (IR),指令译码器 (ID),数据指针 (DPTR),堆栈指针 (SP)、
缓冲器及定时控制电路等 。 控制器电路完成指挥控制工作,
协调单片机各部分正常工作 。
http://www.wenyuan.com.cn/webnew/
8051
单片机内部结构图
RAM
地址寄存器寄存器
RA M 128B
RAM
程序地址寄存器
P0 驱动器
P 2 锁存器
P 2 驱动器
P 1 锁存器暂存器 2 B 寄存器
4 KB ROM
暂存器 1
ACC SP
P 0 锁存器
P C
P C 增 1
缓冲器
P 3 锁存器
OSC
中断、串行口及定时器
P SW
ALU
DPT R
P 1 驱动器 P 3 驱动器
XTAL1 XTAL2
P0,0 ~ P0,7 P2,0 ~ P2,7
P3,0 ~ P3,7 P1,0 ~ P1,7
RST
ALE
V
CC
V
SS
定时控制指令译码器指令寄存器
PSE N
EA
http://www.wenyuan.com.cn/webnew/
2.1.3 8051单片机的引脚及功能
MCS-51单片机的封装形式有两种,一种是 双列直插式 (DIP)
封装,另一种是方形封装 。
8051的 40个引脚可分为:
电源 引脚 2根
时钟 引脚 2根
控制 引脚 4根
I/O引脚 32根
由于 8051单片机是高性能的单片机,同时受到引脚数目的限制,所以有部分引脚具有 第二功能 。
http://www.wenyuan.com.cn/webnew/
8051单片机引脚图图 2 - 3 8 0 5 1 单片机引脚图
P1,0
X T A L 2
P1,2
P1,3
P1,4
P1,5
P1,6
P1,7
P0,1
P0,2
P0,3
P0,4
P0,5
P0,6
P0,7
P2,1
P2,2
P2,3
P2,4
P2,5
P2,6
P2,7
X T A L 1
RST / V
PD
V
SS
P2,0
P0,0 P1,1
1
3
4
5
6
7
8
2
10
8 0 5 1 9
11
13
14
15
16
17
18
12
19
20
40
38
37
36
35
34
33
39
31
32
30
28
27
26
25
24
23
29
22
21
RX D / P 3,0
T X D / P3,1
T 0 / P 3,4
T 1 / P 3,5
V
CC
PSE N
A L E / PRO G
E A / V
PP
I N T 0 / P3,2
I N T 1 / P3,3
W R/ P 3,6
RD / P 3,7
17
8 0 5 1
V
CC
V
SS
RST / V
PD
X T A L 1
X T A L 2
E A / V
PP
PSE N
A L E / PRO G
P3 口 P2 口
P1 口
P0 口
DIP引脚图 逻辑符号
http://www.wenyuan.com.cn/webnew/
8051引脚的功能描述(一)
电源引脚 (2根 )
VCC(40脚 ):电源端,接 +5V电源。
VSS(20脚 ):接地端。
时钟引脚 (2根 )
XTAL1(19脚 ):接外部晶振和微调电容的一端。采用外部时钟电路时,对 HMOS型工艺的单片机,此引脚应接地;对
CHMOS型而言,此引脚应接外部时钟的输入端。
XTAL2(18脚 ):接外部晶振和微调电容的另一端。使用外部时钟时,对 HMOS型工艺的单片机,此引脚应接外部时钟的输入端;对 CHMOS型而言,此引脚悬空。
http://www.wenyuan.com.cn/webnew/
8051引脚的功能描述 (二)
控制引脚 (4根 )
RST/VPD(9脚 ):复位信号 /备用电源输入引脚。
当 RST引脚保持两个机器周期的高电平后,就可以使 8051完成复位操作。该引脚的第二功能是 VPD,即备用电源的输入端,具有掉电保护功能。若在该引脚接
+5V备用电源,在使用中若主电源 VCC掉电,可保护片内 RAM中的信息不丢失。
ALE/PROG (30脚 ):地址锁存允许信号输出 /编程脉冲输入引脚。当 CPU访问片外存储器时,ALE输出信号控制锁存 P0口输出的低 8位地址,从而实现 P0口数据与低位地址的分时复用。当 8051上电正常工作后,自动在 ALE端输出频率为
fosc/6的脉冲序列 (fosc代表振荡器的频率 )。
该引脚的第二功能 PROG是对 8751内部 4KB EPROM编程写入时,作为编程脉冲的输入端。
EA/VPP(31脚 ):外部程序存储器地址允许输入端 /编程电压输入端。
当 EA接高电平时,CPU执行片内 ROM指令,但当 PC值超过 0FFFH时,将自动转去执行片外 ROM指令;当 EA接低电平时,CPU只执行片外 ROM指令。对于 8031,
由于其无片内 ROM,故其 EA必须接低电平。
该引脚的第二功能 VPP是对 8751片内 EPROM编程写入时,作为 21V编程电压的输入端。
PSEN(29脚 ):片外 ROM读选通信号端。
在读片外 ROM时,PSEN有效,为低电平,以实现对片外 ROM的读操作。
http://www.wenyuan.com.cn/webnew/
8051引脚的功能描述 (三)
I/O引脚 (4× 8=32根 )
P0.0~ P0.7(39~ 32脚 ),P0口的 8位双向 I/O口线。
P0口即可作地址 /数据总线使用,又可作通用的 I/O口使用。
当 CPU访问片外存储器时,P0口分时先作低 8位地址总线,
后作双向数据总线,此时,P0口就不能再作 I/O口使用了。
P1.0~ P1.7(1~ 8脚 ),P1口的 8位准双向 I/O口线。
P1口作为通用的 I/O口使用。
P2.0~ P2.7(21~ 28脚 ),P2口的 8位准双向 I/O口线。
P2口即可作为通用的 I/O口使用,也可作为片外存储器的高
8位地址总线,与 P0口配合,组成 16位片外存储器单元地址。
P3.0~ P3.7(10~ 17脚 ),P3口的 8位准双向 I/O口线。
P3口除了作为通用的 I/O口使用之外,每个引脚还具有第二功能。
http://www.wenyuan.com.cn/webnew/
2.1.4 单片机的工作原理
单片机执行程序的过程,就是逐条执行指令的过程 。 单片机每执行一条指令都可分为三个阶段,即 取指令 ——分析指令 ——执行指令 。
取指令 的任务是根据程序计数器 PC中的值从程序存储器读出下一条要执行的指令,送到指令寄存器 。 分析指令 的任务是将指令寄存器中的指令操作码取出后进行译码,分析其指令性质 。 如指令要求操作数,则寻找操作数地址 。 接下来,就是 执行指令 。
单片机中的程序一般事先都已通过写入器 (编程器 )固化在片内或片外程序存储器中,因而一开机即可执行指令 。
http://www.wenyuan.com.cn/webnew/
2.2 单片机的存储器
2.2.1 程序存储器 ROM
2.2.2 数据存储器 RAM
2.2.3 数据存储器数据读写应用实例
http://www.wenyuan.com.cn/webnew/
8051的存储器结构
8051的存储器结构与常见的微型计算机的配置方式不同,
它把 程序存储器 和 数据存储器 分开,有各自的寻址系统、
控制信号和功能。
8051的存储器在物理结构上分为 片内数据存储器,片内程序存储器,片外数据存储器 和 片外程序存储器 4个存储空间。
但从用户使用的角度看,8051的存储器分为 3个逻辑空间。
http://www.wenyuan.com.cn/webnew/
存储空间分布图
片内外统一寻址的 64KB程序存储器空间,地址范围为 0000H~ FFFFH。
64KB的片外数据存储器空间,地址范围也为 0000H~ FFFFH。
256B的片内数据存储器空间,地址范围为 00H~ FFH。
0000H
7 F H
00H
80H
FFH
0 F F F H 0 F F F H
0000H 0000H
E A 0?
FFFFH
SF R
RA M
E A 1?
RO M 4 K B
FFFFH
6 4 K B
RO M RA M
6 4 K B
( I / O ) RA M
片内存储器
1000H
片外扩展存储器
http://www.wenyuan.com.cn/webnew/
2.2.1 程序存储器 ROM
程序存储器 ROM用来存放 程序,常数 或 表格 等。
在 8051中,其存储空间分布如下:
片内有 4KB的 ROM存储单元,地址为 0000H~ 0FFFH。
片外最多可扩至 64KB的 ROM,地址为 1000H~ FFFFH。
片内外 ROM统一编址。
当 EA引脚接 高电平 时,CPU将首先访问片内 ROM,当指令地址超过 0FFFH时,自动转向片外 ROM取指令。
当 EA引脚接 低电平 时,CPU只访问片外 ROM。片外 ROM的地址从 0000H开始编址。对于 8031,由于其片内无 ROM,所以使用时必须使 EA接低电平,以便能够从片外扩展的 EPROM中取指令。
http://www.wenyuan.com.cn/webnew/
2.2.1 程序存储器 ROM
在程序存储器中,以下 6个单元具有特殊含义。
0000H:单片机复位后的程序入口地址。
0003H,外部中断 0的中断服务程序入口地址。
000BH,定时器 0的中断服务程序入口地址。
0013H,外部中断 1的中断服务程序入口地址。
001BH,定时器 1的中断服务程序入口地址。
0023H,串行口 的中断服务程序入口地址。
http://www.wenyuan.com.cn/webnew/
2.2.2 数据存储器 RAM
数据存储器 RAM主要用来存放运算的 中间结果 和 数据 等。
在 8051中,其存储空间分布如下:
片外 RAM最多可扩至 64KB存储单元,地址范围为 0000H~
FFFFH。
片内 RAM为 256B存储单元,地址范围为 00H~ FFH。
片内 RAM地址空间共有 256B,又分为两个部分:
低 128B(00H~ 7FH)为 真正的 RAM区,如下图所示 。
高 128B(80H~ FFH)为 特殊功能寄存器 (SFR)区,如下表所示 。
http://www.wenyuan.com.cn/webnew/
片内
RAM
地址空间
7FH
30H
2FH 7F 7E 7D 7C 7B 7A 79 78
2EH 77 76 75 74 73 72 71 70
2DH 6F 6E 6D 6C 6B 6A 69 68
2CH 67 66 65 64 63 62 61 60
2BH 5F 5E 5D 5C 5B 5A 59 58
2AH 57 56 55 54 53 52 51 50
29H 4F 4E 4D 4C 4B 4A 49 48
28H 47 46 45 44 43 42 41 40
27H 3F 3E 3D 3C 3B 3A 39 38
26H 37 36 35 34 33 32 31 30
25H 2F 2E 2D 2C 2B 2A 29 28
24H 27 26 25 24 23 22 21 20
23H 1F 1E 1D 1C 1B 1A 19 18
22H 17 16 15 14 13 12 11 10
21H 0F 0E 0D 0C 0B 0A 09 08
20H 07 06 05 04 03 02 01 00
1FH
18H
第 3组工作寄存器 (R0~ R7)
17H
10H
第 2组工作寄存器 (R0~ R7)
0FH
08H
第 1组工作寄存器 (R0~ R7)
07H
00H
第 0组工作寄存器 (R0~ R7)
工作寄存器区位寻址区用户 RAM区
(堆栈,数据缓冲区 )
http://www.wenyuan.com.cn/webnew/
SFR
中位地址分布表
SFR MSB 位地址 /位定义 LSB 字节地址
B
F7 F6 F5 F4 F3 F2 F1 F0
F0H
ACC
E7 E6 E5 E4 E3 E2 E1 E0
E0H
PSW D7 D6 D5 D4 D3 D2 D1 D0 D0H
CY AC F0 RS1 RS0 OV - P
IP BF BE BD BC BB BA B9 B8 B8H
- - - PS PT1 PX1 PT0 PX0
P3 B7 B6 B5 B4 B3 B2 B1 B0 B0H
P3.7 P3.6 P3.5 P3.4 P3.3 P3.2 P3.1 P3.0
IE AF AE AD AC AB AA A9 A8 A8H
EA - - ES ET1 EX1 ET0 EX0
P2 A7 A6 A5 A4 A3 A2 A1 A0 A0H
P2.7 P2.6 P2.5 P2.4 P2.3 P2.2 P2.1 P2.0
SCON 9F 9E 9D 9C 9B 9A 99 98 98H
SM0 SM1 SM2 REN TB8 RB8 TI RI
P1 97 96 95 94 93 92 91 90 90H
P1.7 P1.6 P1.5 P1.4 P1.3 P1.2 P1.1 P1.0
TCON 8F 8E 8D 8C 8B 8A 89 88 88H
TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0
P0
87 86 85 84 83 82 81 80
80HP0.7 P0.6 P0.5 P0.4 P0.3 P0.2 P0.1 P0.0
http://www.wenyuan.com.cn/webnew/
2.2.3 数据存储器数据读写应用实例
【 程序 1】 工作寄存器的读写地址 机器码 程 序 注 释 检查结果
ORG 0000H ;程序从 ROM区 0000H处开始存放
0000H 78 11 MOV R0,#11H ;将立即数 11H送入寄存器 R0中 ( H)=11H
0002H 79 22 MOV R1,#22H ;将立即数 22H送入寄存器 R1中 ( H)=22H
0004H 7A 33 MOV R2,#33H ;将立即数 33H送入寄存器 R2中 ( H)=33H
0006H 7B 44 MOV R3,#44H ;将立即数 44H送入寄存器 R3中 ( H)=44H
0008H 75 D0 10 MOV PSW,#10H ;使当前工作寄存器组为第 2组 ( H)=10H
000BH 78 55 MOV R0,#55H ;将立即数 55H送入寄存器 R0中 ( H)=55H
000DH 79 66 MOV R1,#66H ;将立即数 66H送入寄存器 R1中 ( H)=66H
000FH 7A 77 MOV R2,#77H ;将立即数 77H送入寄存器 R2中 ( H)=77H
0011H 7B 88 MOV R3,#88H ;将立即数 88H送入寄存器 R3中 ( H)=88H
END ;程序结束
http://www.wenyuan.com.cn/webnew/
【 程序 2】 位寻址区的读写地址 机器码 程 序 注 释 检查结果
ORG 0100H ;程序从 ROM区 0100H处开始存放
0100H D2 00 SETB 00H ;将位地址为 00H的位置 1 ( H)=1
0102H D2 01 SETB 01H ;将位地址为 01H的位置 1 ( H)=1
0104H D2 02 SETB 02H ;将位地址为 02H的位置 1 ( H)=1
0106H D2 03 SETB 03H ;将位地址为 03H的位置 1 ( H)=1
0108H C2 04 CLR 04H ;将位地址为 04H的位清 0 ( H)=0
010AH C2 05 CLR 05H ;将位地址为 05H的位清 0 ( H)=0
010CH C2 06 CLR 06H ;将位地址为 06H的位清 0 ( H)=0
010EH C2 07 CLR 07H ;将位地址为 07H的位清 0 ( H)=0
(20H )=
0110H C2 90 CLR 90H ;将 P1.0位清 0 ( H)=0
0112H D2 90 SETB 90H ;将 P1.0位置 1 ( H)=1
0114H C2 91 CLR 91H ;将 P1.1位清 0 ( H)=0
0116H D2 91 SETB 91H ;将 P1.1位置 1 ( H)=1
END ;程序结束
http://www.wenyuan.com.cn/webnew/
【 程序 3】 一般 RAM区和特殊功能寄存器区的读和写地址 机器码 程 序 注 释 检查结果
ORG 0200H ;程序从 ROM区 0200H存放
0200H 75 30 99 MOV 30H,#99H ;将立即数 99H送到 30H单元中 (30H)=(PC)=
0203H 75 45 AA MOV 45H,#0AAH ;将立即数 AAH送到 45H单元中 (45H)=(PC)=
0206H 75 81 50 MOV SP,#50H ;将立即数 50H送到堆栈指针SP中 ( H)=50H(PC)=
0209H 74 60 MOV A,#60H ;将立即数 60H送到累加器 A中 ( H)=60H(PC)=
020BH 75 90 55 MOV P1,#55H ;将立即数 55H送到 P1口中 ( H)=55H(PC)=
020EH 75 D0 90 MOV PSW,#90H;将立即数 90H送到 PSW中,
使当前工作寄存器组为第
2组且将 CY位置 1
( H)=90H
(PC)=
0211H 90 12 34 MOV DPTR,#1234H ;将立即数 1234H送到数据指针 DPTR中 ( H)=12H( H)=34H
END ;程序结束
http://www.wenyuan.com.cn/webnew/
2.3 单片机的输入 /输出端口
2.3.1 输入 /输出端口结构
2.3.2 输入 /输出端口负载能力
2.3.3 P1口输出功能应用实例
2.3.4 P3口输入功能应用实例
http://www.wenyuan.com.cn/webnew/
2.3.1 输入 /输出端口结构
8051单片机有 4个 8位并行 I/O端口,称为 P0,P1,P2和 P3口,
每个端口都各有 8条 I/O口线,每条 I/O口线都能独立地用作输入或输出。
在无片外扩展存储器的系统中,这四个 I/O口都可以作为 通用 I/O口 使用。
在有片外扩展存储器的系统中,P2口送出 高 8位地址,P0口分时送出 低 8位地址 和 8位数据 。
http://www.wenyuan.com.cn/webnew/
1,P0口
P0口某一位的结构图如下图所示,它由一个 输出锁存器,两个 三态输入缓冲器,一个 转换开关 MUX,一个 输出驱动电路
(T1和 T2)和一个 与门 及一个 非门 组成 。
1
D
CP
Q
Q MU X
& T
1
T 2
锁存器地址 / 数据 控制信号 C V CC
内部总线写锁存器读锁存器读引脚
P0,X 引脚
1
2
http://www.wenyuan.com.cn/webnew/
(1) P0口用作通用 I/O口
MUX与锁存器的 Q端接通,与门输出为 0,T1截止,输出驱动级就工作在需外接上拉电阻的漏极开路方式。
① P0口用作输出口
CPU在执行输出指令时,内部数据总线的数据在,写锁存器,信号的作用下,
由 D端进入锁存器,取反后出现在 Q端,再经过 T2反向,则 P0.X引脚上的数据就是内部总线的数据。由于 T2为漏极开路输出,故此时必须外接上拉电阻。
② P0口用作输入口数据可以读自端口的锁存器,也可以读自端口的引脚,这要看输入操作执行的是,读锁存器,指令还是,读引脚,指令。
方式 1:读引脚 。 CPU在执行,MOV”类输入指令时 (如,MOV A,P0),内部产生的操作信号是,读引脚,。 P0.X引脚上的数据经过缓冲器 2读入到内部总线。注意,在读引脚时,必须先向电路中的锁存器 写入 1,使 T2截止,P0.X引脚处于悬浮状态,可作为高阻抗输入。
方式 2:读锁存器 。 CPU在执行,读 -改 -写,类输入指令时 (如,ANL P0,A ),
内部产生的操作信号是,读锁存器,,锁存器中的数据经过缓冲器 1送到内部总线,然后与 A的内容进行逻辑,与,,结果送回 P0的端口锁存器并出现在引脚。
除了 MOV类指令外,其他的读口操作指令都属于这种情况。
http://www.wenyuan.com.cn/webnew/
(2) P0口用作地址 /数据总线
MUX将地址 /数据线与 T2接通,同时与门输出有效 。
若地址 /数据线为 1,则 T1导通,T2截止,P0口输出为 1;反之 T1截止,T2导通,P0口输出为 0。
当数据从 P0口输入时,读引脚使三态缓冲器 2打开,端口上的数据经缓冲器 2送到内部总线 。
http://www.wenyuan.com.cn/webnew/
( 3) P0口小结
① P0口既可作地址 /数据总线使用,也可作通用 I/O口使用。
当 P0口作地址 /数据总线使用时,就不能再作通用 I/O口使用了。
② P0口作输出口使用时,输出级属漏极开路,必须外接上拉电阻,才有高电平输出。
③ P0口作输入口读引脚时,应先向锁存器写 1,使 T2截止,
不影响输入电平。
http://www.wenyuan.com.cn/webnew/
2,P1口
P1口是唯一的单功能口,仅能作为通用 I/O口使用。由于在其输出端接有上拉电阻,故可以直接输出而无需外接上拉电阻。
同 P0口一样,当作输入口时,必须先向锁存器写,1”,使场效应管 T截止。
D
CP
Q
Q
T
锁存器
V
CC
内部总线写锁存器读锁存器读引脚
P 1,X 引脚
1
2
http://www.wenyuan.com.cn/webnew/
3,P2口
图中的控制信号 C决定转换开关 MUX的位置:当 C=0时,MUX拨向下方,P0口为通用 I/O口;当控制信号 C=1时,MUX拨向上方,P0口作为地址总线使用 。
在实际应用中,P2口通常作为高 8位地址总线使用 。
D
CP
Q
Q
MUX
1 锁存器地址 控制信号 C
内部总线写锁存器读锁存器读引脚
T
V CC
P2,X 引脚
1
2
http://www.wenyuan.com.cn/webnew/
4,P3口
P3口用作通用 I/O口时,第二输出功能信号 W=1,P3口的每一位都可定义为输入或输出,其工作原理同 P1口类似。
在真正的应用电路中,P3口的第二功能显得更为重要 。
D
CP
Q
Q
&
锁存器第二输出功能内部总线写锁存器读锁存器读引脚
T
V
CC
P 3,X 引脚第二输入功能
1
2
W
3
http://www.wenyuan.com.cn/webnew/
P3口的第二功能
INT0
INT1
WR
RD
引脚 第二功能 功能说明
P3.0 RXD 串行口输入
P3.1 TXD 串行口输出
P3.2 外部中断 0输入
P3.3 外部中断 1输入
P3.4 T0 定时器 /计数器 0计数输入
P3.5 T1 定时器 /计数器 1计数输入
P3.6 片外 RAM写选通信号 (输出 )
P3.7 片外 RAM读选通信号 (输出 )
http://www.wenyuan.com.cn/webnew/
2.3.2 输入 /输出端口负载能力
P0口的输出级与 P1~ P3口的输出级在结构上不同,其输出级无上拉电阻,因此它们的负载能力和接口要求也不相同。
P0口 的每一位能驱动 8个 LSTTL负载。在作为通用 I/O口使用时,输出驱动电路是开漏的,所以,驱动集电极开路 (OC门 )
电路或漏级开路电路需 外接上拉电阻 。当作为地址 /数据总线使用时 (T1可以提供上拉电平 ),口线不是开漏的,无需外接上拉电阻。
P1~ P3口 的每一位能驱动 4个 LSTTL负载。它们的输出驱动电路有上拉电阻,所以可以方便地由集电极开路 (OC门 )电路或漏级开路电路所驱动,而无需外接上拉电阻。
对于 80C51单片机 (CHMOS),端口只能提供几毫安的输出电流,
故当作输出口去驱动一个普通晶体管的基极时,应在端口与晶体管基极间 串联一个电阻,以限制高电平输出时的电流。
http://www.wenyuan.com.cn/webnew/
2.3.3 P1口输出功能应用实例
【 例 1】 P1口做输出口,控制八只发光二极管循环点亮 (P1口输出低电平时发光二极管被点亮 )。
解,由于发光二极管低电平点亮,所以,需要哪个发光二极管点亮,只需在相应的端口输出逻辑 0即可。由于每个发光二极管点亮后要持续一段时间才熄灭,再使下个发光二极管点亮,因此需要编写延时子程序,供主程序反复调用。
本例中,延时子程序采用指令循环来实现。
地址 机器码 程序 注释
ORG 0000H
0000H 02 10 00 LJMP MAIN
ORG 1000H
1000H 74 FE MAIN,MOV A,#0FEH
1002H F5 90 LOOP,MOV P1,A
1004H 12 10 0A LCALL DELAY ;延时
1007H 23 RL A ;左移位
1008H 80 F8 SJMP LOOP ;循环
100AH 7F FF DELAY,MOV R7,#0FFH ;延时子程序
100CH 7E FA L1,MOV R6,#0FAH
100EH DE FE DJNZ R6,$
1010H DF FA DJNZ R7,L1
1012H 22 RET
END
http://www.wenyuan.com.cn/webnew/
【 例 2】 利用 P1.0输出高低电平,控制继电器的开合,以实现对外部装置 (如灯 L1和 L2)的控制。
解:将单片机的 P1.0接继电器控制端 JIN,继电器的 JZ通过 K1接地,常开触点 JK接 L1,常闭触点 JB接 L2。编制程序,使 P1.0
电平变化,高电平时继电器吸合,常开触点闭合,L1点亮,
L2熄灭;低电平时继电器不工作,常闭触点闭合,L2点亮,
L1熄灭。
8051
J
JZ JB JK
4001
9014
R2
3,3
3,6
R3
74L S04
J I N P1,0
K1 L1 L2
+ 5V
k?
k?
http://www.wenyuan.com.cn/webnew/
参考程序:
地址 机器码 程序 注释
ORG 0000H
0000H 02 20 00 LJMP MAIN
ORG 2000H
2000H C2 90 MAIN,CLR P1.0 ;P1.0送低电平
2002H 12 20 0C LCALL DELAY ;延时
2005H D2 90 SETB P1.0 ;P1.0送高电平
2007H 12 20 0C LCALL DELAY ;延时
200AH 80 F4 SJMP MAIN ;循环
200CH 7F 06 DELAY,MOV R7,#06H ;延时子程序
200EH 7E FF L1,MOV R6,#0FFH
2010H 7D FA L2,MOV R5,#0FAH
2012H DD FE DJNZ R5,$
2014H DE FA DJNZ R6,L2
2016H DF F6 DJNZ R7,L1
2018H 22 RET
END
http://www.wenyuan.com.cn/webnew/
2.3.4 P3口输入功能应用实例
【 例 3】 P3口的 P3.0连接一个开关,作为输入端; P1口的
P1.0~ P1.7连接八只发光二极管,作为输出端 。 要求用 P3.0
来控制 P1输出的循环灯,即当 P3.0输出高电平时,控制 P1口的发光二极管左循环点亮;当 P3.0输出低电平时,控制 P1口的发光二极管右循环点亮 (P1口输出低电平时发光二极管被点亮 )。
解:在主程序中要对 P3.0的状态进行判断 。
如果 P3.0为高电平,则使用循环左移指令 。
如果 P3.0为低电平,则使用循环右移指令 。
延时子程序同例 1。
http://www.wenyuan.com.cn/webnew/
参考程序:
地址 机器码 程序 注释
ORG 0000H
0000H 02 30 00 LJMP MAIN
ORG 3000H
3000H 74 FE MAIN,MOV A,#0FEH
3002H F5 90 LOOP,MOV P1,A
3004H 12 30 10 LCALL DELAY ;延时
3007H 20 B0 03 JB P3.0,L1
300AH 03 RR A ;右移位
300BH 80 F5 SJMP LOOP ;循环
300DH 23 L1,RL A ;左移位
300EH 80 F2 SJMP LOOP ;循环
3010H 7F FF DELAY,MOV R7,#0FFH ;延时子程序
3012H 7E FA L2,MOV R6,#0FAH
3014H DE FE DJNZ R6,$
3016H DF FA DJNZ R7,L2
3018H 22 RET
END
http://www.wenyuan.com.cn/webnew/
2.4 时钟电路
2.4.1 CPU时序
2.4.2 时钟电路
http://www.wenyuan.com.cn/webnew/
2.4.1 CPU时序
CPU时序就是 CPU在执行指令时所需控制信号的时间顺序 。
单片机的时序定时单位从小到大依次为,时钟周期,状态周期,机器周期 和 指令周期 。
MCS-51单片机共有 111条指令,按照指令字节数和机器周期数可分为六类,即单字节 单周期 指令,单字节 双周期 指令,
单字节 四周期 指令,双字节单周期指令,双字节双周期指令和三字节双周期指令 。
http://www.wenyuan.com.cn/webnew/
典型指令的取指、执行时序
S1 S2 S3 S4 S5 S6
S1 S2 S3 S4 S5 S6 S1 S2 S3 S4 S5 S6
S1 S2 S3 S4 S5 S6 S1 S2 S3 S4 S5 S6
S1 S2 S3 S4 S5 S6
读操作码 再读下一个操作码读下一个操作码 ( 丢弃 )
读操作码读第二字节读下一个操作码读下一个操作码 ( 丢弃 )
再读下一个操作码读下一个操作码 ( 丢弃 )
读操作码不取指无 A L E
地址 数据访问外部存储器
(a) 单字节单周期指令,如 I N C A
(b ) 双字节单周期指令,如 A D D A,# d at a
(c) 单字节双周期指令,如 I N C D PT R
( d ) 单字节双周期指令
S1 S2 S3 S4 S5 S6
P1 P2 P1 P2 P1 P2 P1 P2 P1 P2 P1 P2
S1 S2 S3 S4 S5 S6
P1 P2 P1 P2 P1 P2 P1 P2 P1 P2 P1 P2
读操作码不取指再读下一个操作码如 MO V X 类指令
A L E
O SC
一个机器周期 一个机器周期
时钟周期 为单片机提供定时信号的振荡源的周期或外部输入时钟信号的周期,也称为 振荡周期 。
状态周期 (或状态
S)是振荡周期的两倍,它分为 P1
节拍和 P2节拍 。
一条指令的执行过程分作几个基本操作,完成一个基本操作所需的时间称作 机器周期 。
执行一条指令所需的时间称为 指令周期 。
http://www.wenyuan.com.cn/webnew/
2.4.2 时钟电路
8051单片机的时钟信号通常由两种方式产生:一是 内部振荡方式,二是 外部时钟方式 。
(a) 内部方式时钟电路 (b) 外部方式时钟电路晶振
C 1
C 2
X T A L 1
X T A L 2
8051
TTL
X T A L 2
X T A L 1
8051
V CC
外部时钟信号
V SS
http://www.wenyuan.com.cn/webnew/
2.4.2 时钟电路
1,内部振荡方式在 8051单片机内部有一个高增益的 反相放大器,用于构成振荡器,反相放大器的输入端为 XTAL1,输出端为 XTAL2。
内部振荡方式是在 XTAL1和 XTAL2引脚两端跨接 石英晶体振荡器 和两个 电容 构成稳定的自激振荡电路。
电容 C1和 C2通常取 30pF,对振荡频率有微调作用。晶振频率范围是 1.2MHz~ 12MHz。
2,外部时钟方式外部时钟方式是把外部已有的时钟信号引入到单片机内。
8051:外部时钟由 XTAL2输入,直接送入内部时钟电路,
XTAL1接地;
80C51:外部时钟由 XTAL1输入,XTAL2悬空。
外部时钟信号为高电平持续时间要大于 20ns,且频率低于
12MHz的方波。
http://www.wenyuan.com.cn/webnew/
2.5 复 位 电 路
2.5.1 复位功能
2.5.2 复位电路
http://www.wenyuan.com.cn/webnew/
2.5.1 复位功能
复位是单片机的初始化操作。
复位功能是把 PC初始化为 0000H,使 CPU从 0000H单元开始执行程序;复位操作同时还对其他一些 寄存器 有影响,但 内部 RAM的数据是不变的。
除了进入系统的正常初始化之外,当由于 程序运行出错 或操作错误 使系统处于死锁状态时,为摆脱困境,也需要按复位键重新启动。
http://www.wenyuan.com.cn/webnew/
部分特殊功能寄存器的复位状态说明:表中符号 × 状为随机态 。
寄存器 复位状态 寄存器 复位状态
PC 0000H ACC 00H
B 00H PSW 00H
SP 07H DPTR 0000H
P0~ P3 0FFH IP ××× 00000B
IE 0×× 00000B TMOD 00H
TCON 00H TL0,TL1 00H
TH0,TH1 00H SCON 00H
SBUF 不定 PCON 0××× 0000B
http://www.wenyuan.com.cn/webnew/
2.5.2 复位电路
单片机的复位引脚 RST出现 2个机器周期 以上的高电平时,
单片机就执行复位操作。
常见的复位操作有上电自动复位和按键手动复位两种方式 。
上电自动复位 是通过外部复位电路的电容充电来实现的。
按键手动复位 是通过复位端经电阻与电源 VCC接通而实现的,
它兼备上电复位功能。
(a) 上电自动复位 (b) 按键手动复位
RS T
8051
R
C
+5 V + RS T
8051
R
R1
C
+5 V +
http://www.wenyuan.com.cn/webnew/
2.6 常用单片机功能简介
2.6.1 Atmel公司的 AT89系列单片机
2.6.2 Motorola公司 M68HC08系列单片机
2.6.3 其他系列单片机
http://www.wenyuan.com.cn/webnew/
2.6.1 Atmel公司的 AT89系列单片机
AT89系列单片机不但具有一般 MCS-51单片机的所有特性,
而且其 Flash程序存储器可以用电擦除方式瞬间擦除、改写,
写入单片机内的程序还可以进行 加密 。
Atmel公司的 89系列单片机主要有 AT89C51,AT89C2051和
AT89C1051等型号。 AT89C2051和 AT89C1051算是
AT89C51的 精简版 。
AT89C51最为实用,它不但和 8051指令、管脚完全兼容,
而且其片内含有 4KB Flash型程序存储器,性价比远高于
8751。
AT89C2051去掉了 P0口和 P2口,内部的 Flash程序存储器也只有 2K,封装形式也由 40脚改为 20脚 。
AT89C1051在 AT89C2051的基础上,再次精简掉了串口等功能,程序存储器减小到 1KB。
http://www.wenyuan.com.cn/webnew/
2.6.2 Motorola公司 M68HC08系列单片机
M68HC08系列单片机,具有速度快、功能强、价格低、功耗低、指令系统丰富等特点,内部程序存储器采用成熟的
Flash存储器技术。
编程 速度 快、可靠性高 。
单一电源 电压 供电 ——片内集成电荷泵,可由单一工作电压在片内产生编程电压。
支持 在线 编程 ——允许单片机内部运行的程序去改写
Flash存储器内容,这样可代替外部电可擦除存储器芯片,
减少外围部件,增加嵌入式系统开发的方便性。
高频噪声低,抗干扰 能力强 。
http://www.wenyuan.com.cn/webnew/
2.6.3 其他系列单片机
Atmel公司的 AVR单片机,是增强型 RISC(精简指令集 )、内载 Flash的单片机。由于采用增强的 RISC结构,使其具有高速处理能力,在一个时钟周期内可执行复杂的指令。 AVR单片机工作电压为 2.7~6.0V,可以实现耗电最优化。
MicroChip公司的主要产品是 PIC16C系列和 PIC17C系列 8位单片机,CPU采用 RISC结构,分别仅有 33,35,58条指令,
采用 Harvard双总线结构,运行速度快,工作电压低,低功耗,有较大的输入 /输出 直接驱动能力,价格低,能一次性编程,体积小,适用于用量大、档次低、价格敏感的产品。
http://www.wenyuan.com.cn/webnew/
本章小结
Intel公司 MCS-51系列单片机是我国目前应用最为广泛的单片机。
8051/80C51是整个 MCS-51系列单片机的核心,该系列其他型号的单片机都是在这一内核的基础上发展起来的。
8051单片机内部结构包括中央处理器、程序存储器、数据存储器、并行 I/O接口、定时器 /计数器、时钟电路、中断系统、串行口。 中央处理器是单片机的核心部件,是计算机的控制指挥中心。
8051的程序存储器和数据存储器是各自独立的,各有各的寻址系统、
控制信号和功能。在物理结构上可分为片内数据存储器、片内程序存储器、片外数据存储器和片外程序存储器 4个存储空间。
片内 RAM共 256B,分为两大功能区,低 128B为真正的 RAM区 ; 高 128B为特殊功能寄存器 (SFR)区 。低 128B RAM又分为工作寄存器区、位寻址区和用户 RAM区。
http://www.wenyuan.com.cn/webnew/
本章小结
8051单片机有 P0,P1,P2和 P3 4个 8位并行 I/O端口,每个端口各有 8条
I/O口线,每条 I/O口线都能独立地用作输入或输出 。各端口的功能不同,且结构上也有差异,通常 P2口作为高 8位地址线,P0口分时复用作为低 8位地址线和 8位数据线,P3口使用第二功能,P1口只能作为通用
I/O口使用 。 P0口的输出级与 P1~ P3口的输出级在结构上不同,其输出级无上拉电阻,因此它们的负载能力和接口要求也不相同。
时序就是 CPU在执行指令时所需控制信号的时间顺序,其单位有 振荡周期,时钟周期,机器周期 和 指令周期 。时钟信号产生方式有内部振荡方式和外部时钟方式两种。
复位是单片机的初始化操作,复位操作对 PC和部分特殊功能寄存器有影响,但对内部 RAM没有影响。
http://www.wenyuan.com.cn/webnew/
习 题
1,请结合 MCS-51系列单片机的结构框图,阐明其组成 。
2,综述 MCS-51系列单片机各引脚的作用,并试分类 。
3,程序计数器的符号是什么? MCS-51系列单片机的程序计数器有几位?
4,何谓程序状态字? 它的符号是什么? 它各位的含义是什么?
5,何谓振荡周期,时钟周期,机器周期和指令周期? 针对 MCS-5l系列单片机,
如采用 12MHz晶振,它们的周期各是什么值?
6,引脚的作用是什么? 在下列三种情况下,引脚各应接何种电平?
(1) 只有片内 ROM;
(2) 有片内 ROM和片外 ROM;
(3) 有片内 ROM和片外 ROM,片外 ROM所存为调试程序 。
7,MCS-51系列单片机存储器的地址空间是如何划分的? 各地址空间的地址范围和容量如何?
8,MCS-5l怎样实现上电自动复位与按键手动复位? 并请综述各专用寄存器复位后的状态 。
http://www.wenyuan.com.cn/webnew/
Q & A?
Thanks!