4.1 MCS-51系列及80C51系列单片机简介 4.2 80C51系列单片机外引脚功能 4.3 80C51单片机内部结构 4.4 低功耗运行方式 4.5 80C51单片机最小系统 本章小结
4.1 MCS-51系列及80C51系列单片机简介 4.1.1 MCS-51系列和80C51系列单片机 MCS是Intel公司单片机系列的符号。Intel公司推出有MCS-48、MCS-51、MCS-96系列单片机。其中MCS-51系列单片机典型机型包括51和52两个子系列,其内部组成如图所示。
MCS-51系列单片机内部组成
在51子系列中,主要有8031、8051、875l三种机型,基于HMOS工艺,它们的指令系统与芯片引脚完全兼容,只是片内程序存储器(ROM, Read Only Memory)有所不同。三种机型对应的低功耗CHMOS产品分别为80C31、80C51和87C51。
51子系列的主要功能为: 8位CPU。 片内带振荡器及时钟电路。 128B片内数据存储器。 4KB片内程序存储器(8031/80C31无)。 4×8根I/O线。 1个全双工串行I/O接口,可多机通信。
51子系列的主要功能为: (续) 2个16位定时器/计数器。 中断系统有5个中断源,可编程为两个优先级。 111条指令,含乘法指令和除法指令。 布尔处理器。 使用单+5V电源。
52子系列的产品主要有8032、8052、8752三种机型。与51子系列的不同之处在于:片内数据存储器增至256B,片内程序存储器增至8KB(8032/80C32无),有26B的特殊功能寄存器,有3个16位定时器/计数器,有6个中断源。其他性能均与5l子系列相同。其对应的低功耗CHMOS工艺器件分别为80C32、80C52和87C52。
本书所述的80C51系列单片机包括Intel公司和其他公司的51和52子系列。内部资源超出52子系列的单片机则称为新一代80C51系列单片机。
4.1.2 80C51系列单片机的命名规则 由于Intel公司对8051/52(80C51/52)内核采取了扩散政策,使得80C51和新一代80C51系列单片机发展为数十种系列、上百种产品,功能有强有弱。但内部程序存储器大多为OTP ROM和Flash ROM。了解它们的命名规则,对正确选择和使用80C51系列产品是十分重要的。 80C51系列单片机源于MCS-51系列,其他公司80C51系列单片机命名基本上是以Intel公司的80C51为参考,增加了公司标记。
新一代高性能80C51系列单片机。其主要发展技术如下: (1)提供不同类型的存储器。除掩模ROM、EPROM以外,还能提供EEPROM和Flash EEPROM。 (2)扩展存储器容量。目前ROM已扩至64KB,RAM扩至2KB。 (3)提高运行速度,时钟频率已达40MHz。 (4)发展低电压专用芯片,工作电压可低于1.8V。 (5)扩大接口功能,如设置高速I/O口,扩展I/O数量,增加外部中断源以及将ADC、PWM嵌入到片内。
4.1.3 80C51系列单片机的选择特性 程序存储器 单片机程序存储器用于存放单片机应用系统的目标程序,目标程序通过称之为商用编程器的工具写入单片机,该过程称为编程。单片机程序存储器目前供应的类型有EPROM、OTP ROM、Mask ROM和Flash EEPROM。容量有1KB、2KB、4KB、8KB、16KB、32KB和64KB等。由于EPROM型单片机使用不方便,现在已很少使用,普遍采用Flash EEPROM型单片机代替。
2. 数据存储器 单片机片内数据存储器目前供应的类型有SRAM静态数据存储器,少数单片机片内有EEPROM非易失性数据存储器。51子系列片内RAM有128B,52子系列片内RAM有256B,52子系列向下兼容51子系列,两者价格目前基本持平,选择52子系列在使用上更为方便灵活。
3. 功耗 许多公司都供应低电压的80C51系列单片机,具有低功耗的特点。如Atmel公司的AT89LV51和AT89LV52,它的工作电压范围为2.7V~6V,可直接替换相应的5V工作电压芯片。 4. 体积 在应用系统的空间有限时,可选择相应型号的PLCC和QFP封装的单片机,外围芯片当然也要选择小型封装。在无外围扩展时也可选择非总线型的单片机。如Atmel公司的AT89C4051、AT89C2051和AT89C1051,Philips公司的P87LPCXXX系列。
4.2 80C51系列单片机外引脚功能 常用两种封装为双列直插式DIP40和LCC44
图中,引脚1和引脚2的第二功能(方形封装为引脚2和引脚3)仅用于52子系列,NIC为空引脚。44脚方形封装有4个空引脚。有效引脚个数为40。但有的公司生产的44脚方形封装的单片机把4个空引脚用作P4口。
80C51的40条引脚,可分为端口线、电源线和控制线三类。在绘制电路原理图时,经常采用元器件的逻辑符号,80C51逻辑符号如图所示。
1. 端口线(4 × 8 = 32条) 2. 电源线(2条) 3. 控制线(6条) 8051有4个并行I/O端口,每个端口都有8条端口线,用于传送数据或地址。由于每个端口的结构各不相同,因此它们在功能和用途上的差别也较大,对它们的具体描述见主教材82页。 2. 电源线(2条) VCC为+5V电源线,VSS接地。 3. 控制线(6条) ALE、#EA、#PSEN、RST、XTAL1和XTAL2。
4. 地址、数据和控制:三总线结构
80C51三总线具有以下特点: (1)P0口的地址/数据复用。 (2)两个独立的并行扩展空间。 (3)外围数据存储器扩展的统一编址。
4.3 80C51单片机内部结构框图 80C51 CPU 振荡器和时序 OSC 64KB 总线 扩展控制器 数据存储器 256B RAM/SFR 2×16位 定时器/计数器 可编程I/O 程序存储器 4KBROM 可编程全双工 串行口 外中断 内中断 控制 并行口 串行通信 外部时钟源 外部事件计数
4.3.1 中央处理器CPU 单片机最核心的部分是CPU,可以说CPU是单片机的大脑和心脏。CPU的功能是产生控制信号,把数据从存储器或输入口传送到CPU或反向传送,还可对输入数据进行算术逻辑运算以及位操作处理,它由运算器、控制器和布尔(位)处理器组成。
4.3.2 存储器组织(哈佛结构) 而80C51在物理结构上有4个存储空间:片内程序存储器、片外程序存储器、片内数据存储器和片外数据存储器。但在逻辑上,即从用户使用的角度上,80C51有三个存储空间。
片内外统一编址的64 KB程序存储器地址空间 256 B片内数据存储器的地址空间 64KB片外数据存储器地址空间 在访问三个不同的逻辑空间时,应采用不同形式的指令(见指令系统),以产生不同的存储空间的选通信号。 下面分别叙述程序存储器和数据存储器的配置特点。
用户角度看80C51存储器配置
1. 程序存储器(51子序列) 程序存储器用于存放编好的程序或表格常数
在程序存储器中,以下单元具有特殊功能: 0000H:80C51复位后,PC = 0000H,即程序从 0000H开始执行指令。 0003H:外部中断0入口。 000BH:定时器0溢出中断入口。 0013H:外部中断1入口。 001BH:定时器1溢出中断入口。 0023H:串行口中断入口。 002BH:定时器2入口(仅52子系列有)。
使用时,通常在这些中断入口地址处存放一条跳转指令,使程序跳转到用户安排的中断程序起始地址。其他程序要避开上述中断入口地址。从0000H起始地址则跳转到用户设计的主程序入口地址。采用汇编语言编程的程序员需要精心安排这些地址,而C51编译器自动产生中断程序起始地址。
2. 数据存储器 数据存储器用于存放中间运算结果、数据暂存和缓冲、标志位等。 80C51系列单片机数据存储器有片内和片外之分。片内又有RAM和SFR之分,这几个部分的访问指令不同的,从这一点看,数据存储器的使用比程序存储器略微复杂点。采用C51语言编程则要简单许多。
51子系列数据存储器配置
52子系列数据存储器配置
这样可把数据存储器分为片外数据存储器、片内数据存储器、特殊功能存储器,以下分别加以介绍。 1)片内数据存储器 片内数据存储器分为工作寄存器区、位寻址区、数据缓冲器区等三个区域。如主教材90页表4.4所示。
(1)工作寄存器区 00H~1FH单元为工作寄存器区。工作寄存器也称通用寄存器,供用户编程时使用,临时寄存8位信息。 (2)位寻址区 20H~2FH单元是位寻址区,该区的每一位都赋予了一个位地址,
低128字节RAM区 高128字节SFR区
(3)数据缓冲区 30H~7FH是数据缓冲区,即用户RAM区,共80个单元。 (4)堆栈与堆栈指针 片内RAM的部分单元还可以用作堆栈。
2)特殊功能寄存器 所有单片机片内外设是依靠对内部特殊功能寄存器的操作实现其功能的,80C51也不例外,特殊功能寄存器(SFR, Special Function Register)也称专用寄存器,专用于控制、管理单片机内部算术逻辑部件、并行I/O口、串行I/O口、定时器/计数器、中断系统等功能模块的工作,用户在编程时可以置数设定,不能移作他用。
通过特殊功能寄存器可实现对单片机内部资源的操作和管理, 下面介绍常用特殊功能寄存器,其余将在后面的相关章节中介绍。
特殊功能寄存器SFR的位置
(1)程序状态字寄存器PSW PSW是8位寄存器,用作程序运行状态的标志,字节地址D0H,位地址格式如主教材93页表4.7所示。 (2)累加器ACC ACC是8位寄存器,通过暂存器与ALU相连。它是CPU中工作最繁忙的寄存器,因为在进行算术、逻辑类操作时,运算器的一个输入多为ACC,而运算器的输出即运算结果也大多要送到ACC中。在指令系统中累加器的助记符为A,作为直接地址时助记符为ACC。
(3)数据指针寄存器DPTR 由于80C51可以外接64 KB的数据存储器和I/O接口电路,因此在控制器中设置了一个16位的专用地址指针。它主要用以存放16位地址,作为间址寄存器使用。 (4)B寄存器 在乘、除法运算中用B寄存器暂存数据。 在其他指令中,B寄存器可作为RAM中的一个单元使用。B寄存器的地址为B0H。
(5)堆栈指针SP 堆栈是个特殊的存储区,主要功能是暂时存放数据和地址,通常用来保护断点和现场。它的特点是按照先进后出的原则存取数据,这里的进与出是指进栈与出栈操作。
假若有8个RAM单元,每个单元都在其右面编有地址,栈顶由堆栈指针SP自动管理。每次进行压入或弹出操作以后,堆栈指针便自动调整以保持指示堆栈顶部的位置。这些操作可用图说明。
注意:堆栈栈顶超出内部RAM单元时,会引起程序运行出错。对51子系列不要超出7FH,对52子系列不要超出FFH。这常常是单片机初学者和使用高级语言编程者易犯的错误之一。
(6)端口P0~P3 特殊功能寄存器P0~P3分别是I/O端口P0~P3的锁存器。80C51单片机是把I/O当作一般的特殊功能寄存器使用,不专设端口操作指令,使用方便。
4.3.3 并行输入/输出端口结构 1. P1口 Pl口只有一种功能:通用输入/输出接口。通用I/O接口有输出、输入和端口操作三种工作方式。 4.3.3 并行输入/输出端口结构 1. P1口 Pl口只有一种功能:通用输入/输出接口。通用I/O接口有输出、输入和端口操作三种工作方式。 P1口内部有上拉电阻,因此在输入时,即使由集电极开路电路或漏极开路电路驱动,也无需外接上拉电阻。
2. P2口 P2口有两种用途:通用I/O接口或高8位地址总线。图4.17是P2口1位的结构原理图,图中的模拟开关受内部控制信号控制,用于选择P2口的工作状态。
3. P3口 P3口1位的结构原理如图4.18所示,P3口除了作为准双向通用I/O接口使用外,每一根线还具有第二种功能,详见下表。
4. P0口 P0口有两种功能;地址/数据分时复用总线和通用I/O接口。 P0口作为准双向通用I/O接口使用时应外加上拉电阻。
【例4.1】 用89C52单片机的P1口驱动一位8段LED显示器。在8段LED显示器轮流显示字符0~F。 5. 并行输入/输出口编程举例 【例4.1】 用89C52单片机的P1口驱动一位8段LED显示器。在8段LED显示器轮流显示字符0~F。 汇编调试请参看CAI演示 C51调试请参看CAI演示
4.3.4 时钟电路
2. CPU时序 为了便于对CPU时序进行分析,人们按指令的执行过程规定了几种周期,即时钟周期、机器周期和指令周期。 80C51系列单片机的一个机器周期由6个S周期组成,也就是由12个时钟周期组成,所以80C51的机器周期为时钟频率的12分频。
4.3.5 复位电路 1)上电复位 2)上电+按键复位
3)同步复位电路 4)微处理器复位监控电路
复位后各特殊功能寄存器的状态
4.4 低功耗运行方式 80C51单片机具有两种低功耗运行方式: 待机(或称空闲)方式,电流一般为1.7mA~5mA; 4.4 低功耗运行方式 80C51单片机具有两种低功耗运行方式: 待机(或称空闲)方式,电流一般为1.7mA~5mA; 掉电(或称停机)方式,电流一般为5uA~50uA 待机方式和掉电方式的硬件结构电路如下图所示。待机方式和掉电方式通过电源控制寄存器PCON操作。
待机(或称空闲)方式和掉电(或称停机)方式都是由专用寄存器PCON(电源控制寄存器)中的有关位控制的。
4.5 80C51单片机最小系统 单片机最小系统就是能使单片机工作的最少的器件构成的系统,是大多数控制系统所必不可少的关键部分。
图4.27是由89C52构成的单片机最小系统。89C52单片机只需外接时钟电路和复位电路即可,P0~P3口为32个通用I/O口。使用P0口需要通过10k~20k电阻上拉到Vcc,图中未画出。
单片机通过三总线扩展外部接口电路。图4.28为80C32单片机的外部扩展总线。
将80C32单片机的外部扩展总线接到外部程序存储器的地址总线、数据总线和控制总线,即构成80C32单片机最小系统。
关于80C51单片机最小系统,这里仅是建立一个概念,说明其基本构成,关于单片机系统的构成方法及原理将在以后的章节中详细介绍。
本章小结 本章介绍了80C51单片机的基本组成,包括CPU的基本结构、存储器配置、输入/输出口、引脚说明以及单片机最小系统的组成。 80C51单片机的CPU分为运算器和控制器。运算器包括:算术运算部件ALU、累加器A、寄存器B和暂存器、程序状态字寄存器PSW。控制器主要用来控制整个单片机各部分协调工作,它包括程序计数器PC、数据指针DPTR、指令寄存器、指令译码器和定时控制逻辑电路等。