380 likes | 740 Views
8051 单片机基本结构. 8051 单片机的特点. 8051 单片机可分为无 ROM 型和 ROM 型两种 无 ROM 型的芯片,必须外接 EPROM 才能应用(典型芯片为 8031 ) ROM 型芯片又分为 EPROM 型(典型芯片为 8751 )、 FLASH 型(典型芯片为 89C51 )、掩膜 ROM 型(典型芯片为 8051 )、一次性可编程 ROM ( One Time Programming, 简称 OTP )的芯片(典型芯片为 97C51 )。. 时钟源. T 0 T 1. 时钟电路. SFR 和 RAM. ROM.
E N D
8051单片机的特点 • 8051单片机可分为无ROM型和ROM型两种 • 无ROM型的芯片,必须外接EPROM才能应用(典型芯片为8031) • ROM型芯片又分为EPROM型(典型芯片为8751)、FLASH型(典型芯片为89C51)、掩膜ROM型(典型芯片为8051 )、一次性可编程ROM(One Time Programming,简称OTP)的芯片(典型芯片为97C51)。
时钟源 T0 T1 时钟电路 SFR和RAM ROM 定时/计数器 系 统 总 线 CPU 并行端口 串行端口 中断系统 TXD RXD P0P1P2P3 INT0 INT1 8051单片机的基本组成
一个8051单片机包含下列部件 (1)一个8位微处理器CPU。 (2)片内数据存储器RAM和特殊功能寄存器SFR。 (3)片内程序存储器ROM。 (4)两个定时/计数器T0、T1,可用作定时器,也可用以 对外部脉冲进行计 数。 (5)四个8位可编程的并行I/O端口,每个端口既可作输 入,也可作输出。 (6)一个串行端口,用于数据的串行通信。 (7)中断控制系统。 (8)内部时钟电路。
通道0驱动器 通道2驱动器 VCC RAM地址锁存器 (+5V) RAM 通道0锁存器 通道2锁存器 ROM/ EPROM GND 程序地址寄存器 B寄存器 ACC 堆栈指针SP 缓冲器 TMP2 TMP1 PC递增器 PCON SCON TMOD TCON ALU TH0 TL0 TH1 TL1 SBUF(TX/RX) IE IP 程序计数器PC 中断、串行口和定时器逻辑 PSEN PSW ALE EA 数据指针DPTR RST 通道1锁存器 通道3锁存器 通道1驱动器 通道3驱动器 XTAL1 XTAL2 P1.0~P1.7 P3.0~P3.7 定时和 控制逻辑 指令 寄存器 指令 译码器 振荡器 8051单片机内部结构
8051单片机的CPU CPU即中央处理器,是单片机的核心部件,它完成各种运算和控制操作,CPU由运算器和控制器两部分组成。 (1)运算器 运算器以算术逻辑单元ALU为核心,加上累加器ACC、暂存寄存器TMP和程序状态字寄存器PSW等所组成。ALU主要用于完成二进制数据的算术和逻辑运算,并通过对运算结果的判断影响程序状态字寄存器PSW中有关位的状态。 D7 D0 PSW:
PSW中各位的意义如下: • CY:进位标志。在进行加法或减法运算时,若运算结果的最高位有进位或借位,CY=1,否则CY=0,在执行位操作指令时,CY作为位累加器。 • AC:辅助进位标志。在进行加法或减法运算时,若低半字节向高半字节有进位或借位, AC=1,否则AC=0,AC还作为BCD码运算调整时的判别位。 • F0:用户标志。 • RS1和RS0:工作寄存器组选择,如下表所示。
OV:溢出标志。当两个带符号的单字节数进行运算,结果超出-128~+127的范围时,OV=1,表示有溢出,否则OV=0表示无溢出。OV:溢出标志。当两个带符号的单字节数进行运算,结果超出-128~+127的范围时,OV=1,表示有溢出,否则OV=0表示无溢出。 • PSW中的D1位为保留位,对于8051来说没有意义,对于8052来说为用户标志,与F0相同。 • P:奇偶校验标志。每条指令指行完毕后,都按照累加器A中“1”的个数来决定P值,当“1”的个数为奇数时,P=1,否则P=0。
(2)控制器 控制器包括程序计数器PC、指令寄存器、指令译码器、数据指针DPTR、堆栈指针SP、缓冲器以及定时与控制电路等。控制电路完成指挥控制工作,协调单片机各部分正常工作。 程序计数器PC:当一条指令按PC所指向的地址从程序存储器中取出之后,PC的值会自动增量,即指向下一条指令。 堆栈指针SP:用来指示堆栈的起始地址。80C51单片机的堆栈位于片内RAM中,而且属于“上长型”堆栈,复位后SP被初始化为07H,使得堆栈实际上由08H单元开始。 指令译码器:当指令送入指令译码器后,由译码器对该指令进行译码,CPU根据译码器输出的电平信号使定时控制电路产生执行该指令所需要的各种控制信号。 数据指针寄存器DRTR:它是一个16位寄存器,由高位字节DPH和低位字节DPL组成,用来存放16位数据存储器的地址,以便对片外64kB的数据RAM区进行读写操作。
8051单片机引脚描述 VCC P1.0 1 40 2 P1.1 39 P0.0 3 P0.1 P1.2 38 4 P0.2 37 P1.3 P1.4 P0.3 36 5 P1.5 6 P0.4 35 P0.5 7 P1.6 34 8031 8051 8751 8 P0.6 P1.7 33 P0.7 RST/VPD 9 32 RXD/P3.0 10 EA/Vpp 31 TXD/P3.1 11 ALE/PROG 30 INT0/P3.2 12 PSEN 29 P2.7 INT1/P3.3 13 28 T0/P3.4 P2.6 14 27 T1/P3.5 P2.5 15 26 WR/P3.6 P2.4 16 25 RD/P3.7 P2.3 17 24 XTAL2 18 P2.2 23 19 P2.1 XTAL1 22 VSS 20 21 P2.0
电源引脚Vcc和Vss Vcc:电源端,接+5V。Vss:接地端。时钟电路引脚XTAL1和XTAL2 XTAL1:接外部晶振和微调电容的一端,在片内它是 振荡器倒相放大器的输入,若使用外部TTL时钟时,该 引脚必须接地。XTAL2:接外部晶振和微调电容的另一端,在片内它 是振荡器倒相放大器的输出,若使用外部TTL时钟时, 该引脚为外部时钟的输入端。地址锁存允许ALE系统扩展时,ALE用于控制地址锁存器锁存P0口输出的 低8位地址,从而实现数据与低位地址的复用。
外部程序存储器读选通信号PSEN PSEN是外部程序存储器的读选通信号,低电平有效。 程序存储器地址允许输入端EA /VPP 当EA为高电平时,CPU执行片内程序存储器指令,但当 PC中的值超过0FFFH时,将自动转向执行片外程序存储 器指令。当EA为低电平时,CPU只执行片外程序存储器 指令。 复位信号RST 该信号高电平有效,在输入端保持两个机器周期的高电 平后,就可以完成复位操作。
输入/输出端口引脚P0,P1,P2和P3 P0口(P0.0~P0.7):该端口为漏极开路的8位准双向 口,它为外部低8位地址线和8位数据线复用端口, 驱动能力为8个LSTTL负载。 P1口(P1.0~P1.7):它是一个内部带上拉电阻的8位 准双向I/O口,P1口的驱动能力为4个LSTTL负载。 P2口(P2.0~P2.7):它为一个内部带上拉电阻的8位 准双向I/O口,P2口的驱动能力也为4个LSTTL负载。 在访问外部程序存储器时,作为高8位地址线。 P3口(P3.0~P3.7):为内部带上拉电阻的8位准双向 I/O口,P3口除了作为一般的I/O口使用之外,每个引 脚都具有第二功能。
8051单片机的存储器配置 FFFFH FFH FFFFH F0H 外 部 RAM (I/O口 地址) 外部 ROM 特 殊 功 能 寄 存 器 通用RAM区 位寻址区 特殊功能寄存器地址 E0H D0H B8H B0H A8H A0H 98H 90H 88H 80H 80H 7FH 30H 1000H 2FH 20H 0FFFH 0FFFH 内部 ROM (EA=1) 外部 ROM (EA=0) 1FH 工作寄存器区 0000H 0000H 0000H 00H 程序存储器 外部数据存储器 内部数据存储器
8051在物理上有4个存储器空间 片内ROM和片外ROM。 片内RAM和片外RAM。 片外程序存储器ROM地址空间为64kB,片外数据存储器RAM也有64kB的寻址区,在地址上是与ROM重迭的。 8051单片机通过不同信号来选通ROM或RAM。当从外部ROM中取指令时,采用选通信号PSEN,而从外部RAM中读写数据时则采用读RD和写WR信号或来选通,因此不会因地址重迭而发生混乱。
片内数据存储器RAM 片内RAM有256个字节,其中00H~7FH地址空间是直接寻址区,该区域内从00H~1FH地址为工作寄存器区,安排了4组工作寄存器,每组都为R0~R7,在某一时刻,CPU只能使用其中任意一组工作寄存器,由程序状态字PSW中RS0和RS1的状态决定。 片内RAM的20H~2FH地址单元为位寻址区,其中每个字节的每一位都规定了位地址。每个地址单元除了可进行字节操作之外,还可进行位操作。 片内RAM的80H~FFH地址空间是特殊功能寄存器SFR区,对于51子系列在该区域内安排了21个特殊功能寄存器,对于52子系列则在该区域内安排了26个特殊功能寄器,同时扩展了128个字节的间接寻址片内RAM,地址也为80~FFH,与SFR区地址重迭。
片外数据存储器RAM 当片内RAM不能满足数量上的要求时,可通过总线端口和其他I/O口扩展外部RAM,其最大容量可达64KB字节。 在片内数据存储器中,数据区和扩展的I/O口是统一编址的,使用的指令也完全相同,因此,用户在应用系统设计时,必须合理地进行外部RAM和I/O端口的地址分配,并保证译码的唯一性。
程序存储器ROM 程序存储器ROM包括片内ROM和片外ROM两个部分。主要用来存放编好的用户程序和表格常数,它以16位的程序计数器PC作为地址指针,寻址空间为64KB。当EA接高电平时,单片机从片内ROM的4kB字节存储器区取指令,当指令地址超过0FFFH后,自动地转向片外ROM取指令。当EA接低电平时,所有的取指操作均对片外程序存储器进 行。
8051单片机的CPU时序 1 单片机的时钟电路 2 振荡周期、机器周期、指令周期 3 单片机指令的取指和执行时序
单片机的时钟电路 单片机时钟电路通常有两种形式: 1.内部振荡方式:8051单片机片内有一个用于构成振荡器的高增益反相放大器,引脚XTAL1和XTAL2分别是此放大器的输入端和输出端。把放大器与作为反馈元件的晶体振荡器或陶瓷谐振器连接,就构成了内部自激振荡器并产生振荡时钟脉冲。 2.外部振荡方式:外部振荡方式就是把外部已有的时钟信号引入单片机内。
+5V 外部时钟源 MCS-51 XTAL1 C1 XTAL2 CYS MCS-51 TTL C2 XTAL2 XTAL1 VSS 内部振荡方式 外部振荡方式
振荡周期、机器周期、指令周期 指令周期 机器周期 机器周期 S1 S4 S2 S3 S4 S5 S6 S1 S2 S3 S5 S6 P1 P2 P1 P2 P1 P2 P2 P1 P2 P1 P2 P1 P2 P1 P2 P1 P2 P1 P2 P1 P2 P1 P2 P1 XTAL2 (OSC) 振荡周期 8051单片机各种周期的相互关系
1.振荡周期:为单片机提供时钟信号的振 荡源的周期。 2.机器周期:完成一个基本操作所需的时 间,通常为12个振荡周期。 3.指令周期:指CPU执行一条指令所需要 的时间,一个指令周期通常含有1~4 个机器周期。
8051单片机外接晶振为12MHz时3个周期的具体值 振荡周期=1/12μs 机器周期=1μs 指令周期=1~4μs
复位电路及复位状态 1.复位电路 单片机复位电路包括片内、片外两部分。外部复位电路就是为内部复位电路提供两个机器周期以上的高电平而设计的。8051单片机通常采用上电自动复位和按键手动复位两种方式。单片机运行出错或进入死循环时,可按复位键重新运行。
C1 22μF C1 22μF +5V +5V RST RST 8031 8051 8751 8031 8051 8751 R2 200Ω R1 1KΩ R1 1KΩ (b)按键复位电路 (a)上电复位电路 上电复位和按键复位电路
特殊功能寄存器 初始状态 特殊功能寄存器 初始状态 ACC 00H TMOD 00H PC 0000H TCON 00H PSW 00H TH0 00H SP 07H TL0 00H DPL 00H TH1 00H DPH 00H TL1 00H P0~P3 FFH SBUF 不定 IP ×××00000B SCON 00H IE 0××00000B PCON 0×××0000B 复位后的初始状态
8051单片机的并行I/O口 8051单片机有4个双向并行的8位I/O口P0~P3。P0口为三态双向口,可驱动8个TTL电路,P1、P2、P3口为准双向口(作为输入时,需要先向口锁存器写入1,故称为准双向口),其负载能力为4个TTL电路。
1.P0口的结构 VCC 地址/数据 读锁存器 控制 T1 内部总线 D Q P0.X P0.X 锁存器 写锁存器 CL Q T2 MUX 读引脚
VCC 读锁存器 内部上拉电阻 内部总线 P1.X Q D P1.X 锁存器 写锁存器 Q CL T 读引脚 2.P1口的结构
3.P2口的结构 VCC 地址 读锁存器 控制 内部上拉电阻 内部总线 P2.X Q D P2.X 锁存器 MUX 写锁存器 CL Q T 读引脚
4.P3口的结构 VCC 第二输出功能 读锁存器 内部上拉电阻 内部总线 P3.X Q D P3.X 锁存器 写锁存器 T CL Q 读引脚 第二输入功能
位线 引脚 第二功能 P3口的第二功能 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.2 P3.3 P3.6 P3.7
8051单片机的片外总线结构 (1)地址总线(AB):地址总线宽度为16位,由P0口经地址锁存器提供低8位地址(A0 ~A7);P2口直接提供高8位地址(A8~A15)。地址信号是由CPU发出的,故地址总线是单方向的。 (2)数据总线(DB):数据总线宽度为8位,用于传送数据和指令,由P0口提供。 (3)控制总线(CB):控制总线随时掌握各种部件的状态,并根据需要向有关部件发出命令,主要有PSEN、WR、 RD信号。