第二章 MCS-51单片机的组成及结构分析

发布于:2021-08-03 16:58:22

第二章 MCS-51单片机的组成及结构分析 MCS-51单片机的组成及结构分析 本章主要内容: 本章主要内容:
MCS-51单片机的组成和内部结构 MCS-51单片机的组成和内部结构 MCSMCS-51 的外部引脚及功能 MCS-51的存储器配置 MCS-51的存储器配置 时钟电路与复位电路 I/O端口电路与电气特性 I/O端口电路与电气特性

§2.1 MCS-51单片机的组成和内部结构 MCS-51单片机的组成和内部结构

PSEN

EA

MCS-51总体结构框图 MCS-51总体结构框图

结构说明

§

8位CPU,片内振荡器 CPU, 4K字节 4K字节ROM,128字节RAM 字节ROM,128字节 字节RAM 64K外部程序存储器和 64K外部程序存储器和64K外部数据存储器 外部程序存储器和64K外部数据存储器 21个特殊功能寄存器 21个特殊功能寄存器 4个8位的并口(32个I/O) 位的并口(32个I/O) 中断结构:具有两个优先级, 中断结构:具有两个优先级,五个中断源 2个16位定时/计数器 16位定时 位定时/ 一个UART串行口 串行口, 一个UART串行口,通用异步接受发送器 有位寻址功能和布尔处理机

2.1.1 CPU结构 CPU结构
CPU有运算器、控制器组成,CPU运算器内还包含 CPU有运算器、控制器组成,CPU运算器内还包含 有运算器 一个专门进行位操作的布尔处理机。 一个专门进行位操作的布尔处理机。 1、运算器 算术/逻辑单元(ALU)、暂存器TMP1和TMP2、 )、暂存器 结构 :算术/逻辑单元(ALU)、暂存器TMP1和TMP2、 累加器ACC、寄存器B 程序状态标志寄存器PSW、 累加器ACC、寄存器B、程序状态标志寄存器PSW、 布尔处理机 ALU: ALU:完成二进制数四则运算和布尔代数的逻辑运算 累加器A 作大多数单操作数或很多双操作数源, 累加器A:作大多数单操作数或很多双操作数源,目的 地址, 地址,运算时存结果

