第 2 章 mcs-51 单片机的结构与原理

77
第 2 第 MCS-51 第第第第第第第 第第

Upload: curran-horn

Post on 03-Jan-2016

81 views

Category:

Documents


13 download

DESCRIPTION

第 2 章 MCS-51 单片机的结构与原理. 2.1 MCS-51 单片机的结构 2.2 MCS - 51 单片机引脚及功能 2.3 8051 单片机存储器 2.4 CPU 时序 2.5 复位及复位电路 2.6 输入 / 输出端口结构. 第 2 章主要内容. 退出. 2.1 MCS-51 单片机的结构. 一个 8 位的微处理器( CPU ) 片内数据存储器 RAM ( 128B/256B ) 片内程序存储器 ROM/EPROM(4KB/8KB) 四个 8 位并行 I/O 接口 P0~P3, 每个口即可做输入也可做输出 - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 第 2 章  MCS-51 单片机的结构与原理

第 2 章 MCS-51 单片机的结构与原理

Page 2: 第 2 章  MCS-51 单片机的结构与原理

第 2章主要内容2.1 MCS-51单片机的结构2.2 MCS-51单片机引脚及功能2.3 8051 单片机存储器2.4 CPU 时序2.5 复位及复位电路2.6 输入 /输出端口结构

退出退出

Page 3: 第 2 章  MCS-51 单片机的结构与原理

2.1 MCS-51 单片机的结构

Page 4: 第 2 章  MCS-51 单片机的结构与原理

2.1.1 MCS-51 单片机主要组成一个 8 位的微处理器( CPU )片内数据存储器 RAM ( 128B/256B )片内程序存储器 ROM/EPROM(4KB/8KB)四个 8 位并行 I/O 接口 P0~P3, 每个口即可做输入也可做输出2 个定时器 / 计数器五个中断源的中断控制系统一个全双工 UART( 通用异步接收发送器 ) 的串行 I/O 口片内振荡器和时钟产生电路 , 但石英晶体和微调电容需要外接 .

Page 5: 第 2 章  MCS-51 单片机的结构与原理

MCS-51 系列单片机性能表型号 ROM RAM I O口 定时器 中断 串口 模拟 WDT LCD 引脚

8031 无 128 32 2 16个 位 5 USART 无 无 无 40

8051 4K ROM 128 32 2 16个 位 5 USART 无 无 无 40

8751 4K EPROM 128 32 2 16个 位 5 USART 无 无 无 40

89C51 4K FLASH 128 32 2 16个 位 5 USART 无 无 无 40

8032 无 256 32 3 16个 位 6 USART 无 无 无 40

8052 8K ROM 256 32 3 16个 位 6 USART 无 无 无 40

8752 8K EPROM 256 32 3 16个 位 6 USART 无 无 无 40

89C52 8K FLASH 256 32 3 16个 位 6 USART 无 无 无 40

89C2051 2K FLASH 128 15 2 16个 位 5 USART 比较 无 无 20

89C1051 1K FLASH 128 15 2 16个 位 5 USART 无 无 无 20

型号带“ C” 表示所用的是 CMOS 工艺,具有低功耗的特点。如 8051 功耗为 630mW , 80C51 功耗只有 120mW ,用于便携式产品中。

Page 6: 第 2 章  MCS-51 单片机的结构与原理

MCS-51 单片机典型芯片的性能比较 MCS-51 系列单片机有多种产品,典型的为 8051/8751/8031 ,它们的外部引脚和指令系统完全兼容,只是内部程序存储器的形式不同。

8051: 片内 4KBROM, 程序在制作芯片时已烧好,适于低成本的大批量生产。

8751: 片内 4KBEPROM, 价格较贵,适于开发样机。

8031: 片内无 ROM ,需扩展外部程序存储器。

Page 7: 第 2 章  MCS-51 单片机的结构与原理

2.1.2 MCS-51 单片机内部结构

Page 8: 第 2 章  MCS-51 单片机的结构与原理

中央处理单元 (CPU)CPUCPU 包括运算器和控制器二大部分:包括运算器和控制器二大部分:

1 1 、 、 运算器运算器 运算器包括算术/逻辑部件运算器包括算术/逻辑部件 (ALU)(ALU) 、累加器、累加器 AA 、、

暂存寄存器、寄存器暂存寄存器、寄存器 BB 、程序状态寄存器(、程序状态寄存器( PSPSWW ),十进制调整电路等。运算器主要用于实现),十进制调整电路等。运算器主要用于实现算术算术 // 逻辑运算及位操作运算。下面介绍运算器的逻辑运算及位操作运算。下面介绍运算器的各组成部分。各组成部分。

aa 、算术/逻辑部件、算术/逻辑部件 ALUALU bb 、、累加器累加器 AA cc 、、寄存器寄存器 BB

dd 、、程序状态字寄存器程序状态字寄存器 PSWPSW

Page 9: 第 2 章  MCS-51 单片机的结构与原理

2 、控制器 控制器包括程序计数器 PC 、指令寄存

器 IR 、指令译码器 ID 、振荡器及定时电路等。

a 、程序计数器 PC

b 、指令寄存器 IR 及指令译码器 ID

