张萍《微控制器精品教学》第2章 80c51系列微控制器的片内基本结构_第1页
张萍《微控制器精品教学》第2章 80c51系列微控制器的片内基本结构_第2页
张萍《微控制器精品教学》第2章 80c51系列微控制器的片内基本结构_第3页
张萍《微控制器精品教学》第2章 80c51系列微控制器的片内基本结构_第4页
张萍《微控制器精品教学》第2章 80c51系列微控制器的片内基本结构_第5页
已阅读5页,还剩122页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1,2.1 单片机的基本组成 2.2 80C51单片机的引脚功能和结构框图 2.3 80C51 CPU的结构和特点 2.4 存储器结构和地址空间 2.5 80C51的布尔处理器 2.6 80C51单片机的工作方式,第二章单片机的基本结构与工作原理,基本内容,2,单片机的结构特征是将组成计算机的基本部件集成在一块晶体芯片上,构成一台功能独特的单片微型计算机。一台典型单片机的基本组成结构,如图2-1所示。,2.1 单片机的基本组成,3,图2-1典型单片机的基本组成结构,CPU是单片机的最核心部分,它是整个单片机的控制和指挥中心,完成所有的计算和控制任务。 振荡器和时序逻辑,产生CPU工作所需要的内

2、部时钟。 中断控制逻辑用来应付一些临时到达的突发事件。 并行I/O接口和串行I/O接口都是一些数据传输通道,方便CPU从芯片外部取得待处理的对象和将处理的结果送到芯片外部。 程序存储器用于存放单片机的程序。 数据存储器用于存放内部待处理的数据和处理后的结果。 定时器/计数器主要是完成对外部输入脉冲的计数或者根据内部的时钟及定时设置,周期性的产生定时信号。 总线控制逻辑,用于产生外部存储空间的有关读写控制信号。 内部总线内部CPU与程序存储器、数据存储器、并行I/O接口、串行I/O接口和定时器/计数器之间都是通过内部总线联系在一起。,5,1微处理器(CPU),80C51系列MCU中的中央处理器(

3、CPU)是一个8位的处理器,和通用微处理器基本相同,同样包括了运算器和控制器两大部分,为了增强实时性,添加了“面向控制”的处理功能,如位处理、查表、多种跳转、乘除法运算、状态检测、中断处理等。,6,2. 存储器,单片机的存储器有两种基本结构:一种是在通用微型计算机中广泛采用的将程序和数据合用一个存储器空间的结构,称为普林斯顿(Princeton)结构;另一种是将程序存储器和数据存储器截然分开,分别寻址的结构,称为哈佛(Harvard)结构。Intel的MCS-51和80C51系列单片机就是这种结构。考虑到单片机“面向控制”的实际应用的特点,一般需要较大的程序存储器,因此,目前的单片机以采用程序

4、存储器和数据存储器截然分开的结构为多。,7,(1) 程序存储器(ROM),由于单片机的应用系统,一般开发调试成功后的应用程序不再需要改变,常永久性地存储在程序存储器中,故单片机的程序存储器都采用只读存储器。为方便不同用户的需要,目前单片机的程序存储器有以下二种结构形式:,8, 片内只读存储器,片内掩膜ROM(MROM):其特点是程序必须在做单片机时写入,一次性固化,用户不能修改。因此,这种结构形式只适用于程序已成熟、定型,且批量很大的场合。这种单片机的价格便宜。,片内可编程的ROM :可直接由用户进行编程,因而用户在实际应用中甚感方便。但这类单片机价格较贵,应有选择地采用。,9,一种可编程的R

5、OM是EPROM。EPROM需用紫外线擦除,必须脱机固化,不能在线改写。,电可擦除型ROME2PROM。电可擦除型ROM给用户带来了更大的方便,特别是应用系统的现场调试。由于目前价格已经迅速下降,所以被广泛采用。目前所有的单片机都采用FLASH ROM!,EPROM和E2PROM都是可以多次擦除和编程的,或称MTP(Multiple Time Programmable)的ROM。,还有仅允许一次编程的OTP的ROM。,10, 片外只读存储器,由于受集成度的限制,片内只读存储器一般存储容量较小(2 KB至8 KB),给使用带来不便。使用片外只读存储器的单片机则克服了上述之不足。,在单片机中,用随

6、机存取存储器(RAM)来存储程序在运行期间的工作变量和数据,所以称为数据存储器。,(2) 数据存储器(RAM),11,一般在单片机内部设置一定容量(64 B至256 B)的RAM。这样,小容量的数据存储器以高速RAM的形式集成在单片机内,以加快单片机运行的速度。而且这种结构的RAM还可以使存储器的功耗下降很多。在单片机中,常把寄存器(如工作寄存器、特殊功能寄存器、堆栈等)在逻辑上划分在片内RAM空间中,所以可将单片机内部RAM看成是寄存器堆,这样的结构也有利于运行速度的提高。,对某些应用系统,还可外部扩展数据存储器。,12,3可编程并行I/O口,为了满足“面向控制”的实际应用的需要,MCU提供