B:用于乘、 B:用于乘、除,此外做暂存器 用于乘 PSW:标志寄存器 PSW:标志寄存器(8位,用来存放运算结果的一些特征) 标志寄存器(
功能 进位标志(C寄存器) 进位标志( 寄存器) 辅助进位标志 溢出标志 奇偶标志 用户标志 保留 寄存器区选择MSb 寄存器区选择MSb 寄存器区选择LSb 寄存器区选择LSb 标志 CY AC OV P F0 …. RS1 RS0 位地址 PSW.7 PSW.6 PSW.2 PSW.0 PSW.5 PSW.1 PSW.4 PSW.3

CY

AC

F0

RS1 RS0 OV

保留 P

PSW.1:未定义, PSW.1:未定义,不能用 未定义 PSW.5:可由用户软件置 PSW.5:可由用户软件置1、置0或测试,作为自 可由用户软件置1 或测试, 己设定的标志, 己设定的标志,可以决定程序的走向 CY: 表示操作结果有无进位或借位,有则为1, 表示操作结果有无进位或借位,有则为1, 否则清0 否则清0 AC: 表示两个8位数运算低四位有否半进位或 表示两个8 借位,有为1 否则AC为 借位,有为1,否则AC为0 OV: 反映运算结果有无溢出,溢出为1,否则为0 反映运算结果有无溢出,溢出为1 否则为0 P: 反映A寄存器的奇偶性,若A的八位模2为1, 反映A寄存器的奇偶性, 的八位模2 否则为0 则P为1,否则为0

CY和OV的区别: 和 的区别 的区别:
OV溢出指在有正负号的两个数运算时, OV溢出指在有正负号的两个数运算时,结果超 溢出指在有正负号的两个数运算时 过了+127— 128。CY而进位指两个数最前一位相 过了+127— -128。CY而进位指两个数最前一位相 加或相减有否进位或借位。 加或相减有否进位或借位。 运算器功能 : 算数运算: 算数运算:加、减、乘、除、加1 、减1 、 BCD加法 BCD加法 逻辑运算: 异或、求反、 逻辑运算:与、或、异或、求反、清0 移位运算:左移、右移、 移位运算:左移、右移、循环移位

2、布尔处理机 、
运算器的重要组成部分, 运算器的重要组成部分,它相当于一个完整的位 单片机,每次处理的数据只有1 单片机,每次处理的数据只有1位。 累加器“ 累加器“C” 位空间:RAM、I/O位空间 位空间:RAM、I/O位空间 位指令:17条 位指令:17条 用指令完成原来硬件逻辑所能完成的功能及设置 标志

3、控制器 、
定时控制逻辑、指令寄存器、译码器、 定时控制逻辑、指令寄存器、译码器、地址指针 DPTR 、程序计数器 程序计数器PC 、堆栈指针 堆栈指针SP 、RAM地址寄 地址寄 存器、 位地址缓冲器 存器、16位地址缓冲器 控制器以主振频率为基准,发出 的控制时序, 控制器以主振频率为基准,发出CPU的控制时序,从程 的控制时序 序存储器取出指令,放在指令寄存器, 序存储器取出指令,放在指令寄存器,然后对指令进行 译码,并通过定时和控制逻辑电路, 译码,并通过定时和控制逻辑电路,在规定的时刻发出 一定序列的微操作控制信号,协调CPU各部分的工作, 各部分的工作, 一定序列的微操作控制信号,协调 各部分的工作 以完成指令所规定的操作。 以完成指令所规定的操作。

3、控制器 、
键入 指令 存储器 外部脉冲 对内部协调部件工作 综合成按一定时间 综合成按一定时间 变化的电*脉冲 控制信号 对外部发出时序信号 IR 译码 电*信号 定时控制电路

PC:16位程序计数器 PC:16位程序计数器,指出下一条指令字节所在的 位程序计数器, 程序存贮器地址 SP:堆栈指针, SP:堆栈指针,8位,初始栈底地址为07H 初始栈底地址为07H DPTR:16位数据指针 只是外部数据存贮器或I/O DPTR:16位数据指针,只是外部数据存贮器或I/O 位数据指针, 口的地址 定时器:由时钟和定时电路完成,产生CPU时序 时序, 定时器:由时钟和定时电路完成,产生CPU时序, Vcc 时钟有两种方式
XTAL1 C01

OC门 foc
XTAL2 8031

XTAL2

C02

XTAL1

内部振荡器方式

外部振荡器方式

2.1.2 存储器
MCS-51系列单片机的存储器包括 数据存储器(RAM) MCS-51系列单片机的存储器包括:数据存储器(RAM) 系列单片机的存储器包括: 和程序存储器(ROM) 和程序存储器(ROM)

1、数据存储器
MCS-51片内有 个 位用户读写数据存储单元和21个特 MCS-51片内有128个8位用户读写数据存储单元和21个特 片内有128 殊功能寄存器,读写数据寄存器是通用寄存器,用于 殊功能寄存器,读写数据寄存器是通用寄存器, 存放运算中间结果或临时数据等。 存放运算中间结果或临时数据等。特殊功能寄存器是 CPU运行和片内功能模块专用的寄存器 如累加器, CPU运行和片内功能模块专用的寄存器。如累加器, 运行和片内功能模块专用的寄存器。 定时/计数器等。一般不能作为通用数据存储器使用。 定时/计数器等。一般不能作为通用数据存储器使用。

2、程序存储器
MCS-51片内有 MCS-51片内有4KB的掩膜ROM,用于存放用户程序和常 片内有4KB的掩膜 的掩膜ROM, 如原始数据或表格) 当需要扩展片外ROM时 数(如原始数据或表格)等。当需要扩展片外ROM时, MCS-51对片外有 MCS-51对片外有64KB程序存储器的寻址功能。 对片外有64KB程序存储器的寻址功能 程序存储器的寻址功能。

2.1.3 接口电路

MCS- 单片机有4 位宽度的并行输入/输出(I/O) MCS-51 单片机有4个8位宽度的并行输入/输出(I/O)
端口,分别为P0、P1 、 P2 、P3口,共有32根线。单 P3口 共有32根线 根线。 端口,分别为P0、 片机输出的控制信号和采集外部的输入信号, 片机输出的控制信号和采集外部的输入信号,都是通 过它们进行的。 过它们进行的。

2.1.4 时钟振荡电路

MCS- 单片机内置一个振荡器和时钟电路, MCS-51 单片机内置一个振荡器和时钟电路,用于生产
整个单片机运行的脉冲时序,常用频率为12MHZ。 整个单片机运行的脉冲时序,常用频率为12MHZ。振 荡器实际是一个高增益反相器, 荡器实际是一个高增益反相器,使用时需外接一个晶 振和两个匹配电容。 振和两个匹配电容。

§2.2 MCS-51的外部引脚及功能 MCS-51的外部引脚及功能

图 2.6 MCS - 51单片机引脚 (a) 管脚图;(b) 引脚功能分类

2.2.1 I/O端口 I/O端口
?输入/输出引脚 P0、P1、P2、P3 P0.0~P0.7:P0口的8个引脚,P0口是8位漏极开路型双向I/0端口,在接 有片外存储器或I/0扩展接口时,P0.0~P0.7分时复用,作低8位地址总线与双 向8位数据总线 P1.0~P1.7:P1口的8个引脚,P1口是一个带内部上拉电阻的8位双向I/O 口,对于52子系列,P1.0还可用于定时器/计数器2的计数脉冲输入端T2,P 1.1还可作定时器/计数器2的外部控制端T2EX。 P2.0 ~ P2.7 : P2口的8个引脚,P2口也是一个带内部上拉电阻的双向I/O 口,在访问片外存储器或扩展I/O接口时,还用于提供高8位地址。 P3.0~P3.7:P3口的8个引脚,P3口也是一个带上拉电阻的I/O口,除可以 作双向的输入输出口外,还具有第2功能,见表2.1