c 、振荡器及定时电路

Page 10: 第 2 章  MCS-51 单片机的结构与原理

存储器程序存储器( ROM ) 8051 及 8751 的片内程序存储器容量为 4KB ,地

址从 0000H 开始,存放程序和表格常数。

数据存储器( RAM ) 8051/8751/8031 片内数据寄存器为 128B,

地址为 00H~7FH, 用于存放运算的中间结果、数据暂存以及数据缓冲等。

8051 内部还有 SP 、 DPTR 、 PCON…IE,IP 等特殊寄存器 , 地址为 80H~FFH 。

Page 11: 第 2 章  MCS-51 单片机的结构与原理

I/O 接口

8051 由四个 8 位并行接口 , 即 P0~P3 ,它们都是双向端口 , 每个端口有 8 条 I/O 线 ,均可输入 / 输出。 P0~P3 四个锁存器同 RAM 统一编址 , 可以把 I/O 口当作一般特殊寄存器来寻址。

Page 12: 第 2 章  MCS-51 单片机的结构与原理

2.2 MCS-51 单片机引脚及其功能

MCS-51MCS-51 单片机的引脚及逻辑符号单片机的引脚及逻辑符号图图

Page 13: 第 2 章  MCS-51 单片机的结构与原理

MCS-51 单片机芯片外形图

AT89C51

ATMELFLASH 型 87C51

EPROM 型

MCS-51MCS-51 单片机有两种封装形式:单片机有两种封装形式: a. a. 4040 脚的双列直插脚的双列直插 DIPDIP 封装;封装;

b. b. 4444 脚的脚的 PLCCPLCC 。。

( DIP 封装)

Page 14: 第 2 章  MCS-51 单片机的结构与原理

1. 电源引脚 Vcc 和 Vss2. 时钟电路引脚 XTAL1 和 XTAL2 XTAL2: 接外部晶体和微调电容的一端 , 在 8

051 片内它是振荡电路反相放大的输出端 , 振荡电路的频率就是晶体固有频率 . 若需采用外部时钟电路时该引脚输入外部时钟脉冲。

要检查振荡电路是否正常 , 可以示波器查看 XTAL2 是否有脉冲输出。

XTAL1: 接外部晶体和微调电容的另一端 , 在片内是振荡电路反相放大器输入端 , 在采用外部时钟输入时 , 该引脚必须接地。

引脚功能

Page 15: 第 2 章  MCS-51 单片机的结构与原理

3. 控制信号引脚 RST,ALE ,

PSEN, EA

RST/VPD :RST 复位信号输入端 , 高电平有效 .

当此输入端保持两个机器周期 (24 个时钟振荡周期 ) 的高电平时 , 就可以完成复位操作。

RST 引脚的第二功能是 VPD 即备用电源的输入端。当主电源 Vcc 发生故障,降低到低电平规定值时,将+ 5V 电源自动接到 RST 端,为 RAM 提供备用电源,以保证存储在 RAM 中的信息不丢失。

Page 16: 第 2 章  MCS-51 单片机的结构与原理

ALE/PROG

(Address Latch Enable/Programming): 地址锁存允许

当 8051 上电正常工作后 ,ALE 引脚不断向外输出正脉冲信号 , 此频率为振荡周期 fosc 的 1/6 。(该信号可用于判断 8051是否正在正常工作?) CPU 访问外部存储器时 ,ALE 输出信号作为锁存低 8 位地址的控制信号 , 平时不访问片外存储器时 ,ALE 端以振荡频率的 1/6 固定输出。

第二功能 PROG: 对片内 4Kb EPROM 的 8751 编程写入时的编程脉冲输入端。

Page 17: 第 2 章  MCS-51 单片机的结构与原理

(Program Store Enable): 程序存储器允许输出信号端

在访问外部程序存储器时 , 此端定时输出负脉冲作为读片外存储器的选通信号 , 此引脚接 EPROM 的 OE 端 , 有效 , 即允许读EPROM/ROM 中的指令码。

PSEN

PSEN

Page 18: 第 2 章  MCS-51 单片机的结构与原理

/Vpp(ENABLE ADDRESS/VOLTAGE PULSE OF PROGRAMMING): 外部程序存储器地址允许输入端 / 固化编程电源输入端。

接高电平时 ,CPU 先访问片内 EPROM/ROM, 并执行内部程序存储器中的指令 , 当 PC( 程序计数器 ) 的值超过 0FFFH 时 , 将自动转去执行片外程序存储器内的程序。

接低电平时 ,CPU 只访问片外 EPROM/ROM, 不管片内是否有程序存储器 , 对无片内 ROM 的 8031 或 8032, 需外扩 EPROM, 此端必须接地 , 如果有片内 ROM 的 , 外扩 EPROM 的也要将 EA 接地。

EA

EA

EA

Page 19: 第 2 章  MCS-51 单片机的结构与原理

4. 输入 / 输出端口 P0,P1,P2,P3 P0 口 (P0.0~P0.7): 是一个漏极开路的