7、了数量多、功能强、使用灵活的并行I/O口。不同MCU的并行I/O电路在结构上稍有差异。有些MCU的并行I/O口,不仅可灵活地选作输入/输出,而且还具有多种功能。例如,80C51系列MCU的P0口,它既是I/O口,又是系统总线,从而为扩展外部存储器和I/O接口提供了方便,大大拓宽了MCU的应用范围。,13,4全双工串行口(UART),现在的80C51系列MCU均配置了全双工串行口,有的80C51系列MCU(Silicon Labs公司的MCU)甚至配置了多个串行口。串行口提供了与某些终端设备进行串行通信或和一些特殊功能的器件相连的能力,甚至可用多个MCU相连构成多机系统,使MCU的功能更强且应用

8、更广。,14,5. 定时器/计数器,在单片机的实际应用中,往往需要精确的定时,或者需对外部事件进行计数。为了减少软件开销和提高单片机的实时控制能力,因而均在单片机内部设置定时器/计数器电路,通过中断,实现定时/计数的自动处理。,15,6中断控制系统,中断控制系统的加入有效地解决了快速CPU与慢速外部设备之间的矛盾,可使CPU与外部设备并行工作,大大提高了工作效率;可以及时处理控制系统中许多随机产生的参数与信息,即计算机具有实时处理的能力,从而提高了控制系统的性能;使系统具备了处理故障的能力,提高了系统自身的可靠性。,16,7. 定时电路及元件,计算机的整个工作是在时钟信号的驱动下,按照严格的时

9、序有规律地一个节拍一个节拍地执行各种操作。各种计算机均有自己的固定时序和定时电路。同样,单片机内部也设有定时电路,只需外接振荡元件即可工作。外接振荡元件一般选用晶体振荡器(简称晶振),或用价廉的RC振荡器,也可用外部时钟源,作为振荡元件。近来有的单片机将振荡元件也集成在芯片内部,这样不仅大大缩小了单片机的体积,同时也方便了使用。,17,由上可见,单片机在结构上突破了常规的按逻辑功能划分芯片、由多片构成微型计算机的设计思想,将构成计算机的许多功能集成在一块晶体芯片上。在众多的单片机中,又以80C51的结构具有显著特点,形成了主流机型,被多家单片机厂家选作内核。我们将以通用的80C51系列为主,对

10、其功能和结构作由表及里的分析。,18,2.2 89C51系列微控制器的引脚介绍,学习MCU首先必须知道怎样设计电路及怎样连线,这就需要了解MCU的引脚。熟悉并牢记各引脚的功能,是学好用好MCU的基本功。89C51芯片是DIP(Dual In-line Package)封装的,有40个引脚,如图2-2(a)所示。89C52芯片与89C51芯片封装形式一样。由于技术的进步及可靠性、小型化的要求,在应用中,现在的MCU出现了多种封装形式。,19,例如,STC公司的MCU,封装形式有SOP(Small Out-line Package)、PQFP(Plastic Quad Flat Package)、

11、LQFP(Low rofile Quad Flat Package),如图2-2(b)所示;NXP公司的MCU,封装形式有LQFP、TSOP(Thin Small Out-line Package);Silicon Labs公司的MCU,封装形式有TQFP(Thin Quad Flat Package)、QFN(Quad Flat No-lead Package)等。,20,对于初学者来说,DIP封装的MCU使用方便,且便于记忆管脚位置,下面就结合图2-2介绍标准89C51 DIP封装形式的引脚功能。,图2-2 标准89C51 DIP和QFP封装图,21,22,2.2.1 电源及时钟引脚,1电

12、源引脚,MCU使用的是+5 V电源,其中40引脚(VDD)接正极,20引脚(VSS)接地。,2时钟引脚,两个时钟引脚XTAL1、XTAL2外接晶体与片内的反相放大器构成一个振荡器,它为MCU提供了时钟信号。,23,2.2.2 并行I/O口,标准89C51 MCU具有4个I/O口,32根I/O口线。,1P0口,P0口是8位、漏极开路的双向I/O口。当扩展片外存储器(ROM及RAM)时,P0口用作分时复用的地址/数据总线。在程序校验期间,输出指令字节(这时,需加外部上拉电阻)。P0口(作为总线时)能驱动8个LSTTL负载。,24,2P1口,P1口是8位、准双向I/O口,具有内部上拉电阻。在编程/校

13、验期间,用作输入低位字节地址。P1口可以驱动4个LSTTL负载。对于89C52来说,P1.0(T2)是定时器/计数器T2的计数输入端;P1.1(T2EX)是定时器/计数器T2捕获/重装载的外部触发输入端。这时,读两个特殊引脚的输出锁存器前,应由程序将相应输出锁存器置1。.,25,3P2口,P2口是8位、准双向I/O口,具有内部上拉电阻。当扩展片外存储器(ROM及RAM)时,P2口输出高8位地址。在编程/校验期间,接收高位字节地址。P2口可以驱动4个LSTTL负载。,26,4P3口,P3口是8位、准双向I/O口,具有内部上拉电阻。P3口可以驱动4个LSTTL负载。P3口还提供各种第二功能,在提供