P3口第二功能表 表2-1 P3口第二功能表 引脚 P3.0 P3.1 P3.2 P3.3 P3.4 P3.5 P3.6 P3.7

第二功能
RXD(串行口输入) RXD(串行口输入) TXD(串行口输出) TXD(串行口输出) INT0 外部中断0输入) INT0(外部中断0输入) INT1 外部中断1输入) INT1(外部中断1输入) T0(定时器0 T0(定时器0的外部输入) T1(定时器1 T1(定时器1的外部输入) WR (片外数据存储器写控制信号) RD (片外数据存储器读控制信号)

?控制线(4条): 控制线( 控制线 ALE/PROG: ALE/PROG:双功能引脚。由于P0口的8个引脚是低8位地址总线与数 据总线分时复用,因此必须将P0口输出的低8位地址进行锁存。在访问 片外存储器时,每机器周期该信号出现2次。其下降沿用于控制锁存P0 口输出的低8 位地址。即使不访问片外存储器,该引脚上仍出现上述 频率的周期性信号,因此也可作为对外输出的时钟脉冲,频率为振荡 器频率的1/6,必须注意的是:在访问片内外存储器时,ALE脉冲会跳 空1个。对片内含有EPROM的机型,此引脚在编程时可作为编程脉冲 PROG的输入端。



2.2.2 控制引脚

PSEN: PSEN:程序存储器输出使能端。片外程序存储器读选通 信号输出端,低电*有效。在CPU从片外程序存储器取指期 间,此信号每个机器周期两次有效,以通过P0口读入指令, 在访问片外数据存储器时,该信号不出现。



EA/Vpp:片内程序存储器屏蔽控制端, EA/Vpp:片内程序存储器屏蔽控制端,低电* 有效。双功能引脚,为片外程序存储器选用端。 有效。双功能引脚,为片外程序存储器选用端。 当该引脚信号有效时,选择片外程序存储器。 当该引脚信号有效时,选择片外程序存储器。当 EA/Vpp=1时 访问片内程序存储器。 EA/Vpp=1时,访问片内程序存储器。 对片内含有 EPROM的机型 此引脚在编程期间用于施加+21v 的机型, +21v的 EPROM的机型,此引脚在编程期间用于施加+21v的 编程电压。 编程电压。

RST/VPD:复位输入信号端,高电*有效。为双功 复位输入信号端,高电*有效。 能引脚。在单片机工作期间, 能引脚。在单片机工作期间,当此引脚上出现连 个机器周期的高电*时可实现复位操作, 接2个机器周期的高电*时可实现复位操作,复位 后单片机将从PC=0000H地址开始执行程序。 PC=0000H地址开始执行程序 后单片机将从PC=0000H地址开始执行程序。 Vcc掉电期间 该引脚接备用电源(+5v), 掉电期间, 在Vcc掉电期间,该引脚接备用电源(+5v), 可向片内RAM供电,以保存片内RAM中的信息。 RAM供电 RAM中的信息 可向片内RAM供电,以保存片内RAM中的信息。

2.2.3 电源与晶振引脚
主电源引脚:Vss(电源负端)、Vcc(电源正端,接 +5V) 外接晶振引脚:XTAL1、XTAL2

§2.3 MCS-51的存储器配置 MCS-51的存储器配置

单片机存储器结构特点:程序存储器和数据 单片机存储器结构特点: 存储器寻址空间分开

64KB ROM

FFFFH

FFFFH

64KB RAM (I/O)

程序存储器

数据存储器

1000H 0FFFH

EA=0
0000H

4KB ROM

FFH 80H 7FH 00H

SFR RAM
0000H

EA=1

片外 片内

片外

物理上: 物理上:

? 内外程序存储器 ? 内外数据存储器 ? 内外程序存储器 ? 片内数据存储器 ? 外部数据存储器

逻辑上: 逻辑上:

有一个统一的逻辑空间0 64K, 有一个统一的逻辑空间0-64K,在此空间分配程序和数据存 储器的地址及其容量。 储器的地址及其容量。

2.3.1、 2.3.1、程序存储器 作用--程序存储器用于存放编好的程序和表格常数。
①8051片内有4K字节ROM,片外用16位地址线最多 可扩展64K字节ROM,两者是统一编址的。 ★如果EA端保持高电*,8051执行片内前4KB ROM地址 (0000H~0FFFH) 中的程序。当寻址范围超过4KB( 1000H~FFFFH)时,则从片外存储器取指令。 ★当EA端保持低电*时,8051的所有取指令操作均在 片外程序存储器中进行,这时片外存储器可以从 0000H开始编址。

②在程序存储器中,有6个单元具有特殊功能
0000H: 0000H 8051复位后,PC=0000H,即程序从0000H 开始执行指令。 0003H:外部中断0入口。 0003H 000BH:定时器0溢出中断入口。 000BH 0013H:外部中断1入口。 0013H 001BH:定时器1溢出中断入口。 001BH 0023H:串行口中断入口。 0023H
使用时,通常在这些入口地址处存放一条绝对跳转指令, 使程序跳转到用户安排的中断程序起始地址,或者从0000H起始 地址跳转到用户设计的初始程序上。

? 空间安排
地址空间原则上可由用户安排,但实际上上电后(PC)=0000H, 地址空间原则上可由用户安排,但实际上上电后(PC) 0003H—0023H用于 个中断入口地址,一般取0003H—0023H为保留 0003H—0023H用于5个中断入口地址,一般取0003H—0023H为保留 用于5 单元, 0000H安排一跳转指令以跳过 安排一跳转指令以跳过, 单元,在0000H安排一跳转指令以跳过,用户程序只能安排在跳转后的 地址空间内

? 对外部程序存储器的访问
地址信号:P0输出低八位 P2输出高八位 输出低八位, 地址信号:P0输出低八位,P2输出高八位 控制信号:PSEN: 控制信号:PSEN:程序存储器允许输出信号

P2 输出 高8位 输出AB高 位 选中某一单元 地址信号 单片机提供 控制信号 PSEN:程序存储器允许输出信号 : P0输出 低8位 输出AB低 位 输出

访问外部程序存储器的两种情况 取指令
由单片机自动完成

取得程序存储器中的数据
使用 MOVC A,@A+PC 和 MOVC A,@A+DPTR 指令完成

2.3.2 数据存储器配置

片外RAM64KB,地址范围0000H~FFFFH 数 据 存 储 器
使用时只能用MOVX MOVX指令访问 MOVX

片内RAM128B,地址范围00H~7FH
使用MOV MOV指令访问,可以进行堆栈操作 MOV

1、外部数据存储器
用途:用于存放数据, 组成, 用途:用于存放数据,由RAM组成,可读可写 组成 根据存储器地址指针,P0低八位 低八位, 访问: 访问 DPTR: 根据存储器地址指针,P0低八位,P2 高八位, ALE作为地址锁存 高八位,由ALE作为地址锁存 外部数据存储器的两种访问方式
1、外部数据存储器空间<256, 用8位地址访问 外部数据存储器空间<256, 举例: A,@R0; 举例: MOVX A,@R0; 2、用DPTR指令访问 P0:低八位 P2:高八位 DPTR指令访问 P0: P2: 举例: A, 举例: MOVX A,@DPTR

2、内部数据存储器
内部RAM单元 均可按字节操作, 内部RAM单元,均可按字节操作,可作工作寄存 单元, 位寻址区,通用区及特殊功能寄存器等。 器,位寻址区,通用区及特殊功能寄存器等。

内部工作寄存器区
特点: 特点:以RAM的形式组成 的形式组成 地址: 地址:00—1FH 组成: 区 每区8个寄存器 个寄存器R0—R7 组成:4区,每区 个寄存器

作用:暂存中间结果, 作用: 暂存中间结果,以提高运算速度 用作计数器, 用作计数器,增1,减1 、R1可用作内、 R0、R1可用作内、外数据存储器地址指针 特点: 不能组成寄存器对,因而不能作为16位地 特点: 不能组成寄存器对,因而不能作为16位地 16 址指针 无需辅助寄存器, 无需辅助寄存器,快速交换靠寄存器区的切换 使用: 寄存器切换只须CPU执行一条单字节指令改变 使用: 寄存器切换只须 执行一条单字节指令改变 PSW中相应位状态即可 中相应位状态即可

片内数据存储器工作区空间分布图
7FH

通用RAM区 (80B)

. . . . . . . . .
30H 2FH

①由PSW中的2位RS1、RS0来决定选 哪一组为当前工作寄存器:
RS1、RS0=00 RS1、RS0=01 RS1、RS0=10 RS1、RS0=11 选0组 选1组 选2组 选3组

②在位地址区,每一个BIT都有一个 地址,共16×8=128位
工作寄存 器区 4组(32B)

位地址区 (16B)
寄存器3组 寄存器区 寄存器2组 寄存器1组 4组(32B) 寄存器0组

20H 1FH

. . .
00H

片内数据存储器工作区空间分布图
7FH

R7
通用RAM区 (80B) . . . . . . . . .
30H 2FH

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

RS1、RS0=00 RS1、RS0=00
寄存器0组

R6 R5 R4 R3

位地址区 (16B)
寄存器3组 寄存器2组 寄存器1组 寄存器0组

20H 1FH

寄存器区 4组(32B)

R2 R1 R0

. . .
00H

片内数据存储器工作区空间分布图
7FH

R7
通用RAM区 (80B) . . . . . . . . .
30H 2FH

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

RS1、RS0=01 RS1、RS0=01
寄存器1组

R6 R5 R4 R3

位地址区 (16B)
寄存器3组 寄存器2组 寄存器1组 寄存器0组

20H 1FH

寄存器区 4组(32B)

R2 R1 R0

. . .
00H

片内数据存储器工作区空间分布图
7FH

R7
通用RAM区 (80B) . . . . . . . . .
30H 2FH

17H 16H 15H 14H 13H 12H 11H 10H

RS1、RS0=10 RS1、RS0=10
寄存器2组

R6 R5 R4 R3

位地址区 (16B)
寄存器3组 寄存器2组 寄存器1组 寄存器0组

20H 1FH

寄存器区 4组(32B)

R2 R1 R0

. . .
00H

片内数据存储器工作区空间分布图
7FH

R7
通用RAM区 (80B) . . . . . . . . .
30H 2FH

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

RS1、RS0=11 RS1、RS0=11
寄存器3组

R6 R5 R4 R3

位地址区 (16B)
寄存器3组 寄存器2组 寄存器1组 寄存器0组

20H 1FH

寄存器区 4组(32B)

R2 R1 R0

. . .
00H

位寻址区
20H—2FH的16字节是位寻址区。 20H—2FH的16字节是位寻址区。它们既可以以字 字节是位寻址区 节被寻址,也可以对字节中的任意位进行寻址。 节被寻址,也可以对字节中的任意位进行寻址。 其地址分配图如下表所示。 其地址分配图如下表所示。

用途: 用途:一、作为MCS-51单片机位处理器子系统的 作为 单片机位处理器子系统的 RAM区。二、在编程时,作为某状态标志位使用 在编程时, 区 地址: 地址:20—2FH

片内数据存储器位寻址区空间分布图
7FH

通用RAM区 (80B)

. . . . . . . . .
位地址区
30H 2FH

位地址区 (16B)
寄存器3组 寄存器2组 寄存器1组 寄存器0组

20H 1FH

. . .
00H

D7 D6 D5 D4 D3 D2 D1 D0 7FH 78H 2FH ............ 70H 2EH 77H 68H 2DH 6FH 67H 60H 2CH 5FH 58H 2BH 50H 2AH 57H 48H 29H 4FH 47H 40H 28H 3FH 38H 27H 30H 26H 37H 28H 25H 2FH 27H 20H 24H 1FH 1FH 23H 17H 10H 22H ............ 0FH 08H 21H 07H 06H 05H 04H 03H 02H 01H 00H 20H

(通用区)栈区 通用区)
30H—37H是通用 30H—37H是通用RAM区,只能以字节寻址,通用暂存 是通用RAM区 只能以字节寻址, 数据,一般堆栈也设在该区域内。 数据,一般堆栈也设在该区域内。

8位堆栈指针SP,原则上可以在128个单元上开辟,但考虑 位堆栈指针SP,原则上可以在 原则上可以在128个单元上开辟 个单元上开辟, 到复位后SP为07H,20H—2FH为位地址空间 为位地址空间, 到复位后SP为07H,20H—2FH为位地址空间,一般设置 30H以后 以后。 在30H以后。

片内数据存储器通用区空间分布图
7FH

通用RAM区 (80B)

. . . . . . . . .
30H 2FH

通用RAM区

共80个字节,作为一般的数据缓冲区并 可设置堆栈区

位地址区 (16B)
寄存器3组 寄存器2组 寄存器1组 寄存器0组

20H 1FH

. . .
00H

RAM空间分配 空间分配

} }

}