8 位准双向 I/O 端口 , 作为漏极开路的输出端口 , 每位能驱动 8 个 LS 型 TTL 负载 .当 P0 口作为输入口使用时 , 应先向锁存器写入全 1, 此时 P0 口的全部引脚浮空 ,可作为高阻抗输入。

在 CPU访问片外存储器时 ,P0 口是分时提供 8 位地址和 8 位数据的复用总线。

Page 20: 第 2 章  MCS-51 单片机的结构与原理

P1 口 (P1.0~P1.7): 是一个带内部上拉电阻的 8 位准双向 I/O 端口 , 每位能驱动 4 个 LS 型 TTL 负载。

当 P1 口作为输入口使用时 , 应先向锁存器写入全 1, 此时 P1 口的全部引脚由内部上拉电阻拉成高电平。

Page 21: 第 2 章  MCS-51 单片机的结构与原理

P2 口 (P2.0~P2.7): 是一个内部带上拉电阻的 8 位准双向 I/O 端口 , 每位能驱动 4 个LS 型 TTL 负载。

在 CPU访问片外存储器时 ,P2 口输出高8 位地址。

P3 口 (P3.0~P3.7): 是一个内部带上拉电阻的 8 位准双向 I/O 端口 , 每位能驱动 4个 LS 型 TTL 负载。

P3 口与其他 I/O 端有很大区别 , 它除作为一般准双向 I/O 外 , 每个引脚还具有第二功能。

Page 22: 第 2 章  MCS-51 单片机的结构与原理

2.3 存储器配置一般微机 :通常只有一个地址空间 ,ROM 和 RAM可以随意安排在这一地址范围内不同的空间 ,CPU 访问存储器时 , 一个地址对应唯一的存储器单元 , 此类结构称为普林斯顿结构。

8051的存储器 :与典型微机不同,它把程序存储器和数据存储器截然分开,各有自己的寻址系统、控制信号和功能 , 这种程序存储器和数据存储器分开的结构称为哈佛结构。

Page 23: 第 2 章  MCS-51 单片机的结构与原理

物理上分 4 个存储器空间 内部程序存储器 外部程序存储器 内部数据存储器 外部数据存储器逻辑上分 3 个存储器空间 片内外统一的 64KB 程序存储器 256B (含 SFR 块)片内数据存储器 64KB 片外数据存储器

8051 存储器地址空间分配 在在 80518051 单片机的内部集成了单片机的内部集成了 4K4K 的程序存储器和的程序存储器和 256B256B的数据存储器,同时还可以使用片外的程序存储器和数据存储的数据存储器,同时还可以使用片外的程序存储器和数据存储器,其扩展能力都是器,其扩展能力都是 64K64K 。。

Page 24: 第 2 章  MCS-51 单片机的结构与原理

64k 程序存储器地址空间 , 片内外统一编址 0000h~ FFFFh

256B 片内数据存储器地址空间

指令用 MOVC

指令用 MOV

指令用 MOVX

64kb 片外数据存储器地址空间, 0000h~ FFFFh

Page 25: 第 2 章  MCS-51 单片机的结构与原理