14、这些功能时,其输出锁存器应由程序置1,其第二功能定义见表2-1。,27,表2-1 P3口的第二功能定义,28,/VPP是片外程序存储器访问允许信号,低电平有效。在编程时,其上施加21V或12V的编程电压。,2.2.3 控制引脚,控制引脚共4根。,1RST,RST是复位输入信号端,高电平有效。振荡器工作时,在RST上作用两个机器周期以上的高电平,将使MCU复位。,2/VPP,29,3ALE/PROG,30,4PSEN,31,2.3 80C51 CPU的结构和特点,中央处理器CPU主要包括控制器、运算器和工作寄存器及时序电路。在单片机中,工作寄存器(即通用寄存器)属于数据存储器RAM的一部分,因此

15、,工作寄存器放在存储空间配置中介绍。,P0驱动器,P2驱动器,P0锁存器,P2锁存器,RAM地址寄存器,128BRAM,4KB Flash ROM,B寄存器,暂存器1,暂存器2,ACC,SP,程序地址寄存器,缓冲器,PC增1,PC,DPTR,中断、串行口和定时器,PSW,P1锁存器,P1驱动器,P3锁存器,P3驱动器,定时控制,指令寄存器,指令译码器,OSC,ALU,P0.0-P0.7,P2.0-P2.7,P3.0-P3.7,P1.0-P1.7,XTAL1 XTAL2,PSEN ALE EA RET,89C51单片机 内部结构图,返回,2.3.1 运算器,运算器包括: 可进行8位算术和逻辑运算

16、的单元ALU 8位的暂存器1(TMP1)、暂存器2(TMP2), 8位的累加器ACC 8位寄存器B 程序状态寄存器PSW等。,(1)算术和逻辑单元ALU ALU是CPU运算器的核心,它可以完成对4位、8位和16位数据进行操作加、减、乘、除、加1、减1、BCD数十进制调整及比较等算术运算和“与”、“或”、“异或”、“求补”及“循环移位”等逻辑运算操作。它是整个单片机的计算中心。 (2)累加器ACC 8位寄存器,ALU运算的结果,一般都进入累加器ACC,当然运算的对象也可以来自于ACC。除此之外,ACC在MCS-51内部还经常作为数据传送的中转站。同一般微处理器一样,它是最忙碌的一个寄存器。在指令

17、中用助记符A来表示。 (3)寄存器B 8位寄存器,在乘、除运算时,B寄存器用来存放一个操作数,也用来存放运算后的一部分结果。若不做乘、除运算,则可作为通用寄存器使用。,(4)程序状态字寄存器PSW 8位寄存器,用于指示指令执行后的状态信息,相当于一般微处理器的标志寄存器。PSW的位结构如下表所示。,Cy:高位进位标志位当ALU的算术运算过程中有进位或借位时,Cy=1;否则,Cy=0。同时,该位还可以用作位累加器,这时一般只用“C”表示。 AC:辅RS1、RS0:选择工作寄存器组位助进位标志当ALU的算术运算过程中低4位向高4位有进位或借位时,AC=1;否则,AC=0。该位常用于BCD码的调整。

18、 F0:用户标志位 用于选择内部数据存储器区内4组工作寄存器中的某一组。具体选择情况见寄存器介绍部分。 OV:溢出标志位运算结果超出机器所能表示的范围时称溢出。溢出是指有符号数运算时,数值超过了+127-128。 OV=Cy7Cy6,补码运算产生溢出OV=1,否则OV=0 P:奇偶校验标志位根据累加器ACC中1的个数由硬件置位或清除,当累加器ACC中有奇数个1时P=1;否则,P=0。 PSW.1:保留位无定义。,【例】:分析执行下列指令序列后,A、C、AC、OV、P的内容是什么? MOV A,#79H ADD A,#58H 该指令功能是将79H+58HA。计算过程如下: (79H) 01111

19、001 +(58H) 01011000 (D1H) 11010001 A=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送

20、至指令译码器ID进行译码,译码后产生一定序列的控制信号,以执行指令所规定的操作(例如,把片内工作寄存器中的数据传送到外部I/0口)。,39,中央控制器是识别指令,并根据指令性质控制计算机各组成部件进行工作的部件,与运算器一起构成中央处理器。在80C51单片机中,控制器包括程序计数器PC、数据指针DPTR、程序地址寄存器、指令寄存器IR、指令译码器、条件转移逻辑电路及定时控制逻辑电路。其功能是控制指令的读出、译码和执行,对指令的执行过程进行定时控制,并根据执行结果决定是否分支转移。,2.3.2 中央控制器,40,1. 地址寄存器PC和DPTR,(1)程序计数器PC,程序计数器PC(Program

21、 Counter)是中央控制器中最基本的寄存器,是一个独立的计数器,存放着下一条将要从程序存储器中取出的指令的地址。其基本的工作过程是:读指令时,程序计数器将其中的数作为所取指令的地址输出给程序存储器,然后程序存储器按此地址输出指令字节,同时程序计数器本身自动加1,指向下一条指令地址。,41,程序计数器PC变化的轨迹决定程序的流程。程序计数器的宽度决定了程序存储器可以直接寻址的范围。在80C51中,程序计数器PC是一个16位的计数器,故而可对64 KB(216)程序存储器进行寻址。,程序计数器PC的基本工作方式有:, 程序计数器PC自动加1,这是最基本的工作方式,也是这个专用寄存器被称为计数器

