版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第2章89C51单片机的结构和原理67本章小结习题2上一页返回第2章89C51单片机的结构和原理89C51是8位单片机,具有体积小、功能全、面向控制、开发应用方便等特点,是测控应用领域中较理想的8位微型计算机。本章重点介绍其内部硬件结构、引脚功能、存储器结构、I/O接口、CPU时序和运行方式,使读者对89051单片机的内部硬件结构及各部分的工作原理有一个全面的了解,为后续章节的学习和应用系统的设计与开发打下坚实的基础。返回2.1单片机的结构2.1.1单片机的组成及结构89C51的内部结构框图如图2-1所示,从图中可以看出其各个功能部件是由内部总线紧密联系在一起的,其基本构成部分如下(1)1个8位中央处理器(CPU)。与通用的CPU基本相同,包括运算器和控制器两部分。单片机CPU的内部结构主要由算术逻辑运算单元(ALU),累加器(ACC)、程序状态字寄存器(PSW)、堆栈指针(SP)、寄存器B、程序计数器(即指令指针,PC)、数据指针(DPTR)、指令寄存器(IR)、暂存器(TMP)等部件组成。单片机CPU运算器内包含一个专门进行位数据操作的布尔处理机,增加了面向控制的处理功能,可进行位寻址。因此,不仅可处理字节数据,还可以进行位变量的处理。下一页返回2.1单片机的结构(2)程序存储器(片内R0M。程序存储器用于存储程序、表格、固定不变的常数等。通常采用只读存储器,且有多种类型。(3)数据存储器(片内RAM。数据存储器可实现快速的数据存储,用于存储单片机运行期间的工作变量、运算的中间结果、数据暂存和缓冲、标志位等。(4)并行输入/输出接口。4个8位并行输入/输出接口PO口、P1口、P2口和P3口(共32根线),用于并行输入和输出数据。(5)串行输入/输出接口。一个全双工串行口,用于单片机与其他微机之间的串行通信,可构成多机系统。(6)定时器/计数器。片内两个16位定时器/计数器TO和T1,用于精确定时(或延时)控制以及对外部事件进行计数。上一页下一页返回2.1单片机的结构(7)中断系统。有s个中断源、2个可编程优先级的中断系统,用于外部中断申请、串行口中断申请和定时器/计数器中断申请(8)时钟电路。时钟电路的作用是产生单片机工作所需的时钟脉冲序列。由图2-1可以看出,单片机的硬件结构具有功能部件种类齐全的特点,其基本组成和一般微型计算机是相同的,它只不过是把计算机的基本功能部件集成到了一块芯片上,是具有完整功能的微型计算机2.1.2引脚定义及功能89CS1单片机芯片有40只引脚,常用的有两种封装方式:图2-2(a)为PLCC封装形式,为具有44个引脚(其中有4个是空脚)的方形芯片,使用时需要插入到与其相配的方形插座中;图2-2(b)为DIP封装形式,为普通40脚双列直插式芯片。上一页下一页返回2.1单片机的结构为了缩小芯片体积,减少引脚数,很多引脚采用复用方式,40个引脚大致可以分为如下四类:1.电源电源引脚用来接入单片机的工作电源。(1)Vcc:正常运行时的电源,接+5V。(2)Vss:电源地线,接地端。2.时钟两个时钟引脚XTAL1,XTAL2外接晶体与片内的反相放大器构成了一个振荡器,为单片机提供时钟控制信号。两个时钟引脚也可以外接独立的晶体振荡器。(1)XTALl:此引脚内部是i个片内振荡器的反相放大器的输入端。上一页下一页返回2.1单片机的结构如使用外接晶体振荡器时,此引脚应接地(2)XTAL2:此引脚内部接至内部反相放大器的输出和内部时钟发生器的输入。当使用外部晶体振荡器时,接收外部时钟晶体振荡器的信号3.控制引脚(1)ALE/;ALE为地址锁存允许信号,工作时输出一正脉冲当单片机外接程序或数据存储器时,它将PO口作为地址和数据总线的复用接口,先传送低8位地址信号,然后再传送8位数据信号,分时复用。为了保证正常运行,应选用一锁存器将低8位地址信号锁存起来,使之在整个读写周期内予以保存ALE就是与地址锁存器配合工作的一个控制信号。ALE一般每个机器周期输出两个正脉冲,即使在不使用外部存储器场合也是如此。上一页下一页返回2.1单片机的结构这样ALE在不使用外部存储器时也可作为时钟或定时信号使用,它的频率是晶体振荡频率的1/6。应当注意的是,在每一次存取片外数据存储器时(即执行MOVX类指令),有一个ALE脉冲跳过去。为此引脚的第二功能,在对片内EPR0M型单片机(如8751)编程写入时,此脚为编程脉冲输入端。(2):外部程序存储器的读选通信号,低电平有效。当CPU执行从外部程序存储器读取指令时,此引脚输出一低电平信号。该信号应作为外部程序存储器的选通信号,控制从外部程序存储器读取指令到数据总线上。此引脚接外部程序存储器的OE(输出允许)端,每个机器周期内两次有效输出。对片内程序存储器存取时,无效。(3)RST/VPD:复位信号的输入端,高电平有效。上一页下一页返回2.1单片机的结构在该引脚加上持续时间大于两个机器周期的高电平信号,就可以实现8051的复位操作(复位操作的内容在本章后面介绍)。VPD为此引脚的第二功能,即备用电源的输入端。在掉电情况下(Vcc降到操作允许限度以下),可以从此引脚自动引入一个+SV电源,给片内RAM提供备用电源,保证片内RAM中的数据在掉电情况下不会丢失,单片机复位后能继续正常运行。(4)/VPP;内外程序存储器选择控制端。当引脚EA为高电平时,CPU先执行片内程序存储器指令,除非程序计数器PC超过OFFFH(即4K地址范围),将自动转向执行外部程序存储器内的程序。当引脚为低电平时,CPU只执行片外程序存储器指令,不管片内是否有程序存储器。对闪存进行编程期间,此引脚用于施加编程电源Vpp。上一页下一页返回2.1单片机的结构4.I/O口引脚89C51单片机共有四个8位并行I/O口,共犯个引脚。(1)PO口(P0.0~P0.7):8位双向I/O口。当访问外部存储器时,为地址总线(低8位)及数据总线分时复用口。可驱动8个LS型TTL负载。(2)P1口(P1.0~P1.7);8位准双向I/O口。为通用单一功能的I/O端口。可驱动4个LS型TTL负载(3)P2口(P2.0~P2.7:8位准双向I/O口。系统扩展时,作为高8位地址线使用;不作系统扩展时,可作为一般I/O口使用。可驱动4个LS型TTL负载(4)P3口(P3.0~P3.7);8位准双向I/O口。双功能复用口,可做一般I/O口使用,同时该口的每一位都具有第二功能,用于特殊信号输入/输出和控制信号(属控制总线)。P3口引脚的第二功能如下:上一页下一页返回2.1单片机的结构P3.0:RXD(串行输入口);P3.1:TXD(串行输出口);P3.2:INTO(外部中断0);P3.3:INT1(外部中断1);P3.4:TO(定时器0的外部输入);P3.5:T1(定时器1的外部输入);P3.6:WR(外部数据存储器写选通);P3.7:RD(外部数据存储器读选通)。上一页返回2.289C51存储器组织2.2.1存储器结构和地址空间分配存储器的主要功能是存放程序和数据。程序是计算机操作的依据,数据是计算机操作的对象。不管是程序还是数据,在存储器中都是用二进制的“1”或"0”表示,统称为信息。向存储单元写入或从存储单元取出信息,都称为访问存储器。访问存储器时,先由地址译码器将送来的单元地址进行译码,找到相应的存储单元,再由读写控制电路,确定访问存储器的方式,即取出(读)或写入(写);然后,按规定的方式具体完成取出或写入的操作。与存储器有关的部件还有地址总线与数据总线,分别为存储器提供读写信息用的存储单元地址及接收或发送被访问的信息。一般通用型微机通常只有一个地址空间,而ROM和RAM可以随意安排在一个地址范围内不同的空间。下一页返回2.289C51存储器组织即R0M和RAM的地址同在一个队列里分配不同的地址空间。CPU访问存储器时,一个地址对应唯一的存储器单元,可以是R0M,也可以是RAM,并用同类访问指令。此种存储器结构称为普林斯顿结构。89051单片机的存储器与一般微机的存储器配置方式不同,存储器在物理结构上分为程序存储器空间和数据存储器空间,共有4个存储空间:片内程序存储器和片外程序存储器空间以及片内数据存储器和片外数据存储器空间,这种程序存储器和数据存储器分开的结构形式,称为哈佛结构。从用户使用的角度看,存储器地址空间分为以下三部分。(1)片内外统一编址0000H一FFFFH的64KB程序存储器地址空间(用16位地址)。(2)片内256字节数据存储器地址空间(用8位地址,即00H一FFH。上一页下一页返回2.289C51存储器组织(3)片外64KB数据存储器地址空间,地址也为0000H一FFFFH(用16位地址)编址。上述三部分存储空间地址有部分是重叠的,89C51指令系统设计了不同的数据传送指令符号来区别这3个不同的逻辑空间。2.2.2程序存储器程序是指挥计算机动作的一系列命令,计算机能直接认识并执行的命令是一串由“0”和“1”代码组成的所谓机器指令。在计算机处理问题之前,必须事先把编好的程序和所需表格常数存入机器之中,单片机中完成这一存储任务的物理器件就是程序存储器。程序存储器以16位的程序计数器(PC)为地址指针,故可寻址空间为64K字节。上一页下一页返回2.289C51存储器组织89051单片机的程序存储空间由片内和片外两部分组成,片内程序存储器由0000H一OFFFH的4KB组成,片外扩展的程序存储器1000H一FFFFH(60KB),地址编号由1000H开始。CPU访问片内和片外程序存储器,可由引脚所接的电平来确定。当引脚接高电平时,CPU将首先从片内程序存储器中取指令,当指令地址(即PC值)超过OFFFH时,会自动转向片外程序存储器取指令。当引脚接地或低电平时,CPU只能访问片外程序存储器。单片机的程序存储器是只读的,CPU以通过MOVC指令遍访64K的程序存储器空间,但没有任何其他指令可以用来更改程序存储区的内容,即向程序存储器执行写入操作。实际应用中,用户可根据需要扩展程序存储器的容量,而其地址空间原则上也可由用户任意安排。上一页下一页返回2.289C51存储器组织但程序存储器低地址的40多个单元是系统留用的,如表2-1所示。89C51单片机复位后,(PC)=0000H,CPU从地址为0000H的R0M单元中读取指令和数据。通常在这3个字节中安排一条无条件指令,跳转到主程序真正存在的地址执行。0003H~0023H是5个中断源中断服务程序入口地址,用户不能安排其他内容。当中断响应后,系统能根据中断源的种类自动转到相应中断源的入口地址执行程序。但由于两个中断源入口地址间隔仅有8个地址单元,这8个存储单元难以存储一个完整的中断服务程序,所以在中断入口地址单元中一般也存放一条无条件转移指令转向中断服务程序的实际入口地址。2.2.3数据存储器单片机的数据存储器一般由随机存取存储器(RAM)组成。上一页下一页返回2.289C51存储器组织这种存储器利用程序可随时向存储单元写入信息,又可以随时从存储单元读出信息。89051单片机数据存储器有片内和片外之分。内部数据存储器由地址00H一FFH共256个字节的地址空间组成。外部数据存储器可扩展64K存储空间,地址范围为0000H一FFFFH,但两者的地址空间是各自独立分开的。1.片外RAM当单片机的内部数据存储器不够用时,就需要外扩数据存储器。89051单片机最多可外扩64K的RAM或I/O,这对很多应用场合已足够用。在实际应用中,扩展外部数据存储器容量的大小,由用户根据需要而定。89051单片机访问外部数据存储器是用一个特殊功能寄存器(16位数据存储器地址指针)DPTR进行的。上一页下一页返回2.289C51存储器组织由于DPTR为16位,所以可寻址的范围为64KB。此外,还可以用R0和R1间接寻址片外低256个单元的数据存储器。89051单片机提供MOV和MOVX两种指令,用以区分片内、片外RAM空间,片内RAM使用MOV指令,片外RAM空间使用MOVX指令。2.片内RAM片内数据存储器最大可寻址256个单元,它们又分为两部分:低128字节(OOH一7FH)是真正的RAM区;高128字节(80H一OFFH)为特殊功能寄存器(SFR)区,如图2-4所示。1)片内RAM低128字节在00H一7FH白勺低128字节单元,还可以再分为3个区域:在00H一1FH共32个字节单元安排了4组工作寄存器,每组占用8个RAM字节单元。上一页下一页返回2.289C51存储器组织地址20H~2FH共有16个字节单元的128位是位寻址区;地址30H一7FH共有80个字节单元属于一般RAM区。所以,真正可以给用户使用的RAM单元并不多。(1)工作寄存器区(OOH~1FH)。工作寄存器区(00H一1FH)是通用工作寄存器区,工作寄存器常用于存放操作数及中间结果等,由于它们的功能及使用不用预先规定,因此称为通用寄存器或者工作寄存器。单片机对工作寄存器提供了丰富的操作指令,使用灵活且响应速度快,有效地设置4个寄存器工作区给软件设计带来极大方便,特别是在中断嵌套时,可实现工作寄存器快速现场内容保护功能,提高程序的运行效率。32个单元共分4个组,每组有8个8位工作寄存器,编号为R0~R7,组号依次为0,1,2,3。上一页下一页返回2.289C51存储器组织在任一时刻,CPU只能使用其中一组寄存器,称为当前寄存器组,即R0~R7可指向四组中任一组,到底是用哪一组,由程序状态字PSW中的RS1,RSO状态决定。如表2-2所示。(2)位寻址区(20H一2FH)。位寻址区地址的16个单元(共计128位)具有双重功能,既可作为一般RAM单元使用,进行字节操作,也可以对单元中的每一位进行位操作。其中每1位都有一个8位表示的固定的位地址,从20H单元的第0位起,到2FH单元的第7位止共128位,用地址00H一7FH分别与之对应。这16个单元构成了1位处理机的存储空间,CPU可以直接寻址位寻址区,进行位操作。通常可以把各种程序状态标志、位控制变量存于位寻址区内。同样,这16个单元也可以进行字节寻址,作为一般的RAM单元进行读/写操作。上一页下一页返回2.289C51存储器组织(3)堆栈和数据缓冲区(30H一7FH)。也称用户RAM区,这80个单元只能进行字节寻址,用于作为数据缓冲区和堆栈区,用户可以灵活使用和分配堆栈区。对用户RAM区的使用没有任何规定和限制,一般把堆栈开辟在此区中。2)片内RAM高128字节片内80H~OFFH为特殊功能寄存器区,详细内容见2.2.4介绍。2.2.4特殊功能寄存器特殊功能寄存器又称为专用寄存器,实质上是一些具有特殊功能的片内RAM单元。89051单片机片内有21个特殊功能寄存器(SFR),它们离散地分布在80H~FFH的RAM空间中,特殊功能寄存器和内部RAM单元地址的对应关系如表2-3所示。上一页下一页返回2.289C51存储器组织它们专用于CPU对各种功能部件的控制、选择和管理等工作,存放各功能部件的工作方式、条件、状态和结果。在这21个特殊功能寄存器中,有11个具有位寻址能力,它们的字节地址正好能被8整除。下面对部分特殊功能寄存器进行介绍,其余将在后续章节中讲述1)程序计数器(PC)程序计数器(PC)是一个16位专用计数器,用来存放下一条CPU将要取出并执行的指令的16位程序存储器地址。CPU在顺序执行指令时,首先根据PC所指地址单元取出指令,然后PC的内容自动加1,即(PC)+1PC,指向下一个要读取指令的地址单元。CPU在执行转移指令、子程序调用及中断响应时,PC被自动置入新的地址。89C51单片机的16位程序计数器PC可寻址64KB(64K=65536)的程序存储器空间。上一页下一页返回2.289C51存储器组织系统上电或复位时,PC就自动清0(即PC=0000H,从而保证上电或复位后CPU从程序存储器的0000H地址单元开始执行程序。但要注意,PC不可寻址,因此用户无法对它进行读写。2)累加器(ACC)累加器(ACC)是89C51最常用、最忙碌的8位特殊功能寄存器,许多指令的操作数取自于ACC,许多运算中间结果也存放于ACC。在指令系统中用A作为累加器ACC的助记符。3)寄存器B寄存器B是8位寄存器,主要用于乘法和除法的运算。乘法时,B中存放乘数,乘法操作后,乘积的高8位存于B中;除法时,B中存放除数,除法操作后,B中存放余数。上一页下一页返回2.289C51存储器组织4)程序状态字(PSW)PSW是一个8位特殊功能寄存器,它的各位包含了程序执行后的状态信息,供程序查询或判别之用。其中有些状态位是根据程序执行结果由硬件自动设置的,而有些状态位则使用软件方法设定。如表2-4所示。PSW除有确定的字节地址(DOH)外,每一位均有位地址。表中:CY(PSW.7):进位标志位。在执行加法(或减法)运算指令时,如果运算结果最高位(位7)向更高位有进位(或借位),则CY位由硬件自动置1,否则CY清0。在进行位操作时,CY是位操作(布尔操作)累加器,指令助记符用C表示。Ac(pse.6):半进位标志位,也称辅助进位标志。上一页下一页返回2.289C51存储器组织当执行加法(或减法)操作时,如果运算结果(和或差)的低半字节(位3)向高半字节有半进位(或借位),则AC位将被硬件自动置1,否则AC清0}FO(PSW.5):用户标志位。用户可以根据自己的需要对FO位赋予一定的含义,由用户置位或复位,以作为软件标志。RSl(PSW.4)和RSO(PSW.3):工作寄存器组选择控制位。这两位的值可决定选择哪一组工作寄存器为当前工作寄存器组。通过用户用软件改变RS1和RSO值的组合,以切换当前选用的工作寄存器组。其组合关系如表2-2所列。OV(PSW.2):溢出标志位。在带符号数算术运算中,如果运算结果有溢出,即当运算结果超出一128一+127的范围时,OV位由硬件自动置1,否则OV=0。上一页下一页返回2.289C51存储器组织P(PSW.0):奇偶标志位。每条指令执行完后,该位始终跟踪指示累加器ACC中“1”的个数。如结果ACC中有奇数个“1",则置P=1,否则P=0。常用于校验串行通信中的数据传送是否出错5)数据指针(DPTR)DPTR是一个16位的特殊功能寄存器,其高位字节寄存器用DPH表示(地址83H),低位字节寄存器用DPL表示(地址82H)。DPTR既可以作为一个16位寄存器来处理,也可以作为两个独立的8位寄存器DPH和DPL使用。DPTR主要用于存放16位地址,以便对64KB片外RAM作间接寻址6)堆栈指针(SP)SP是一个8位的特殊功能寄存器,用来自动跟踪堆栈栈顶地址。上一页下一页返回2.289C51存储器组织堆栈是设在片内数据存储器RAM中的一个连续存储区间,存储区间的一端(即栈底)固定,另一端(即栈顶)活动,堆栈中的数据只能从栈顶进出,且遵循“后进先出”的原则。堆栈可在响应中断或调用子程序时保护断点地址,也可以通过堆栈操作指令PUSH(进栈)和POP(出栈)保护现场和恢复现场。89051单片机的堆栈是向地址增大方向生长的,在设置堆栈区时,为了避开工作寄存器区和位寻址区,一般设在片内数据存储器RAM中的30H~7FH地址空间内,但系统复位后SP的内容为07H,所以在程序设计时常通过软件方法对SP的值重新设置,以将堆栈开辟在堆栈、数据缓冲区中。上一页返回2.3单片机时钟电路与时序2.3.1振荡器和时钟电路单片机内部的各功能部件是在时钟脉冲的控制下,严格地按时序执行指令进行工作的。时钟电路为单片机工作产生连续的时钟脉冲序列,提供单片机片内各种微操作的时间基准。时序是研究单片机在执行指令过程中,CPU所发出的一系列特定的控制信号在时间上的相互关系。单片机本身就如一个复杂的同步时序电路,为了保证同步工作方式的实现,电路应在唯一的时钟信号控制下严格地按时序进行工作。单片机在执行指令时,CPU首先到程序存储器中取出要执行的指令操作码,然后译码,由时序电路产生一系列控制信号去完成指令所规定的操作。CPU发出的时序信号有两类:一类用于单片机内部各功能部件的控制,用户不能直接接触此类信号,因此无须了解。下一页返回2.3单片机时钟电路与时序另一类是通过控制总线送到片外的,用于对片外存储器或I/O端口的控制,这部分控制信号的时序,是单片机应用系统设计者应该关心的。89051单片机的时钟信号通常由两种方式产生:一种是内部方式,另一种是外部方式。1)内部时钟方式89051单片机芯片内部有一个高增益反相放大器,用于构成振荡器,反相放大器的输入端为XTAL1,输出端为XTAL2,在XTALl,XTAL2两端跨接石英晶体及微调电容就可以构成稳定的自激振荡器,构成单片机的时钟电路。电路如图2-5所示。89051单片机常选择振荡频率为12MHz的石英晶体,采用6MHz的情况也比较多。上一页下一页返回2.3单片机时钟电路与时序内部振荡方式所得的时钟信号比较稳定,实用电路中使用较多。2)外部时钟方式外部时钟方式是把外部已有的时钟信号引入到单片机内部,由XTAL2输入,直接送入内部时钟电路,XTALl接地。外部时钟方式常用于多片单片机同时工作,以便于多个单片机同步。2.3.2指令时序时序是用定时单位来描述的,89C51单片机的时序单位有4个,从小到大依次是:节拍、状态、机器周期和指令周期。下面分别加以说明。1)节拍与状态单片机以晶体振荡器的振荡周期(或外部引入的时钟周期)为最小的时序单位,片内的各种微操作都以此周期为时序基准。上一页下一页返回2.3单片机时钟电路与时序把振荡脉冲的周期(时钟周期)定义为节拍(为方便描述,用P表示),振荡频率二分频后形成状态周期,用S表示。所以,1个状态周期包含两个振荡周期,1个状态包含两个节拍,分别用P1和P2表示。2)机器周期单片机完成一次完整的、基本的操作所需的时间称为机器周期。MSC-51单片机有固定的机器周期,规定1个机器周期有6个状态,分别表示为S1~S6,而1个状态包含两个节拍,那么1个机器周期就有12个节拍,分别记为S1P1,S1P2,…,S6P1,S6P2。1个机器周期共包含12个振荡周期,即机器周期就是振荡脉冲的12分频,即1个机器周期=6个状态周期=12个振荡周期。各时序单位的相互关系如图2-6所示。上一页下一页返回2.3单片机时钟电路与时序显然,如果使用6MHz的时钟频率,1个机器周期就是2μs,而如果使用12MHz的时钟频率,1个机器周期就是1μs。3)指令周期执行一条指令所需要的时间称为指令周期,89051单片机有单字节、双字节和三字节指令,所以它们的指令周期不完全相同,也就是说它们所需的机器周期不相同,可能包括1一4个不等的机器周期。单字节和双字节指令一般为单机器周期和双机器周期,三字节指令都是双机器周期,只有乘、除指令占用四个机器周期。下面是单片机外接晶振频率12MHz时的各种时序单位的大小。振荡周期=1/fOSC=1/12MHz=0.0833μs状态周期=2/fOSC=2/12MHz=0.167μs上一页下一页返回2.3单片机时钟电路与时序机器周期=12/fOSC=12/12MHz=1μs指令周期=(1~4)机器周期=1~4μs图2-7列举了MCS-51单片机几种指令的取指令时序。由于用户看不到内部时序信号,我们可以通过观察XTAL2和ALE引脚的信号,分析CPU取指令时序。通常,每个机器周期中,ALE两次有效,第一次出现在S1P2和S2P1期间,第二次出现在S4P2和SSP1期间。单周期指令的执行始于S1P2,这时操作码被锁存到指令寄存器内,若是双字节则在同一机器周期的S4读第2字节。若是单字节指令,则在S4仍有读出操作,但被读入的字节无效,且程序计数器PC并不增量。图2-7(a)、(b)分别给出了单字节周期和双字节周期指令的时序,都能在S6P2结束时完成操作。上一页下一页返回2.3单片机时钟电路与时序图2-7(c)给出了单字节双周期指令的时序,两个机器周期内进行4次读操作码操作。因为是单字节指令,后3次读操作都是无效的。图2-7(d)给出了访问片外RAM指令“MOVXA,@DPTR”的时序,它是一条单字节双周期指令。在第一个机器周期SS开始送出片外RAM地址后,进行读/写数据。读写期间在ALE端不输出有效信号,所以第二机器周期,即外部RAM已被寻址和选通后,也不产生取指令操作。上一页返回2.4单片机的复位状态与工作方式2.4.1复位方式复位是单片机进入工作状态的初始化操作,是使CPU和系统中其他部件都处于一个确定的初始状态,并从这个状态开始工作。除了进入系统的正常初始化之外,当程序运行错误或由于错误操作而使单片机进入死锁状态时,也可以通过复位重新启动。当由于程序运行出错或操作错误使系统处于死锁状态时,为摆脱困境,也须按复位键重新启动。了解单片机内部寄存器初始化的状态,对于熟悉单片机的操作,简化应用程序的初始化过程是很有必要的。89051单片机的RST引脚是复位信号的引入端,复位信号为高电平有效。单片机在时钟电路工作以后,只要在RST端持续给出两个机器周期(24个振荡周期)以上的高电平就可以完成复位操作。下一页返回2.4单片机的复位状态与工作方式复位操作还会把ALE和变为无效状态,即ALE=1,=1。但复位操作不影响片内RAM单元的内容。复位操作使程序计数器PC初始化为0000H,单片机从0000H单元开始执行程序。此外,还对一些寄存器有影响,这些寄存器复位后的状态如表2-5所示。2.4.2单片机复位电路复位操作有上电自动复位和按键手动复位两种方式。1.上电自动复位上电自动复位是在加电瞬间电容通过充电来实现的,其电路如图2-8(a)所示。在通电瞬间,电容C通过电阻R充电,RST端出现正脉冲,用以复位。上一页下一页返回2.4单片机的复位状态与工作方式只要电源从(的上升时间不超过1ms,就可以实现上电自动复位,即接通电源就完成了系统的复位初始化。2.按键手动复位所谓按键手动复位,是指通过接通一按钮开关,使单片机进入复位状态。系统上电运行后,若需要复位,一般是通过按键手动复位来实现的。通常采用按键手动复位和上电自动复位组合,其电路如图2-8(b)所示。复位电路虽然简单,但其作用非常重要。一个单片机系统能否正常运行,首先要检查是否能复位成功。2.4.3单片机的工作方式89051单片机的工作方式有:复位方式、程序执行方式、节电工作方式、低功耗方式以及EPR0M编程和校验方式。上一页下一页返回2.4单片机的复位状态与工作方式单片机不同的工作方式,代表单片机处于不同的状态。单片机工作方式的多少,是衡量单片机性能的一项重要指标。1.程序执行方式程序执行方式是单片机的基本工作方式,也就是执行用户编写好并存放在程序存储器中的程序,可分为连续执行和单步执行两种。1)连续执行方式连续执行方式是所有单片机都需要的一种基本工作方式,用户编写好的被执行程序可以放在片内或片外R0M中。由于单片机复位后程序计数器PC=0000H,因此单片机在加电或按键复位后总是到0000H处执行程序,这就可以预先在0000H处放一条转移指令,以便跳转到0000H一FFFFH中的用户从需要的地方开始连续执行程序,每读一次程序,PC自动加1。上一页下一页返回2.4单片机的复位状态与工作方式2)单步执行方式在单片机开发系统上有一专用的单步执行按键,按一次,单片机就顺序执行一条指令(仅执行一条),这样就可以逐条检查程序,发现问题进行修改,通常只在用户调试程序时使用,用于观察每条指令的执行情况。单步执行方式是利用单片机外部中断功能实现的程序的单步运行方式,单步执行键相当于外部中断的中断源,当它被按下时相应电路就产生一个负脉冲(即中断请求信号)送到单片机的INTO或INT1引脚,单片机在INTO上的负脉冲作用下便能启动一次中断处理过程,CPU执行一条程序指令,这样就可以一步一步地进行单步操作。2.节电工作方式节电工作方式是一种减少单片机功耗的工作方式。上一页下一页返回2.4单片机的复位状态与工作方式通常可分为空闲(等待)方式和掉电方式,是通过对SFR中的PC0N(地址87H)相应位置1而启动的。图2-9所示为89C51电源控制寄存器PCON各位的分布情况。CHMOS器件的PCON只包括一个SMOD位,其他4位是CHMOS器件独有的。3个保留位用户不得使用,因为硬件没有做出安排,可能在今后的89C51新产品中代表某特定的功能。图2-9中各符号的名称和功能如下。SMOD:串行口波特率倍率控制位,用于串行口通信。若此位为1,则串行口方式1、方式2和方式3的波特率加倍。GF1、GF0:通用标志位。PD:掉电方式位。PD=1即启动掉电方式。上一页下一页返回2.4单片机的复位状态与工作方式IDL:空闲方式位。IDL=1即启动空闲方式,这时CPU因无时钟控制而停止运作。如果同时向PD和IDL两位写1,则PD优先,进入掉电工作方式。PCON的复位值为0xxx0000B。1)空闲工作方式当程序执行将PCON的IDL位置1的指令(如MOVPCON,#01H)后,系统就进入了空闲工作方式。空闲工作方式是在程序运行过程中,用户在CPU无事可做或不希望它执行程序时,进入的一种降低功耗的待机工作方式。在此工作方式下,单片机的工作电流可降到正常工作方式时电流的15%左右。在空闲工作方式时,振荡器继续工作,中断系统。上一页下一页返回2.4单片机的复位状态与工作方式串行口以及定时器模块由时钟驱动工作,但时钟不提供给CPU,也就是说CPU处于待机状态,工作暂停。与CPU有关的SP,PC,PSW,A的状态以及全部工作寄存器的内容均保持不变,I/O引脚状态也保持不变。ALE和PSEN保持逻辑高电平。退出空闲方式的方法有两种,一种是中断退出,一种是按键复位退出。任何的中断请求被响应都可以由硬件将PCON.O(IDL)清0,从而中止空闲工作方式。当执行完中断服务程序返回时,系统将从设置空闲工作方式指令的下一条指令开始继续执行程序。另外,PCON寄存器中的GFO和GF1通用标志可用来指示中断是在正常或是在空闲方式下发生。例如,在执行设置空闲方式的指令前,先置标志位GFO(或GFI),当空闲工作方式被中断中止时,在中断服务程序中可检测标志位GFO(或GFI)。上一页下一页返回2.4单片机的复位状态与工作方式以判断出系统是在什么情况下发生的中断,如GFO(或GF1)为1,则是在空闲方式下进入的中断。另一种退出空闲方式的方法是按键复位,由于在空闲工作方式下振荡器仍然工作,复位仅需两个机器周期便可完成。复位信号直接将PCON.O(IDL)清0,从而退出空闲状态,CPU则从进入空闲方式的下一条指令开始重新执行程序。2)掉电方式当CPU执行一条置PCON.1位(PD)为1的指令(如MOVPCON.1,#02H后,系统即进入掉电工作方式。掉电的具体含义是指由于电源的故障使电源电压丢失或工作电压低于正常要求的范围值。掉电将使单片机系统不能运行,若不采取保护措施,则会丢失RAM和寄存器中的数据。上一页下一页返回2.4单片机的复位状态与工作方式为此单片机设置有掉电保护措施,进行掉电保护处理。具体做法是:检测电路,一旦发现掉电,立即把程序运行过程中有用信息转存到RAM,然后启用备用电源维持RAM供电。在掉电工作方式下,单片机内部振荡器停止工作。由于没有振荡时钟,因此,所有的功能部件都停止工作。但内部RAM区和特殊功能寄存器的内容被保留,端口的输出状态值都保存在对应的SFR中。退出掉电方式的唯一方法是由硬件复位,复位时将所有的特殊功能寄存器的内容初始化,但不改变内部RAM区的数据。在掉电工作方式下,Vcc可以降到2V,但在进入掉电方式之前,Vcc不能降低。而在准备退出掉电方式之前,Vcc必须恢复正常的工作电压值,并维持一段时间(不小于10ms),使振荡器重新启动并稳定后方可退出掉电方式。上一页下一页返回2.4单片机的复位状态与工作方式3.EPR0M编程和校验方式编程是指利用特殊手段对单片机片内部的EPR0M进行写入的过程,校验则是对刚刚写入的程序代码进行读出校验的过程。对于片内程序存储器为EPR0M型的89C51单片机(如8751),需要一种对EPR0M可以操作的工作方式,即用户可对片内的EPR0M进行编程和校验。一般的单片机开发系统都提供实现这种方式的设备和功能。上一页返回2.5并行输入/输出端口2.5.1并行输入/输出口的结构89C51单片机有4个8位并行输入/输出(I/O)端口,分别记作P0,P1,P2,P3。每个端口都各有8条I/O口线,共32条,每个I/O口都可以独立地用作输入或输出,每一根I/O线也都可以独立地用作输入或输出。每个端口都包括一个锁存器(即特殊功能寄存器PO~P3)、一个输出驱动器和输入缓冲器,作输出时,数据可以锁存,即在重新输出新的数据之前,这一位的数据一直保持不变;作输入时,数据可以缓冲,但对输入信号是不锁存的,所以外设欲输入数据必须保持到取数指令执行(把数据读取)为止。PO~P3皆为特殊功能寄存器,这4个端口除了按字节寻址外,还可以按位寻址。由于各端口的功能不同,结构上也存在一些差异。但是同一个并行I/O端口8位的位结构是完全相同的。因此,只需介绍各端口的位结构即可。下一页返回2.5并行输入/输出端口2.5.2并行输入/输出口的功能1.PO口PO口既能用作通用I/O口,又能用作地址/数据总线。PO口是一个8位的三态双向数据总线口,可作为通用I/)接口使用,也可作为地址/数据线分时复用口使用,如图2-10所示是PO口的一位的结构原理图。它由一个数据输出锁存器、两个三态数据输入缓冲器、一个多路开关MUX,一个数据输出驱动电路(T1和T2)、一个与门及一个非门组成。锁存器起输出锁存作用,两个三态输入缓冲器用作“读引脚”和“读锁存器”控制,场效应管T1,T2组成输出驱动器,与门、非门及转换开关构成输出控制电路。1)用作通用I/O口上一页下一页返回2.5并行输入/输出端口用作通用I/O口时,CPU令控制信号为低电平,其作用有两个:一是使多路开关MUX接通B端,即锁存器输出端;二是令与门输出低电平,V1截止,致使输出级开漏输出电路。(1)作为输出口。当PO口用作输出口时,因输出级处于开漏状态,必须外接上拉电阻。当写信号加在锁存器的时钟端CLK上,此时D触发器将内部总线上的信号反相后输出到端,若D端信号为“0”,=1,V2导通,P0.X引脚输出“0”;若D端信号为“1”,=0,V2截止,虽然V1截止,因P0.X引脚已外接上拉电阻,P0.X引脚输出“1”。(2)作为输入口。当PO口用作输入时,必须保证V2截止。因为若V2导通,则从PO口引脚上输入的信号被V2短路。为使V2截止,必须先向该端口锁存器写入“1“。=0,V2截止。上一页下一页返回2.5并行输入/输出端口输入信号从PO引脚输入后,先进入图中下方的读引脚输入缓冲器。CPU执行端口输入指令后,“读引脚”信号使输入缓冲器开通,输入信号进行内部数据总线(3)“读一修改一写”。51型单片机对端口的操作除了输入/输出外,还能对端口进行“读一修改一写”操作。例如,执行“ANLPO,A”指令是将PO口的状态信号(读)与累加器A内容相“与”(修改)后,再重新写入PO口锁存器输出(写)。其中“读”不是读PO口引脚上的输入信号,而是读PO口端口原来输出的信号,即锁存器Q端的信号,所用的输入缓冲器是图中上方的读锁存器输入缓冲器,防止错读引脚上的电平信号。读锁存器信号使该缓冲器开通,锁存器Q端的信号进入内部数据总线。2)作为地址/数据总线上一页下一页返回2.5并行输入/输出端口PO口除一般输入/输出作用外,还能作为地址总线低8位和数据总线,供系统扩展时使用。这时控制信号为高电平,多路开关MUX接通A端(1)总线输出。作总线输出时,从“地址/数据”端输入的地址或数据信号同时作用于与门和反相器,并分别驱动V1,V2,结果在引脚上得到地址或数据输出信号。例如,若地址/数据信号为“1”,则与门输出“1”,V1导通;反相器输出“0”,V2截止,引脚输出“1”。若地址/数据信号为“0”,则与门输出“0”,V1截止;反相器输出“1”,V2导通,引脚输出“0”。(2)外部数据输入。此时CPU使V1,V2均截止,从引脚上输入的外部数据经读引脚缓冲器进入内部数据总线。PO口的负载能力能驱动8个LSTTL门电路(1个LSTTL电路的驱动电流,低电平时为0.36mA,高电平时为20μA)。上一页下一页返回2.5并行输入/输出端口2.P1口P1口用作通用I/O口,其某位结构如图2-11所示。与PO口相比,P1口的位结构图中少了地址/数据的传送电路和多路开关,上面一只MOS管改为上拉电阻。P1口作为一般I/O口的功能和使用方法与PO口相似。当用作输入口时,应先向端口写入“1”。它也有读引脚和读锁存器两种方式。所不同的是当输出数据时,由于内部有了上拉电阻,所以不再需要上拉电阻。P1口的负载能力为4个LSTTL门电路。3.P2口P2口能用作通过I/O口或地址总线高8位,其某位结构如图2-12所示1)用作通用I/O口上一页下一页返回2.5并行输入/输出端口当控制信号为低电平时,多路开关MUX接到B端,P2口作为通用I/O口使用,其功能和使用方法与PO,P1口相同。用作输入时,必须先写入“1”。2)作为地址总线当控制端输出高电平时,多路开关MUX接到A端,地址信号经反相器和V管二次反相从引脚输出。这时P2口输出地址总线高8位,供系统扩展用P2口的负载能力为4个LSTTL门电路4.P3口P3口能用作通用I/O口,同时每个引脚还有第二功能。其某位结构如图2-13所示)。1)用作通用I/O口上一页下一页返回2.5并行输入/输出端口此时,“第二功能输出”端为高电平,用作输出时,与非门输出取决于锁存器Q端信号,引脚输出信号与内部总线信号相同。其功能和使用方法与P1,P2口相同。用作输入时,必须先写入“1”。2)用作第二功能当P3口的某位作为第二功能输出使用时,应将该位的锁存器置“1",使与非门和输出状态只受“第二功能输出”端控制,第二功能输出信号经与非门和V管二次反相后输出到该位引脚上。当P3口的某位作为第二功能输入时,该位的“第二功能输出”端和锁存器自行置“1",该位引脚上信号经缓冲器送入“第二功能输入”端。P3口的负载能力为4个LSTTL门电路。上一页下一页返回2.5并行输入/输出端口在一般情况下,PO口分时作为地址总线的低8位和数据总线,P2口作为地址总线高8位,P3口作为第二功能使用(不一定全部),真正能提供给用户使用的I/O口只有P1口和未使用第二功能的部分P3口端线。在用作输入时,PO~P3均需先写入“1"。上一页返回本章小结本章以89C51为主线详细介绍了单片机CPU的内部逻辑结构和各部分的功能、外部引脚定义、存储器结构、并行I/)端口、CPU时序以及运行方式等内容。掌握这些知识是单片机应用系统设计和开发的基础。通过本章的学习应掌握单片机的内部逻辑结构和各部分的功能与特点,单片机外部引脚信号的使用。熟悉累加器ACC、程序状态字寄存器PSW、位处理器、程序计数器PC、数据指针DPTR以及堆栈指针SP的功能。掌握单片机的存储器结构,物理上可分为片内数据存储器、片内程序存储器、片外数据存储器和片外程序存储器4个存储空间。熟悉片内数据存储器的结构、地址分配、使用特点以及特殊功能寄存器,片内数据存储器可分为工作寄存器区、位寻址区、数据缓冲区和特殊功能寄存器区。熟悉单片机并行I/)口的结构,掌握各个并行口的主要功能。下一页返回本章小结通常情况下,PO口和P2口主要用作总线信号扩展,其中P0口作为地址/数据复用信号使用,而P2口用作地址信号的高8位地址输出;当PO口作为一般I/O口使用时其输出是漏极开路输出,因此必须在口线外部加上拉电阻;P1口和P3口一般作为通用I/O口,其中P3口还具有第二功能。熟悉单片机的时钟电路及其时序定时单位,了解其指令执行的时序,掌握单片机的复位电路,熟悉其工作方式。上一页返回习题2一、选择题1.89C51单片机用于选择内外程序存储器的控制信号是()。A.RSTB.C.D.ALE2.PSW=18H时,则当前的工作寄存器组是()。A.0组B.1组C.2组D.3组3.对程序计数器PC的操作是()。A.自动进行的B.通过传送进行的C.是通过加1指令进行的D.通过减1指令进行的4.89C51单片机的并行I/O口信息有两种读取方法;一种是读引脚,还一种是()。A.读锁存器B.读数据C.读A累加器D.内部锁存器下一页返回习题25.内部RAM中具有位地址的区域是()。A.00H~1FHB.20H~2FHC.20H~3FHD.30H~7FH6.ALE信号有效时,表示()。A.从R0M中读取数据B.从PO口可靠地送出地址低8位C.从PO口送出数据D.从RAM中读取数据7.
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026四川内江市隆昌市普润镇人民政府招聘1人备考题库带答案详解(完整版)
- 2026甘肃阿阳农商开发有限公司招聘备考题库及答案详解一套
- 2026广东深圳理工附中教师招聘9人备考题库附参考答案详解ab卷
- 【高中语文】《石钟山记》导学案统编版高二语文选择性必修下册
- 网站建设服务合同
- 2026江西抚州高新区招聘社区工作者(专职网格员)50人备考题库及参考答案详解(夺分金卷)
- 2026贵州黔南州贵定县面向社会招聘国有企业工作人员11人备考题库及答案详解【夺冠系列】
- 2026甘肃金昌永昌县红山窑镇卫生院招聘1人备考题库及参考答案详解(典型题)
- 2026云南省机关事务管理局抗战胜利纪念堂管理处招聘编外人员3人备考题库附答案详解(培优)
- 2026兴业银行长春分行招聘备考题库完整答案详解
- 2026江苏苏州市健康养老产业发展集团有限公司下属子公司招聘44人(第一批)笔试历年典型考点题库附带答案详解
- 2026年临沂市工业学校公开招聘教师(32名)笔试参考题库及答案解析
- 水产动物育种学智慧树知到期末考试答案章节答案2024年上海海洋大学
- 中考古诗词复习专题之苏轼词专题课件
- 基因工程制药-课件
- 承揽合同(合同范本)
- 八年级数学下册导学案全册
- 初中化学教学及复习策略-(夯实基础-合作探究-共同提高)课件
- 登高车安全技术交底
- 年处理20万吨铝灰渣资源再利用项目可行性研究报告完整立项报告
- 政务服务一件事建设方案
评论
0/150
提交评论