64KB RAM( I/O

64KB ROM

FFFF

1000

0000

0FFF

FFFF

0000

4KB ROM

0FFF

0000

SFR

RAM00

807F

FF

片内存储器 片外扩展存储器

图 1 8051 存储器空间分布图

EA=1EA=0

注意:1 、访问片内 RAM20H 存储单元; MOV A,20H2 、访问片外 RAM 存储单元; MOV R0,#20h MOVX A,@R03 、尽管片内与片外的 RAM 单元的 00H-FFH 地址相重叠,但由于指令的不同不会发生地址混乱。

Page 26: 第 2 章  MCS-51 单片机的结构与原理

2.3.1 程序存储器地址空间

1.1. 程序存储器是存放编好的程序、常数和表格的,程序存储器是存放编好的程序、常数和表格的,只能读不能写。该空间有几个特殊单元,应用过程中应加以注意。

2.2. 在在 MCS-51MCS-51 单片机中,当引脚单片机中,当引脚 EA=1EA=1 时时,系统使用片内的,系统使用片内的ROMROM ;; EA=0EA=0 时时,系统使用片外的,系统使用片外的 ROMROM 。。

3.3. 无论是使用片内还是使用片外的无论是使用片内还是使用片外的 ROMROM (既 (既 EA=1EA=1或或 EA=EA=00 ),其起始地址都是从),其起始地址都是从 0000H0000H 单元开始单元开始, 0000H 是系统的启动地址。。

4. 0003H~002BH 是中断服务程序入口地址。

Page 27: 第 2 章  MCS-51 单片机的结构与原理

存储单元 保留地址

0000H~0002H 复位后初始化引导程序

0003H~000AH 外部中断 0

000BH~0012H 定时器 0溢出中断

0013H~001AH 外部中断 1

001BH~0022H 定时器 1溢出中断

0023H~002AH 串行端口中断

002BH 定时器 2溢出中断 (8052才有 )

8051 、 52 系列保留的存储单元

Page 28: 第 2 章  MCS-51 单片机的结构与原理

中断源 中断服务程序入口地址外部中断 0 0003H

定时器 / 计数器 0溢出

000BH

外部中断 1 0013H

定时器 / 计数器 1溢出

001BH

串行口 0023H

8051 中断矢量地址表

思考:如何合理安排程序存储器空间?

Page 29: 第 2 章  MCS-51 单片机的结构与原理

2.3.2 数据存储器地址空间片外数据存储器片内数据存储器

分为两个部分 : 1 、低 128B RAM(00H~7FH) 00H~1FH , 4 个通用工作寄

存器区 20H~2FH ,位地址空间 堆栈的设定

2 、高 128B特殊功能存储器 (SFR)

( 80H~FFH )

特殊功能寄存器SFR

片内通用数据

存储器

80H7FH

00H

FFH

片外数据存储器64KB

0000H

FFFFH

Page 30: 第 2 章  MCS-51 单片机的结构与原理

用户RAM区(堆栈、数据缓冲 )

位寻址区(位地址 00 ~ 7F)

第 0组工作寄存器R7

R0

第 3组工作寄存器

第 2 组工作寄存器

第 1 组工作寄存器

R7

R0

R7

R0

R7

R0

07H

00H

1FH

18H

17H

10H

0FH

08H

2FH

20H

7FH

30H

片内 RAM

SFR

98H SCON

82H DPL

81H SP

80H P0

8DH TH1

8CH TH0

8BH TL1

8AH TL0

89H TMOD

88H TCON

87H PCON

83H DPH

90H P1

IP B8H

PSW D0H

B F0H

FFH

ACC E0H

P3 B0H

IE A8H

P2 A0H

SBUF 99H

低 128Bytes RAM 高 128bytes RAM

Page 31: 第 2 章  MCS-51 单片机的结构与原理

RS1 RS0 R0 R1 R2 R3 R4 R5 R6 R7

0 0 0 00H 01H 02H 03H 04H 05H 06H 07H

1 0 1 08H 09H 0AH 0BH 0CH 0DH 0EH 0FH

2 1 0 10H 11H 12H 13H 14H 15H 16H 17H

3 1 1 18H 19H 1AH 1BH 1CH 1DH 1EH 1FH

R0~ R7寄存器分配

思考:工作寄存器为何分为四组,如何正确使用工

作寄存器?

Page 32: 第 2 章  MCS-51 单片机的结构与原理

片内 RAM ( 20H-2FH)中的位寻址区结构图7F 7E 7D 7C 7B 7A 79 78

77 76 75 74 73 72 71 70

6F 6E 6D 6C 6B 6A 69 68

67 66 65 64 63 62 61 60

5F 5E 5D 5C 5B 5A 59 58

57 56 55 54 53 52 51 50

4F 4E 4D 4C 4B 4A 49 48

47 46 45 44 43 42 41 40

3F 3E 3D 3C 3B 3A 39 38

37 26 25 24 23 22 21 20

2F 2E 2D 2C 2B 2A 29 28

27 26 25 24 23 22 21 20

1F 1E 1D 1C 1B 1A 19 18

17 16 15 14 13 12 11 10

0F 0E 0D 0C 0B 0A 09 08

07 06 05 04 03 02 01 00

2FH

20H

字节地址

位地址

Page 33: 第 2 章  MCS-51 单片机的结构与原理

位寻址区内的地址是位地址。共有 00-7FH (共 128 个位);

要区分字节地址和位地址这两个不同的地址概念:①从物理的角度:每一个字节地址内包含了 8 个位,既:

D7 , D6 , D5 , D4 , D3 , D2 , D1 , D0 (我们提到的 RAM 地址一般都是指字节地址)。

②从逻辑的角度:字节地址和位地址是靠不同类型的指令来 区分的。如,

MOV A , 20H ;将 RAM 的 20 单元内容送累加器 A ; MOV C , 20H ;将 RAM 位寻址区中 20H 位送 CY 中。 在这二个例子中,第一条指令为字节传送指令,既 20H 为字节地址;第二个例子中的指令为位操作指令, 20H 为位地址。有关详细内容将在后续章节中描述。

Page 34: 第 2 章  MCS-51 单片机的结构与原理

堆栈的设定 设置在内部数据存储器,理论深度最大为 128字节,但实际小很多。堆栈指针是 8 位 SP寄存器,复位后 SP=07H ,建议 SP=30H

以上(如: 5FH )。 SP总是指向栈顶,堆栈是向上生成的,即入栈时 SP加 1 ,出栈时 SP减 1 。 堆栈操作过程:堆栈操作过程: 进栈进栈 :: PUSH ACC PUSH ACC 指令(设 指令(设 SP=07SP=07HH )) 11 ,, SP+1SP+1 送送 SPSP ,此时,此时 SP=08HSP=08H ;; 22 ,, ACCACC 送送 RAMRAM 的的 08H08H 单元;单元;出栈出栈 :: POP ACC POP ACC (设(设 SP=08HSP=08H ));; 11 ,将,将 RAM RAM 中中 08H08H 单元内容送单元内容送 AA ;; 22 ,, SP-1SP-1 送送 SP SP ,此时,此时 SP=07HSP=07H 。。

07H

SP

RAM

x

累加器 A

堆栈操作示意图

08H07H

思考:复位后 8051堆栈最大容量是多少?

Page 35: 第 2 章  MCS-51 单片机的结构与原理

特殊功能寄存器:特殊功能寄存器: 共共 2222个(个( 33 个只属个只属 5252 子系列),子系列), PCPC 在物理上是独立的,其余在物理上是独立的,其余 22

11 个分布在个分布在 SFRSFR区,共占区,共占 2626个字节(个字节( 55 个双字节寄存器)。 个双字节寄存器)。 这这 2121 个中,有个中,有 1111 个寄存器具有位寻址功能,即寄存器中的每位个寄存器具有位寻址功能,即寄存器中的每位都具有位地址,它们的特点是字节地址正好能被都具有位地址,它们的特点是字节地址正好能被 88整除。整除。

注意: 1 、 128B 的 SFR 区中仅有 26B 是有定义的,若访问没有定义的单元,将得到一个不确定的随机数。2、访问 SFR 时只能采用直接寻址方式。

Page 36: 第 2 章  MCS-51 单片机的结构与原理
Page 37: 第 2 章  MCS-51 单片机的结构与原理
Page 38: 第 2 章  MCS-51 单片机的结构与原理
Page 39: 第 2 章  MCS-51 单片机的结构与原理

特殊功能寄存器简介 程序计数器 PC 16位,寻址范围 64KB, 用于安放下一条要执行的指令地址,在物理上是独立的。 累加器 A(ACC) 8 位,是 CPU中工作最频繁的,大部分操作数取自累加器,运算结果也存放在 A 中。 B寄存器 8 位,用于乘除指令中,对其他指令可作 RAM 中的一个单元用。

Page 40: 第 2 章  MCS-51 单片机的结构与原理

程序状态字(或标志寄存器) PSW 8 位,存放运算结果的一些状态信息,各位含义如下:

Page 41: 第 2 章  MCS-51 单片机的结构与原理

CCYY (( PSW.7PSW.7 ):进位标志位。在进行加法(或):进位标志位。在进行加法(或减法)运算时,若运算结果最高位有进位或借位,减法)运算时,若运算结果最高位有进位或借位,则则 CCYY自动置“自动置“ 1”1” ,否则,否则 CCYY置“置“ 0”0” ,在进行布,在进行布尔操作运算时,尔操作运算时, CCYY (简称(简称 CC )作为布尔处理器。)作为布尔处理器。

ACAC :辅助进位标志位。当进行加法或减法时,:辅助进位标志位。当进行加法或减法时,若低若低 44 位向高位向高 44 位有进位(或借位)时,位有进位(或借位)时, ACAC 被被置“置“ 1”1” ,否则,否则 ACAC 被置“被置“ 0”0” 。在十进制调整指。在十进制调整指令中令中 ACAC 还作为十进制调整的判别位。还作为十进制调整的判别位。F0F0 :用户标志位。用户可用软件对:用户标志位。用户可用软件对 F0F0 位置“位置“ 1”1”

或清“或清“ 0”0” 以决定程序的流向。以决定程序的流向。

Page 42: 第 2 章  MCS-51 单片机的结构与原理

OVOV :溢出标志位,当运算结果溢出时:溢出标志位,当运算结果溢出时 OVOV 为“为“ 1”1” ,否则为“,否则为“ 0”0” ,,此标志位反映了带符号数运算结果是否溢出。此标志位反映了带符号数运算结果是否溢出。 OV 的结果可以用一个算法来表示 :

OV=CP⊕CS 其中 :CP 为 A7 的进位; CS 为 A6 的进位。

PSW.1PSW.1 :未定义位。:未定义位。PP (( PSW.0PSW.0 ):奇偶标志位。当累加器):奇偶标志位。当累加器 AA 中“中“ 1”1” 的个数为奇数的个数为奇数时,时, PP置“置“ 1”1” ,否则,否则 PP置“置“ 0”0” 。此位反映累加器。此位反映累加器 AA 中内容中内容““ 1”1” 的奇偶性,它常常用于单片机间通信。的奇偶性,它常常用于单片机间通信。RS1RS1 、、 RS0RS0 :工作寄存器区选择位。用来选择当前工作的寄存:工作寄存器区选择位。用来选择当前工作的寄存器区。用户通过改变器区。用户通过改变 RS1 RS1 、、 RS0RS0 的内容来选择当前工作寄存器的内容来选择当前工作寄存器区。区。 RS1RS1 、、 RS0RS0 的内容与工作寄存器区的对应关系如表的内容与工作寄存器区的对应关系如表 2-12-1 所所示。示。

Page 43: 第 2 章  MCS-51 单片机的结构与原理
Page 44: 第 2 章  MCS-51 单片机的结构与原理

栈指针 SP 8 位,指示堆栈顶部在内部 RAM 中的位置,初始化 SP=07H,可重新设定 SP初值,当 SP初值↓,堆栈深度↑。指令系统中的栈操作指令是: PUSH, POP。 数据指针DPTR 16位,可分作 DPH、 DPL 两个独立的 8 位寄存器,也可作位 16位 DPTR处理。主要用来保持 16位地址,对外部数据存储器进行寻址,也可用于访问程序存储器。如:

MOVX A,@DPTRMOVC A,@A+DPTR

Page 45: 第 2 章  MCS-51 单片机的结构与原理

端口 P0~P3

8 位,分别是 I/O端口 P0~P3 的锁存器。 SFRSFR 中的中的 P0-P3P0-P3实际上就是实际上就是 I/OI/O 端口的数据锁存器。与端口的数据锁存器。与 RAMRAM 中的任意一个单元中的任意一个单元一样,一样, P0-P3P0-P3 都有自己的都有自己的 RAMRAM 地址:地址: 80H80H 、、 90H90H 、、 A0HA0H 、、B0HB0H 。所以,在。所以,在 5151 单片机中的输入、输出操作实际上就是个单片机中的输入、输出操作实际上就是个普通的普通的 RAMRAM 单元操作一样:如单元操作一样:如

输出指令 输出指令 MOV 80H,A MOV 80H,A ;将累加器中的数据送到;将累加器中的数据送到 P0P0 口输出口输出输入指令 输入指令 MOV A,90H MOV A,90H ;将;将 P1P1 口的数据输入到累加器口的数据输入到累加器 AA 中中

即即 MCS-51MCS-51 的指令系统中没有专用的输入、输出(的指令系统中没有专用的输入、输出( ININ 、、 OOUTUT )指令,而是把)指令,而是把 P0-P3P0-P3 作为普通的内存单元来使用。作为普通的内存单元来使用。

Page 46: 第 2 章  MCS-51 单片机的结构与原理

串行数据缓冲器 SBUF 8 位,用于存放欲发送或接收的数据。实际上是两个独立的寄存器,一个是发送缓冲器,另一个是接收缓冲器。 定时器 / 计数器 TH0,TL0,TH1,TL1,TH2,TL2(52 子系列 ) 其它控制寄存器 IP,IE,TMOD,TCON,SCON,PCON

Page 47: 第 2 章  MCS-51 单片机的结构与原理

       MCS-51MCS-51 对外部数据存储器的扩展能力为对外部数据存储器的扩展能力为 64KB64KB ,,采用间接寻址方式访问访问。

8 位地址寄存器: R0 , R1

16位地址寄存器: DPTR

外部数据存储器( I/O )

例:例: MOV R0MOV R0 ,, #20H#20H ;;将外部将外部 RAMRAM 单元地址单元地址 20H20H 送送 R0R0 寄存寄存器器 MOVX AMOVX A ,, @R0@R0 ;;从外部从外部 RAM20HRAM20H 单元取数据到累加器单元取数据到累加器AA 这里使用了这里使用了 R0R0 做间址寄存器做间址寄存器 ,, 所以寻址范围为所以寻址范围为 256B256B 。 。

例:例: MOV DPTR,#2000HMOV DPTR,#2000H ;;将外部 将外部 RAM RAM 单元的地址的单元的地址的 20002000 送送 DPTRDPTR MOVX A MOVX A ,, @DPTR@DPTR ;;从外部 从外部 RAM 2000HRAM 2000H 单元中取数据到单元中取数据到 AA 这里使用了这里使用了 1616 位的寄存器位的寄存器 DPTRDPTR ,所以寻址范围为,所以寻址范围为 64KB64KB 。。

Page 48: 第 2 章  MCS-51 单片机的结构与原理

2.4 CPU 时序

2.4.1 片内振荡器及时钟信号产生

2.4.2 机器周期和指令周期

2.4.3 CPU取指和执行周期时序

Page 49: 第 2 章  MCS-51 单片机的结构与原理

2.4.12.4.1 时钟电路时钟电路内部方式时钟电路内部方式时钟电路

电容 C1 和 C2取值: 30pF左右

振荡频率范围 : 1.2~12MHz

Page 50: 第 2 章  MCS-51 单片机的结构与原理

外接时钟源接法

该方式常用于多块 8051 芯片同时工作,以便同步。

Page 51: 第 2 章  MCS-51 单片机的结构与原理

8051 片内振荡器及时钟发生器

Page 52: 第 2 章  MCS-51 单片机的结构与原理

2.4.22.4.2 时序时序基本概念基本概念

(( 11 ))振荡周期振荡周期

振荡周期指为单片机提供定时信号的振荡周期指为单片机提供定时信号的

振荡源的周期振荡源的周期,即晶体振荡器直接产生,即晶体振荡器直接产生

的振荡信号的振荡周期。的振荡信号的振荡周期。

Page 53: 第 2 章  MCS-51 单片机的结构与原理

(2)(2) 时钟周期时钟周期 ((状态周期状态周期 )) 时钟周期是时钟周期是振荡周期的两倍振荡周期的两倍。是对振荡器。是对振荡器 22 分频的信号。分频的信号。

时钟周期又称状态周期,用时钟周期又称状态周期,用 SS 来表示,一个时钟周期,分来表示,一个时钟周期,分为两个节拍,为两个节拍, P1P1 和和 P2P2节拍。节拍。 P1P1节拍通常完成算术逻辑节拍通常完成算术逻辑操作,操作, P2P2节拍通常完成内部寄存器间数据的传递。节拍通常完成内部寄存器间数据的传递。

(3)(3) 机器周期机器周期 一个机器周期由一个机器周期由 1212 个振荡周期即个振荡周期即 66 个状态周期个状态周期组成,组成,

即即 S1S1~~ S6S6 ,如果把一条指令的执行过程划分为几个基本,如果把一条指令的执行过程划分为几个基本操作,则完成一个基本操作所需的时间称为机器周期。操作,则完成一个基本操作所需的时间称为机器周期。

(3)(3) 指令周期指令周期 指令周期是执行一条指令所需的全部时间。指令周期是执行一条指令所需的全部时间。 MCS-5MCS-5

11 单片机的指令周期通常由单片机的指令周期通常由 11~~ 44 个机器周期个机器周期组成。组成。

Page 54: 第 2 章  MCS-51 单片机的结构与原理

补充一个概念补充一个概念指令的字节数指令的字节数:一条指令所占内存单元的数量。:一条指令所占内存单元的数量。

MCS-51MCS-51 单片机的指令系统中有:单片机的指令系统中有: 单字节指令(占用单字节指令(占用 11 个个 ROMROM 字节) ;字节) ;

双字节指令(占用双字节指令(占用 22 个个 ROMROM 字节) ; 字节) ; 三字节指令(占用三字节指令(占用 33个个 ROMROM 字节) 。字节) 。

思考:思考:1.1. 指令的字节数与指令执行的时间有关系吗?指令的字节数与指令执行的时间有关系吗?2.2. 是否指令的字节数越多,其执行的时间就越长?是否指令的字节数越多,其执行的时间就越长?指令的字节数越少,执行就越快?指令的字节数越少,执行就越快?

Page 55: 第 2 章  MCS-51 单片机的结构与原理

机器周期、状态周期、振荡周期之间的关系:

1 机器周期 =6状态周期 =12 振荡周期

例:已知 fosc=12MHz ,则 1 机器周期 = 1/121/12µsµs×12×1=×12×1=11µsµs指令的运算速度指令的运算速度与它所包含的与它所包含的机器周期数机器周期数有关。机器周期数越有关。机器周期数越少,执行的速度就越快。少,执行的速度就越快。

MCS-51MCS-51 单片机的指令系统除了乘、除法指令为四个机器周期单片机的指令系统除了乘、除法指令为四个机器周期外外 ,, 其余都是单周期和双周期指令。其余都是单周期和双周期指令。

  CPU取指、执行周期时序 每条指令的执行都包括取指和执行两个阶段,典型指令的取指和执行指令时序如下页图:

Page 56: 第 2 章  MCS-51 单片机的结构与原理

几几种种典典型型的的取取指指和和执执行行时时序序

Page 57: 第 2 章  MCS-51 单片机的结构与原理

2.5复位及复位电路2.5.1 复位操作

复位是单片机的初始化操作 , 其主要功能是把 PC初始化为 0000H, 使单片机从 0000H 单元开始执行程序。

除 PC 外,复位操作还会影响其他一些寄存器,如下表所示。

Page 58: 第 2 章  MCS-51 单片机的结构与原理
Page 59: 第 2 章  MCS-51 单片机的结构与原理
Page 60: 第 2 章  MCS-51 单片机的结构与原理

2.5.2 复位信号及其产生

RST 引脚是复位信号的输入端,复位信号高电平有效,其有效时间应持续 24个振荡周期(即两个机器周期)以上。

如使用 6MHz 的晶振,则复位信号持续时间应超过 4us才能完成复位操作。

Page 61: 第 2 章  MCS-51 单片机的结构与原理

2.5.3 复位电路 复位操作有上电自动复位和按键手动复位两种 .

Page 62: 第 2 章  MCS-51 单片机的结构与原理

2.6输入 /输出端口结构 8051框图中没有像 8086CPU 一样明确表示出地址线和数据线,它的数据线和地址线是由并行端口引出的,以使有限的引脚能完成更多的功能。

P0~P3每个端口都有一个锁存器,即特殊功能寄存器 P0~P3 ,一个输出驱动器和两个三态缓冲器( P3 口为 3 个),这种结构在数据输出时可一直锁存保存不变,但对输入信号是不锁存的,所以外设欲输入的数据必须保持到取数指令执行为止。

Page 63: 第 2 章  MCS-51 单片机的结构与原理

2.6.1 P0 口

图 3 P0某位结构图

Page 64: 第 2 章  MCS-51 单片机的结构与原理

作一般(通用) I/O口:

控制信号 =0,模拟转换开关将输出级 T2与锁存器的 Q端接通。 输出级是开漏电路,输出时需外接上拉电阻才能获得高电平输出。 输入结构中有两个缓冲器是为适应“读——修改——写”这样的指令。如: ANL P0,A 指令,不是读引脚上的数据,而是读 D锁存器中的数据。 是准双向口,输入数据时应先向端口写“ 1” ,使两个 FET均截止,然后作高阻抗输入。(复位时已是 1 ) 

Page 65: 第 2 章  MCS-51 单片机的结构与原理

作低 8 位地址 / 数据总线口:

控制信号 =1,模拟转换开关把 CPU 内部地址 /数据总线经反向器与驱动场效应管 T2接通。

作总线时,上下两个 FET处于反相,构成推拉式的输出电路,不需外接上拉电阻,且大大提高了负载能力。当访问外部存储器时, CPU 自动向端口写入 FFH ,所以对用户而言 P0 口作地址 / 数据总线时是一个真正的双向口。

当 P0 口已作地址 / 数据总线口时,就不能作一般I/O口。

Page 66: 第 2 章  MCS-51 单片机的结构与原理

2.6.2 P1 口

图 4 P1某位结构图

Page 67: 第 2 章  MCS-51 单片机的结构与原理

P1 口是一个标准的准双向口,内部接有上拉电阻,在组成应用系统时,往往作通用的 I/O口使用。只是在 52 子系列中, P1.0 和 P1.1 是多功能的。

P1.0 :作定时器 / 计数器 2的外部输入端。

P1.1 :作定时器 / 计数器 2的外部控制输入端。

Page 68: 第 2 章  MCS-51 单片机的结构与原理

2.6.3 P2 口

图 5 P2某位结构图

Page 69: 第 2 章  MCS-51 单片机的结构与原理

P2口与 P0 口结构类似,由控制信号控制模拟转换开关,若接通上边,则地址信号加到输出线路,若接通下边,则锁存器 Q

端与输出线路接通, P2 口作一般 I/O口。

作一般(通用) I/O口:准双向口,内部接有上拉电阻(同 P1 , P3 口)。

作高 8 位地址总线口:用于输出高 8 位地址。

Page 70: 第 2 章  MCS-51 单片机的结构与原理

2.6.4 P3口

图 6 P3某位结构图

Page 71: 第 2 章  MCS-51 单片机的结构与原理

P3 口是一个多功能端口 : 第—功能:通用 I / O口,且是准双向口 第二功能:其他功能(见下页表)

P3 口与 P1 口的差别在于多了一个与非门和三态缓冲器,正是这两个部分,使得P3 口除了具有 P1口的准双向 I / O功能之外,还可以使用各引脚所具有的第二功能。

Page 72: 第 2 章  MCS-51 单片机的结构与原理

P3各口线的第二功能表 口 线 第 二 功 能 P3.0 RXD (串行口接收) P3.1 TXD (串行口发送) P3.2 (外部中断 0 输入) P3.3 (外部中断 1 输入) P3.4 T0 (计数器 0 输入) P3.5 T1 (计数器 1 输入) P3.6 (片外数据存储器写) P3.7 (片外数据存储器读)

Page 73: 第 2 章  MCS-51 单片机的结构与原理

* 编程时,不必事先由软件设置P3 口为第一功能 (通用 I / O口 ) 还是第二功能。

●当 CPU对 P3 口进行 SFR 寻址 (位或字节 )访问时,由内部硬件自动将第二功能输出线置 1 ,这时 P3 口为通用 I / O口;

●当 CPU不把 P3 口作为 SFR 寻址 (位或字节 )访问时,即用作第二功能输出 / 输入时,由内部硬件使锁存器 Q= 1 。

Page 74: 第 2 章  MCS-51 单片机的结构与原理

2.6.5 端口的负载能力和接口要求

P0 口 :

输出级无上拉电阻 , 当它做通用 I/O 使用时 , 输出级是开漏电路 ,故用其输出去驱动 NMOS 输入时需外接上拉电阻 . 用作输入时 , 应先向口锁存器写 1 。

把它当地址 / 数据总线时 , 无需外接上拉电阻 , 用作数据输入时 , 也无需先写“ 1” 。

P0 口每位输出可驱动 8 个 LS 型 TTL 负载。

每个端口作一般 I/O口时,都是准双向口,但 P0 口的输出级与 P1~P3 口的输出级在结构上是不同的,因此,他们的负载能力和接口要求也各不相同。

Page 75: 第 2 章  MCS-51 单片机的结构与原理

P1~P3 口 : 输出级接有内部上拉负载电阻 , 每一位输出可驱

动 4 个 LS 型 TTL 负载。 作为输入口时 ,任何 TTL或 NMOS 电路都能以

正常的方式驱动 P1~P3 口 , 由于它们的输出级有上拉电阻 , 也可以被集电极开路或漏极开路所驱动 , 无需外接上拉电阻。

对于 80C51 单片机 (CMOS), 端口只能提供几毫安的输出电流 ,故当作输出口驱动一个普通晶体管的基极 (或 TTL 电路输入端时 ), 应在端口和晶体管基极之间串连一个限流电阻 , 以限制高电平的输出电流。

P1~P3 口都是准双向口 , 作输入时 , 应先对相应口写 1 。

Page 76: 第 2 章  MCS-51 单片机的结构与原理

小结:

组建应用系统时,各端口通常分工如下:

P0 口:地址低 8 位与数据线分时使用口。

P1 口:按位可编程的输入输出口。

P2 口: PC 高 8 位, DPTR 高 8 位或 I/O 口。

P3 口:双功能口,若不用第二功能,也可作一般 I/O 口。

Page 77: 第 2 章  MCS-51 单片机的结构与原理

作业:

P35

3 、 6 、 10 、 14 、16