22、的原因。, 执行有条件或无条件转移指令时,程序计数器将被置入新的数值,程序的流向发生变化。,变化的方式有下列几种:,42,带符号的相对跳转SJMP,,短跳转AJMP,,长跳转LJMP及,JMP A+DPTR等。,43, PC的现行值(当前值),即下一条将要执行的指令的地址,送入堆栈,加以保护。, 在执行调用指令或响应中断时:, 将子程序的入口地址或者中断矢量地址送入PC,程序流向发生变化,执行子程序或中断服务程序。子程序或中断服务程序执行完毕,遇到返回指令RET或RETI时,将栈顶的内容送到PC寄存器中,程序流程又返回到原来的地方,继续执行。,44,程序计数器PC的输出,即程序存储器的地址,与

23、P0、P2口之间的关系如图2-4所示。,图2-4程序计数器PC的输出与P0、P2口之间的关系,45,(2)数据指针DPTR,数据指针是80C51中一个功能比较特殊的寄存器。从结构上说,DPTR是一个16位的特殊功能寄存器,主要功能是作为片外数据存储器寻址用的地址寄存器(间接寻址),故称为数据指针。,访问片外数据存储器的指令为:,MOVX A,DPTR 读 MOVX DPTR,A 写,此时,DPTR的输出,即片外数据存储器的地址,与P0、P2口之间的关系如图2-5所示。,46,图25 DPTR的输出与P0、P2口之间的关系,47,DPTR寄存器也可以作为访问程序存储器时的基址寄存器。,DPTR寄

24、存器既可以作为一个16位寄存器处理,,MOVCA,A+DPTR JMP A+DPTR,MOVDPTR,#16位地址 INC DPTR,也可以作为两个8位寄存器处理,其高8位用DPH表示,低8位用DPL表示。如:,CJNEA,DPL,$ CJNEA,DPH,$,48,在80C51中,两个地址寄存器,即程序计数器PC与数据指针DPTR,有相同之处,也有差别:, 两者都是与地址有关的16位的寄存器。,其中,PC与程序存储器的地址有关,而DPTR与数据存储器的地址有关。作为地址寄存器使用时,PC与DPTR都是通过P0和P2口输出的。但是,PC的输出与ALE 及 有关;DPTR的输出,则与ALE、 、

25、相联系。,49, PC、 DPTR都可作为16位寄存器对待;,PC只可作为16位寄存器对待;由于PC有自动加1的功能,故又称为计数器;PC是不可以访问的;有自己独特的变化方式;它的变化轨迹决定了程序执行的流程。,DPTR不仅可以作为16位寄存器对待,也可以作为两个8位寄存器对待;DPTR是可以访问的。,50,2. 指令寄存器IR、指令译码器及控制逻辑,指令寄存器IR是用来存放指令操作码的专用寄存器。执行程序时,首先进行程序存储器的读操作,也就是根据程序计数器给出的地址从程序存储器中取出指令,送指令寄存器IR,IR的输出送指令译码器;然后由指令译码器对该指令进行译码,译码结果送定时控制逻辑电路,

26、如图2-6所示。,51,图2-6 指令寄存器和指令译码器,52,定时控制逻辑电路则根据指令的性质发出一系列定时控制信号,控制计算机的各组成部件进行相应的工作,执行指令。,条件转移逻辑电路主要用来控制程序的分支转移。,在80C51中,转移条件也可分为两部分。,一部分是内部条件,即程序状态标志位(PSW)和累加器的零状态。,另一部分是外部条件,即F0和所有位寻址空间的状态。,53,其中,F0是程序状态标志寄存器PSW的第5位,为用户标志。其状态可由用户根据自己的需要进行设置(置“1”或者清“0”),然后使用位测试指令进行测试,以确定程序是否转移。,其它位寻址空间的作用与F0类似,可用位测试指令进行

27、状态测试。,概括起来,转移条件有如下几种:进位标志位、溢出标志位、奇偶标志位、累加器为零状态、F0标志、位寻址空间。,54,整个程序的执行过程就是在控制器的控制下,将指令从程序存储器中逐条取出,进行译码,然后由定时控制逻辑电路发相应的定时控制信号,控制指令的执行。,对于运算指令,还要将运算的结果特征送入程序状态标志寄存器PSW。,89C51存储器,程序存储器ROM,数据存储器RAM,片内程序存储器,片外程序存储器,片内数据存储器,片外数据存储器,2.4 存储器结构和地址空间,56,存储器结构和地址空间,80C51单片机系列的存储器采用的是哈佛(Harvard)结构,即将程序存储器和数据存储器截

