版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
12.1单片机的根本组成2.280C51单片机的引脚功能和结构框图2.380C51CPU的结构和特点2.4存储器结构和地址空间2.580C51的布尔处理器2.680C51单片机的工作方式第二章单片机的根本结构与工作原理根本内容2单片机的结构特征是将组成计算机的根本部件集成在一块晶体芯片上,构成一台功能独特的单片微型计算机。一台典型单片机的根本组成结构,如图2-1所示。2.1单片机的根本组成3图2-1典型单片机的根本组成结构CPU是单片机的最核心局部,它是整个单片机的控制和指挥中心,完成所有的计算和控制任务。振荡器和时序逻辑,产生CPU工作所需要的内部时钟。中断控制逻辑用来应付一些临时到达的突发事件。并行I/O接口和串行I/O接口都是一些数据传输通道,方便CPU从芯片外部取得待处理的对象和将处理的结果送到芯片外部。程序存储器用于存放单片机的程序。数据存储器用于存放内部待处理的数据和处理后的结果。定时器/计数器主要是完成对外部输入脉冲的计数或者根据内部的时钟及定时设置,周期性的产生定时信号。总线控制逻辑,用于产生外部存储空间的有关读写控制信号。内部总线内部CPU与程序存储器、数据存储器、并行I/O接口、串行I/O接口和定时器/计数器之间都是通过内部总线联系在一起。51.微处理器(CPU)80C51系列MCU中的中央处理器(CPU)是一个8位的处理器,和通用微处理器根本相同,同样包括了运算器和控制器两大局部,为了增强实时性,添加了“面向控制〞的处理功能,如位处理、查表、多种跳转、乘除法运算、状态检测、中断处理等。62.存储器单片机的存储器有两种根本结构:一种是在通用微型计算机中广泛采用的将程序和数据合用一个存储器空间的结构,称为普林斯顿(Princeton)结构;另一种是将程序存储器和数据存储器截然分开,分别寻址的结构,称为哈佛(Harvard)结构。Intel的MCS-51和80C51系列单片机就是这种结构。考虑到单片机“面向控制〞的实际应用的特点,一般需要较大的程序存储器,因此,目前的单片机以采用程序存储器和数据存储器截然分开的结构为多。7(1)程序存储器〔ROM)由于单片机的应用系统,一般开发调试成功后的应用程序不再需要改变,常永久性地存储在程序存储器中,故单片机的程序存储器都采用只读存储器。为方便不同用户的需要,目前单片机的程序存储器有以下二种结构形式:8①片内只读存储器片内掩膜ROM〔MROM〕:其特点是程序必须在做单片机时写入,一次性固化,用户不能修改。因此,这种结构形式只适用于程序已成熟、定型,且批量很大的场合。这种单片机的价格廉价。
片内可编程的ROM:可直接由用户进行编程,因而用户在实际应用中甚感方便。但这类单片机价格较贵,应有选择地采用。9一种可编程的ROM是EPROM。EPROM需用紫外线擦除,必须脱机固化,不能在线改写。
电可擦除型ROM——E2PROM。电可擦除型ROM给用户带来了更大的方便,特别是应用系统的现场调试。由于目前价格已经迅速下降,所以被广泛采用。目前所有的单片机都采用FLASHROM!EPROM和E2PROM都是可以屡次擦除和编程的,或称MTP(MultipleTimeProgrammable)的ROM。还有仅允许一次编程的OTP的ROM。10②片外只读存储器由于受集成度的限制,片内只读存储器一般存储容量较小(2KB至8KB),给使用带来不便。使用片外只读存储器的单片机那么克服了上述之缺乏。在单片机中,用随机存取存储器〔RAM〕来存储程序在运行期间的工作变量和数据,所以称为数据存储器。(2)数据存储器(RAM)11一般在单片机内部设置一定容量(64B至256B)的RAM。这样,小容量的数据存储器以高速RAM的形式集成在单片机内,以加快单片机运行的速度。而且这种结构的RAM还可以使存储器的功耗下降很多。在单片机中,常把存放器(如工作存放器、特殊功能存放器、堆栈等)在逻辑上划分在片内RAM空间中,所以可将单片机内部RAM看成是存放器堆,这样的结构也有利于运行速度的提高。对某些应用系统,还可外部扩展数据存储器。12
3.可编程并行I/O口为了满足“面向控制〞的实际应用的需要,MCU提供了数量多、功能强、使用灵活的并行I/O口。不同MCU的并行I/O电路在结构上稍有差异。有些MCU的并行I/O口,不仅可灵活地选作输入/输出,而且还具有多种功能。例如,80C51系列MCU的P0口,它既是I/O口,又是系统总线,从而为扩展外部存储器和I/O接口提供了方便,大大拓宽了MCU的应用范围。13
4.全双工串行口(UART)现在的80C51系列MCU均配置了全双工串行口,有的80C51系列MCU(SiliconLabs公司的MCU)甚至配置了多个串行口。串行口提供了与某些终端设备进行串行通信或和一些特殊功能的器件相连的能力,甚至可用多个MCU相连构成多机系统,使MCU的功能更强且应用更广。145.定时器/计数器在单片机的实际应用中,往往需要精确的定时,或者需对外部事件进行计数。为了减少软件开销和提高单片机的实时控制能力,因而均在单片机内部设置定时器/计数器电路,通过中断,实现定时/计数的自动处理。15
6.中断控制系统中断控制系统的参加有效地解决了快速CPU与慢速外部设备之间的矛盾,可使CPU与外部设备并行工作,大大提高了工作效率;可以及时处理控制系统中许多随机产生的参数与信息,即计算机具有实时处理的能力,从而提高了控制系统的性能;使系统具备了处理故障的能力,提高了系统自身的可靠性。167.定时电路及元件计算机的整个工作是在时钟信号的驱动下,按照严格的时序有规律地一个节拍一个节拍地执行各种操作。各种计算机均有自己的固定时序和定时电路。同样,单片机内部也设有定时电路,只需外接振荡元件即可工作。外接振荡元件一般选用晶体振荡器(简称晶振),或用价廉的RC振荡器,也可用外部时钟源,作为振荡元件。近来有的单片机将振荡元件也集成在芯片内部,这样不仅大大缩小了单片机的体积,同时也方便了使用。17由上可见,单片机在结构上突破了常规的按逻辑功能划分芯片、由多片构成微型计算机的设计思想,将构成计算机的许多功能集成在一块晶体芯片上。在众多的单片机中,又以80C51的结构具有显著特点,形成了主流机型,被多家单片机厂家选作内核。我们将以通用的80C51系列为主,对其功能和结构作由表及里的分析。182.289C51系列微控制器的引脚介绍学习MCU首先必须知道怎样设计电路及怎样连线,这就需要了解MCU的引脚。熟悉并牢记各引脚的功能,是学好用好MCU的根本功。89C51芯片是DIP(DualIn-linePackage)封装的,有40个引脚,如图2-2(a)所示。89C52芯片与89C51芯片封装形式一样。由于技术的进步及可靠性、小型化的要求,在应用中,现在的MCU出现了多种封装形式。19例如,STC公司的MCU,封装形式有SOP(SmallOut-linePackage)、PQFP(PlasticQuadFlatPackage)、LQFP(LowrofileQuadFlatPackage),如图2-2(b)所示;NXP公司的MCU,封装形式有LQFP、TSOP(ThinSmallOut-linePackage);SiliconLabs公司的MCU,封装形式有TQFP(ThinQuadFlatPackage)、QFN(QuadFlatNo-leadPackage)等。
20对于初学者来说,DIP封装的MCU使用方便,且便于记忆管脚位置,下面就结合图2-2介绍标准89C51DIP封装形式的引脚功能。图2-2标准89C51DIP和QFP封装图2180C5112345678910111213141516171819204039383736353433323130292827262524232221
P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7RST/VPDRXD/P3.0TXD/P3.1INT0/P3.2INT1/P3.3T0/P3.4T1/P3.5WR/P3.6RD/P3.7XTAL2XTAL1VssVccP0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7EA/VppALE/PROGPSENP2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0222.2.1电源及时钟引脚1.电源引脚MCU使用的是+5V电源,其中40引脚(VDD)接正极,20引脚(VSS)接地。2.时钟引脚两个时钟引脚XTAL1、XTAL2外接晶体与片内的反相放大器构成一个振荡器,它为MCU提供了时钟信号。232.2.2并行I/O口标准89C51MCU具有4个I/O口,32根I/O口线。1.P0口P0口是8位、漏极开路的双向I/O口。当扩展片外存储器(ROM及RAM)时,P0口用作分时复用的地址/数据总线。在程序校验期间,输出指令字节(这时,需加外部上拉电阻)。P0口(作为总线时)能驱动8个LSTTL负载。242.P1口P1口是8位、准双向I/O口,具有内部上拉电阻。在编程/校验期间,用作输入低位字节地址。P1口可以驱动4个LSTTL负载。对于89C52来说,P1.0(T2)是定时器/计数器T2的计数输入端;P1.1(T2EX)是定时器/计数器T2捕获/重装载的外部触发输入端。这时,读两个特殊引脚的输出锁存器前,应由程序将相应输出锁存器置1。.253.P2口P2口是8位、准双向I/O口,具有内部上拉电阻。当扩展片外存储器(ROM及RAM)时,P2口输出高8位地址。在编程/校验期间,接收高位字节地址。P2口可以驱动4个LSTTL负载。264.P3口P3口是8位、准双向I/O口,具有内部上拉电阻。P3口可以驱动4个LSTTL负载。P3口还提供各种第二功能,在提供这些功能时,其输出锁存器应由程序置1,其第二功能定义见表2-1。27表2-1P3口的第二功能定义28/VPP是片外程序存储器访问允许信号,低电平有效。在编程时,其上施加21V或12V的编程电压。2.2.3控制引脚控制引脚共4根。1.RSTRST是复位输入信号端,高电平有效。振荡器工作时,在RST上作用两个机器周期以上的高电平,将使MCU复位。2./VPP293.ALE/PROGALE/PROG输出地址锁存允许信号,当访问片外存储器时,锁存低字节地址。ALE以1/6时钟频率的速率稳定输出信号,可用作对外输出的时钟或用于定时。在对程序存储器编程期间,用作输入,可输入编程脉冲(PROG)。ALE可以驱动8个LSTTL负载。304.PSENPSEN是片外程序存储器选通信号,低电平有效。在从片外程序存储器取指令期间,在每个机器周期,当PSEN有效时,程序存储器的内容被送入P0口(数据总线)。PSEN可以驱动8个LSTTL负载。312.380C51CPU的结构和特点中央处理器CPU主要包括控制器、运算器和工作存放器及时序电路。在单片机中,工作存放器(即通用存放器)属于数据存储器RAM的一局部,因此,工作存放器放在存储空间配置中介绍。P0驱动器P2驱动器P0锁存器P2锁存器RAM地址存放器128BRAM4KBFlashROMB存放器暂存器1暂存器2ACCSP程序地址存放器缓冲器PC增1PCDPTR中断、串行口和定时器PSWP1锁存器P1驱动器P3锁存器P3驱动器定时控制指令存放器指令译码器OSCALUXTAL1XTAL2PSENALEEARET89C51单片机内部结构图返回2.3.1运算器运算器包括:可进行8位算术和逻辑运算的单元ALU8位的暂存器1(TMP1)、暂存器2(TMP2),8位的累加器ACC8位存放器B程序状态存放器PSW等。〔1〕算术和逻辑单元ALUALU是CPU运算器的核心,它可以完成对4位、8位和16位数据进行操作加、减、乘、除、加1、减1、BCD数十进制调整及比较等算术运算和“与〞、“或〞、“异或〞、“求补〞及“循环移位〞等逻辑运算操作。它是整个单片机的计算中心。〔2〕累加器ACC8位存放器,ALU运算的结果,一般都进入累加器ACC,当然运算的对象也可以来自于ACC。除此之外,ACC在MCS-51内部还经常作为数据传送的中转站。同一般微处理器一样,它是最忙碌的一个存放器。在指令中用助记符A来表示。〔3〕存放器B8位存放器,在乘、除运算时,B存放器用来存放一个操作数,也用来存放运算后的一局部结果。假设不做乘、除运算,那么可作为通用存放器使用。〔4〕程序状态字存放器PSW8位存放器,用于指示指令执行后的状态信息,相当于一般微处理器的标志存放器。PSW的位结构如下表所示。Cy:高位进位标志位当ALU的算术运算过程中有进位或借位时,Cy=1;否那么,Cy=0。同时,该位还可以用作位累加器,这时一般只用“C〞表示。AC:辅RS1、RS0:选择工作存放器组位助进位标志当ALU的算术运算过程中低4位向高4位有进位或借位时,AC=1;否那么,AC=0。该位常用于BCD码的调整。F0:用户标志位用于选择内部数据存储器区内4组工作存放器中的某一组。具体选择情况见存放器介绍局部。OV:溢出标志位运算结果超出机器所能表示的范围时称溢出。溢出是指有符号数运算时,数值超过了+127---128。OV=Cy7⊕Cy6,补码运算产生溢出OV=1,否那么OV=0P:奇偶校验标志位根据累加器ACC中1的个数由硬件置位或去除,当累加器ACC中有奇数个1时P=1;否那么,P=0。PSW.1:保存位无定义。【例】:分析执行以下指令序列后,A、C、AC、OV、P的内容是什么?MOVA,#79HADDA,#58H
该指令功能是将79H+58H→A。计算过程如下:〔79H〕01111001+〔58H〕01011000————————————〔D1H〕11010001A=D1H最高位无进位,C=0;低半字节有进位,AC=1;OV=1,发生溢出;A中1的个数为偶数,P=0。〔5〕临时存放器TMP1和TMP2这两个存放器专门供ALU存放临时数据,用户不可以直接访问。〔6〕程序控制逻辑包括程序计数器PC、指令存放器IR、指令译码器ID、振荡器及定时电路等。程序计数器PC16位字节地址计数器,PC中的内容是将要执行的下一条指令的地址。改变PC的内容就可改变程序执行的方向。指令存放器IR及指令译码器IDCPU把由PC中的内容决定的Flash或ROM地址中的指令代码取出后,经指令存放器IR送至指令译码器ID进行译码,译码后产生一定序列的控制信号,以执行指令所规定的操作〔例如,把片内工作存放器中的数据传送到外部I/0口〕。39中央控制器是识别指令,并根据指令性质控制计算机各组成部件进行工作的部件,与运算器一起构成中央处理器。在80C51单片机中,控制器包括程序计数器PC、数据指针DPTR、程序地址存放器、指令存放器IR、指令译码器、条件转移逻辑电路及定时控制逻辑电路。其功能是控制指令的读出、译码和执行,对指令的执行过程进行定时控制,并根据执行结果断定是否分支转移。2.3.2中央控制器401.地址存放器PC和DPTR〔1〕程序计数器PC程序计数器PC(ProgramCounter)是中央控制器中最根本的存放器,是一个独立的计数器,存放着下一条将要从程序存储器中取出的指令的地址。其根本的工作过程是:读指令时,程序计数器将其中的数作为所取指令的地址输出给程序存储器,然后程序存储器按此地址输出指令字节,同时程序计数器本身自动加1,指向下一条指令地址。41程序计数器PC变化的轨迹决定程序的流程。程序计数器的宽度决定了程序存储器可以直接寻址的范围。在80C51中,程序计数器PC是一个16位的计数器,故而可对64KB〔216〕程序存储器进行寻址。程序计数器PC的根本工作方式有:①程序计数器PC自动加1,这是最根本的工作方式,也是这个专用存放器被称为计数器的原因。②执行有条件或无条件转移指令时,程序计数器将被置入新的数值,程序的流向发生变化。变化的方式有以下几种:42带符号的相对跳转SJMP,短跳转AJMP,长跳转LJMP及JMP@A+DPTR等。43·PC的现行值〔当前值〕,即下一条将要执行的指令的地址,送入堆栈,加以保护。③在执行调用指令或响应中断时:·将子程序的入口地址或者中断矢量地址送入PC,程序流向发生变化,执行子程序或中断效劳程序。子程序或中断效劳程序执行完毕,遇到返回指令RET或RETI时,将栈顶的内容送到PC存放器中,程序流程又返回到原来的地方,继续执行。44程序计数器PC的输出,即程序存储器的地址,与P0、P2口之间的关系如图2-4所示。图2-4程序计数器PC的输出与P0、P2口之间的关系
45〔2〕数据指针DPTR数据指针是80C51中一个功能比较特殊的存放器。从结构上说,DPTR是一个16位的特殊功能存放器,主要功能是作为片外数据存储器寻址用的地址存放器〔间接寻址〕,故称为数据指针。访问片外数据存储器的指令为:MOVXA,@DPTR读MOVX@DPTR,A写此时,DPTR的输出,即片外数据存储器的地址,与P0、P2口之间的关系如图2-5所示。46图2—5DPTR的输出与P0、P2口之间的关系
47DPTR存放器也可以作为访问程序存储器时的基址存放器。DPTR存放器既可以作为一个16位存放器处理,MOVC A,@A+DPTRJMP @A+DPTRMOV DPTR,#16位地址INC DPTR也可以作为两个8位存放器处理,其高8位用DPH表示,低8位用DPL表示。如:CJNE A,DPL,$CJNE A,DPH,$48在80C51中,两个地址存放器,即程序计数器PC与数据指针DPTR,有相同之处,也有差异:①两者都是与地址有关的16位的存放器。其中,PC与程序存储器的地址有关,而DPTR与数据存储器的地址有关。作为地址存放器使用时,PC与DPTR都是通过P0和P2口输出的。但是,PC的输出与ALE及有关;DPTR的输出,那么与ALE、、相联系。49②PC、DPTR都可作为16位存放器对待;PC只可作为16位存放器对待;由于PC有自动加1的功能,故又称为计数器;PC是不可以访问的;有自己独特的变化方式;它的变化轨迹决定了程序执行的流程。DPTR不仅可以作为16位存放器对待,也可以作为两个8位存放器对待;DPTR是可以访问的。502.指令存放器IR、指令译码器及控制逻辑指令存放器IR是用来存放指令操作码的专用存放器。执行程序时,首先进行程序存储器的读操作,也就是根据程序计数器给出的地址从程序存储器中取出指令,送指令存放器IR,IR的输出送指令译码器;然后由指令译码器对该指令进行译码,译码结果送定时控制逻辑电路,如图2-6所示。51图2-6指令存放器和指令译码器52定时控制逻辑电路那么根据指令的性质发出一系列定时控制信号,控制计算机的各组成部件进行相应的工作,执行指令。
条件转移逻辑电路主要用来控制程序的分支转移。在80C51中,转移条件也可分为两局部。一局部是内部条件,即程序状态标志位(PSW)和累加器的零状态。另一局部是外部条件,即F0和所有位寻址空间的状态。53其中,F0是程序状态标志存放器PSW的第5位,为用户标志。其状态可由用户根据自己的需要进行设置(置“1〞或者清“0〞),然后使用位测试指令进行测试,以确定程序是否转移。其它位寻址空间的作用与F0类似,可用位测试指令进行状态测试。概括起来,转移条件有如下几种:进位标志位、溢出标志位、奇偶标志位、累加器为零状态、F0标志、位寻址空间。54整个程序的执行过程就是在控制器的控制下,将指令从程序存储器中逐条取出,进行译码,然后由定时控制逻辑电路发相应的定时控制信号,控制指令的执行。对于运算指令,还要将运算的结果特征送入程序状态标志存放器PSW。89C51存储器程序存储器ROM数据存储器RAM片内程序存储器片外程序存储器片内数据存储器片外数据存储器2.4存储器结构和地址空间56
存储器结构和地址空间80C51单片机系列的存储器采用的是哈佛(Harvard)结构,即将程序存储器和数据存储器截然分开,程序存储器和数据存储器各有自已的寻址方式、寻址空间和控制系统。这种结构对于单片机“面向控制〞的实际应用极为方便、有利。在80C51单片机中,不仅在片内驻留了一定容量的程序存储器和数据存储器及众多的特殊功能存放器,而且还具有极强的外部存储器扩展能力,寻址范围分别可达64KB,寻址和操作简单方便。图2-11为80C51单片机存储器映象图。57图2-1180C51存储器映象图58①在物理上设有4个存储器空间
·
程序存储器:片内程序存储器;片外程序存储器;
·
数据存储器:片内数据存储器;片外数据存储器;②在逻辑上设有3个存储器地址空间
·
片内、外统一的64KB程序存储器地址空间;
·
片内256(或384)B数据存储器地址空间;
·
片外64KB的数据存储器地址空间。59在访问这3个不同的逻辑空间时,应选用不同形式的指令。片内数据存储器空间,在物理上又包含两局部:对于80C51型单片机,从0~127号单元为片内数据存储器空间;从128~255号单元为SFR〔SpecialFunctionRegister,特殊功能存放器〕空间〔实际仅占用20多个字节〕。对于80C52型单片机,从0~127号单元为片内数据存储器空间;从128~255号单元共128个字节是数据存储器和特殊功能存放器地址重叠空间。60为了统一和增强灵活性,将A、B和PSW等,也都纳入特殊功能存放器空间进行寻址。概括起来,80C51系列单片机设有三种根本的寻址空间:·64KB的片内、外统一的程序存储器寻址空间;·64KB的片外数据存储器寻址空间;·256(或384)B的片内数据存储器寻址空间,其中包括特殊功能存放器寻址空间。由上可见,80C51系列单片机具有相当容量的存储器寻址空间,大大开拓了它的应用范围。612.4.1程序存储器80C51单片机的程序存储器〔programmemory〕用于存放经调试正确的应用程序和表格之类的固定常数。由于采用16位的程序计数器PC和16位的地址总线,因而其可扩展的地址空间为64KB,且这64KB地址是空间连续、统一的。62①整个程序存储器可以分为片内和片外两局部,CPU访问片内和片外存储器,可由引脚所接的电平来确定:引脚接高电平时,程序从片内程序存储器开始执行,即访问片内存储器;当PC值超出片内ROM容量时,会自动转向片外程序存储器空间执行。引脚接低电平时,迫使系统全部执行片外程序存储器程序。63对于有片内ROM的80C51/87C51单片机,正常运行时,应将引脚接高电平。假设把引脚接低电平,可用于调试状态,即将欲调试的程序设置在与片内ROM空间重叠的片外存储器内,CPU执行片外存储器程序进行调试。对于片内无ROM的80C31/80C32单片机,应将引脚固定接低电平,以迫使系统全部执行片外程序存储器程序。不管从片内或片外程序存储器读取指令,其操作速度是相同的。64②程序存储器的某些单元被保存用于特定的程序入口地址。从0003H~002BH单元被保存用于6个中断源的中断效劳程序的入口地址,故有以下7个特定地址被保存:由于系统复位后的PC地址为0000H,故系统从0000H单元开始取指,执行程序。它是系统的启动地址,一般在该单元设置一条无条件转移指令,使之转向用户主程序处执行。因此,0000H~0002H单元被保存用于初始化。65在程序设计时,通常在这些中断入口处设置无条件转移指令,使之转向对应的中断效劳程序段处执行。复位或非屏蔽中断 0000H外部中断0 0003H计时器T0溢出 000BH外部中断1 0013H计时器T1溢出 001BH串行口中断 0023H计时器T2/T2EX下降沿 002BH66掩膜ROM、OTP〔一次性编程〕ROM和MTP〔屡次编程〕ROM〔包括EPROM及E2PROM等〕。
③片内程序存储器为固定只读存储器ROM,存储器的类型有:由于集成技术的提高,片内程序存储器的容量做得越来越大,直至64KB。在87C51中为4KB的可编程、可改写的只读存储器是EPROM;在89C51中为4KB的可编程、可改写的只读存储器是E2PROM;而80C31不设片内程序存储器,使用时必须由片外扩展。672.4.2数据存储器数据存储器〔datamemory〕由随机存取存储器RAM构成,用来存放随机数据。在80C51单片机中,数据存储器又分片内数据存储器〔InternalDataMemory〕和片外数据存储器〔ExternalDataMemory〕两局部。片内数据存储器(IRAM)最高地址只有8位,因而最大寻址范围为256个字节。68在80C51单片机中,设置有一个专门的数据存储器的地址指示器——数据指针DPTR,用于访问片外数据存储器〔XRAM〕。数据指针DPTR也是16位的存放器,这样,就使80C51单片机具有64KB的数据存储器扩展能力。下面对两种存储器的根本组成及主要功能分别予以介绍。69片内数据数据存储器是最灵活的地址空间。它在物理上又分成两个独立的功能不同的区。◆片内数据RAM区:1.片内数据存储器
·对80C51型单片机,为地址空间的低128B;
·对80C52型单片机,为地址空间的0~255B。◆特殊功能存放器SFR区:
·地址空间的高128B。70对于80C52型单片机,高128B的RAM区和SFR区的地址空间是重叠的。究竟是访问哪一个区是通过不同的寻址方式来加以区别,即访问高128BRAM区时,选用间接寻址方式;访问SFR区,那么应选用直接寻址方式。图2-12为片内数据存储器各局部地址空间的分布图。71图2-12片内数据存储器的地址空间分布图00H20H30H80H片内低128BRAMMCS-51系列单片机片内低128字节的RAM包含:工作存放器区〔00H:1FH〕可位寻址区〔20H:2FH〕通用RAM区〔30H:7FH〕这3个组成局部,如下图:〔1〕片内数据RAM区73①工作存放器区〔00H:1FH〕这是一个通用存放器寻址的区域,指令的数量最多,均为单周期指令,执行的速度最快。从图2-12中可知,其中片内数据RAM区的0~31(00H~1FH),共32个单元,是4个通用工作存放器组(表21),每个组包含8个8位存放器,编号为R0~R7。74表2-1工作存放器组单元地址:第0组00H-07H
第1组08H-07H
第2组10H-17H
第3组18H-1FH75在某一时刻,只能选用一个工作存放器组使用。其选择是通过软件对程序状态字〔PSW〕中的RS0、RS1位的设置来实现的。设置RS0、RS1时,可以对PSW字节寻址,也可以位寻址方式,间接或直接修改RS0、RS1的内容。通常采用后者较方便。例如,假设RS0、RS1均为0,那么选用工作存放器0组为当前工作存放器。现需选用工作存放器组1,那么只需将RS0改成1,可用位寻址方式〔SETBPSW.3,其中PSW.3为RS0位的符号地址〕来实现。76这给软件设计带来极大方便,特别是在中断嵌套时,实现工作存放器现场保护极其方便。累加器ACC、B、DPTR及CY〔布尔处理器的累加器〕一般也作为存放器对待。存放器R0、R1通常用做间接寻址时的地址指针。77②位寻址区〔20H~2FH〕片内数据RAM区的32~47(20H~2FH)的16个字节单元,共包含128位,是可位寻址的RAM区。这16个字节单元,既可进行字节寻址,又可实现位寻址。字节地址与位地址之间的关系见表2-2。这16个位寻址单元,再加上可位寻址的特殊功能存放器一起构成了布尔(位)处理器的数据存储器空间。在这一存储器空间所有位都是可直接寻址的。字节地址与位地址之间的关系〔课本P27〕78③字节寻址区〔30H~7FH〕
MCS-51的片内RAM30H~7FH地址空间的存储单元为通用RAM区,共80个字节单元,这段空间可以存放程序运行的中间结果。可以采用直接字节寻址的方法访问。同时,堆栈也是放置在这一区间的。
对于80C52型单片机,还有高128B的数据RAM区。这一区域只能采用间接字节寻址的方法访问。◆栈指针SP(81H)堆栈:在MCS-51系列单片机片内RAM中,常常要指定一个专门的区域来存放某些特别的数据,它遵循顺序存取和后进先出的原那么,这个RAM区叫做堆栈。堆栈中的数据一般是某些事件发生时的CPU状态或者存放器的值。比方说,当中断到来时,为了防止中断效劳程序中的操作对某些存放器〔如PSW、ACC等〕形成破坏,需要将这个存放器保护起来,我们就可以把这些需要保护的存放器的值压入堆栈,等效劳程序执行完毕后,再把这些存放器的值恢复出来,这个过程我们叫做现场的保护与恢复。④堆栈区及堆栈指示器80堆栈是在片内数据RAM区中,数据先进后出或后进先出的区域。堆栈指示器(SP,StackPointer)在80C51中存放当前的堆栈栈顶所指存储单元地址的一个8位存放器。堆栈共有两种操作:进栈和出栈。不管是数据进栈还是数据出栈,都是对栈顶单元进行的,即对栈顶单元的写和读操作。81
80C51单片机的堆栈是向上生成的:进栈时,SP的内容是增加的;出栈时,SP的内容是减少的。80C51的堆栈区域可用软件设置堆栈指示器〔SP〕的值,在片内数据RAM区中予以定义。系统复位后,SP内容为07H。如不重新定义,那么以07H为栈底,压栈的内容从08H单元开始存放,通过软件对SP的内容重新定义。一般情况下,需要将堆栈设置在通用RAM区的高端〔如:60H~7FH〕,堆栈区的大小取决于整个系统同时需要保护的数据单元量。,堆栈深度以不超过片内RAM空间为限,这样随着压入数据的增加一般不会导致对其他普通RAM区所存放数据的破坏。82堆栈是为子程序调用和中断操作而设立的。其具体功能有两个:保护断点和保护现场。在80C51单片机中,既有与子程序调用和中断程序相伴随的自动进栈和出栈,还有对堆栈的进栈和出栈的指令〔PUSH、POP〕操作。空间分布一般稍大一些的程序代码,会根据功能写几个子程序,而且中断也是常用的。因此,在主程序的开始,一定要修改栈底〔指针SP的内容〕。都特殊功能存放器堆栈指针SP地址为81H,SP的功能就是用来指向堆栈的栈顶的.压栈〔执行PUSH指令〕时:SP自动加1,然后把被压的数据放到SP指向的单元。SP仍然指向栈顶,如左图所示。弹栈〔执行POP指令〕时:先把SP指向的单元弹出,然后把SP减1,如右图所示。在MCS-51系列单片机片内高128字节RAM中,有21个特殊功能存放器(SFR),它们离散地分布在80H~FFH的RAM空间中。这些特殊功能存放器提供了CPU以及其它功能部件〔如定时器计数器、串行口、并行口等〕所需要的控制、状态和缓冲存放器。由于这些存放器一般都具有特殊的功能,因此称为特殊功能存放器。这些存放器的分布如下图。〔2〕特殊功能存放器SFR区85特殊功能存放器SFR〔SpecialFunctionRegister〕是80C51单片机中各功能部件所对应的存放器,用以存放相应功能部件的控制命令、状态或数据的区域。这是80C51系列单片机中最有特色的局部。现在所有80C51系列功能的增加和扩展几乎都是通过增加特殊功能存放器来到达的。80C51系列单片机设有128B片内数据RAM结构的特殊功能存放器空间区。除程序计数器PC和4个通用工作存放器组外,其余所有的存放器都在这个地址空间之内。86对于80C51系列中的80C51,共定义了21个特殊功能存放器,其名称和字节地址列于表2-3中。在80C52中,除上述80C51的21个之外,还增加了5个特殊功能存放器,共计26个。除此而外,其它地址访问无效。87表2-3特殊功能存放器(SFR)名称和地址888990特殊功能存放器在128B空间中的分布示于表2-4。从表中可以看出,在128B空间中存在着大片的空白,这为80C51系列功能的增加提供了极大的可能性。91在80C51的21个〔80C52的26个〕特殊功能存放器中,字节地址中低位地址为0H或8H的特殊功能存放器,除有字节寻址能力外,还有位寻址能力。这些特殊功能存放器与位地址的对应关系见表2--6。从表中可以看出,有些可以位寻址的位还有自己的特殊名称。空间分布片外数据存储器与片内数据存储器空间的低地址局部(0000H~00FFH)是重叠的,89C51有MOV和MOVX两种指令,用以区分片内、片外RAM空间,当使用MOV指令时,访问的是片内区域,当使用MOVX指令时,访问的是片外区域。MCS-51单片机的64KB的数据存储器空间除了片内有128字节或256字节的存储器单元外,剩余所有的数据存储单元都需要扩展片外RAM实现。片外数据存储器的地址可以是8位或16位。使用8位地址时,那么由P0口将这8位地址与数据信号分时提供,利用地址锁存信号ALE的下降沿可以将这些地址锁存住。假设采用16位地址,那么由P2端口传送高8位地址。2.片外数据存储器93片外数据存储器是在外部存放数据的区域,这一区域用存放器间接寻址的方法访问,所用的存放器为DPTR、R1或R0。当用R1、R0寻址时,由于R0、R1为8位存放器,因此最大寻址范围为256B;当用DPTR寻址时,由于DPTR为16位存放器,因此最大寻址范围为64KB。以下图是片外扩展2KBRAM时的连接图。P0口用作RAM的数据总线〔D0-D7〕,通过74LS373锁存后作为地址总线的低8位〔A0-A7〕,P2口中的3位〔P2.0、P2.1和P2.2〕作为RAM的3位地址〔A8-A10〕。访问片外RAM期间,CPU根据需要发送读或写信号。952.580C51单片机的布尔〔位〕处理器在80C51单片机系统中,与字节处理器相对应,还特别设置了一个结构完整、功能极强的布尔(位〕处理器。这是80C5l系列单片机的突出优点之一,给“面向控制〞的实际应用带来了极大的方便。在位处理器系统中,除了程序存储器和ALU与字节处理器合用之外,还有自己的如下设置:96
▼累加器CY:借用进位标志位。在布尔运算中,CY是数据源之一,又是运算结果的存放处,位数据传送的中心。根据CY的状态,程序转移:JCrel、JNCrel、JBCrel。
▼位寻址的RAM
:RAM区中的0~127位(00H~7FH,包含在20H~2FH单元内)。▼位寻址的存放器:特殊功能存放器(SFR)中的可以位寻址的位。
▼位寻址的并行I/O口:并行I/O口中的可以位寻址的位。97
▼位操作指令系统:位操作指令可实现对位的置位、清0、取反、位状态判跳转、传送、位逻辑运算、位输入/输出等操作。利用位逻辑操作功能进行随机逻辑设计,可把逻辑表达式直接变换成软件执行,方法简便,免去了过多的数据往返传送、字节屏蔽和测试分支,大大简化了编程,节省存储器空间,加快了处理速度增强了实时性能。还可实现复杂的组合逻辑处理功能。所有这些,特别适用于某些数据采集、实时测控等应用系统。这是其它微机机种所无可比较的。2.6单片机的工作方式时钟电路用于产生单片机工作所必需的时钟控制信号。2.6.1时钟电路时钟频率直接影响单片机的速度,电路的质量直接影响系统的稳定性。常用的时钟电路有两种方式:内部时钟方式和外部时钟方式。一、内部时钟方式
内部有一个用于构成振荡器的高增益反相放大器,其输入端:XTAL1,输出端:XTAL2。
C1和C2典型值通常选择为30pF左右。晶体的振荡频率在1.2MHz~12MHz之间。某些高速单片机芯片的时钟频率已达40MHz。100二.外部振荡方式外部振荡方式是把外部已有的时钟信号引入MCU内部。对于HMOS型MCU,外部振荡电路如图2-8所示。对于CHMOS型MCU,XTAL1接片外振荡脉冲输入端,XTAL2悬空。2.6.2机器周期、指令周期与指令时序一、时钟周期单片机的根本时间单位。 假设时钟的晶体的振荡频率为fosc,那么时钟周期Tosc=1/fosc。如fosc=6MHz,Tosc=166.7ns。二、机器周期CPU完成一个根本操作所需要的时间。 执行一条指令分为几个机器周期。每个机器周期完成一个根本操作。MCS-51单片机每12个时钟周期为一个机器周期,
一个机器周期又分为6个状态:S1~S6。每个状态又分为两拍:P1和P2。因此,一个机器周期中的12个时钟周期表示为:S1P1、S1P2、S2P1、S2P2、…、S6P2。三、指令周期执行一条指令时,可分为取指令阶段和指令执行阶段。取指令阶段,PC中地址送到程序存储器,并从中取出需要执行指令的操作码和操作数。指令执行阶段,对指令操作码进行译码,以产生一系列控制信号完成指令的执行。ALE信号是为地址锁存而定义的,以时钟脉冲1/6的频率出现,在一个机器周期中,ALE信号两次有效〔注意,在执行访问外部数据存储器的指令MOVX时,将会丧失一个ALE脉冲〕TTL
8051
X2 X1
Vss外接时钟源Vcc时钟电路 需外接晶振的频率
1.2~12MHZ,C1和C2取
30±10PF
C1C2X
8051
X1 X2振荡电路S1S2S3S4S5S6S1S2P1P2P1P2P1 P2P1P2P1P2P1P2P1P2P1P2fosc一个状态周期一个机器周期T=12*(1/fosc)
X2CPU的时序〔时钟周期、状态周期、机器周期〕105图2-980C51系列MCU取指令、执行指令的时序图假设外接晶振为12MHz时,那么单片机的四个周期的具体值为: 时钟周期=1/12MHz=1/12μs=0.0833μs 状态周期=2*时钟周期=1/6μs=0.167μs 机器周期=12*时钟周期=1μs 指令周期=1~4μs〔1~4个机器周期〕可用于计算指令、程序的执行时间,以及定时器的定时时间 2.6.3复位操作和复位电路 ①复位操作 单片机的初始化操作,摆脱死锁状态。 引脚RST加上大于2个机器周期〔即24个时钟振荡周期〕的高电平就可使MCS-51复位。复位时,PC初始化为0000H,使MCS-51单片机从0000H单元开始执行程序。 除PC之外,复位操作还对其它一些存放器有影响。 SP=07H,P0-P3的引脚均为高电平。 在复位有效期间,ALE脚和PSEN*脚均为高电平,内部RAM的状态不受复位的影响。MCS-51单片机各存放器的复位状态
复位状态
00H 00H 00H 00H 00H 00H
不定0×××0000B存放器 TCON TL0 TH0 TL1 TH1 SCON SBUF PCON
复位状态
0000H 00H 00H 07H 0000H 0FFH××000000B 0×000000B 00H存放器 PC ACC PSW SP DPTR P0~P3 IP IETMOD②复位电路片内复位结构:上电自动复位和按钮复位最简单的上电自动复位电路:C=22µFR=1kΩ按键手动复位,有电平方式和脉冲方式两种。电平方式C=22µFRs=200ΩRk=1kΩ 两种实用的兼有上电复位与按钮复位的电路。 上图〔b〕中的电路能输出高、低两种电平的复位控制信号,以适应外围I/O接口芯片所要求的不同复位电平信号。 74LS122为单稳电路,实验说明,电容C的选择约为0.1μF较好。还可采用专用的复位管理芯片如IMP813L、TL7705等1132.6.4程序执行方式程序执行方式是MCU最根本的工作方式。由于复位后PC=0000H,因此程序执行总是从地址0000H开始的。但一般情况下,程序并不是真正从0000H开始(例如,中断入口地址显然不能存放主程序,主程序的入口地址应该跳过这一区域),为此就必须在0000H开始的单元中存放一条无条件转移指令,以便跳转到实际主程序的入口去执行。1142.6.5低功耗方式图2-11PCON的格式80C5l系列MCU有两种低功耗方式,即空闲方式(IdleMode)和掉电方式(PowerDownMode)。空闲方式和掉电方式都是由电源控制存放器(PCON)的有关位来控制的。电源控制存放器是一个逐位定义的8位存放器,其格式如图2-11所示。115下面对PCON的各位加以说明。(1)
SMOD——波特率倍增位,在串行通信时使用。(2)
GF1——通用标志位1。(3)
GF0——通用标志位0。(4)
PD——掉电方式位,PD=1,那么进入掉电方式。(5)
IDL——空闲方式位,IDL=1,那么进入空闲方式。要想使MCU进入空闲方式或掉电方式,只要执行一条对IDL位或PD位置1的指令即可。1161.空闲方式如果使用指令使PCON存放器IDL位置1,那么MCU进入空闲方式。在空闲方式
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2026学年多彩服装折纸说课稿
- 2025-2026学年大班说课稿夏天的声音
- 井下机车运输工诚信道德考核试卷含答案
- 2025-2026学年不能没有水说课稿
- 2025-2026学年孤独音乐说课稿app
- 工业型煤工诚信道德强化考核试卷含答案
- 2025-2026学年大颗粒鱼说课稿
- 变压器互感器制造工操作管理模拟考核试卷含答案
- 2025-2026学年《巴黎圣母院》说课稿
- 水煤浆制备工合规水平考核试卷含答案
- 第四单元 第1课时 青蛙歌(教学设计)数学北师大版五年级上册2026秋
- 2026高考英语【全国二卷】试卷及参考答案(含听力音频、听力原文)
- 2026年上海松江国有资产投资经营管理集团有限公司招聘笔试参考题库附带答案详解
- 语文试卷(26-65C)答案重庆市金太阳好教育联盟2026届高三10月联考(26-65C)
- 【《某变电站(220kV110kV10kV)短路电流的计算过程案例》3000字】
- 农业技术交流会
- 2025年一级造价师水利案例真题及答案解析
- 军人压力调节课件
- 航天煤油标准
- 六年级英语完形填空100篇(含答案及讲解)
- 《影视鉴赏(第2版)》课件全套 张婉宜 第1-5章 影视鉴赏基础- 欧洲及其他地区影视鉴赏
评论
0/150
提交评论