2.3.3 特殊功能寄存器(21个字节)

SFR (Special Functional Register) 见书P16表2-4

SFR的地址在80H-FFH的范围内,与通用RAM的高128B,在逻辑 上是重合的。他们用不同的寻址方式加以区分。SFR的地址离 散地分布在80H-FFH的空间中。51子系列单片机有21个SFR。 52子系列比51子系列多一个定时计数器T2,增加了5个SFR。

①与ALU相关的(3个) ALU相关的( 相关的 (Accumulator umulator) A Register (Accumulator):
累加器,通常用A或ACC A ACC ACC表示。可字节寻址(E0H), 也可位寻址(E0H~E7H) 它是一个寄存器,而不是一个做加法的部件。 在运算器做运算时其中一个数一定是在ACC ACC中。 ACC

B Register Register:暂存寄存器。
暂存寄存器。在做乘、除法时放乘数或除数及结果。

PSW

(Program (Program Status Word ):

PSW是8位寄存器,用于作为程序运行状态的标志。这是一 个很重要的部件,里面存放了CPU工作时的很多状态,借此,我们可以 了解CPU的当前状态,并作出相应的处理。

当CPU进行各种逻辑操作或算术运算时,为反映操作或运 算结果的状态,把相应的标志位置1或清0。这些标志的状态, 可由专门的指令来测试,也可通过指令来读出。它为计算机 确定程序的下一步进行方向提供依据。PSW寄存器中各位的名 称及位置如上所示,下面说明各标志位的作用。

它的各位功能如下:
PSW位地址

D7H CY

D6H AC

D5H D4H F0 RS1

D3H RS0

D2H OV

D1H

D0H P

PSW位地址

D7H CY

D6H AC

D5H D4H F0 RS1

D3H RS0

D2H OV

D1H

D0H P

CY:进位标志。 加减运算时,保存最高位进位、借位状态。 AC:半进位标志。 例:78H+97H 0111 1000 +1001 0111 1 0000 1111
有进位 CY=1 没有半进位AY=0

PSW位地址

D7H CY

D6H AC

D5H D4H F0 RS1

D3H RS0

D2H OV

D1H

D0H P

RS1、RS0:工作寄存器组选择位。
0 0 1 1 0 1 0 1 选择工作寄存器0组 选择工作寄存器1组 选择工作寄存器2组 选择工作寄存器3组

P:奇偶校验位,它用来表示累加器A内容中二进制数位 “1”的个数的奇偶性。若为奇数,则P=1,否则为0。 例:某运算结果是78H(01111000),P=0。

PSW位地址

D7H CY

D6H AC

D5H D4H F0 RS1

D3H RS0

D2H OV

D1H

D0H P

F0:用户标志位。作为软件标志,由编程人员决定 何时使用。 OV:溢出标志位。 有符号数运算时,如果发生溢出,OV置“1”,否 则清“0”。

②与指针相关的(2个) 与指针相关的( (Stack ointer) SP (Stack Pointer): 堆栈指针,8位寄存器,用来指定堆栈的栈顶位置,初值 为07H 07H。它是加1计数. 07H (Data oint r)( DPH、 DPTR (Data Pointer)(分成DPH、DPL DPH DPL两个): ): 数据指针可以用它来访问外部数据存储器中的任一单元, 也可以作为通用寄存器来用,由我们自已决定如何使用。

③与端口相关的(7个) 与端口相关的( P0、P1、P2、P3: P0、P1、P2、P3:
四个并行输入/输出口的寄存器。它里面的内容对应着管脚的输出。 四个并行输入/输出口的寄存器。它里面的内容对应着管脚的输出。

(Serial egister) SCON (Serial Control Register) (Serial Buffer) SBUF (Serial Date Buffer) egister) PCON (Power Control Register) (Power ④与定时/计数器相关的(6个) 与定时/计数器相关的( (Timer/Counter Mode Register) TMOD (Timer/Counter Mode Register)
定时器工作模式寄存器。 定时器工作模式寄存器。

(Timer/Counter Control Register) TCON (Timer/Counter Control Register)
定时器控制寄存器。 定时器控制寄存器。 TH0、 TH1、TL1:分别是T0 T1的记数初值寄存器 T0、 的记数初值寄存器。 TH0、TL0 、TH1、TL1:分别是T0、T1的记数初值寄存器。

③与中断相关的(2个) 与中断相关的( (Interrupt Register) IP (Interrupt Priority Register) Register) IE (Interrupt Enable Register) (Interrupt

? 这些 这些SFR,可以以字节寻址,部分也可以位寻址。可位寻址 ,可以以字节寻址,部分也可以位寻址。

的寄存器的地址是8的倍数。有11个可位寻址的寄存器,如累 个可位寻址的寄存器, 的寄存器的地址是 的倍数。 的倍数 个可位寻址的寄存器 加器、串行控制寄存器等,其字节和位的地址如表2-5所示 所示。 加器、串行控制寄存器等,其字节和位的地址如表 所示。

§2.4 时钟电路和复位电路
2.4.1 时钟电路

1、振荡电路
单片机的时钟信号用来提供单片机 内部各种操作的时间基准, 内部各种操作的时间基准,时钟电路用 来产生单片机工作所需要的时钟信号。 来产生单片机工作所需要的时钟信号。 单片机内部有一个高增益的反向放大 其输入端X1和 用于外接晶体和电 器,其输入端 和X2用于外接晶体和电 以构成自激振荡器, 容,以构成自激振荡器,其发出的脉冲 直接送入内部的时钟电路。 直接送入内部的时钟电路。外接电路如 图:

2、指令时序
机器周期和指令周期 (1) 振荡周期: 也称时钟周期, 是指为单片机提供时钟脉 冲信号的振荡源的周期。 (2) 状态周期: 每个状态周期为时钟周期的 2 倍, 是振荡 周期经二分频后得到的。 (3) 机器周期: 一个机器周期包含 6 个状态周期S1~S6, 也 就是 12 个时钟周期。 在一个机器周期内, CPU可以完成一个 独立的操作。 (4) 指令周期: 它是指CPU完成一条操作所需的全部时间。 每条指令执行时间都是有一个或几个机器周期组成。MCS 51 系统中, 有单周期指令、双周期指令和四周期指令。

2.4.2 MCS-51单片机复位(RST高电*2个机器周期)
任何单片机在工作之前都要有个复位的过程,复位是 什么意思呢?对单片机来说,是程序还没有开始执行,是 在做准备工作----初始状态。显然,准备工作不需要太长 的时间,复位需要不少于24个时钟周期的时间就可以了。

如何进行复位呢?只要在单片机的RST引脚上加上高 电*,就可以了。为了达到这个要求,可以用很多种方 法,见图。

复位后,PC指向0000H,使单片机从起始地址0000H开始执 行程序。 一、复位电路(两种) C +5V RST 9

R

8051

上电复位电路

一、复位电路(两种) C +5V RST 9 K R 8051

上电且开关复位

二、复位后单片机的状态

复位后各寄存器的状态

PC P0、P1、P2、P3 SP PSW 其余大部分都是0

0000H(程序入口) 0FFH (可以直接输入) 07H (栈底已经设好) 00H (选择0组寄存器)

复位后,不影响内部 RAM状态,各SFR状态如下 RAM状态 状态, SFR状态如下 复位后,

特殊功能寄存器 ACC B PSW SP DPL DPH P0-P3 P0IP IE TMOD

初始状态 00H 00H 00H 07H 00H 00H 0FFH XXX00000B 0XX00000B 00H

特殊功能寄存器 TCON TH0 TL0 TH1 TL1 SCON SBUF PCON

初始状态 00H 00H 00H 00H 00H 00H 不定 0xxx xxxxB

§2.5 I/O端口电路与电气特性
8051单片机有4个I/O端口,每个端口都是8位准双向口, 4 共占32 32根引脚。每个端口都包括一个锁存器(即专用寄存器 32 P0~P3)、一个输出驱动器和输入缓冲器。通常把4个端口 P0~P3 P0~ 笼统地表示为P0~P3 P0 P3。

在无片外扩展存储器的系统中,这4个端口的每一位都可 以作为准双向通用I/O端口使用。在具有片外扩展存储器的系 统中,P2口作为高8位地址线,P0口分时作为低8位地址线和 双向数据总线。 8051单片机4个I/O端口线路设计的非常巧妙,学*I/O端 口逻辑电路,不但有利于正确合理地使用端口,而且会给设 计单片机外围逻辑电路有所启发。 下面简单介绍一下输入/输出端口结构。

一、P0口的结构
下图为P0口的某位P0.n(n=0~7)结构图,它由一个 输出锁存器、两个三态输入缓冲器和输出驱动电路 及控制电路组成。从图中可以看出,P0口既可以作 为I/O用,也可以作为地址/数据线用。
地址/数据 地址/ 控制 读锁存器
T1 P0.n D Q MUX

VCC

内部总线 写锁存器

T2

P0口引 P0口引 脚

CLK Q

读引脚

I/O口 1、P0口作为普通I/O口 P0口作为

①输出时
CPU发出控制电*“0”封锁“与”门,将输出上拉场效 0 应管T1截止,同时使多路开关MUX把锁存器与输出
地址/数据 地址/ 控制 读锁存器
T1 P0.n D Q MUX

VCC

内部总线 写锁存器

T2

P0口引 P0口引 脚

CLK Q

读引脚

驱动场效应管T2栅极接通。故内部总线与P0口同相。由于输出 驱动级是漏极开路电路,若驱动NMOS或其 它拉流负载时,需要外接上拉电阻。P0的输出级可驱动8个 LSTTL负载。
地址/数据 地址/ 控制 读锁存器
T1 P0.n D Q MUX

VCC

内部总线 写锁存器

T2

P0口引 P0口引 脚

CLK Q

读引脚

输入时---- 读引脚或 ② 输入时----分读引脚或读锁存器
读引脚:由传送指令 MOV 实现; MOV)实现 读引脚:由传送指令(MOV 实现; 下面一个缓冲器用于读端口引脚数据,当执行一条由端口 面一个缓冲器用于读端口引脚数据, 引脚数据 输入的指令时,读脉冲把该三态缓冲器打开, 输入的指令时,读脉冲把该三态缓冲器打开,这样端口引脚 上的数据经过缓冲器读入到内部总线。 上的数据经过缓冲器读入到内部总线。
地址/数据 地址/ 控制 读锁存器
T1 P0.n D Q MUX

VCC

内部总线 写锁存器

T2

P0口引 P0口引 脚

CLK Q

读引脚

输入时---- 读引脚或 ② 输入时----分读引脚或读锁存器
读锁存器: P0, 称为“ 读锁存器:有些指令 如:ANL P0,A称为“读-改-写” 指令,需要读锁存器。 指令,需要读锁存器。 上面一个缓冲器用于读端口锁存器数据。 一个缓冲器用于读端口锁存器数据。 锁存器数据
地址/数据 地址/ 控制 读锁存器
T1 P0.n D Q MUX

VCC

内部总线 写锁存器

T2

P0口引 P0口引 脚

CLK Q

读引脚

**原因:如果此时该端口的负载恰是一个晶体管基极,且原端口输出值 为1,那么导通了的PN结会把端口引脚高电*拉低;若此时直接读端口 引脚信号,将会把原输出的“1”电*误读为“0”电*。现采用读输出锁 存器代替读引脚,图中,上面的三态缓冲器就为读锁存器Q端信号而设, 读输出锁存器可避免上述可能发生的错误。** 地址/数据 地址/ 控制 读锁存器
T1 P0.n D Q MUX

VCC

内部总线 写锁存器

T2

P0口引 P0口引 脚

CLK Q

读引脚

准双向口: 从图中可以看出,在读入端口数据时,由于输出驱动FET 并接在引脚上,如果T2导通,就会将输入的高电*拉成低 电*,产生误读。所以在端口进行输入操作前,应先向端 口锁存器写“1”,使T2截止,引脚处于悬浮状态,变为高 阻抗输入。这就是所谓的准双向口。
地址/数据 地址/ 控制 读锁存器
T1 P0.n D Q MUX

VCC

内部总线 写锁存器

T2

P0口引 P0口引 脚

CLK Q

读引脚

2、P0作为地址/数据总线 P0作为地址/

在系统扩展时,P0端口作为地址/数据总线使用时,分为: 在系统扩展时,P0端口作为地址/数据总线使用时,分为: 端口作为地址 使用时 P0引脚输出地址/数据信息 引脚输出地址 信息。 P0引脚输出地址/数据信息。
地址/数据 地址/ 控制 读锁存器
T1 P0.n D Q MUX

VCC

内部总线 写锁存器

T2

P0口引 P0口引 脚

CLK Q

读引脚

2、P0作为地址/数据总线 P0作为地址/ CPU发出控制电*“ ,打开“ 又使多路开关MUX MUX把 CPU发出控制电*“1”,打开“与”门,又使多路开关MUX把 发出控制电* CPU的地址/数据总线与T2栅极反相接通,输出地址或数据。由图 CPU的地址/数据总线与T2栅极反相接通,输出地址或数据。 栅极反相接通 上可以看出,上下两个FET处于反相,构成了推拉式的输出电路, FET处于反相 上可以看出,上下两个FET处于反相,构成了推拉式的输出电路, 其负载能力大大增强。 其负载能力大大增强。
地址/数据 地址/ 控制 读锁存器
T1 P0.n D Q MUX

VCC

内部总线 写锁存器

T2

P0口引 P0口引 脚

CLK Q

读引脚

2、P0作为地址/数据总线 P0作为地址/

----真正的双向口

P0引脚输出地址/ P0引脚输出地址/输入数据 引脚输出地址 输入信号是从引脚通过输入缓冲器进入内部总线 内部总线。 输入信号是从引脚通过输入缓冲器进入内部总线。 此时,CPU自动使MUX向下 并向P0口写“ , 读引脚” 自动使MUX向下, P0口写 此时,CPU自动使MUX向下,并向P0口写“1”,“读引脚”控 制信号有效,下面的缓冲器打开,外部数据读入内部总线。 制信号有效,下面的缓冲器打开,外部数据读入内部总线。 地址/ VCC 地址/数据
控制 读锁存器
T1 P0.n D Q MUX

内部总线 写锁存器

T2

P0口引 P0口引 脚

CLK Q

读引脚

二、P2的内部结构 1.P2口作为普通I/O口
CPU发出控制电*“ 使多路开关MUX MUX倒向锁存器 CPU发出控制电*“0” ,使多路开关MUX倒向锁存器 发出控制电* 输出Q 构成一个准双向口。其功能与P1相同。 P1相同 输出Q端,构成一个准双向口。其功能与P1相同。
VCC 地址 读锁存器
R P2.n D Q MUX

控制

内部总线 写锁存器

T

P2口引 脚

CLK Q

读引脚

2.P2口作为地址总线 2.P2口作为地址总线 口作为
在系统扩展片外程序存储器扩展数据存储器且容量超过256B 在系统扩展片外程序存储器扩展数据存储器且容量超过256B ( 程序存储器扩展数据存储器且容量超过 @DPTR指令 指令) CPU发出控制电* 发出控制电*“ ,使多路开关MUX MUX倒 用MOVX @DPTR指令)时,CPU发出控制电*“1”,使多路开关MUX倒内部 地址线。此时,P2输出高 位地址。 输出高8 地址线。此时,P2输出高8位地址。
VCC 地址 读锁存器
R P2.n D Q MUX

控制

内部总线 写锁存器

T

P2口引 脚

CLK Q

读引脚

P1口的内部结构 三、 P1口的内部结构
它由一个输出锁存器、两个三态输入缓冲器和输出驱动电路组成 ----准双向口。
VCC 读锁存器
R P1.n

内部总线 写锁存器

D

Q

T
CLK Q

P1口引 脚

读引脚

P3口的内部结构 四、P3口的内部结构
1、作为通用I/O口与P1口类似----准双向口(W=1)

第二输出功能 第二输出功能 读锁存器

VCC

W
R P3.n
D Q

内部总线 写锁存器

T
CLK Q

P3口引 脚

读引脚 第二输入功能 第二输入功能

2、P3 P3第二功能(Q=1) P3 此时引脚部分输入(Q=1、W=1) ,部分输出(Q=1、W输出)
第二输出功能 第二输出功能 读锁存器 VCC



W
R P3.n
D Q

内部总线 写锁存器

T
CLK Q

P3口引 脚

读引脚 第二输入功能 第二输入功能

P3第二功能各引脚功能定义: P3

P3.0:RXD串行口输入 P3.1:TXD串行口输出 P3.2:INT0外部中断0输入 P3.3:INT1外部中断1输入 P3.4:T0定时器0外部输入 P3.5:T1定时器1外部输入 P3.6:WR外部写控制 P3.7:RD外部读控制

一般对用户而言,真正可放心使用的是P1口,P3口剩余线也 一般对用户而言,真正可放心使用的是P1口 P3口剩余线也 可使用,组成系统时, 可使用,组成系统时,常进行硬件扩充或结其他线路

2.5.2 I/O端口负载能力 I/O端口负载能力
P1、P2、P3可以驱动4个LSTTL输入 P1、P2、P3可以驱动 LSTTL输入 可以驱动4 P0口可以驱动8个LSTTL输入 P0口可以驱动 LSTTL输入 口可以驱动8

本章到此结束


相关推荐

最新更新

猜你喜欢