28、然分开,程序存储器和数据存储器各有自已的寻址方式、寻址空间和控制系统。这种结构对于单片机“面向控制”的实际应用极为方便、有利。在80C51单片机中,不仅在片内驻留了一定容量的程序存储器和数据存储器及众多的特殊功能寄存器,而且还具有极强的外部存储器扩展能力,寻址范围分别可达 64 KB,寻址和操作简单方便。图2-11为80C51单片机存储器映象图。,57,图2-11 80C51存储器映象图,58, 在物理上设有4个存储器空间, 程序存储器: 片内程序存储器; 片外程序存储器;, 数据存储器: 片内数据存储器; 片外数据存储器;, 在逻辑上设有3个存储器地址空间, 片内、外统一的64 KB程序存储

29、器地址空间; 片内256(或384)B数据存储器地址空间; 片外64 KB的数据存储器地址空间。,59,在访问这3个不同的逻辑空间时,应选用不同形式的指令。,片内数据存储器空间,在物理上又包含两部分:,对于80C51型单片机,从0127号单元为片内数据存储器空间;从128255号单元为SFR(Special Function Register,特殊功能寄存器)空间(实际仅占用20多个字节)。,对于80C52型单片机,从0127号单元为片内数据存储器空间;从128255号单元共128个字节是数据存储器和特殊功能寄存器地址重叠空间。,60,为了统一和增强灵活性,将A、B和PSW等,也都纳入特殊功能

30、寄存器空间进行寻址。,概括起来,80C51系列单片机设有三种基本的寻址空间:, 64 KB的片内、外统一的程序存储器寻址空间; 64 KB的片外数据存储器寻址空间; 256(或384)B的片内数据存储器寻址空间,其中 包括特殊功能寄存器寻址空间。,由上可见,80C51系列单片机具有相当容量的存储器寻址空间,大大开拓了它的应用范围。,61,2.4.1 程序存储器,80C51单片机的程序存储器(program memory)用于存放经调试正确的应用程序和表格之类的固定常数。由于采用16位的程序计数器PC和16位的地址总线,因而其可扩展的地址空间为64KB,且这64 KB地址是空间连续、统一的。,6

31、2,整个程序存储器可以分为片内和片外两部分,CPU访问片内和片外存储器,可由 引脚所接的电平来确定:,引脚接高电平时,程序从片内程序存储器开始执行,即访问片内存储器;当PC值超出片内ROM容量时,会自动转向片外程序存储器空间执行。,引脚接低电平时,迫使系统全部执行片外程序存储器程序。,63,对于有片内ROM的80C51/87C51单片机,正常运行时,应将引脚接高电平。若把 引脚接低电平,可用于调试状态,即将欲调试的程序设置在与片内ROM空间重叠的片外存储器内,CPU执行片外存储器程序进行调试。,对于片内无ROM的80C31/80C32单片机,应将 引脚固定接低电平,以迫使系统全部执行片外程序存

32、储器程序。,不管从片内或片外程序存储器读取指令,其操作速度是相同的。,64,程序存储器的某些单元被保留用于特定的程序入口地址。,从0003H002BH单元被保留用于6个中断源的中断服务程序的入口地址,故有以下7个特定地址被保留:,由于系统复位后的PC地址为0000H,故系统从0000H单元开始取指,执行程序。它是系统的启动地址,一般在该单元设置一条无条件转移指令,使之转向用户主程序处执行。因此,0000H0002H单元被保留用于初始化。,65,在程序设计时,通常在这些中断入口处设置无条件转移指令,使之转向对应的中断服务程序段处执行。,复位或非屏蔽中断0000H 外部中断00003H 计时器T0

33、溢出000BH 外部中断10013H 计时器T1溢出001BH 串行口中断0023H 计时器T2/T2EX下降沿002BH,66,掩膜ROM、OTP (一次性编程)ROM和MTP(多次编程)ROM(包括EPROM及E2PROM等)。,片内程序存储器为固定只读存储器ROM,存储器的类型有:,由于集成技术的提高,片内程序存储器的容量做得越来越大,直至 64 KB。,在87C51中为4KB的可编程、可改写的只读存储器是EPROM;在89C51中为4KB的可编程、可改写的只读存储器是E2PROM;而80C31不设片内程序存储器,使用时必须由片外扩展。,67,2.4.2 数据存储器,数据存储器(data

34、 memory)由随机存取存储器RAM构成,用来存放随机数据。,在80C51单片机中,数据存储器又分片内数据存储器(Internal Data Memory)和片外数据存储器(External Data Memory)两部分。,片内数据存储器(IRAM)最高地址只有8位,因而最大寻址范围为256个字节。,68,在80C51单片机中,设置有一个专门的数据存储器的地址指示器数据指针DPTR,用于访问片外数据存储器(XRAM)。数据指针DPTR也是16位的寄存器,这样,就使80C51单片机具有64KB的数据存储器扩展能力。下面对两种存储器的基本组成及主要功能分别予以介绍。,69,片内数据数据存储器是

35、最灵活的地址空间。它在物理上又分成两个独立的功能不同的区。, 片内数据RAM区:,1. 片内数据存储器,对80C51型单片机,为地址空间的低128 B;,对80C52型单片机,为地址空间的0255 B。,特殊功能寄存器SFR区:,地址空间的高128 B。,70,对于80C52型单片机,高128B的RAM区和SFR区的地址空间是重叠的。究竟是访问哪一个区是通过不同的寻址方式来加以区别,即访问高128B RAM区时,选用间接寻址方式;访问SFR区,则应选用直接寻址方式。,图2-12为片内数据存储器各部分地址空间的分布图。,71,图2-12 片内数据存储器的地址空间分布图,00H,20H,30H,8

