本章介绍MCS-51单片机的硬件结构与工作原理。熟悉并理解硬件结构对于应用设计者是十分重要的,因为它是单片机应用系统设计的基础。通过本章的学习,可以使读者对MCS-51单片机的硬件功能、系统结构、存储器结构、I/O端口、复位电路、CPU时序、CPU引脚功能及单片机的工作方式有较为全面的了解。
MCS-51系列单片机是Intel公司生产的一系列单片机的总称,是非常成功的产品。这一系列单片机包括了很多品种,如8031、8051、8751、8032、8052、8752等,其中8051是最早、最典型的产品,该系列的其他单片机都是在8051的基础上进行功能的增、减、改变而来的,所以人们习惯于用8051来称呼MCS-51系列单片机。而8031是前些年在我国最流行的单片机,所以很多场合会看到8031的名称。MCS-51具有性能价格比高、稳定、可靠、高效等特点。自从Intel公司将MCS-51的核心技术授权给很多其他公司以来,不断有其他公司生产各种与MCS-51兼容或者具有MCS-51内核的单片机,如AT89C51就是这几年在我国非常流行的单片机,它是由美国ATMEL公司开发生产的。
MCS-51系列单片机是Intel公司在1980年推出的一档8位单片机,在MCS-51系列中有两个子系列,即51子系列和52子系列,每个子系列内又可分为片内无程序存储器和片内含程序存储器两类,它们除了在程序存储器上不同之外,其结构和功能基本相同。下面主要以片内有程序存储器的8051单片机为研究对象,来介绍其主要特性和内部结构。
在MCS-51子系列中,主要有8031、8051、8751这3种同档次机型,它们的指令系统与芯片引脚完全兼容,仅片内程序存储器(ROM)大小有所不同。图2-1所示为MCS-51子系列单片机的基本结构框图。
MCS-51子系列系统的主要特性如下:
(1)有1个由运算器和控制器组成的8位微处理器(CPU)。
(2)有128B的片内数据存储器(RAM),可用来存放运算的中间结果和最终结果。
(3)有4KB的片内程序存储器(ROM),可用来存放程序及一些原始数据和表格。
(4)扩展片外数据存储器的寻址范围可达到64KB。
(5)扩展片外程序存储器的寻址范围可达到64KB。
(6)有21个专用寄存器,主要用来实现对内部功能部件的控制和数据运算。
(7)有4个8位并行I/O接口P0、P1、P2、P3,既可用作输入,也可用作输出。
图2-1 MCS-51单片机的基本结构示意图
(8)有1个全双工UART(通用异步接收发送器)串行I/O接口,可用于单片机之间或单片机与微机之间的串行通信。
(9)有2个16位定时器/计数器,可用于根据确定的时间间隔或对外部事件计数的多少发出控制信号。
(10)中断系统有5个中断源,可编程为两个优先级。
(11)共有111条指令,含有乘法指令和除法指令。
(12)有很强的位寻址、位处理能力。
(13)片内采用单总线结构。
(14)片内带振荡器,振荡频率的范围为1.2 MHz~12MHz,可有输出。
(15)用单+5V电源。
52子系列是51子系列的增强型,主要有8032、8052和8752这3种机型,它与51子系列的不同在于:片内数据存储器增至256B;片内程序存储器增至8KB(8032无片内程序存储器);有3个16位定时器/计数器;有6个中断源。其他性能均与51子系列相同。
MCS-51片内总体结构的详细框图如图2-2所示。MCS-51片内主要包括以下部件。
· 1个8位的微处理器CPU。
· 可选择的4KB/8KB的程序存储器(ROM/EPROM)。
· 128B/256B的数据存储器(RAM)。
· 32条I/O口线(4个8位口P0、P1、P2、P3)。
· 2个或3个定时器/计数器。
· 1个具有5个中断源、两个优先级的中断嵌套结构。
· 1个全双工的串行通信端口。
· 特殊功能寄存器以及一个振荡器和时钟电路。
各部分通过芯片内部总线相连接。
图2-2 MCS-51片内总体结构框图
MSC-51单片机有多种封装形式,其中以双列直插式塑料封装(DIP)为主。下面以8051的DIP封装为对象介绍其引脚,如图2-3所示。
8051共有40个引脚,图中P0.0~P0.7、P1.0~P1.7、P2.0~P2.7、P3.0~P3.7为4个8位并行输入输出端口,其中P3口、P0口和P2口为双功能口,可以作为普通输入输出口(第一功能),也可以作为特殊输入输出口。
PLCC封装为引脚2和3的第二功能仅用于8052/8032。
MCS-51有40条引脚,共分为端口线、电源线和控制线3类。
图2-3 MCS-51单片机引脚定义及逻辑符号图
MCS-51共有4个并行I/O端口,每个端口都有8条端口线,用于传送数据/地址或其他信息。由于每个端口的结构各不相同,因此它们在功能和用途上的差别很大。现对它们综述如下。
(1)P0.0~P0.7。
这组引脚共有8条,为P0口专用,其中P0.7为最高位,P0.0为最低位。这8条引脚共有两种不同的功能,分别使用于两种不同情况下。第一种情况是MCS-51不带片外存储器的型号,P0口作为通用I/O口使用,P0.7~P0.0用于传送CPU的输入/输出数据。这时输出数据可以得到锁存,不需外接专用锁存器,输入数据可以得到缓冲,增加了数据输入的可靠性。第二种情况是带片外程序存储器的,P0.7~P0.0在CPU访问片外存储器时先是用于传送片外存储器的低8位地址,然后传送CPU对片外存储器的读或写数据。
8751的P0口还有第三种功能,即它们可以用来给8751片内EPROM编程或进行编程后的读出校验。这时,P0.7~P0.0用于传送EPROM的编程机器码或读出校验码。
(2)P1.0~P1.7。
这8条引脚和P0口的8条引脚类似,P1.7为最高位,P1.0为最低位。当P1口作为通用I/O使用时,P1.0~P1.7的功能和P0口的第一功能相同,也用于传送用户的输入/输出数据。
8751的P1口还有第二功能,即它在8751编程/校验时用于输入片内EPROM的高8位(实际是高4位)地址。
(3)P2.0~P2.7。
这组引脚的第一功能和上述两组引脚的第一功能相同,即它可以作为通用I/O口使用。它的第二功能和P0口引脚的第二功能相配合,用于输出片外存储器的高8位地址,共同选中片外存储器单元,但并不能像P0口那样还可以传送存储器的读/写数据。
8751的P2.0~P2.7还有第三种功能,即它可以配合P1.0~P1.7传送片内EPROM12位地址中的低8位地址。
(4)P3.0~P3.7。
这组引脚的第一功能和上述3个端口的第一功能相同。第二功能作控制用,每个引脚并不完全相同。
VCC为+5 V电源线,VSS为地线。
(1)ALE/。
地址锁存允许/编程线,配合P0口引脚的第二种功能使用。在访问片外存储器时,MCS-51 CPU在P0.7~P0.0引脚线上输出片外存储器低8位地址的同时还在ALE/线上输出一个高电位脉冲,用于把这个片外存储器低8位地址锁存到外部专用地址锁存器,以便空出P0.7~P0.0引脚线去传送随后而来的片外存储器读/写数据。在不访问片外存储器时,MCS-51自动在ALE/输出频率为的脉冲序列。该脉冲序列可用作外部时钟源或作为定时脉冲源使用。
8751的ALE/还具有第二功能,即它可以在对8751片内EPROM编程/校验时传送5ms宽的负脉冲。
(2)/VPP。
允许访问片外存储器/编程电源线,可以控制MCS-51使用片内ROM还是使用片外ROM。若=l,则允许使用片内ROM;若=0,则只能使用片外ROM。
8751的/VPP用于在片内EPROM编程/校验时输入21 V或12.5 V的编程电源。
(3)。
片外ROM选通线,在执行访问片外ROM的指令MOVC时,MCS-51自动在上产生一个负脉冲,用于为片外ROM芯片的选通。其他情况下,均为高电平封锁状态。
(4)RST/VPD。
复位/备用电源线,可以使MCS-51处于复位(即初始化)工作状态。通常,MCS-51的复位有上电自动复位和人工按钮复位两种。
在单片机应用系统中,除单片机本身需要复位以外,外部扩展I/O接口电路等也需要复位,因此需要一个包括上电和按钮复位在内的系统同步复位电路。
RST/VPD的第二功能是作为备用电源输入端。当主电源VCC发生故障而降低到规定低电位时,RST/VPD线上的备用电源自动投入,以保证片内RAM中信息不丢失。
(5)XTALl和XTAL2。
片内振荡电路输入/输出线,这两个引脚用来外接石英晶体和微调电容,即用来连接MCS-51片内OSC的定时反馈回路。