《MCS-51单片机芯片的结构及原理.ppt》由会员分享,可在线阅读,更多相关《MCS-51单片机芯片的结构及原理.ppt(79页珍藏版)》请在三一办公上搜索。
1、2.1 单片机的基本结构 2.2 MCS-51单片机结构与原理 2.3 并行输入/输出口电路结构 2.4 时钟电路与复位电路,返回主目录,第2章 MCS-51单片机芯片的结构和原理,2.1 单片机的基本结构 单片微型计算机是指集成在一个芯片上的微型计算机,也就是把组成微型计算机的各种功能部件,包括CPU(Central Processing Unit)、随机存取存储器RAM(Random Access Memory)、只读存储器ROM(Read-only Memory)、基本输入/输出(Input/Output)接口电路、定时器/计数器等部件都制作在一块集成芯片上,构成一个完整的微型计算机,从
2、而实现微型计算机的基本功能。单片机内部结构示意图如图所示。,单片机内部结构示意图,单片机实质上是一个芯片。在实际应用中,通常很难将单片机直接和被控对象进行电气连接,必须外加各种扩展接口电路、外部设备、被控对象等硬件和软件,才能构成一个单片机应用系统。图1.3 单片机应用系统的组成单片机实质上是一个芯片。在实际应用中,通常很难将单片机直接和被控对象进行电气连接,必须外加各种扩展接口电路、外部设备、被控对象等硬件和软件,才能构成一个单片机应用系统。,2.1.1 单片机应用系统及组成 单片机应用系统是以单片机为核心,配以输入、输出、显示、控制等外围电路和软件,能实现一种或多种功能的实用系统。单片机应
3、用系统是由硬件和软件组成的,硬件是应用系统的基础,软件则在硬件的基础上对其资源进行合理调配和使用,从而完成应用系统所要求的任务,二者相互依赖,缺一不可。单片机应用系统的组成如图所示。,单片机应用系统的组成,由此可见,单片机应用系统的设计人员必须从硬件和软件两个角度来深入了解单片机,并能够将二者有机结合起来,才能形成具有特定功能的应用系统或整机产品。,2.1.2 MCS-51单片机系列 尽管各类单片机很多,但无论是从世界范围或是从全国范围来看,使用最为广泛的应属MCS-51单片机。基于这一事实,本课以应用最为广泛的MCS-51系列8位单片机(8051)为研究对象,介绍单片机的硬件结构、工作原理及
4、应用系统的设计。MCS-51单片机系列共有十几种芯片,如表所示。,MCS-51系列单片机分类表,表中列出了MCS-51单片机系列的芯片型号,以及它们的技术性能指标,使我们对它们的基本情况有了一个概括的了解。下面我们就在这个表的基础上对MCS-51系列单片机作进一步说明。151子系列和52子系列 MCS-51系列又分为51和52两个子系列,并以芯片型号的最末位数字作为标志。其中,51子系列是基本型,而52子系列则属增强型。52子系列功能增强的具体方面,从表所列内容中可以看出:,(1)片内ROM从4 KB增加到8 KB。(2)片内RAM从128 B增加到256 B。(3)定时/计数器从2个增加到3
5、个。(4)中断源从5个增加到6个。在52子系列的内部ROM中,以掩膜方式集成有8 KB BASIC解释程序,这就是通常所说的8052-BASIC。这意味着单片机已可以使用高级语言。该BASIC与基本BASIC相比,增加了一些控制语句,以满足单片机作为控制机的需要。,2片内ROM存储器配置形式 MCS-51单片机片内程序存储器有三种配置形式,即掩膜ROM、EPROM和无ROM。这三种配置形式对应三种不同的单片机芯片,它们各有特点,也各有其适用场合,在使用时应根据需要进行选择。一般情况下,片内带掩膜型ROM适用于定型大批量应用产品的生产;片内带EPROM适合于研制产品样机;外接EPROM的方式适用
6、于研制新产品。最近,Intel公司又推出片内带EEPROM型的单片机,可以在线写入程序。,2.2 MCS-51单片机结构和原理,2.2.1 MCS-51单片机的内部组成及信号引脚 MCS-51单片机的典型芯片是8031、8051、8751。8051内部有4 KB ROM,8751内部有4KB EPROM,8031内部无ROM;除此之外,三者的内部结构及引脚完全相同。因此,以8051为例,说明本系列单片机的内部组成及信号引脚。18051单片机的基本组成 8051单片机的基本组成请参见图。下面介绍各部分的基本情况。,1)中央处理器(CPU)中央处理器是单片机的核心,完成运算和控制功能。MCS-51
7、的CPU能处理8位二进制数或代码。2)内部数据存储器(内部RAM)8051芯片中共有256个RAM单元,但其中后128单元被专用寄存器占用,能作为寄存器供用户使用的只是前128单元,用于存放可读写的数据。因此通常所说的内部数据存储器就是指前128单元,简称内部RAM。,MCS-51 单片机结构框图,3)内部程序存储器(内部ROM)8051共有4 KB掩膜ROM,用于存放程序、原始数据或表格,因此,称之为程序存储器,简称内部ROM。4)定时/计数器 8051共有两个16位的定时/计数器,以实现定时或计数功能,并以其定时或计数结果对计算机进行控制。5)并行I/O口 MCS-51共有4个8位的I/O
8、口(P0、P1、P2、P3),以实现数据的并行输入/输出。,6)串行口 MCS-51单片机有一个全双工的串行口,以实现单片机和其它设备之间的串行数据传送。该串行口功能较强,既可作为全双工异步通信收发器使用,也可作为同步移位器使用。7)中断控制系统 MCS-51单片机的中断功能较强,以满足控制应用的需要。8051共有5个中断源,即外中断两个,定时/计数中断两个,串行中断一个。全部中断分为高级和低级共两个优先级别。8)时钟电路 MCS-51芯片的内部有时钟电路,但石英晶体和微调电容需外接。时钟电路为单片机产生时钟脉冲序列。系统允许的晶振频率一般为6 MHz和12 MHz。,从上述内容可以看出,MC
9、S-51虽然是一个单片机芯片,但作为计算机应该具有的基本部件它都包括,因此,实际上它已是一个简单的微型计算机系统了。2.MCS-51的信号引脚 MCS-51是标准的40引脚双列直插式集成电路芯片,引脚排列请参见图。1)信号引脚介绍 P0.0 P0.7:P0口8位双向口线。P1.0 P1.7:P1口8位双向口线。P2.0 P2.7:P2口8位双向口线。P3.0 P3.7:P3口8位双向口线。,MCS-51引脚图,ALE:地址锁存控制信号。在系统扩展时,ALE用于控制把P0口输出的低8位地址锁存起来,以实现低位地址和数据的隔离。此外,由于ALE是以晶振1/6的固定频率输出的正脉冲,因此,可作为外部
10、时钟或外部定时脉冲使用。:外部程序存储器读选通信号。在读外部ROM时,有效(低电平),以实现外部ROM单元的读操作。:访问程序存储控制信号。当信号为低电平时,对ROM的读操作限定在外部程序存储器;当信号为高电平时,对ROM的读操作是从内部程序存储器开始,并可延至外部程序存储器。,RST:复位信号。当输入的复位信号延续两个机器周期以上的高电平时即为有效,用以完成单片机的复位初始化操作。XTAL1和XTAL2:外接晶体引线端。当使用芯片内部时钟时,此二引线端用于外接石英晶体和微调电容;当使用外部时钟时,用于接外部时钟脉冲信号。VSS:地线。VCC:+5 V电源。,2)信号引脚的第二功能 由于工艺及
11、标准化等原因,芯片的引脚数目是有限制的。例如,MCS-51系列把芯片引脚数目限定为40条,但单片机为实现其功能所需要的信号数目却远远超过此数,因此就出现了需要与可能的矛盾。如何解决这个矛盾?“兼职”是惟一可行的办法,即给一些信号引脚赋以双重功能。如果把前述的信号定义为引脚第一功能的话,则根据需要再定义的信号就是它的第二功能。下面介绍一些信号引脚的第二功能。,(1)P3口线的第二功能。P3的8条口线都定义有第二功能。(2)EPROM存储器程序固化所需要的信号。有内部EPROM的单片机芯片(例如8751),为写入程序需提供专门的编程脉冲和编程电源,这些信号也是由信号引脚以第二功能的形式提供的,即:
12、编程脉冲:30脚(ALE/)编程电压(25 V):31脚(/VPP),P3口各引脚与第二功能表,(3)备用电源引入。MCS-51单片机的备用电源也是以第二功能的方式由9脚(RST/VPD)引入的。当电源发生故障,电以保护内部RAM中的信息不丢失。以上把MCS-51单片机的全部信号引脚分别以第一功能和第二功能的形式列出。对于各种型号的芯片,其引脚的第一功能信号是相同的,所不同的只在引脚的第二功能信号。对于9、30和31三个引脚,由于第一功能信号与第二功能信号是单片机在不同工作方式下的信号,因此不会发生使用上的矛盾。但是P3口的情况却有所不同,它的第二功能信号都是单片机的重要控制信号。因此,在实际
13、使用时,都是先按需要选用第二功能信号,剩下的才以第一功能的身份作数据位的输入/输出使用。,2.2.2 MCS-51内部数据存储器 MCS-51单片机的芯片内部有RAM和ROM两类存储器,即所谓的内部RAM和内部ROM,首先分析内部RAM。1.内部数据存储器低128单元 8051的内部RAM共有256个单元,通常把这256个单元按其功能划分为两部分:低128单元(单元地址00H7FH)和高128单元(单元地址80HFFH)。图所示为低128单元的配置图。,片内RAM的配置,低128单元是单片机的真正RAM存储器,按其用途划分为存器区、位寻址区和用户RAM区三个区域。1)寄存器区 8051共有4组
14、寄存器,每组8个寄存单元(各为8),各组都以R0R7作寄存单元编号。寄存器常用于存放操作数中间结果等。由于它们的功能及使用不作预先规定,因此称之为通用寄存器,有时也叫工作寄存器。4组通用寄存器占据内部RAM的00H1FH单元地址。在任一时刻,CPU只能使用其中的一组寄存器,并且把正在使用的那组寄存器称之为当前寄存器组。到底是哪一组,由程序状态字寄存器PSW中RS1、RS0位的状态组合来决定。,通用寄存器为CPU提供了就近存储数据的便利,有利于提高单片机的运算速度。此外,使用通用寄存器还能提高程序编制的灵活性,因此,在单片机的应用编程中应充分利用这些寄存器,以简化程序设计,提高程序运行速度。2)
15、位寻址区 内部RAM的20H2FH单元,既可作为一般RAM单元使用,进行字节操作,也可以对单元中每一位进行位操作,因此把该区称之为位寻址区。位寻址区共有16个RAM单元,计128位,地址为00H7FH。MCS-51具有布尔处理机功能,这个位寻址区可以构成布尔处理机的存储空间。这种位寻址能力是MCS-51的一个重要特点。表为位寻址区的位地址。,片内RAM位寻址区的位地址,3)用户RAM区 在内部RAM低128单元中,通用寄存器占去32个单元,位寻址区占去16个单元,剩下80个单元,这就是供用户使用的一般RAM区,其单元地址为30H7FH。对用户RAM区的使用没有任何规定或限制,但在一般应用中常把
16、堆栈开辟在此区中。2.内部数据存储器高128单元 内部RAM的高128单元是供给专用寄存器使用的,其单元地址为80HFFH。因这些寄存器的功能已作专门规定,故称之为专用寄存器(Special Function Register),也可称为特殊功能寄存器。,1)专用寄存器(SFR)简介 8051共有21个专用寄存器,现把其中部分寄存器简单介绍如下:(1)程序计数器(PCProgram Counter)。我们已经知道PC是一个16位的计数器,它的作用是控制程序的执行顺序。其内容为将要执行指令的地址,寻址范围达64 KB。PC有自动加1功能,从而实现程序的顺序执行。PC没有地址,是不可寻址的,因此用
17、户无法对它进行读写,但可以通过转移、调用、返回等指令改变其内容,以实现程序的转移。因地址不在SFR(专用寄存器)之内,一般不计作专用寄存器。,(2)累加器(ACCAccumulator)。累加器为8位寄存器,是最常用的专用寄存器,功能较多,地位重要。它既可用于存放操作数,也可用来存放运算的中间结果。MCS-51单片机中大部分单操作数指令的操作数就取自累加器,许多双操作数指令中的一个操作数也取自累加器。(3)B寄存器。B寄存器是一个8位寄存器,主要用于乘除运算。乘法运算时,B存乘数。乘法操作后,乘积的高8位存于B中,除法运算时,B存除数。除法操作后,余数存于B中。此外,B寄存器也可作为一般数据寄
18、存器使用。,(4)程序状态字(PSWProgram Status Word)。程序状态字是一个8位寄存器,用于存放程序运行中的各种状态信息。其中有些位的状态是根据程序执行结果,由硬件自动设置的,而有些位的状态则使用软件方法设定。PSW的位状态可以用专门指令进行测试,也可以用指令读出。一些条件转移指令将根据PSW有些位的状态,进行程序转移。PSW的各位定义如下:,除PSW.1位保留未用外,其余各位的定义及使用如下:CY(PSW.7)进位标志位。CY是PSW中最常用的标志位。其功能有二:一是存放算术运算的进位标志,在进行加或减运算时,如果操作结果的最高位有进位或借位时,CY由硬件置“1”,否则清“
19、0”;二是在位操作中,作累加位使用。位传送、位与位或等位操作,操作位之一固定是进位标志位。,AC(PSW.6)辅助进位标志位。在进行加减运算中,当低4位向高4位进位或借位时,AC由硬件置“1”,否则AC位被清“0”。在BCD码调整中也要用到AC位状态。F0(PSW.5)用户标志位。这是一个供用户定义的标志位,需要利用软件方法置位或复位,用以控制程序的转向。RS1和RS0(PSW.4,PSW.3)寄存器组选择位。它们被用于选择CPU当前使用的通用寄存器组。通用寄存器共有4组,其对应关系如下:,这两个选择位的状态是由软件设置的,被选中的寄存器组即为当前通用寄存器组。但当单片机上电或复位后,RS1R
20、S0=00。OV(PSW.2)溢出标志位。在带符号数加减运算中,OV=1表示加减运算超出了累加器A所能表示的符号数有效范围(-128+127),即产生了溢出,因此运算结果是错误的,否则,OV=0表示运算正确,即无溢出产生。在乘法运算中,OV=1表示乘积超过255,即乘积分别在B与A中,否则,OV=0,表示乘积只在A中。在除法运算中,OV=1表示除数为0,除法不能进行,否则,OV=0,除数不为0,除法可正常进行。,P(PSW.0)奇偶标志位。表明累加器A中内容的奇偶性。如果A中有奇数个“1”,则P置“1”,否则置“0”。凡是改变累加器A中内容的指令均会影响P标志位。此标志位对串行通信中的数据传输
21、有重要的意义。在串行通信中常采用奇偶校验的办法来校验数据传输的可靠性。(5)数据指针(DPTR)。数据指针为16位寄存器。编程时,DPTR既可以按16位寄存器使用,也可以按两个8位寄存器分开使用,即:DPH DPTR高位字节 DPL DPTR低位字节,DPTR通常在访问外部数据存储器时作地址指针使用。由于外部数据存储器的寻址范围为64 KB,故把DPTR设计为16位。(6)堆栈指针(SPStack Pointer)。堆栈是一个特殊的存储区,用来暂存数据和地址,它是按“先进后出”的原则存取数据的。堆栈共有两种操作:进栈和出栈。由于MCS-51单片机的堆栈设在内部RAM中,因此SP是一个8位寄存器
22、。系统复位后,SP的内容为07H,从而复位后堆栈实际上是从08H单元开始的。但08H1FH单元分别属于工作寄存器13区,如程序要用到这些区,最好把SP值改为1FH或更大的值。,一般在内部RAM的30H7FH单元中开辟堆栈。SP的内容一经确定,堆栈的位置也就跟着确定下来,由于SP可初始化为不同值,因此堆栈位置是浮动的。此处,只集中讲述了6个专用寄存器,其余的专用寄存器(如TCON、TMOD、IE、IP、SCON、PCON、SBUF等)将在以后章节中陆续介绍。2)专用寄存器中的字节寻址和位地址 MCS-51系列单片机有21个可寻址的专用寄存器,其中有11个专用寄存器是可以位寻址的。下面把各寄存器的
23、字节地址及位地址一并列于表中。,MCS-51专用寄存器地址表,SFRMSB 位地址/位定义 LSB字节地址BF7F6F5F4F3F2F1F0F0HACCE7E6E5E4E3E2E1E0E0HPSWD7D6D5D4D3D2D1D0D0HCYACF0RS1RS0OVF1PIPBFBEBDBCBBBAB9B8B8H/PSPT1PX1PT0PX0P3B7B6B5B4B3B2B1B0B0HP3.7P3.6P3.5P3.4P3.3P3.2P3.1P3.0,续表(2),IEAFAEADACABAAA9A8A8HEA/ESET1EX1ET0EX0P2A7A6A5A4A3A2A1A0A0HP2.7P2.6P2.
24、5P2.4P2.3P2.2P2.1P2.0SBUF(99H)SCON9F9E9D9C9B9A999898HSM0SM1SM2RENTB8RB8TIRIP1979695949392919090HP1.7P1.6P1.5P1.4P1.3P1.2P1.1P1.0TH1(8DH),续表(3),TH0(8CH)TL1(8BH)TL0(8AH)TMODGATEC/M1M0GATEC/M1M0(89H)TCON8F8E8D8C8B8A898888HTF1TR1TF0TR0IE1IT1IE0IT0PCONSMOD/(87H)DPH(83H)DPL(82H)SP(81H)P0878685848382818080
25、HP0.7P0.6P0.5P0.4P0.3P0.2P0.1P0.0,对专用寄存器的字节寻址问题作如下几点说明:(1)21个可字节寻址的专用寄存器是不连续地分散在内部RAM高128单元之中,尽管还余有许多空闲地址,但用户并不能使用。(2)程序计数器PC不占据RAM单元,它在物理上是独立的,因此是不可寻址的寄存器。(3)对专用寄存器只能使用直接寻址方式,书写时既可使用寄存器符号,也可使用寄存器。,表中,凡字节地址不带括号的寄存器都是可进行位寻址的寄存器,带括号的是不可位寻址的寄存器。全部专用寄存器可寻址的位共83位,这些位都具有专门的定义和用途。这样,加上位寻址区的128位,在MCS-51的内部R
26、AM中共有128+83=211个可寻址位。,2.2.3 MCS-51内部程序存储器 MCS-51的程序存储器用于存放编好的程序和表格常数。8051片内有4 KB的ROM,8751片内有4 KB的EPROM,8031片内无程序存储器。MCS-51的片外最多能扩展64 KB程序存储器,片内外的ROM是统一编址的。如端保持高电平,8051的程序计数器PC在0000H0FFFH地址范围内(即前4 KB地址)是执行片内ROM中的程序,当PC在1000HFFFFH地址范围时,自动执行片外程序存储器中的程序;当保持低电平时,只能寻址外部程序存储器,片外存储器可以从0000H开始编址。,MCS-51的程序存储
27、器中有些单元具有特殊功能,使用时应予以注意。其中一组特殊单元是0000H0002H。系统复位后,(PC)=0000H,单片机从0000H单元开始取指令执行程序。如果程序不从0000H单元开始,应在这三个单元中存放一条无条件转移指令,以便直接转去执行指定的程序。还有一组特殊单元是0003H002AH,共40个单元。这40个单元被均匀地分为5段,作为5个中断源的中断地址区。其中:0003H000AH 外部中断0中断地址区 000BH0012H 定时/计数器0中断地址区 0013H001AH 外部中断1中断地址区 001BH0022H 定时/计数器1中断地址区 0023H002AH 串行中断地址区,
28、中断响应后,按中断种类,自动转到各中断区的首地址去执行程序,因此在中断地址区中理应存放中断服务程序。但通常情况下,8个单元难以存下一个完整的中断服务程序,因此通常也是从中断地址区首地址开始存放一条无条件转移指令,以便中断响应后,通过中断地址区,再转到中断服务程序的实际入口地址。,2.3 并行输入/输出口电路结构,单片机芯片内还有一项主要内容就是并行I/O口。MCS-51共有4个8位的并行I/O口,分别记作P0、P1、P2、P3。每个口都包含一个锁存器、一个输出驱动器和输入缓冲器。实际上,它们已被归入专用寄存器之列,并且具有字节寻址和位寻址功能。在访问片外扩展存储器时,低8位地址和数据由P0口分
29、时传送,高8位地址由P2口传送。在无片外扩展存储器的系统中,这4个口的每一位均可作为双向的I/O端口使用。MCS-51单片机的4个I/O口都是8位双向口,这些口在结构和特性上是基本相同的,但又各具特点,以下将分别介绍之。,2.3.1 P0口 P0口的口线逻辑电路如图所示。,P0口某位结构,由图可见,电路中包含有一个数据输出锁存器、两个三态数据输入缓冲器、一个数据输出的驱动电路和一个输出控制电路。当对P0口进行写操作时,由锁存器和驱动电路构成数据输出通路。由于通路中已有输出锁存器,因此数据输出时可以与外设直接连接,而不需再加数据锁存电路。考虑到P0口既可以作为通用的I/O口进行数据的输入/输出,
30、也可以作为单片机系统的地址/数据线使用,为此在P0口的电路中有一个多路转接电路MUX。在控制信号的作用下,多路转接电路可以分别接通锁存器输出或地址/数据线。当作为通用的I/O口使用时,内部的控制信号为低电平,封锁与门,将输出驱动电路的上拉场效应管(FET)截止,同时使多路转接电路MUX接通锁存器Q端 的输出通路。,读端口是指通过上面的缓冲器读锁存器Q端的状态。在端口已处于输出状态的情况下,Q端与引脚的信号是一致的,这样安排的目的是为了适应对口进行“读修改写”操作指令的需要。例如,“ANL P0,A”就是属于这类指令,执行时先读入P0口锁存器中的数据,然后与A的内容进行逻辑与,再把结果送回P0口
31、。对于这类“读修改写”指令,不直接读引脚而读锁存器是为了避免可能出现的错误。因为在端口已处于输出状态的情况下,如果端口的负载恰是一个晶体管的基极,导通了的PN结会把端口引脚的高电平拉低,这样直接读引脚就会把本来的“1”误读为“0”。但若从锁存器Q端读,就能避免这样的错误,得到正确的数据。,但要注意,当P0口进行一般的I/O输出时,由于输出电路是漏极开路电路,因此必须外接上拉电阻才能有高电平输出;当P0口进行一般的I/O输入时,必须先向电路中的锁存器写入“1”,使FET截止,以避免锁存器为“0”状态时对引脚读入的干扰。在实际应用中,P0口绝大多数情况下都是作为单片机系统的地址/数据线使用,这要比
32、作一般I/O口应用简单。当输出地址或数据时,由内部发出控制信号,打开上面的与门,并使多路转接电路MUX处于内部地址/数据线与驱动场效应管栅极反相接通状态。这时的输出驱动电路由于上、下两个FET处于反相,形成推拉式电路结构,使负载能力大为提高。而当输入数据时,数据信号则直接从引脚通过输入缓冲器进入内部总线。,2.3.2 P1口 P1口的口线逻辑电路如图所示。因为P1口通常是作为通用I/O口使用的,所以在电路结构上与P0口有一些不同之处:首先它不再需要多路转接电路MUX;其次是电路的内部有上拉电阻,与场效应管共同组成输出驱动电路。为此,P1口作为输出口使用时,已经能向外提供推拉电流负载,无需再外接
33、上拉电阻。当P1口作为输入口使用时,同样也需先向其锁存器写“1”,使输出驱动电路的FET截止。,P1口某位结构,2.3.3 P2口 P2口的口线逻辑电路如图所示。,P2口某位结构图,P2口电路比P1口电路多了一个多路转接电路MUX,这又正好与P0口一样。P2口可以作为通用I/O口使用,这时多路转接电路开关倒向锁存器Q端。通常情况下,P2口是作为高位地址线使用,此时多路转接电路开关应倒向相反方向。,2.3.4 P3口 P3口的口线逻辑电路如图所示。,P3口某位结构,P3口的特点在于,为适应引脚信号第二功能的需要,增加了第二功能控制逻辑。由于第二功能信号有输入和输出两类,因此分两种情况说明。对于第
34、二功能为输出的信号引脚,当作为I/O使用时,第二功能信号引线应保持高电平,与非门开通,以维持从锁存器到输出端数据输出通路的畅通。当输出第二功能信号时,该位的锁存器应置“1”,使与非门对第二功能信号的输出是畅通的,从而实现第二功能信号的输出。,对于第二功能为输入的信号引脚,在口线的输入通路上增加了一个缓冲器,输入的第二功能信号就从这个缓冲器的输出端取得。而作为I/O使用的数据输入,仍取自三态缓冲器的输出端。不管是作为输入口使用还是第二功能信号输入,输出电路中的锁存器输出和第二功能输出信号线都应保持高电平。,2.4 时钟电路与复位电路,2.4.1 时钟电路与时序 1.时钟信号的产生 在MCS-51
35、芯片内部有一个高增益反相放大器,其输入端为芯片引脚XTAL1,其输出端为引脚XTAL2。而在芯片的外部,XTAL1和XTAL2之间跨接晶体振荡器和微调电容,从而构成一个稳定的自激振荡器,这就是单片机的时钟电路,如图所示。时钟电路产生的振荡脉冲经过触发器进行二分频之后,才成为单片机的时钟脉冲信号。请读者特别注意时钟脉冲与振荡脉冲之间的二分频关系,否则会造成概念上的错误。,一般地,电容C1和C2取30 pF左右,晶体的振荡频率范围是1.212 MHz。晶体振荡频率高,则系统的时钟频率也高,单片机运行速度也就快。MCS-51在通常应用情况下,使用振荡频率为6 MHz或12 MHz。,时钟振荡电路,2
36、.引入外部脉冲信号 在由多片单片机组成的系统中,为了各单片机之间时钟信号的同步,应当引入惟一的公用外部脉冲信号作为各单片机的振荡脉冲。这时,外部的脉冲信号是经XTAL2引脚注入,其连接如图所示。3.时序 时序是用定时单位来说明的。MCS-51的时序定时单位共有4个,从小到大依次是:节拍、状态、机器周期和指令周期。下面分别加以说明。,外部时钟源接法,1)节拍与状态 把振荡脉冲的周期定义为节拍(用P表示)。振荡脉冲经过二分频后,就是单片机的时钟信号的周期,其定义为状态(用S表示)。这样,一个状态就包含两个节拍,具前半周期对应的拍节叫节拍1(P1),后半周期对应的节拍叫节拍2(P2)。2)机器周期
37、MCS-51采用定时控制方式,因此它有固定的机器周期。规定一个机器周期的宽度为6个状态,并依次表示为S1S6。由于一个状态又包括两个节拍,因此,一个机器周期总共有12个节拍,分别记作S1P1、S1P2、S6P2。由于一个机器周期共有12个振荡脉冲周期,因此机器周期就是振荡脉冲的十二分频。,当振荡脉冲频率为12 MHz时,一个机器周期为1s;当振荡脉冲频率为6 MHz时,一个机器周期为2s。3)指令周期 指令周期是最大的时序定时单位,执行一条指令所需要的时间称为指令周期。它一般由若干个机器周期组成。不同的指令,所需要的机器周期数也不相同。通常,包含一个机器周期的指令称为单周期指令,包含两个机器周
38、期的指令称为双周期指令,等等,指令的运算速度与指令所包含的机器周期有关,机器周期数越少的指令执行速度越快。MCS-51单片机通常可以分为单周期指令、双周期指令和四周期指令等三种。四周期指令只有乘法和除法指令两条,其余均为单周期和双周期指令。单片机执行任何一条指令时都可以分为取指令阶段和执行指令阶段。MCS-51的取指/执行时序如图所示。,MCS-51单片机的取指/执行时序(a)单字节单周期指令;(b)双字节单周期指令;(c)单字节双周期指令,由图可见,ALE引脚上出现的信号是周期性的,在每个机器周期内出现两次高电平。第一次出现在S1P2和S2P1期间,第二次出现在S4P2和S5P1期间。ALE
39、信号每出现一次,CPU就进行一次取指操作,但由于不同指令的字节数和机器周期数不同,因此取指令操作也随指令不同而有小的差异。按照指令字节数和机器周期数,8051的111条指令可分为6类,分别是:单字节单周期指令、单字节双周期指令、单字节四周期指令、双字节单周期指令、双字节双周期指令、三字节双周期指令,可以参见附录二。,图(a),(b)所示分别给出了单字节单周期和双字节单周期指令的时序。单周期指令的执行始于S1P2,这时操作码被锁存到指令寄存器内。若是双字节,则在同一机器周期的S4读第二字节。若是单字节指令,则在S4仍有读操作,但被读入的字节无效,且程序计数器PC并不增量。图(c)给出了单字节双周
40、期指令的时序,两个机器周期内进行4次读操作码操作。因为是单字节指令,所以,后三次读操作都是无效的。,2.4.2 单片机的复位电路 单片机复位是使CPU和系统中的其他功能部件都处在一个确定的初始状态,并从这个状态开始工作,例如复位后PC=0000H,使单片机从第一个单元取指令。实训中已经看出,无论是在单片机刚开始接上电源时,还是断电后或者发生故障后都要复位,所以我们必须弄清楚MCS-51型单片机复位的条件、复位电路和复位后状态。,单片机复位的条件是:必须使RST/VPD 或RST引(9)加上持续两个机器周期(即24个振荡周期)的高电平。例如,若时钟频率为12 MHz,每机器周期为1s,则只需2s
41、以上时间的高电平,在RST引脚出现高电平后的第二个机器周期执行复位。单片机常见的复位电路如图(a),(b)所示。图(a)为上电复位电路,它是利用电容充电来实现的。在接电瞬间,RESET端的电位与VCC相同,随着充电电流的减少,RESET的电位逐渐下降。只要保证RESET为高电平的时间大于两个机器周期,便能正常复位。,单片机常见的复位电路(a)上电复位电路;(b)按键复位电路,如下:图(b)为按键复位电路。该电路除具有上电复位功能外,若要复位,只需按图(b)中的RESET键,此时电源VCC经电阻R1、R2分压,在RESET端产生一个复位高电平。附录中的实训系统就是采用该电路。单片机复位期间不产生
42、ALE和 信号,即ALE=1和=1。这表明单片机复位期间不会有任何取指操作。复位后,内部各专用寄存器状态,PC:0000H TMOD:00H ACC:00H TCON:00H B:00H TH0:00H PSW:00H TL0:00H SP:07H TH1:00H DPTR:0000H TL1:00H P0P3:FFH SCON:00H IP:*00000B SBUF:不定 IE:0*00000B PCON:0*0000其中,*表示无关位。请注意:,(1)复位后PC值为0000H,表明复位后程序从0000H开始执行。(2)SP值为07H,表明堆栈底部在07H。一般需重新设置SP值。(3)P0P
43、3口值为FFH。P0P3口用作输入口时,必须先写入“1”。单片机在复位后,已使P0P3口每一端线为“1”,为这些端线用作输入口做好了准备。,2.5 单片机的工作过程,单片机的工作过程实质上是执行用户编制程序的过程,一般程序的机器码都已固化到存储器中,例如实训1中的步骤2),因此开机复位后,就可以执行指令。执行指令又是取指令和执行指令的周而复始的过程。假设机器码74H、E0H 已存在0000H开始的单元中,则此表示把E0H这个值送入A累加器。下面我们来说明单片机的工作过程。接通电源开机后,PC=0000H,取指令过程如下:,(1)PC中的0000H 送到片内的地址寄存器;(2)PC的内容自动加1
44、变为0001H,指向下一个指令字(3)地址寄存器中的内容0000H通过地址总线送到存储器,经存储器中的地址译码选中0000H单元;(4)CPU通过控制总线发出读命令;(5)被选中单元的内容74H送内部数据总线上,该内容过内部数据总线送到单片机内部的指令寄存器。到此,取 指令过程结束,进入执行指令过程。执行指令的过程:,(1)指令寄存器中的内容经指令译码器译码后,说明这条指令是取数命令,即把一个立即数送A中;(2)PC的内容为0001H,送地址寄存器,译码后选中0001H单元,同时PC的内容自动加1变为0002H;(3)CPU同样通过控制总线发出读命令;(4)0001H单元的内容E0H读出经内部数据总线送至A。至此,本指令执行结束。PC=0002H,机器又进入下一条指令的取指令过程。机器一直重复上述过程直到程序中的所有指令执行完毕,这就是单片机的基本工作过程。,