36、0H,片内低128B RAM MCS-51系列单片机片内低128字节的RAM包含: 工作寄存器区(00H: 1FH) 可位寻址区 (20H: 2FH) 通用RAM区 (30H: 7FH) 这3个组成部分,如图所示:,(1)片内数据RAM区,73,工作寄存器区(00H: 1FH),这是一个通用寄存器寻址的区域,指令的数量最多,均为单周期指令,执行的速度最快。,从图2-12中可知,其中片内数据RAM区的031(00H1FH),共32个单元,是4个通用工作寄存器组(表21),每个组包含8个8位寄存器,编号为R0R7。,74,表2-1 工作寄存器组,单元地址:第0组 00H-07H 第1组 08H-0

37、7H 第2组 10H-17H 第3组 18H-1FH,75,在某一时刻,只能选用一个工作寄存器组使用。其选择是通过软件对程序状态字(PSW)中的RS0、RS1位的设置来实现的。设置RS0、RS1时,可以对PSW字节寻址,也可以位寻址方式,间接或直接修改RS0、RS1的内容。通常采用后者较方便。,例如,若RS0、RS1均为0,则选用工作寄存器0组为当前工作寄存器。现需选用工作寄存器组1,则只需将RS0改成1,可用位寻址方式(SETB PSW.3,其中PSW.3为RS0位的符号地址)来实现。,76,这给软件设计带来极大方便,特别是在中断嵌套时,实现工作寄存器现场保护极其方便。,累加器ACC、B、D

38、PTR及CY(布尔处理器的累加器)一般也作为寄存器对待。,寄存器R0、R1通常用做间接寻址时的地址指针。,77,位寻址区(20H 2FH),片内数据RAM区的3247(20H2FH)的16个字节单元,共包含128位,是可位寻址的RAM区。这16个字节单元,既可进行字节寻址,又可实现位寻址。字节地址与位地址之间的关系见表2-2。这16个位寻址单元,再加上可位寻址的特殊功能寄存器一起构成了布尔(位)处理器的数据存储器空间。在这一存储器空间所有位都是可直接寻址的。,字节地址与位地址之间的关系 (课本P27),78,字节寻址区(30H 7FH),MCS-51的片内RAM 30H7FH地址空间的存储单元

39、为通用RAM区,共80个字节单元,这段空间可以存放程序运行的中间结果。 可以采用直接字节寻址的方法访问。同时,堆栈也是放置在这一区间的。,对于80C52型单片机,还有高128B的数据RAM区。这一区域只能采用间接字节寻址的方法访问。,栈指针SP(81H) 堆栈:在MCS-51系列单片机片内RAM中,常常要指定一个专门的区域来存放某些特别的数据,它遵循顺序存取和后进先出的原则,这个RAM区叫做堆栈。堆栈中的数据一般是某些事件发生时的CPU状态或者寄存器的值。 比如说,当中断到来时,为了防止中断服务程序中的操作对某些寄存器(如PSW、ACC等)形成破坏,需要将这个寄存器保护起来,我们就可以把这些需

40、要保护的寄存器的值压入堆栈,等服务程序执行完毕后,再把这些寄存器的值恢复出来,这个过程我们叫做现场的保护与恢复。,堆栈区及堆栈指示器,80,堆栈是在片内数据RAM区中,数据先进后出或后进先出的区域。堆栈指示器(SP,Stack Pointer)在80C51中存放当前的堆栈栈顶所指存储单元地址的一个8位寄存器。,堆栈共有两种操作:进栈和出栈。不论是数据进栈还是数据出栈,都是对栈顶单元进行的,即对栈顶单元的写和读操作。,81,80C51单片机的堆栈是向上生成的:进栈时,SP的内容是增加的;出栈时,SP的内容是减少的。,80C51的堆栈区域可用软件设置堆栈指示器(SP)的值,在片内数据RAM区中予以

41、定义。,系统复位后,SP内容为07H。如不重新定义,则以07H为栈底,压栈的内容从08H单元开始存放,通过软件对SP的内容重新定义。 一般情况下,需要将堆栈设置在通用RAM区的高端(如:60H 7FH),堆栈区的大小取决于整个系统同时需要保护的数据单元量。,堆栈深度以不超过片内RAM空间为限,这样随着压入数据的增加一般不会导致对其他普通RAM区所存放数据的破坏。,82,堆栈是为子程序调用和中断操作而设立的。其具体功能有两个:保护断点和保护现场。在80C51单片机中,既有与子程序调用和中断程序相伴随的自动进栈和出栈,还有对堆栈的进栈和出栈的指令(PUSH、POP)操作。,空间分布,一般稍大一些的

