530 likes | 680 Views
第 2 章 MCS-51 单片机结构和原理. 2.1 MCS-51 系列单片机特性 2.2 从外部引脚初看 51 单片机 2.3 从引脚使用二看单片机 2.4 从内部结构三看 51 单片机 2.5 并行输入 / 输出端口. 2.1 MCS-51 系列单片机特性. MCS-51 系列单片机虽已有 10 多种产品,但可分为两大系列: MCS-51 子系列 中主要有 8031 、 8051 、 8751 三种类型。 MCS-52 子系列 也有 3 种类型 8032 、 8052 、 8752 。各子系列配置见下表所示。.
E N D
第2章 MCS-51单片机结构和原理 2.1 MCS-51系列单片机特性 2.2 从外部引脚初看51单片机 2.3 从引脚使用二看单片机 2.4 从内部结构三看51单片机 2.5 并行输入/输出端口
2.1 MCS-51系列单片机特性 MCS-51系列单片机虽已有10多种产品,但可分为两大系列: MCS-51子系列中主要有8031、8051、8751 三种类型。 MCS-52子系列也有3种类型8032、8052、8752。各子系列配置见下表所示。
2.2 从外部引脚一看51单片机 MCS—51系列单片机芯片均为40个引脚, HMOS工艺制造的芯片采用双列直插(DIP)方式封装, 其引脚示意及功能分类如图2―3所示。 CMOS工艺制造的低功耗芯片也有采用方型封装(PLCC)的, 但为44个引脚, 其中4个引脚是不使用的
1. 主电源引脚Vcc和Vss • VCC(40脚): 接+5 V电源正端; • VSS(20脚): 接+5 V电源地端 2. 外接晶体引脚XTAL1和XTAL2 XTAL1:接外部晶振和微调电容的一端,在片内它是振荡器倒相放大器的输入,若使用外部TTL时钟时,该引脚必须接地。 XTAL2:接外部晶振和微调电容的另一端,在片内它是振荡器倒相放大器的输出,若使用外部TTL时钟时,该引脚为外部时钟的输入端。
:地址锁存允许信号 该引脚的第二功能 当8051上电正常工作后,ALE引脚不断向外输出脉冲信号,此频率为振荡器频率的1/6,当CPU访问外部存储器时(振荡频率的1/12),ALE输出信号作为锁存低8位地址的控制信号,不访问片外存储器时,ALE端以振荡频率的1/6固定输出脉冲,因此ALE信号可用作对外输出时钟或定时信号。所以利用ALE引脚可以很方便的判断单片机是否正常工作。当单片机上电复位后,用示波器测ALE引脚,若有脉冲输出,则说明单片机最小系统外围电路连接正确,单片机正常工作。 在对片内带有4K容量EPROM的8751编程时作为编程脉冲输入端。但是目前市面上很难买到8751芯片,通常都是89C51或89S51,所以该引脚的第二功能可以不必了解
(29脚):访问外部程序存储器选通信号, 低电平有效。 :访问内部或外部ROM选择信号 RST(9脚):复位引脚对于微机系统都是必不可少的,该引脚可以保证程序跑飞后重新开始执行程序。对51单片机复位而言,高电平有效,只要在该引脚上输入两个机器周期以上的高电平,就可完成复位操作。 引脚为高电平时,CPU访问内部ROM,但当PC指针超过0FFFH时(4K),自动转向执行外部ROM,引脚为低电平,则访问外部ROM。
I/O口引脚(32个引脚) 四个8位双向I/O端口(P0、P1、P2、P3); 每一条I/O线都能独立地作输入或输出。 P0口(32—39)低8位地址/数据线复用或I/O口。 P1口(1—8) 常用的I/O口。 P2口(21—28)常用I/O口或高8位地址线。 P3口(10—17)常用I/O口,每个引脚还具有第二功能
2.3 从引脚使用二看单片机 2.3.1 单片机最小系统的实现 单片机最小系统的必备条件 1、电源 2、EA引脚 3、晶体振荡电路 4、复位电路
片内振荡器及时钟信号的产生 单片机的定时控制功能是由片内的时钟电路和定时电路来完成的, 而片内的时钟产生有两种方式: 一种是内部时钟方式; 一种是外部时钟方式
采用内部时钟方式时, 片内的高增益反相放大器通过XTAL1、 XTAL2外接作为反馈元件的片外晶体振荡器(呈感性)与电容组成的并联谐振回路构成一个自激振荡器, 向内部时钟电路提供振荡时钟。 • 振荡器的频率主要取决于晶体的振荡频率, 一般晶体可在1.2~12 MHz之间任选, 电容C1、 C2可在5~30 pF之间选择, 电容的大小对振荡频率有微小的影响, 可起频率微调作用。
复位电路 通过某种方式, 使单片机内各寄存器的值变为初始状态的操作称为复位。 复位是单片机的初始化操作,其主要功能是把PC指针初始化为0000H,使单片机从0000H单元开始执行程序。 如何进行复位呢?只要在单片机的RST引脚上给出2个机器周期的高电平就可以完成复位操作(一般复位正脉冲宽度大于10 ms)。复位分为上电复位和外部复位两种方式。
(a) 上电复位电路; (b) 上电/外部复位电路
2.3.2 时钟信号 计算机在执行指令时, 通常将一条指令分解为若干基本的微操作, 这些微操作所对应的脉冲信号在时间上的先后次序称为计算机的时序。 振荡周期:振荡周期指为单片机提供定时信号的振荡源的周期或外部输入时钟的周期。 时钟周期(状态周期): 2个振荡周期为1个状态周期,用S表示。它分为P1节拍和P2节拍,通常在P1节拍完成算术逻辑操作,在P2节拍完成内部寄存器之间的传送操作。
机器周期:一个机器周期是指CPU访问存储器一次所需要的时间。MCS-51的一个机器周期包括12个振荡周期,分成6个状态:S1~S6,每个状态又分为两拍,称为P1和P2,因此一个机器周期中的12个振荡周期表示为S1P1、S1P2……S6P1、S6P2机器周期:一个机器周期是指CPU访问存储器一次所需要的时间。MCS-51的一个机器周期包括12个振荡周期,分成6个状态:S1~S6,每个状态又分为两拍,称为P1和P2,因此一个机器周期中的12个振荡周期表示为S1P1、S1P2……S6P1、S6P2 • 指令周期:指令周期即执行一条指令所占用的全部时间,通常为1~4个机器周期 • 例如: 外接晶振为12 MHz时, MCS—51单片机的4个时间周期的具体值为: • 振荡周期=1/12 μs; • 状态周期=1/6 μs; • 机器周期=1 μs; • 指令周期=1~4 μs
MCS—51单片机复位后, 程序计数器PC和特殊功能寄存器复位的状态如下表。 复位不影响片内RAM存放的内容, 而ALE、 在复位期间将输出高电平 2.3.3 复位状态
PC=0000H 表示复位后程序的入口地址为0000H; • PSW=00H, 其中RS1(PSW.4)=0, RS0(PSW.3)=0, 表示复位后单片机选择工作寄存器0组; • SP=07H 表示复位后堆栈在片内RAM的08H单元处建立; • P0口~P3口端口电平为全1状态; • 定时器/计数器、 串行口、 中断系统等特殊功能寄存器复位后的状态对各功能部件工作状态的影响, 将在后续有关章节介绍
2.4 从内部结构三看51单片机 8051内部集成了一台微型计算机的各个部分。 其中主要有CPU、存储器(4KB ROM、128B RAM)、四个8位可编程I/O、定时/计数器、串行口等。 工作寄存器及特殊功能寄存器(SFR) 各部分通过内部总线相连。
频率基准源 计数器 128 /256 字 4 K /8K 2 16 振荡器及定 字节程序 个 位定 节数据存储 ROM 存储器 / 时电路 时器 计数器 RAM 器 内部总线 8051 CPU 64K I/O 口 字节总 可编程 可编程 4 8 × 位 线扩展控制 串行口 内中断 外中断 I/O / 控制 并行 口 串行输入 输出 单片机结构框图 8051
2.4.1 中央处理器CPU 中央处理器是单片机内部的核心部件, 它决定了单片机的主要功能特性。 它由运算部件和控制部件两大部分组成
1 运算部件 运算部件以一个可进行8位算术运算和逻辑运算的单元ALU为核心, 加上8位累加器A、 寄存器B、 暂存器TMP1和TMP2、 程序状态寄存器PSW(FLAG)及专门用于位操作的布尔处理机组成的,它能实现数据的算术逻辑运算, 位变量处理和数据传送操作。
算术逻辑单元ALU ALU:可对4位、8位和16位数据进行操作。不仅能完成加(带进位加)、 减(带借位减)、 乘、 除、 加1、 减1及BCD加法的十进制调整等算术运算,还能进行逻辑“与”、 “或”、 “异或”、 求补、 清零等逻辑运算, 并具有数据传送, 程序转移等功能 累加器ACC ACC简称累加器A, 为一个8位寄存器, 它是CPU中使用最频繁的寄存器。 进入ALU作算术和逻辑运算的操作数多来自于A, 运算结果也常送回A保存。
寄存器B 8位寄存器,寄存器B是为ALU进行乘除法设置的,在进行乘除运算时,B寄存器用来存放一个操作数,也用来存放运算后的一部分结果,若不作乘除运算,则作为通用寄存器使用 程序状态字 程序状态字寄存器PSW(8位)是一个标志寄存器, 它保存指令执行结果的特征信息, 以供程序查询和判别。
PSW.7 PSW.0 CY AC F0 RS1 RS0 OV — P 程序状态字格式及含义 CY(PSW.7)——进位标志位。 AC(PSW.6)——辅助进位(或称半进位)标志。 F0(PSW.5)——由用户定义的标志位。 RS1(PSW.4)、 RS0(PSW.3)——工作寄存器组选择位。 OV(PSW.2)——溢出标志位。 由硬件置位或清零 PSW.1——未定义位。 P(PSW.0)——奇偶标志位。
布尔处理机 布尔处理(即位处理)是MCS—51单片机ALU所具有的一种功能。 单片机指令系统中的布尔指令集(17条位操作指令), 存储器中的位地址空间, 以及借用程序状态标志寄存器PSW中的进位标志CY作为位操作“累加器”, 构成了单片机内的布尔处理机。
2 控制部件 控制部件是单片机的神经中枢,它包括程序计数器PC、指令寄存器IR、指令译码器ID、振荡和定时电路等部件。 程序计数器PC:由两个8位的计数器PCH和PCL组成,共16位,PC实际上是程序的字节地址计数器,PC中的内容可对64KB的ROM(程序存储器)直接寻址,也可对片外RAM寻址。 指令寄存器IR、指令译码器ID仅限于CPU对其操作,用户没有办法编程改变这些寄存器的值。
2.4.2 51单片机存储器及存储空间 MCS—51单片机存储器从物理结构上可分为: 片内、 片外程序存储器(8031和8032没有片内程序存储器)与片内、 片外数据存储器4个部分; 从寻址空间分布可分为: 程序存储器、 内部数据存储器和外部数据存储器3大部分; 从功能上可分为: 程序存储器、 内部数据存储器、 特殊功能寄存器、 位地址空间和外部数据存储器5大部分
MCS—51系列单片机存储器包括片内ROM(或EPROM)和RAM外, 另外还有128个字节的RAM区作为特殊功能寄存器(SFR)区。 片内、 片外程序存储器和数据存储器各自总容量为64 KB。
2.4.3 程序存储器 1、程序存储器的编址 计算机的工作是按照事先编制好的程序一条条顺序执行的, 程序存储器就是用来存放这些已编好的程序和表格常数, 它由只读存储器ROM或EPROM组成。 2. 程序运行的入口地址 实际应用时, 程序存储器的容量由用户根据需要扩展, 而程序地址空间原则上也可由用户任意安排。 但程序最初运行的入口地址, MCS—51单片机是固定的, 用户不能更改。 程序存储器中有复位和中断源共7个固定的入口地址见下表
2.4.4 内部数据存储器 MCS—51系列单片机的内部数据存储器由读写存储器RAM组成, 用于存储数据。 它由RAM块和特殊功能寄存器(SFR)块组成, 其结构如图所示。
1 工作寄存器区(00H~1FH) 内部RAM块的00H~1FH区, 共分4个组, 每组有8个工作寄存器R0~R7, 共32个内部RAM单元。由PSW中的2位RS1、RS0来决定选哪一组为当前工作寄存器:
工作寄存器共有4组,通过程序状态字PSW中的PSW.3(RS0)和PSW.4(RS1)两位来选择哪1组寄存器工作。单片机上电复位后,RS1=RS0=0,CPU自动选择第0组为当前工作寄存器组。工作寄存器共有4组,通过程序状态字PSW中的PSW.3(RS0)和PSW.4(RS1)两位来选择哪1组寄存器工作。单片机上电复位后,RS1=RS0=0,CPU自动选择第0组为当前工作寄存器组。 根据需要,可利用传送类指令对PSW字节操作或用位操作指令改变RS1和RS0的状态,以切换当前工作寄存器组,以实现快速现场保护。
2 位寻址区(20H~2FH) 20H~2FH单元为位寻址区, 这16个单元(共计128位)的每1位都有一个8位表示的位地址, 位地址范围为00H~7FH
3 数据缓冲区 30H~7FH 30H~7FH是数据缓冲区,也即用户RAM区,共80个单元。用户变量的定义都是在该缓冲区内。数据缓冲区主要为用户进行字节操作指令时提供字节变量定义。
4 堆栈与堆栈指针 在程序实际运行中, 往往需要一个后进先出的RAM区, 在子程序调用、 中断服务处理等场合用以保护CPU的现场, 这种后进先出的缓冲区称为堆栈。 MCS—51单片机堆栈区不是固定的, 原则上可设在内部RAM的任意区域内, 但为了避开工作寄存器区和位寻址区, 一般设在60H以后的范围内 栈顶的位置由专门设置的堆栈指针寄存器SP(8位)指出。
MCS—51单片机在使用堆栈之前,先给SP赋值,以规定堆栈的起始地址,称为栈底。当数据压入堆栈后,SP自动加1,即RAM地址单元加1,以指出当前堆栈位置,8051的这种堆栈结构属向上生长型, 如下图 注:用户编程只需要规定栈底地址后,不对堆栈操作,堆栈操作由编译器完成。
2.4.5 特殊功能寄存器(SFR) 特殊功能寄存器SFR, 又称为专用寄存器。 它专用于控制、 管理单片机内算术逻辑部件、 并行I/O口锁存器、 串行口数据缓冲器、 定时器/计数器、 中断系统等功能模块的工作, SFR的地址空间为80H~FFH 先介绍部分特殊功能寄存器,其他在以后课程中介绍 1、累加器ACC(E0H) 2、寄存器B(F0H) 3、程序状态寄存器PSW(D0H) 4、堆栈与堆栈指针 5、数据指针寄存器DPTR 注:PC也为双字节寄存器,但是不在80H ~ FFH范围内
数据指针寄存器DPTR 16位寄存器,包括两个8位寄存器DPL和DPH,地址分别为82H和83H。DPTR既可以作为一个16位寄存器来处理,也可以作为两个独立的8位寄存器来使用。 DPTR主要用于访问外部RAM时作为地址指针,也可访问ROM中的表格常数。 注:单片机中唯一的16位寄存器 注:PC也为16位寄存器,但存在控制部件中,不属于特殊功能寄存器
2.5 并行输入/输出接口 1. P0口结构 P0口作为低八位地址/数据分时复用口, 也可作为通用I/O接口。P0口作为通用I/O使用时,必须外接上拉电阻
2.5 并行输入/输出接口 2、P1口结构 P1只有一种功能, 即通用输入输出I/O接口
2.5 并行输入/输出接口 3. P2口结构 P2口作为高八位地址线, 也可作为通用I/O接口。
2.5 并行输入/输出接口 4、P3口结构 P3除作为通用输入输出I/O接口,还拥有第二功能,大多数情况下P3口作为第二功能。