550 likes | 645 Views
本章将详细介绍 MCS-51 系列单片机的内部硬件结构、引脚定义、存储器配置、输入 / 输出端口、复位和时钟电路、工作模式等内容。 2.1 内部总体结构 2.1.1 引脚定义与功能 2.2 时钟电路与时序 2.3 存储器配置 2.4 输入 / 输出接口 2.5 复位和复位电路 2.6 工作方式. 2.1 内部总体结构. 51 子系列单片机的主要特点为: 1 个 CPU , 1 个片内振荡器及时钟电路; 4KBROM , 128BRAM ; 21 个特殊功能寄存器;
E N D
本章将详细介绍MCS-51系列单片机的内部硬件结构、引脚定义、存储器配置、输入/输出端口、复位和时钟电路、工作模式等内容。 • 2.1 内部总体结构 • 2.1.1 引脚定义与功能 • 2.2 时钟电路与时序 • 2.3 存储器配置 • 2.4 输入/输出接口 • 2.5 复位和复位电路 • 2.6 工作方式
2.1 内部总体结构 51子系列单片机的主要特点为: • 1个CPU,1个片内振荡器及时钟电路; • 4KBROM,128BRAM; • 21个特殊功能寄存器; • 32条可编程的I/O线(4个8位并行I/O接口); • 可寻址64KB外部数据存储器和64KB外部程序存 储器的控制电路; • 2个16位定时/计数器; • 5个中断源、2个优先级嵌套中断结构; • 1个可编程全双工串行接口; • 1个有位寻址功能、适于逻辑运算的位处理机。
基本组成及功能: • 中央处理器CPU 其主要由运算电路和控制电路两大部分组成。 • 运算电路以算术逻辑单元ALU为核心,包括累加器ACC、寄存器B、程序状态字PSW和两个暂存寄存器TMP等。 运算电路的基本结构如图所示。
2. 控制电路是保证单片机各部分能在程序运行过程中自动而协调工作的指挥枢纽,其核心部分是指令地址的计算、取指和指令译码。主要包括程序计数器PC、PC加1寄存器(PC增量)、指令译码器、定时与控制电路等。控制电路的基本结构如图。
基本组成及功能: • 位处理器 • 内部数据存储器RAM • 内部程序存储器ROM • 定时/计数器 • 并行I/O口 • 串行口 • 中断控制系统 • 时钟电路 • 总线
2.1.1 引脚定义与功能 MCS-51系列单片机引脚功能及总线结构
2.1.1 引脚定义与功能 • 主电源引脚 • Vcc(40脚):一般接+5V电源正端。 • Vss(20脚):一般接+5V电源地端。 • 外接晶体振荡器引脚 XTAL1(19脚) :外接晶体振荡器的一端。 XLAT2(18脚):外接晶体振荡器的另一端。
控制线 RST/VPD(9脚):复位/备用电源线。 ALE/ PROG(30脚):地址锁存允许/编程线 PSEN(29脚):片外程序存储器读选通信号输出端, 低电平有效。 EA/VPP(31脚):片外程序存储器选用端,低电平 有效。
2.1.1 引脚定义与功能 • 输入/输出口 P0口(39~32脚):输入/输出线P0.0~P0.7 统称为P0口。 P1口 (1~8脚):输入/输出线P1.0~P1.7统称 为P1口。 P2口 (21~28脚) :输入/输出线P2.0~P2.7 统称为P2口。 P3口 (10~17脚) :输入/输出线P3.0~P3.7 统称为P3口。
2.2 时钟电路与时序 MCS-51单片机本身是一个复杂的同步时序电路,为保证同步工作方式的实现,MCS-51单片机在唯一的时钟信号控制下,严格地按时序执行指令。在执行指令时,CPU以时钟电路的主振频率为基准发出CPU的时序,对指令进行译码,并由时序电路产生一系列控制信号去完成指令所规定的操作。这些控制信号在时间上的相互关系就是CPU时序。 CPU产生的时序信号有两类:一类用于片内各功能部件的控制 ;另一类用于片外存储器或I/O端口的控制 。 13
2.2.1 时钟电路 MCS-51单片机的时钟信号产生通常有两种方式:内部时钟方式和外部时钟方式。 内部时钟方式 外部时钟方式 14
2.2.2 单片机的时序单位和工作时序 • 单片机的时序单位有以下几种。 • 时钟周期 • 机器周期 • 指令周期 各时序单位的关系 15
图2-7列举了几种典型指令的取指和执行时序。由于用户看不到内部时钟信号,故图2-7列出了XTAL2端出现的振荡器信号和ALE端的信号,以作参考。图2-7列举了几种典型指令的取指和执行时序。由于用户看不到内部时钟信号,故图2-7列出了XTAL2端出现的振荡器信号和ALE端的信号,以作参考。 通常,每个机器周期ALE两次有效,第1次发生在S1P2和S2P1期间,第2次在S4P2和S5P1期间。 17
2.3 存储器配置 • 微型计算机的存储器地址空间有两种结构形式:普林斯顿结构和哈佛结构。 • 普林斯顿结构是将数据存储器和程序存储器空间合二为一,一个地址对应唯一的一个存储器单元,CPU访问ROM和RAM使用相同的指令; • 哈佛结构是将ROM和RAM分别安排在两个不同的地址空间,ROM和RAM可以有相同的地址,CPU访问ROM和RAM使用的是不同的指令。 19
2.3.1 程序存储器 程序存储器用于存放编好的程序和表格常数,它由只读存储器ROM或EPROM或FLASH组成。程序存储器以程序计数器PC作为地址指针,通过16位地址总线,可寻址64KB的地址空间。 • 编址与访问 • 程序的7个特殊入口地址
2.3.1 程序存储器 MCS-51单片机复位、中断入口地址
2.3.2 外部数据存储器 MCS-51单片机具有扩展64KB外部数据存储器RAM和I/O端口的能力,外部数据存储器和I/O端口实行统一编址,并使用相同的控制信号、相同的访问指令MOVX和相同的寻址方式。 片外数据存储器按16位编址时,其地址空间与程序存储器重叠,但不会引起混乱,访问程序存储器是用 信号选通,而访问片外数据存储器时,由 信号(读)和 信号(写)选通。访问程序存储器使用的是MOVC指令,访问片外数据存储器使用的是MOVX指令和寄存器间接寻址指令。
2.3.3 内部数据存储器 片内通用RAM区分为工作寄存器区、位寻址区、数据缓冲区3个区域。 • 工作寄存器区(00H~1FH ) 工作寄存器组的选择表 如下图所示。
2.3.3 内部数据存储器 • 位寻址区 20H~2FH单元是位寻址区。这16个单元(共 计16×8=128位)的每一位都有对应的位地址位地址范围为00H~7FH。 • 通用RAM区 30H~7FH是通用RAM区,共80个单元,一般用于存储用户数据, 也称用户RAM区。
堆栈和堆栈指针 堆栈是一个特殊的RAM区,用来暂存数据和地 址,它是按“先进后出”或“后进先出”的原 则存取数据的,堆栈有入栈和出栈两种操作。 以数据08H出栈入栈为例。 数据08H入栈示意图。
堆栈和堆栈指针 数据08H出栈示意图
2.3.4 特殊功能寄存器 特殊功能寄存器(简称SFR),也称为专用寄存器,用于控制、管理片内算术逻辑部件、并行I/O口、串行I/O口、定时器/计数器、中断系统等特殊功能模块的工作。
2.3.4 特殊功能寄存器 程序状态字(PSW) • 进位标志位C • 辅助进/借位(或称半进位)标志位AC • 用户自定义标志位F0 • 工作寄存器组选择位RS1、RS0 • 溢出标志位OV • 奇偶标志位P
2.4 输入输出接口 单片机内部有P0、P1、P2和P3共4个8位双向I/O口。 P0~P3的每个端口可按字节输入或输出,也可按位进行输入或输出,共32根口线,对于需要位控制的场合使用十分方便。P0为三态双向口,能驱动8个TTL电路;P1~P3为准双向口,负载能力为4个TTL电路。如果外设需要的驱动电流大,可加接驱动器。
说明: 1)、当控制信号为0时,P0口做双向 I/O口,为漏极开路(三态) 2)、控制信号为1时,P0口为地址/数据 复用总线(用于口扩展) 3)、P0W为端口输出写信号,用于锁 存输出状态 4)、P0R1为读锁存器信号,执行 “ANL P0,#0FH”时该信号有效 控制 Vcc AD0 读锁存器 地址/数据 P0R1 内部总线 P0.x D0 D Q 写锁存器 锁存器 Q C P0W BUF2 读引脚 P0R2 P0口内部结构 多路开关 BUF1 • 输入锁存器 2.4.1 P0口 • 两个输入缓冲器(BUF1和BUF2) • 推拉式I/O驱动器 • 多路开关 • 功能:用于控制选通I/O方式还是地址/数据输出方式 • 方式控制:由内部控制信号产生 5)、P0R2为读引脚信号,执行 “MOV A,P0”时该信号有效 6)、读引脚(端口)时,输出锁存 器应为“1” 1 0
2. P0口的总线方式(系统使用外存储器时) 控制电路的“控制”=1,此时与门打开,MUX接向“地址/数据”信号.在这种情况下, 输出极的两个FET都处于正常的工作状态 。 访问外部存储器的指令movx、movc ,就是使用P0口来输出外部存储器的低八位址 和输入、输出存储器的数据。 如果单片机使用了外部存储器(或使用movx指令来访问外部接口电路)时,P0口 成为整个系统的地址/数据复用总线。换句话,P0口不能再作为通用的I/O端口的形式直 接与外部连接。 P0口作为地址/数据分时复用
Vcc Vcc 读锁存器 控制(=0时) 地址/数据 1/0 内部总线 P0.x 引脚 D Q 锁存器 CL /Q 写锁存器 MUX (控制=0时) 读引脚 上拉电阻 P0口作为通用数据I/O端口
P0口的I/O操作(通用I/O接口功能) 在P0口作为通用I/O端口时,控制电路中的“控制”为 “0”电平,多路开关MUX接入下方的锁存器的/Q端。 由于与门的一个输入端为“0”,所以它使上端的FET 截止这就是P0口在做I/O口时输出为“漏极开路”的结构 原因. P0口作为通用I/O口
输出操作:在执行以口为目标的指令时,数据送到锁存器的“D”端,经“/Q”端送场效管应输出极.如:送“1”时,/Q=“0”,使下端的FET截止.这样出现输出极的两个FET全部截止.在这种情况下必须在端口线上外加上拉电阻.这样在上拉电阻的作用下,使端口为高电平.同理,若总线向口送“0”时,锁存器的/Q=1,使下端的FET导通(上面的FET仍然截止),这样端口呈现“0”电平。输出操作:在执行以口为目标的指令时,数据送到锁存器的“D”端,经“/Q”端送场效管应输出极.如:送“1”时,/Q=“0”,使下端的FET截止.这样出现输出极的两个FET全部截止.在这种情况下必须在端口线上外加上拉电阻.这样在上拉电阻的作用下,使端口为高电平.同理,若总线向口送“0”时,锁存器的/Q=1,使下端的FET导通(上面的FET仍然截止),这样端口呈现“0”电平。 输入操作:(读引脚,读锁存,输入前写1)
a. 读引脚:读外部送到端口引脚的电平,即通常所说的输入操作(如:MOV A,P0).此时,单片机控制“读引脚”的三态门,使引脚处的外部电平经三态门送入内部总线. b. 读锁存器:将进行读锁存器并进行处理,最后再写回锁存器的操作称之为: “读—修改—写”操作,如“ANL P0,#0FH” 。在这种情况下, 读入的数据不是来自引脚,而是端口内部锁存器的内容。
在端口电路中,可以发现一个问题:端口在输入(读引脚)时,原来锁存器的状态可能要影响引脚电平的输入.例如:原来锁存器的状态为“0”态,既输出极的下端FET是饱和状态,这样如果外电路向引脚输入高电平时,电路将不能正确读入.要解决的方法就是让下端的FET截止,既事先向端口写一个“1”。在端口电路中,可以发现一个问题:端口在输入(读引脚)时,原来锁存器的状态可能要影响引脚电平的输入.例如:原来锁存器的状态为“0”态,既输出极的下端FET是饱和状态,这样如果外电路向引脚输入高电平时,电路将不能正确读入.要解决的方法就是让下端的FET截止,既事先向端口写一个“1”。 c. 输入(读引脚)时应先写“1” 向端口写一个“1”
1)“通用数据I/O端口”和“地址、数据复用总线”1)“通用数据I/O端口”和“地址、数据复用总线” a. 在作为通用数据I/O端口时,具有较强的驱动能力(8个TTL负载), 与MOS负载连接时,需要外接一个上拉电阻。 b. 作为“地址、数据复用总线”使用时,P0口首先输出外部存储 器的低八位地址,然后再变为数据总线进行数据的输入或输出. 此时,P0口不能再作为通用I/O口。 P0口特点小结: P0口作为地址/数据分时复用 返回前一次 返回
2) 做通用数据I/O端口时,输出级上端的FET处于截止状态,所以与MOS器件连接时,必须接“上拉电阻”,否则不能正确的输出高电平; 3) 在输入操作前,为了保证输入正确,必须先向端口“写1”; 4)“读引脚”与“读锁存器”是不同的两个数据通道。凡 “读—修改—写” 的操作,CPU读的都是端口锁存器中的 数据 。 5) 为了提高电路的可靠性,端口引脚不要直接与三极管一类的器件直接连接,应加隔离电路或与三极管之间加一个电阻.
特点:单纯的通用I/O端口,负载能力为3个TTL输入。特点:单纯的通用I/O端口,负载能力为3个TTL输入。 2.4.2 P1口 Vcc 读锁存器 内部上拉电阻 P1.x 引脚 D Q 锁存器 CL /Q 内部总线 写锁存器 读引脚 三态门 上拉电阻
2.4.3 P2口特点:“通用数据I/和“高八位地址总线”端口。 地址/数据 1/0 Vcc 控制 读锁存器 内部上拉电阻 内部总线 P2.x 引脚 D Q 锁存器 CL /Q MUX (地址/数据=0) 写锁存器 读引脚 高8位地址总线使用时,控制信号使转换开关接向上侧
P2口在系统使用外部存储器时,做高八位的地址总线。P2口在系统使用外部存储器时,做高八位的地址总线。 应当注意的是:仅使用外部数据存储器时,P2口分两种情况: 1、仅仅使用256B的外部RAM时,既使用movx a,@r0指令访问外部RAM,此时用8位的寄存器R0或R1作间址寄存器,这时P2口无用,所以在这种情况下,P2口仍然可以做通用I/O端口。 2、如果访问外部ROM或使用大于256B(多于8位地址) RAM时,P2口必须作为外存储器的高八位地址总线。 如:movx a,@dptr ;访问外部数据存储器 movc a,@a+dptr ;访问外部程序存储器 这里使用了16位的寄存器DPTR
2.4.4 P3口特点:通用I/O端口、多用途端口 Vcc 读锁存器 第二功能输出 P3.x 引脚 内部总线 D Q 锁存器 CL /Q 写锁存器 MUX (地址/数据=0) 读引脚 上拉电阻 第二功能输入
2.4.4 P3口 说明: 1、做普通端口使用时,第二功能应为“1”。 1 1 输出I/O口 读I/O口 1 1 2、使用第二功能时,输出端口锁存器应为“1”。 3、第二功能() P3.0 TXD P3.4 T0 P3.1 RXD P3.5 T1 P3.2 INT0 P3.6 WR P3.3 INT1 P3.7 RD
2.4.5 P0~P3端口功能总结 使用中应注意的问题: P0~P3口都是并行I/O口,但P0口和P2口还可用来构建数据总线和地址总线,所以电路中有一个MUX,进行转换。 而P1口和P3口无构建系统的数据总线和地址总线的功能,因此,无需转接开关MUX。 只有P0口是一个真正的双向口,P1~P3口都是准双向口。原因:P0口作数据总线使用时,为保证数据正确传送,需解决芯片内外的隔离问题,即只有在数据传送时芯片内外才接通;否则应处于隔离状态。为此,P0口的输出缓冲器应为三态门。 P3口具有第二功能。因此在P3口电路增加了第二功能控制逻辑。这是P3口与其它各口的不同之处。
2.5 复位和复位电路 • 复位操作 MCS-51单片机复位状态表
2.5 复位和复位电路 • 复位电路 与其它计算机一样,MCS-51单片机系统通常有上 电复位和按键复位两种方式。 最简单的一种上电复位及按键复位电路如图。
2.6 工作方式 MCS-51系列单片机中,8051及80C51的工作方式有:复位方式、程序执行方式、掉电方式、低功耗方式以及EPROM编程和校验方式。单片机不同的工作方式,代表单片机处于不同的状态。单片机工作方式的多少,是衡量单片机性能的一项重要指标。