MCS-51系列单片机基本结构.ppt
第2章 单片机基础,2.1 概述2.2 MCS51系列单片机基本结构2.3 中央处理器CPU2.4 MCS51单片机存储器及存储空间2.5 并行输入/输出接口,2.1 概述,2.1.1 单片机的产生与发展 单片机出现的历史并不长,但发展十分迅猛。它的产生与发展和微处理器的产生与发展大体同步,自1971年美国Intel公司首先推出4位微处理器以来,它的发展到目前为止大致可分为5个阶段:,第1阶段(19711976):单片机发展的初级阶段。1971年11月Intel公司首先设计出集成度为2 000只晶体管/片的4位微处理器Intel 4004,并配有RAM、ROM和移位寄存器,构成了第一台MCS4微处理器,而后又推出了8位微处理器Intel 8008,以及其它各公司相继推出的8位微处理器。,第2阶段(19761980):低性能单片机阶段。以1976年Intel公司推出的MCS48系列为代表,采用将8位CPU、8位并行I/O接口、8位定时/计数器、RAM和ROM等集成于一块半导体芯片上的单片结构,虽然其寻址范围有限(不大于4 KB),也没有串行I/O,RAM、ROM容量小,中断系统也较简单,但功能可满足一般工业控制和智能化仪器、仪表等的需要。http:/www.lvfangguan.org,第3阶段(19801983):高性能单片机阶段。这一阶段推出的高性能8位单片机普遍带有串行口,有多级中断处理系统,多个16位定时器/计数器。片内RAM、ROM的容量加大,且寻址范围可达64 KB,个别片内还带有A/D转换接口。,第4阶段(198380年代末):16位单片机阶段。1983年Intel公司又推出了高性能的16位单片机MCS96系列,由于其采用了最新的制造工艺,使芯片集成度高达12万只晶体管/片。第5阶段(90年代):单片机在集成度、功能、速度、可靠性、应用领域等全方位向更高水平发展。,2.1.2单片机的应用 由于单片机具有体积小、重量轻、价格便宜、功耗低,控制功能强及运算速度快等特点,因而在国民经济建设、军事及家用电器等各个领域均得到了广泛的应用。按照单片机的特点,其应用可分为单机应用与多机应用。1.单机应用 在一个应用系统中,只使用1片单片机称为单机应用,这是目前应用最多的一种方式。单片机应用的主要领域有:http:/www.lvfangguan.org,(1)测控系统。用单片机可以构成各种不太复杂的工业控制系统、自适应控制系统、数据采集系统等,达到测量与控制的目的。(2)智能仪表。用单片机改造原有的测量、控制仪表,促进仪表向数字化、智能化、多功能化、综合化、柔性化方向发展。(3)机电一体化产品。单片机与传统的机械产品相结合,使传统机械产品结构简化,控制智能化。,(4)智能接口。在计算机控制系统,特别是在较大型的工业测、控系统中,用单片机进行接口的控制与管理,加之单片机与主机的并行工作,大大提高了系统的运行速度。(5)智能民用产品。如在家用电器、玩具、游戏机、声像设备、电子秤、收银机、办公设备、厨房设备等许多产品中,单片机控制器的引入,不仅使产品的功能大大增强,性能得到提高,而且获得了良好的使用效果。,2.多机应用 单片机的多机应用系统可分为功能集散系统、并行多机处理及局部网络系统。(1)功能集散系统。多功能集散系统是为了满足工程系统多种外围功能的要求而设置的多机系统。(2)并行多机控制系统。并行多机控制系统主要解决工程应用系统的快速性问题,以便构成大型实时工程应用系统。(3)局部网络系统。,2.1.3 单片机系列简介 目前世界上单片机生产厂商很多,如:Intel、Motorola、Philips、Siemens、NEC、ADM、Zilog等公司,其主流产品有几十个系列,几百个品种。尽管其各具特色,名称各异,但作为集CPU、RAM、ROM(或EPROM)、I/O接口、定时器/计数器、中断系统为一体的单片机,其原理大同小异。现以Intel公司的系列产品为例,说明各系列之间的区别。Intel公司从其生产单片机开始,发展到现在,大体上可分为3大系列:MCS48系列、MCS51系列、MCS96系列。该3大系列的性能简介见表21。,表21 Intel单片机系列性能简介,2.2 MCS51系列单片机基本结构,2.2.1 MCS51单片机系列 MCS51系列单片机虽已有10多种产品,但可分为两大系列:MCS51子系列与MCS52子系列。MCS51子系列中主要有8031、8051、8751 三种类型。而MCS52子系列也有3种类型8032、8052、8752。各子系列配置见表22所示。http:/www.lvfangguan.org,表22 MCS51系列单片机配置一览表,表22中列出了MCS51系列单片机的两个子系列,在4个性能上略有差异。由此可见,在本子系列内各类芯片的主要区别在于片内有无ROM或EPROM;MCS51与MCS52子系列间所不同的是片内程序存储器ROM从4 KB增至8 KB;片内数据存储器由128个字节增至256个字节;定时器/计数器增加了一个;中断源增加了12个。另外,对于制造工艺为CHMOS的单片机,由于采用CMOS技术制造,因此具有低功耗的特点,如8051功耗约为630 mW,而80C51的功耗只有120 mW。,2.2.2 MCS51系列单片机内部结构及功能部件 MCS51系列单片机的内部结构框图如图21所示。分析图21,并按其功能部件划分可以看出,MCS51系列单片机是由8大部分组成的。图22为按功能划分的MCS51系列单片机内部结构简化框图。这8大部分是:一个8位中央处理机CPU。128个字节(MCS52子系列为256字节)的片内数据存储器RAM。,4 KB(MCS52子系列为8 KB)的片内程序只读存储器ROM或EPROM(8031和8032无)。18个(MCS52子系列为21个)特殊功能寄存器SFR。4个8位并行输入输出I/O接口:P0口、P1口、P2口、P3口(共32线),用于并行输入或输出数据。1个串行I/O接口。2个(MCS52子系列为3个)16位定时器/计数器。,1个具有5个(MCS52子系列为6个或7个)中断源,可编程为2个优先级的中断系统。它可以接收外部中断申请,定时器/计数器中断申请和串行口中断申请。,图21 MCS51系列单片机内部结构框图,图22 MCS51系列单片机内部结构简化框图,2.2.3 单片机外部引脚说明 MCS51系列单片机芯片均为40个引脚,HMOS工艺制造的芯片采用双列直插(DIP)方式封装,其引脚示意及功能分类如图23所示。CMOS工艺制造的低功耗芯片也有采用方型封装的,但为44个引脚,其中4个引脚是不使用的。,图23 MCS51系列单片机引脚及总线结构(a)管脚图;(b)引脚功能分类,1.主电源引脚Vcc和Vss VCC(40脚):接+5 V电源正端;VSS(20脚):接+5 V电源地端。2.外接晶体引脚XTAL1和XTAL2 XTAL1(19脚):接外部石英晶体的一端。在单片机内部,它是一个反相放大器的输入端,这个放大器构成了片内振荡器。当采用外部时钟时,对于HMOS单片机,该引脚接地;对于CHMOS单片机,该引脚作为外部振荡信号的输入端。,XTAL2(18脚):接外部晶体的另一端。在单片机内部,接至片内振荡器的反相放大器的输出端。当采用外部时钟时,对于HMOS单片机,该引脚作为外部振荡信号的输入端;对于CHMOS芯片,该引脚悬空不接。,3.控制信号或与其它电源复用引脚 控制信号或与其它电源复用引脚有RST/VPD、和 等4种形式。(1)RST/VPD(9脚):RST即为RESET,VPD为备用电源,所以该引脚为单片机的上电复位或掉电保护端。(2)(30脚):当访问外部存储器时,ALE(允许地址锁存信号)以每机器周期两次的信号输出,用于锁存出现在P0口的低8位地址。,(3)(29脚):片外程序存储器读选通信号输出端,低电平有效。(4)(31脚):为访问外部程序存储器控制信号,低电平有效。,4.输入/输出(I/O)引脚P0口、P1口、P2口及P3口(1)P0口(39脚32脚):P0.0P0.7统称为P0口。(2)P1口(1脚8脚):P1.0P1.7统称为P1口,可作为准双向I/O接口使用。(3)P2口(21脚28脚):P2.0P2.7统称为P2口,一般可作为准双向I/O接口。(4)P3口(10脚17脚):P3.0P3.7统称为P3口。,表23 P3口第2功能表,2.3 中央处理器CPU,中央处理器是单片机内部的核心部件,它决定了单片机的主要功能特性。它由运算部件和控制部件两大部分组成。,2.3.1 运算部件 运算部件是以算术逻辑单元ALU为核心,加上累加器A、寄存器B、暂存器TMP1和TMP2、程序状态寄存器PSW及专门用于位操作的布尔处理机组成的(见图21),它能实现数据的算术逻辑运算,位变量处理和数据传送操作。1.算术逻辑单元ALU与累加器ACC、寄存器B 算术逻辑单元ALU不仅能完成8位二进制数的加(带进位加)、减(带借位减)、乘、除、加1、减1及BCD加法的十进制调整等算术运算,还能对8位变量进行逻辑“与”、“或”、“异或”、求补、清零等逻辑运算,并具有数据传送,程序转移等功能。累加器ACC简称累加器A,为一个8位寄存器,它是CPU中使用最频繁的寄存器。进入ALU作算术和逻辑运算的操作数多来自于A,运算结果也常送回A保存。寄存器B是为ALU进行乘除法设置的。2.程序状态字 程序状态字寄存器PSW(8位)是一个标志寄存器,它保存指令执行结果的特征信息,以供程序查询和判别。其程序状态字格式及含义如下:http:/www.lvfangguan.org,CY(PSW.7)进位标志位。AC(PSW.6)辅助进位(或称半进位)标志。F0(PSW.5)由用户定义的标志位。RS1(PSW.4)、RS0(PSW.3)工作寄存器组选择位。OV(PSW.2)溢出标志位。由硬件置位或清零。,PSW.7,PSW.0,PSW.1未定义位。P(PSW.0)奇偶标志位。3.布尔处理机 布尔处理(即位处理)是MCS51单片机ALU所具有的一种功能。单片机指令系统中的布尔指令集(17条位操作指令),存储器中的位地址空间,以及借用程序状态标志寄存器PSW中的进位标志CY作为位操作“累加器”,构成了单片机内的布尔处理机。,2.3.2 控制部件及振荡器 控制部件是单片机的神经中枢,它包括定时和控制电路、指令寄存器、译码器以及信息传送控制等部件。单片机的定时控制功能是由片内的时钟电路和定时电路来完成的,而片内的时钟产生有两种方式:一种是内部时钟方式;一种是外部时钟方式,如图24(a)、(b)所示。,图24 HMOS型MCS51单片机时钟产生方式(a)内部振荡器方式;(b)外部振荡器方式,采用内部时钟方式时,如图24(a)所示。片内的高增益反相放大器通过XTAL1、XTAL2外接作为反馈元件的片外晶体振荡器(呈感性)与电容组成的并联谐振回路构成一个自激振荡器,向内部时钟电路提供振荡时钟。振荡器的频率主要取决于晶体的振荡频率,一般晶体可在1.212 MHz之间任选,电容C1、C2可在530 pF之间选择,电容的大小对振荡频率有微小的影响,可起频率微调作用。http:/www.lvfangguan.org,2.4 MCS51单片机存储器及存储空间,2.4.1 MCS51单片机存储器分类及配置 MCS51单片机存储器的分类从物理结构上可分为:片内、片外程序存储器(8031和8032没有片内程序存储器)与片内、片外数据存储器4个部分;从寻址空间分布可分为:程序存储器、内部数据存储器和外部数据存储器3大部分;从功能上可分为:程序存储器、内部数据存储器、特殊功能寄存器、位地址空间和外部数据存储器5大部分。,MCS51系列单片机存储器的配置除表22所示的片内ROM(或EPROM)和RAM外,另外还有128个字节的RAM区作为特殊功能寄存器(SFR)区。片内、片外程序存储器和数据存储器各自总容量为64 KB。MCS51系列单片机存储器系统空间结构如图25所示。,图25 MCS51单片机存储器空间结构图(a)程序存储器;(b)内部数据存储器;(c)外部数据存储器,2.4.2 程序存储器 1.程序存储器的编址 计算机的工作是按照事先编制好的程序命令一条条循序执行的,程序存储器就是用来存放这些已编好的程序和表格常数,它由只读存储器ROM或EPROM组成。2.程序运行的入口地址 实际应用时,程序存储器的容量由用户根据需要扩展,而程序地址空间原则上也可由用户任意安排。但程序最初运行的入口地址,MCS51单片机是固定的,用户不能更改。程序存储器中有复位和中断源共7个固定的入口地址见表24。http:/www.lvfangguan.org,表24 MCS51单片机复位、中断入口地址,单片机复位后程序计数器PC的内容为0000H,故必须从0000H单元开始取指令来执行程序。0000H单元是系统的起始地址,一般在该单元存放一条无条件转移指令,用户设计的程序是从转移后的地址开始存放执行的。,2.4.3 内部数据存储器 1.内部数据存储器的编址 MCS51系列单片机的内部数据存储器由读写存储器RAM组成,用于存储数据。它由RAM块和特殊功能寄存器(SFR)块组成,其结构如图25(b)所示。2.内部数据存储器RAM块 由图25(b)可见,内部数据存储器RAM块共分为工作寄存器区、位寻址区和数据缓冲区3个部分。,1)工作寄存器区 内部RAM块的00H1FH区,共分4个组,每组有8个工作寄存器R0R7,共32个内部RAM单元。寄存器和RAM地址的对应关系如表25所示。,表25 工作寄存器和RAM地址对照表,工作寄存器共有4组,但程序每次只用1组,其它各组不工作。哪1组寄存器工作由程序状态字PSW中的PSW.3(RS0)和PSW.4(RS1)两位来选择,其对应关系如表26所示。CPU通过软件修改PSW中RS0和RS1两位的状态,就可任选一个工作寄存器工作,这个特点使MCS51单片机具有快速现场保护功能,对于提高程序的效率和响应中断的速度是很有利的。若程序中并不要4个工作寄存器组,那么剩下的工作寄存器组所对应的单元也可以作为一般的数据缓冲区使用。,表26 工作寄存器组的选择表,2)位寻址区 20H2FH单元为位寻址区,这16个单元(共计128位)的每1位都有一个8位表示的位地址,位地址范围为00H7FH,如表27所示。位寻址区的每1位都可当作软件触发器,由程序直接进行位处理。通常可以把各种程序状态标志,位控制变量存于位寻址区内。同样,位寻址的RAM单元也可以按字节操作作为一般的数据缓冲 http:/www.lvfangguan.org,表27 内部RAM中位地址表,3)数据缓冲区 30H7FH是数据缓冲区,也即用户RAM区,共80个单元。MCS52子系列片内RAM有256个单元,前两个的单元数与地址都和MCS51子系列一致。用户RAM区从30HFFH,共208个单元。,4)堆栈与堆栈指针 在程序实际运行中,往往需要一个后进先出的RAM区,在子程序调用、中断服务处理等场合用以保护CPU的现场,这种后进先出的缓冲区称为堆栈。MCS51单片机堆栈区不是固定的,原则上可设在内部RAM的任意区域内,但为了避开工作寄存器区和位寻址区,一般设在30H以后的范围内,栈顶的位置由专门设置的堆栈指针寄存器SP(8位)指出。MCS51单片机的堆栈属向上生长型,如图26所示。,图26 MCS51单片机堆栈,3.特殊功能寄存器SFR块 特殊功能寄存器SFR,又称为专用寄存器。它专用于控制、管理单片机内算术逻辑部件、并行I/O口锁存器、串行口数据缓冲器、定时器/计数器、中断系统等功能模块的工作,SFR的地址空间为80HFFH。,表28 特殊功能寄存器名称、标识符、地址一览表,4.位寻址空间 在MCS51单片机的内部数据寄存器RAM块和特殊功能寄存器SFR块中,有一部分地址空间可以按位寻址,按位寻址的地址空间又称之为位寻址空间。位寻址空间一部分在内部RAM的20H2FH的16个字节内,共128位;另一部分在SFR的80HFFH空间内,凡字节地址能被8整除的专用寄存器都有位地址,共93位。因此,MCS51系列单片机共有221个可寻址位,其位地址见表27、表28所示。,2.4.4 外部数据存储器 外部数据存储器一般由静态RAM芯片组成。扩展存储器容量的大小,由用户根据需要而定,但MCS51单片机访问外部数据存储器可用1个特殊功能寄存器数据指针寄存器DPTR进行寻址。由于DPTR为16位,可寻址的范围可达64 KB,所以扩展外部数据存储器的最大容量是64 KB。http:/www.lvfangguan.org,2.5 并行输入/输出接口,2.5.1 P0口 1.P0口结构 P0口是一个三态双向口,可作为地址/数据分时复用口,也可作为通用I/O接口。其1位的结构原理如图27所示。P0口由8个这样的电路组成:锁存器起输出锁存作用,8个锁存器构成了特殊功能寄存器P0;场效应管(FET)V1、V2组成输出驱动器,以增大带负载能力;三态门1是引脚输入缓冲器;三态门2是用于读锁存器端口;与门3、倒相器4及模拟转换开关构成输出控制电路。,图27 P0口1位结构原理图,2.地址/数据分时复用功能 当P0口作为地址/数据分时复用总线时,可分为两种情况:一种是从P0口输出地址或数据,另一种是从P0口输入数据。在访问片外存储器需从P0输出地址或数据信号时,控制信号应为高电平1,使转换开关MUX把反向器4的输出端与V1接通,同时把与门3打开。,3.通用I/O接口功能 当P0口作为通用I/O接口使用,在CPU向端口输出数据时,对应的控制信号为0,转换开关把输出级与锁存器 端接通,同时因与门3输出为0使V2截止,此时,输出级是漏极开路电路。当P0口作为通用I/O接口时,要注意两点:第一,在输出数据时,由于V2截止,输出级是漏极开路电路,要使“1”信号正常输出,必须外接上拉电阻。第二,P0口作为通用I/O使用时是一准双向口。,4.端口操作 MCS51单片机有不少指令可直接进行端口操作,例如:ANL P0,A;(P0)(P0)(A)ORL P0,data;(P0)(P0)data DELP0;(P0)(P0)1,2.5.2 P1口 P1口为准双向口,其1位的内部结构如图28所示。它在结构上与P0口的区别在于输出驱动部分,其输出驱动部分由场效应管V1与内部上拉电阻组成。当其某位输出高电平时,可以提供拉电流负载,不必象P0口那样需要外接电阻。从功能上来看P1只有一种功能(对MCS51子系列),即通用输入输出I/O接口,具有输入、输出、端口操作3种工作方式,每1位口线能独立地用作输入或输出线。,图28 P1口的结构原理图,2.5.3 P2口 P2口也是一准双向口,其1位的内部结构如图29所示。它具有通用I/O接口或高8位地址总线输出两种功能,所以其输出驱动结构比P1口输出驱动结构多了一个输出模拟转换开关MUX和反相器3。,图29 P2口的结构原理图,当作为准双向通用I/O接口使用时,控制信号使转换开关接向左侧,锁存器Q端经反相器3接V1,其工作原理与P1相同,也具有输入、输出、端口操作三种工作方式,负载能力也与P1口相同。2.5.4 P3口 P3口的1位结构如图210所示。它的输出驱动由与非门3、V1组成,比P0、P1、P2口结构多了一个缓冲器4。P3口除了可作为通用准双向I/O接口外,每1根线还具有第2功能。,当P3口作为通用I/O接口时,第2功能输出线为高电平,使与非门3的输出取决于口锁存器的状态。在这种情况下,P3口仍是1个准双向口,它的工作方式、负载能力均与P1、P2口相同。当P3口作为第2功能(各引脚功能见表23)使用时,其锁存器Q端必须为高电平,否则V1管导通,引脚被箝位在低电平,无法输入或输出第2功能信号。当Q端为高电平时,P3口的口线状态就取决于第2功能输出线的状态。,图210 P3口的结构原理图,2.6.1 CPU时序 计算机在执行指令时,通常将一条指令分解为若干基本的微操作,这些微操作所对应的脉冲信号在时间上的先后次序称为计算机的时序。为便于理解时序,先介绍几个常用名词。振荡周期:为单片机提供定时信号的振荡源的周期(晶振周期或外加振荡源周期)。状态周期:2个振荡周期为1个状态周期,用S表示。,机器周期:1个机器周期含6个状态周期,用S1、S2、S6表示,共有12个节拍。例如:外接晶振为12 MHz时,MCS51单片机的4个时间周期的具体值为:振荡周期=1/12 s;状态周期=1/6 s;机器周期=1 s;指令周期=14 s。MCS51单片机的CPU取指令和执行指令的时序如图211所示。http:/www.lvfangguan.org,图211 MCS51单片机CPU取指/执行时序,单周期指令的执行从S1P2开始,在S1P2期间读入操作码并把它锁存到指令寄存器中。双字节指令,则在同一机器周期的S4期间读出第2个字节。对于单字节指令在S4处仍有一次读操作,但这时读出的字节(下一条指令的操作码)是不予考虑的,而且程序计数器PC也不加1。对于单周期指令,在上述任何情况下,指令都在S6P2期间完成操作。图211 中的(a)和(b)分别表示单字节单周期和双字节单周期指令的执行时序。,图211(c)表示单字节双周期指令的时序,单字节双周期指令在两个机器周期内作4次读操作码的操作,由于是单字节指令,后3次读操作是无效的。图211(d)表示执行访问外部数据存储器指令MOVX的时序,这是一条单字节双周期指令,具有其特殊性。,2.6.2 复位电路与复位状态 1.复位电路 通过某种方式,使单片机内各寄存器的值变为初始状态的操作称为复位。MCS51单片机在时钟电路工作以后,在RST/VPD端持续给出2个机器周期的高电平就可以完成复位操作(一般复位正脉冲宽度大于10 ms)。复位分为上电复位和外部复位两种方式。,图212 MCS51单片机复位参考电路(a)上电复位电路;(b)上电/外部复位电路,2.复位状态 MCS51单片机复位后,程序计数器PC和特殊功能寄存器复位的状态如表29所示。复位不影响片内RAM存放的内容,而ALE、在复位期间将输出高电平。由表29可以看出:(1)(PC)=0000H 表示复位后程序的入口地址为0000H;(2)(PSW)=00H,其中RS1(PSW.4)=0,RS0(PSW.3)=0,表示复位后单片机选择工作寄存器0组;,(3)(SP)=07H 表示复位后堆栈在片内RAM的08H单元处建立;(4)P0口P3口锁存器为全1状态,说明复位后这些并行接口可以直接作输入口,无须向端口写1;(5)定时器/计数器、串行口、中断系统等特殊功能寄存器复位后的状态对各功能部件工作状态的影响,将在后续有关章节介绍。,表29 PC与SFR复位状态表,