42、程序代码,会根据功能写几个子程序,而且中断也是常用的。因此,在主程序的开始,一定要修改栈底(指针SP的内容)。 都,特殊功能寄存器堆栈指针SP地址为81H,SP的功能就是用来指向堆栈的栈顶的. 压栈(执行PUSH指令)时: SP自动加1,然后把被压的数据放到SP指向的单元。SP仍然指向栈顶,如左图所示。 弹栈(执行POP指令)时:先把SP指向的单元弹出,然后把SP减1,如右图所示。,在MCS-51系列单片机片内高128字节RAM中,有21个特殊功能寄存器(SFR),它们离散地分布在80HFFH的RAM空间中。这些特殊功能寄存器提供了CPU以及其它功能部件(如定时器计数器、串行口、并行口等)所需

43、要的控制、状态和缓冲寄存器。由于这些寄存器一般都具有特殊的功能,因此称为特殊功能寄存器。这些寄存器的分布如图所示。,(2)特殊功能寄存器SFR区,85,特殊功能寄存器SFR(Special Function Register)是80C51单片机中各功能部件所对应的寄存器,用以存放相应功能部件的控制命令、状态或数据的区域。这是80C51系列单片机中最有特色的部分。现在所有80C51系列功能的增加和扩展几乎都是通过增加特殊功能寄存器来达到的。,80C51系列单片机设有128B片内数据RAM结构的特殊功能寄存器空间区。除程序计数器PC和4个通用工作寄存器组外,其余所有的寄存器都在这个地址空间之内。,

44、86,对于80C51系列中的80C51,共定义了21个特殊功能寄存器,其名称和字节地址列于表2-3中。在80C52中,除上述80C51的21个之外,还增加了5个特殊功能寄存器,共计26个。除此而外,其它地址访问无效。,87,表2-3 特殊功能寄存器(SFR)名称和地址,88,89,90,特殊功能寄存器在128B空间中的分布示于表2-4。从表中可以看出,在128B空间中存在着大片的空白,这为80C51系列功能的增加提供了极大的可能性。,91,在80C51的21个(80C52的26个)特殊功能寄存器中,字节地址中低位地址为0H或8H的特殊功能寄存器,除有字节寻址能力外,还有位寻址能力。这些特殊功能

45、寄存器与位地址的对应关系见表2-6。从表中可以看出,有些可以位寻址的位还有自己的特殊名称。,空间分布,片外数据存储器与片内数据存储器空间的低地址部分(0000H00FFH)是重叠的,89C51有MOV和MOVX两种指令,用以区分片内、片外RAM空间,当使用MOV指令时,访问的是片内区域,当使用MOVX指令时,访问的是片外区域。 MCS-51单片机的64KB的数据存储器空间除了片内有128字节或256字节的存储器单元外,剩余所有的数据存储单元都需要扩展片外RAM实现。 片外数据存储器的地址可以是8位或16位。使用8位地址时,则由P0口将这8位地址与数据信号分时提供,利用地址锁存信号ALE的下降沿

46、可以将这些地址锁存住。若采用16位地址,则由P2端口传送高8位地址。,2. 片外数据存储器,93,片外数据存储器是在外部存放数据的区域,这一区域用寄存器间接寻址的方法访问,所用的寄存器为DPTR、R1或R0。当用R1、R0寻址时,由于R0、R1为8位寄存器,因此最大寻址范围为256B;当用DPTR寻址时,由于DPTR为16位寄存器,因此最大寻址范围为64KB。,下图是片外扩展2KB RAM时的连接图。P0口用作RAM的数据总线(D0-D7),通过74LS373锁存后作为地址总线的低8位(A0-A7),P2口中的3位(P2.0、P2.1和P2.2)作为RAM的3位地址(A8-A10)。访问片外R

47、AM期间,CPU根据需要发送读或写信号。,95,2.5 80C51单片机的布尔(位)处理器,在80C51单片机系统中,与字节处理器相对应,还特别设置了一个结构完整、功能极强的布尔(位)处理器。这是80C5l系列单片机的突出优点之一,给“面向控制”的实际应用带来了极大的方便。,在位处理器系统中,除了程序存储器和ALU与字节处理器合用之外,还有自己的如下设置:,96,累加器CY:借用进位标志位。在布尔运算中,CY是数据源之一,又是运算结果的存放处,位数据传送的中心。根据CY的状态,程序转移:JC rel、JNC rel、JBC rel。,位寻址的RAM :RAM区中的0127位(00H 7FH,包

48、含在20H2FH单元内)。,位寻址的寄存器:特殊功能寄存器(SFR)中的可以位寻址的位。,位寻址的并行I/O口:并行I/O口中的可以位寻址的位。,97,位操作指令系统:位操作指令可实现对位的置位、清0、取反、位状态判跳转、传送、位逻辑运算、位输入/输出等操作。,利用位逻辑操作功能进行随机逻辑设计,可把逻辑表达式直接变换成软件执行,方法简便,免去了过多的数据往返传送、字节屏蔽和测试分支,大大简化了编程,节省存储器空间,加快了处理速度增强了实时性能。还可实现复杂的组合逻辑处理功能。所有这些,特别适用于某些数据采集、实时测控等应用系统。这是其它微机机种所无可比拟的。,2.6 单片机的工作方式,时钟电

