第二章 MCS51单片机的硬件结构与工作原理.ppt
第二章 MCS-51 单片机的硬件结构与工作原理,2.1 MCS-51单片机的片内结构2.2 MCS-51的封装与引脚2.3 MCS-51单片机的CPU2.4 MCS-51存储器的结构2.5 复位电路2.6 时钟电路2.7 MCS-51单片机最小系统,2.1 MCS-51单片机的片内结构,MCS-51单片机的组成部件:微处理器(CPU)、数据存储器(RAM)、程序存储器(ROM/EPROM)、I/O并行口(P0口、P1口、P2口、P3口)、串行口、定时器/计数器、中断系统及特殊功能寄存(SFR)MCS-51单片机片内结构图,结构特点:单一总线连接,CPU加外围芯片的传统结构模式,采用SFR对各功能部件进行集中控制。,各功能部件说明:,1.数据存储器(RAM):片内有128个字节(单元),片外最多可外扩至64K字节。2.程序存储器(ROM/EPROM/EEPROM):8031无此部件;8051为4K ROM;8751为4K EPROM。片外最多可外扩至64K字节。3.中断系统:具有5个中断源,2级中断优先权。4.定时器/计数器:2个16位的定时器/计数器,具有四种工作方式。,精确定时、对外部事件计数的需要、,MCS-51 CPU中的位处理器,是一个完整的1位微计算机,它有自己的CPU、位寄存器、I/O口和指令集。这个1位机在开关决策、逻辑电路仿真、工业控制方面很有效;而8位机在数据采集、运算处理有优势。二者相辅相成,是单片机技术上的1个突破。,返回,2.2 MCS-51单片机的封装与引脚,制造工艺为CHMOS的80C51/80C31除采用DIP封装外,还采用方形封装方式,为44只引脚。,制造工艺为HMOS的MCS-51的单片机都采用40只引脚的双列直插封装(DIP)方式,目前大多数为此类封装方式。,2.2.1 MCS-51单片机的封装形式,3.I/O口引脚:P0、P1、P2、P3为4个8位I/O口的外部引脚.,40只引脚按其功能来分,可分为三部分:,1.电源及时钟引脚:Vcc、Vss;XTAL1、XTAL2,2.2.1 电源及时钟引脚,电源引脚:Vcc(40脚):5V电源;Vss(20脚):接地。,(2)时钟引脚:时钟引脚外接晶体与片内的反相放大器构成了一个振荡器,它提供单片机的时钟控制信号。时钟引脚也可外接晶体振荡器。,XTAL2(18脚):在单片机内部,接至内部反相放大器的输出端。当采用外接晶体振荡器时,该引脚应悬空。,XTAL1(19脚):在单片机内部,它是一个反相放大器的输入端。这个放大器构成片内振荡器。当采用外接晶体振荡器时,此引脚应接收振荡器的信号。,内部时钟方式,机器周期、指令周期与指令时序,ALE,时钟,一个机器周期=12时钟周期,机器周期、指令周期与指令时序,ALE,时钟,一个机器周期=12时钟周期,指令周期:,定义:执行一条指令所需时间。,指执行令所需时间:14机器周期。,fosc=6MHz,,fcy=fosc/12,Tcy=2us;,fosc=12MHz,,fcy=fosc/12,Tcy=1us,2.2.2 控制引脚,RST/VPD(9脚)RST:单片刚接上电源时,其内部各寄存器处于随机状态,在此脚输入24个时钟周期宽度以上的高电平将使单片机复位。单片机正常工作时,此脚应为0.5V低电平。VPD:备用电源输入端。当Vcc下降到低于规定的值,而VPD在其规定的电压范围内(50.5V)时,VPD就向内部RAM提供备用电源以保持内部RAM的数据。,ALE引脚输出为地址锁存允许信号,当单片机上电工作 后,ALE引脚不断输出正脉冲信号.,当访问片外RAM存储器时,ALE(地址锁存允许信号)输出脉冲的负跳沿用于16位地址的低8位锁存信号。,不访问片外存储器,ALE端以时钟振荡器频率的1/6固定输出正脉冲。在访问外部数据存储器时(执行MOVX指令),ALE会丢失一个ALE脉冲。,PROG为本引脚的第二功能,对于EPROM型 单片机(8751),在EPROM编程期间,此引脚用来输入编程脉冲。,思考:ALE能用做时钟源或做定时吗,为什么?,VPP:8751片内EPROM固化编程时,用于施加较高的编程电压。,2.2.3 I/O口引脚,P0口:双向8位三态I/O口,此口为地址总线(低8位)及数据总线分时复用口,可带8个LSTTL负载。P1口:8位准双向I/O口,可带4个 LSTTTL负载。P2口:8位准双向I/O口,与地址总线(高8位)复用。P3口:8位准双向I/O口,双功能复用口。,返回,2.3 MCS-51单片机的CPU,ALU(算术逻辑运算单元)、位处理器、累加器A、寄存器B暂存器以及程序状态字寄存器PSW和BCD码修正电路。,实现数据的算术、逻辑运算,位变量处理和数据传输。,2.3.1 MCS-51单片机CPU的组成,、运算器包含部件:,功能:,1)ALU,增加不经过累加器A的传送指令,既可以加快数据的传送速度,同时又可减少“瓶颈”现象的发生。,数据存送大都通过通过A,易形成“瓶颈”。,2)累加器A(ACC),8位的累加器,也是CPU中使用最频繁的寄存器。它的进位标志Cy是特殊的,因为它同时是位处理器的一位累加器。,思考:如何减少“瓶颈”现象的发生?,是为执行乘法和除法操作设置的,在不执行乘法、除法操作的情况下,可作普通寄存器使用。乘法:A、B存放乘数和被乘数,乘积存放在BA寄存器对中。B中放乘积的高8位,A中放乘积的低8位。除法:被除数取自A,除数取自B,商存放在A,余数存放于B。,3)寄存器B,4)程序状态寄存器PSW(Program Status Word),8位可读写的寄存器。其各位的定义如下:,1)Cy:,进位标志位.,在执行算数和逻辑指令时,有进位/借位时,Cy=1,否则Cy=0.在位处理器中,它是位累加器。,2)AC:,辅助进位标志位,当进行加法或减法操作而产生由低4位进位或借位时,AC被硬件置1,否则被清除。,3)F0:,用户设定标志位,4)RS1、RS0:,4组工作寄存器区选择控制位1和位0.这两位用来选择片内RAM区中的4组工作寄存器区中的哪一组为当前工作寄存器,对应关系如下:,OV(PSW.2)溢出标志位:当执行算术指令时,由硬件置1或清0,以指示是否溢出。P(PSW.0)奇偶标志位:每个指令周期都由硬件来置位或清除,以表示累加器A中值为1的位数的奇偶数。P=1,则A中1的个数为奇数。P=0,则A中1的个数为偶数。此标志位对串行口通讯中的数据传输有重要的意义,常用奇偶检验的方法来检验数据传输的可靠性。,(A)=10101011P=1还是0?,2.3.2 控制器,控制器是单片机的神经中枢。单片机执行指令是在控制器下进行的。一条指令的执行过程:取指令分析指令(指令译码)执行指令 包含部件:指令部件、时序部件和微操作控制部件。,指令部件介绍,程序计数器PCPC中存放的内容:下一条将要执行的指令在程序存储器中的地址。PC的位数决定了单片机对程序存储器可以直接寻址的范围。思考:MCS-51系列单片机,寻址范围是多少?,PC是一个16位的计数器,所以寻址范围为64KB(216=65536).,程序计数器的基本工作方式:(1)顺序执行时,PC自动加1。(2)执行转移指令时,PC被置入新值,从而使程序流向改变。(3)执行子程序调用或响应中断时,单片机自动完成下列操作:PC的现行值(断点值),自动压入堆栈。将子程序入口地址或中断向量的地址送入PC,程序改变流向,转向执行子程序或中断服务程序。执行完毕后,遇到RET或RETI时,将堆栈中保存的断点值弹到PC中,程序又返回到断点处继续执行未完成的部分。,指令寄存器IR IR:存放指令操作码。,控制器的功能可总结为:接受来自存储器的指令,进行指令译码,根据指令的性质控制单片机各功能部件,保证单片机各部分协调工作,完成指令做规定的各种操作。,CPU时序及时钟电路,单片机的时序就是CPU在执行指令时所需控制信号的时间顺序。单片机运行时是以主振频率为基准的,控制器控制CPU的时序,对指令进行译码,然后发出各种控制信号,将各个硬件环节组织在一起,这种严格的时序保证了各部件间的同步工作。为了便于对CPU时序进行分析,我们将指令的执行过程规定了以下几种周期,即时钟周期、机器周期和指令周期。,1.时钟周期(振荡周期)时钟周期是计算机中最基本的、最小的时间单位。它定义为时钟脉冲频率的倒数。在80C51单片机中将一个时钟周期定义为1个节拍。即 TOSC=1/f OSC若 f OSC=1 MHz,TOSC=1S对于8051单片机而言,时钟频率范围是1.212 MHz。,2.机器周期 一条指令的指令过程划分为若干个阶段,每一阶段完成一项基本操作,例如取指令、读存储器、写存储器等,我们将CPU完成这每一个基本操作所需的时间定义为机器周期。每个机器周期(12个振荡周期)由6个状态周期组成,即S1、S2、S6,而每个状态周期由两个时相P1,P2组成(即为2个主振振荡周期)。所以一个机器周期可依次表示为S1P1、S1P2、S2P1、S2P2S6P1、S6P2。,从上图可以看到,一个机器周期中通常出现两次ALE信号,即从ROM中取两次操作码,读入指令寄存器,指令周期的执行开始于S1P1时刻,而总是结束于S6P2时刻。提示:访问片外数据存储器(MOVX)时,将会丢失1个ALE脉冲。,3.指令周期定义:执行一条指令所需的时间。MCS-51的指令周期一般只有12个机器周期,只有乘、除两条指令占4个机器周期。当用12MHz晶体作主振频率时,执行一条指令的时间,也就是一个指令周期为1us、2us及4us。,返回,2.4 MCS-51存储器的结构,MCS-51单片机存储器采用的是哈佛结构,即程序存储器空间和数据存储器空间是分开的。,8051在物理结构上有 4个存储空间:片内程序存储器 片外程序存储器 片内数据存储器 片外数据存储器,8051在逻辑结构(用户角度)有3个存储空间:1.片内外统一编址的64K字节程序存储器地址空间(用16位地址);2.片内256字节RAM;3.片外64KBRAM,提示:访问不同的逻辑空间时,应采用不同的指令。但是,为了对MCS-51的存储器讲述的更清楚,下面分五类加以介绍:程序存储器、内部数据存储器、特殊功能寄存器、位地址空间和外部数据存储器。,2.4.1 程序存储器,程序存储器用于存放应用程序和表格之类的固定常数。上一小节我们已经了解了由于程序计数器PC是16位的(地址总线为16根),所以程序存储器最多可扩展至64KB的。,(2)程序存储器的某些单元被固定用于各中断源的中断服务程序(ISR-Interrupt Service Routine)的入口地址。,2.4.2 内部数据存储器,MCS-51 RAM在物理上和逻辑上分为两个地址空间。片内RAM:128字节,用MOV指令访问。(从广义上来说,应该有256B。)片外RAM:可扩展64K字节,用MOVX指令访问。,2.4.3 特殊功能寄存器(SFR),SFR的实质是一些具有特殊功能的片内RAM单元。个数的总数为21个,字节地址范围为80HFFH。离散地分布在该区域中。其中有些SFR还可以进行位寻址。,在上述表中,打*SFR是可以位寻址的。我们可以发现一个规律,那就是其字节地址的末尾是0H或是8H(字节地址能被8整除)。,对于尚未定义的字节地址单元,用户不能作普通寄存器使用,若访问没有定义的单元,将得到一个不确定的随机数。,下面将简单介绍几个常用的SFR。1.堆栈指针SP SP是一个8位的SFR,堆栈的实质是一个特殊的RAM区,主要功能是暂放数据和地址。堆栈的具体功能为:(1)保护断点:子程序调用以及中断时,最终都要返回主程序。为了保证程序能正确返回,应该在堆栈中预先将主程序的断点保护起来。(2)现场保护:单片机执行子程序或ISR之后,很可能要用到单片机中的一些寄存器,为了不破坏寄存器中的原有内容,可以把有关寄存器的内容保存起来,送入堆栈。,堆栈的特点:先进后出。堆栈的操作:进栈(PUSH),出栈(POP)。第一个进栈的数据所在的单元称为栈底,然后逐次进栈,最后进栈的数据所在的存储单元称为栈顶。,堆栈的操作有两种方式:(1)指令方式,使用堆栈操作指令进行进栈/出栈操作。(2)自动方式,在调用子程序或产生中断时,返回地址(断点)自动进栈。程序返回时,断点地址再自动弹回PC。这种堆栈操作不需要干预,是通过硬件自动实现的。提示:系统复位后,SP初始化为07H,使得堆栈事实上由08H开始。因为08H-1FH单元为工作寄存器区1-3,20H-2FH为位寻址区,在程序设计很可能要用到这些区,所以用户在编程时最好把SP初值设为2FH或更大值,当然同时还要顾及其允许的深度。要防止设置不当,引起内部RAM单元冲突。,2.数据指针DPTR 16位的SFR,高位字节寄存器用DPH表示,低位字节寄存器用DPL表示。DPTR既可以作为1个16位寄存器DPTR来用,也可以作为2个独立的8位寄存器DPH和DPL来用。3.I/O端口P0-P3 特殊功能寄存器P0-P3分别为I/O端口P0-P3的锁存器。在MCS-51中,I/O端口和RAM是统一编址的,所有访问RAM单元的指令,都可用来访问I/O端口。4.串行数据缓冲器SBUF 用于存放欲发送或已接受的数据,它在SFR块中只有一个字节地址,但是物理上是由两个独立的寄存器组成的,一个发送缓冲器,另一个是接收缓冲器。5.定时器/计数器 MCS-51单片机有2个16位定时器/计数器T1和T0,它们各由2个独立的8位寄存器组成,共有4个独立的寄存器:TH1、TL1、TH0、TL0,可以分别对这4个寄存器进行字节寻址,但不能把T1或T0当作1个16位寄存器来寻址访问。,2.4.4 位地址空间,MCS-51有一个功能很强的位处理器,指令系统中有着丰富的位操作指令,这些指令构成了位处理机的指令机。在RAM和SFR中共有211个可寻址位的位地址 128位 20H-2FH 211个寻址位的位地址 83位 80H-FFH可位寻址的SFR有11个,共有位地址88个,其中5个未使用,其余83位离散地分布在片内字节地址范围80H-FFH中。,MCS-51内部RAM的可寻址位及其位地址表,2.4.5 外部数据存储器,当MCS-51片内的128B的RAM不够用时,需要通过外扩存储器,最多可扩展64KB,这对许多应用场合已是足够使用的。,下面就MCS-51存储器的结构简要进行小结:地址的重叠性 存在3处重叠性,但是尽管有这些重叠,却不会产生操作的混乱。这是因为MCS-51采用了不同的操作指令及EA的控制选择来自动区分这些重叠的空间。具体的区分方法:(1)程序存储器和数据存储器全部64k重叠。访问程序存储器使用MOVC类指令。访问数据存储器使用MOV和MOVX类指令。(2)数据存储器片内和片外低128B重叠 访问片内数据存储器使用MOV类指令。访问片外数据存储器使用MOVX类指令。(3)程序存储器片内和片外低4KB重叠 EA接高电平,执行片内ROM中的程序,PC0FFFH,CPU自动访问片外。EA接低电平,只执行片外程序存储器中的程序。,2.程序存储器与数据存储器在使用上的严格区分程序存储器存放指令及常数表格,其操作指令不分片内与片外。数据存储器存放数据,访问片内与片外的指令是不同的。3.位地址共有2个区域。一个为20H-2FH单元中128位,另一个为SFR中被8整除的字节地址单元中的位.4.片外数据存储区中,RAM存储单元与MCS-51外扩的I/O口是统一编址的。因此,应用系统中所有外围I/O端口的地址均占用RAM地址单元。,返回本章,2.5 复位与复位电路,2.5.1 复位操作 复位是单片机的初始化操作,只需要在复位引脚RST(RESET)加上大于两个机器周期的高电平就可使MCS-51复位。复位时,PC初始化为0000H,所以单片机是从0000H单元开始执行程序。复位时片内个寄存器的状态:,2.5.2 复位电路,上电复位的原理:利用电容充电来实现。上电瞬间,RC电路充电,RST引脚端出现正脉冲。只要RST引脚端保持10ms以上高电平,就能使单片机有效地复位。MCS-51的复位是由外部的复位电路来实现的。,复位电路通常采用上电自动复位和按钮复位两种方式。,2.7 MCS-51单片机最小系统,