49、路用于产生单片机工作所必需的时,钟控制信号。,2.6.1 时钟电路,时钟频率直接影响单片机的速度,电路的,质量直接影响系统的稳定性。常用的时钟电路,有两种方式:内部时钟方式和外部时钟方式。,一、内部时钟方式 内部有一个用于构成振荡器的高增益反相放大 器,其输入端:XTAL1,输出端:XTAL2。 C1和 C2典型值通,常选择为30pF左,右。,晶体的振荡频率,在1.2MHz12MHz,之间。,某些高速单片机,芯片的时钟频率已,达40MHz。,100,二外部振荡方式,外部振荡方式是把外部已有的时钟信号引入MCU内部。对于HMOS型MCU,外部振荡电路如图2-8所示。对于CHMOS型MCU,XTA

50、L1接片外振荡脉冲输入端,XTAL2悬空。,2.6.2 机器周期、指令周期与指令时序 一、时钟周期,单片机的基本时间单位。,若时钟的晶体的振荡频率为fosc,则时钟周期 Tosc=1/fosc。如fosc=6MHz,Tosc=166.7ns。,二、机器周期,CPU完成一个基本操作所需要的时间。,执行一条指令分为几个机器周期。每个机器周期 完成一个基本操作。MCS-51单片机每12个时钟周期 为一个机器周期,,一个机器周期又分为6个状态:S1S6。每 个状态又分为两拍:P1和P2。因此,一个机器 周期中的12个时钟周期表示为:,S1P1、S1P2、S2P1、S2P2、S6P2。,三、指令周期 执

51、行一条指令时,可分为取指令阶段和指令执行阶段 。 取指令阶段,PC中地址送到程序存储器,并从中取出需要执行,指令的操作码和操作数。,指令执行阶段,对指令操作码进行译码,以产生一系列控制信,号完成指令的执行。,ALE信号是为地址锁存而定义的,以时钟脉冲1/6的频率出现,,在一个机器周期中,ALE信号两次有效(注意,在执行访问外部数,据存储器的指令MOVX时,将会丢失一个ALE脉冲),TTL,8051 X2 X1 Vss 外接时钟源,Vcc,时钟电路 需外接晶振的频率 1.212MHZ,C1和C2取 3010PF,C1 C2 X,8051 X1 X2 振荡电路,S1,S2,S3,S4 S5,S6

52、S1,S2,P1 P2 P1 P2 P1 P2,P1 P2 P1 P2 P1 P2 P1 P2 P1 P2,fosc,一个状态周期,一个机器周期,T=12*(1/fosc),X2,CPU的时序(时钟周期、 状态周期、机器周期),105,图2-9 80C51系列MCU取指令、执行指令的时序图,若外接晶振为 12MHz时,则单片机的四个周,期的具体值为:,时钟周期 1/12MHz 1/12 s 0.0833 s 状态周期 2*时钟周期 =1/6 s 0.167 s 机器周期 12*时钟周期 =1 s 指令周期 1 4 s( 14个机器周期) 可用于计算指令、程序的执行时间,以及定,时器的定时时间,

53、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 不定 00000B,寄存器 TCON TL0 TH0 TL1 TH

54、1 SCON SBUF PCON,复位状态 0000H 00H 00H 07H 0000H 0FFH 000000B 0000000B 00H,寄存器 PC ACC PSW SP DPTR P0P3 IP IE TMOD,复位电路 片内复位结构:,上电自动复位和按钮复位 最简单的上电自动复位电路:,C=22F R=1k,按键手动复位,有电平方式和脉冲方式两种。,电平方式,C=22F Rs=200 Rk=1k,两种实用的兼有上电复位与按钮复位的电路。 上图(b)中的电路能输出高、低两种电平的复位控制信 号,以适应外围I/O接口芯片所要求的不同复位电平信号。 74LS122为单稳电路,实验表明,电

55、容C的选择约为0.1F 较好。,还可采用专用的复位管理芯片如IMP813L、TL7705等,113,2.6.4 程序执行方式,程序执行方式是MCU最基本的工作方式。由于复位后PC=0000H,因此程序执行总是从地址0000H开始的。但一般情况下,程序并不是真正从0000H开始(例如,中断入口地址显然不能存放主程序,主程序的入口地址应该跳过这一区域),为此就必须在0000H开始的单元中存放一条无条件转移指令,以便跳转到实际主程序的入口去执行。,114,2.6.5 低功耗方式,图2-11 PCON的格式,80C5l系列MCU有两种低功耗方式,即空闲方式(Idle Mode)和掉电方式(Power

56、Down Mode)。空闲方式和掉电方式都是由电源控制寄存器(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的指令即可 。,116,1空闲方式,如果使用指令使PCON寄存器IDL位置1,则MCU进入空闲方式。 在空闲方式下,若引入一个外中断请求信号,在MCU响应中断的同时,IDL位被硬件自动清零,MCU就退出空闲方式而进入正常工作方式。中断服务程序结束后,通过RETI指令,就可以使MCU恢复正常工作后,返回断点继续执行程序。,117,2掉电方式,PD位控制MCU进入掉电方式

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论