第2章80C51单片机的结构及原理ppt课件.ppt

上传人:小飞机 文档编号:2104195 上传时间:2023-01-10 格式:PPT 页数:78 大小:1.41MB
返回 下载 相关 举报
第2章80C51单片机的结构及原理ppt课件.ppt_第1页
第1页 / 共78页
第2章80C51单片机的结构及原理ppt课件.ppt_第2页
第2页 / 共78页
第2章80C51单片机的结构及原理ppt课件.ppt_第3页
第3页 / 共78页
第2章80C51单片机的结构及原理ppt课件.ppt_第4页
第4页 / 共78页
第2章80C51单片机的结构及原理ppt课件.ppt_第5页
第5页 / 共78页
点击查看更多>>
资源描述

《第2章80C51单片机的结构及原理ppt课件.ppt》由会员分享,可在线阅读,更多相关《第2章80C51单片机的结构及原理ppt课件.ppt(78页珍藏版)》请在三一办公上搜索。

1、第2章 80C51单片机的结构及原理,学习目的(1)了解80C51的内部结构。(2)掌握80C51引脚信号功能定义。(3)掌握80C51的存储器空间分配及各I/O口的特点。(4)掌握80C51的复位电路、时钟电路及指令时序。学习重点和难点(1)80C51的结构特点。(2)80C51存储器配置与空间的分布。(3)80C51程序状态寄存器(PSW)。(4)80C51的指令时序。,2.1 80C51单片机的结构与原理 2.1.1 80C51单片机系列 Intel公司推出的80C51是MCS-51系列单片机中以CHMOS为生产工艺的一个典型产品;其它厂商以8051为基核开发出的CMOS工艺单片机产品统

2、称为80C51系列。当前常用的80C51系列单片机主要产品有:1、Intel公司的:80C31、80C51、87C51、80C32、80C52、87C52等。2、ATMEL公司的:89C51、89C52、89C2051、89S51等。3、Philips公司的80C51、80C550、80C552系列。4、Motorola公司M68HC05系列。5、华邦公司的W78C51、W77C51高速低价系列。6、Maxim公司的DS89C420高速(50MIPS)系列。7、Cygnal公司的C8051F系列高速SOC单片机。8、ADI公司的ADC8xx高精度ADC系列。9、LG公司的GMS90/97低压高

3、速系列。,2.1.2 80C51单片机的结构 80C51单片机的结构框图如图2-1所示,可以看出,在一块芯片上集成了一个微型计算机的主要部件,它包括以下几部分:(1)8位 CPU 1个。(2)时钟电路(振荡电路和时序OSC)。(3)4KB程序存储器(ROM/EPROM/Flsh),可外扩展到64KB。(4)128B数据存储器RAM,可外扩展到64KB。(5)2个16位定时/计数器。(6)64KB总线扩展控制电路。(7)4个8位并行I/O接口P0P3。(8)1个全双工异步串行I/O接口。(9)中断系统:5个中断源,其中包括2个优先级嵌套中断。,2.1.3 80C51单片机的内部结构 80C51单

4、片机的内部结构如图2-2所示,它由CPU、存储器、I/O口及SFR(特殊功能寄存器)等组成。具体说明如下:1、80C51 CPU 80C51 CPU即微处理器,是一8位CPU,是单片机的核心部件,是计算机的控制指挥中心。同微型计算机CPU类似,80C51内部CPU由运算器和控制器两部分组成。(1)运算器 组成:由算术运算/逻辑运算单元ALU(Arithmetic Logic Unit)为核心,由暂存器1、暂存器2、累加器ACC(Accumulator)、寄存器B及程序状态寄存器PSW(Program Status Word)组成。主要任务:是完成算术运算、逻辑运算、位运算和数据传送等操作,运算

5、结果的状态由程序状态寄存器(PSW)保存。,图2-2 80C51单片机的内部结构,(2)控制器 组成:由程序计数器(PC)、PC增1寄存器、指令寄存器(IR)、指令译码器(ID)、数据指针(DPTR)、堆栈指针(SP)、缓冲器及定时控制电路等组成。主要任务:完成指挥控制工作,协调单片机各部分正常工作。2、80C51的片内存储器 80C51的片内存储器与一般微机的存储器的配置不同。一般微机的ROM和RAM安排在同一空间的不同范围(称为普林斯顿结构)。而80C51单片机的存储器在物理上设计成程序存储器和数据存储器两个独立的空间(称为哈佛结构)。,2.1.4 80C51单片机的引脚及功能 80C51

6、单片机的封装是采用双列直插式(DIP)封装,引脚图如图2-3(a)所示。80C51的40个引脚及功能描述如下:1、电源引脚(2根)(1)VCC(40脚):电源端,接+5V电源。(2)VSS(20脚):接地端。2、时钟引脚(2根)(1)XTAL1(19脚):晶体振荡器接入的一个引脚。采用外部时钟电路时,此引脚应接地。(2)XTAL2(18脚):晶体振荡器接入的另一个引脚。使用外部时钟时,此引脚应接外部时钟的输入端。3、控制引脚(4根)(1)RST/VPD(9脚):复位信号输入引脚/备用电源输入引脚。说明:当RST引脚保持两个机器周期的高电平后,就可以使80C51完成复位操作。该引脚的第二功能是V

7、PD,即备用电源的输入端,具有掉电保护功能。若在该引脚接+5V备用电源,在使用中若主电源VCC掉电,可保护片内RAM中的信息不丢失。,(2)ALE/PROG(30脚):地址锁存允许信号输出引脚/编程脉冲输入引脚。说明:在系统扩展时,ALE用于控制把P0口输出的低8位地址锁存起来,以实现低位地址和数据的隔离。此外,由于ALE是以晶振fosc/6的固定频率输出的正脉冲(fosc代表振荡器的频率),因此,可作为外部时钟或外部定时脉冲使用。该引脚的第二功能是对8751内部4KB EPROM编程写入时,作为编程脉冲的输入端。(3)EA/VPP(31脚):外部程序存储器地址允许输入信号引脚/编程电压输入信

8、号引脚。说明:当EA接高电平时,CPU执行片内ROM指令,当PC值超过0FFFH时,将自动转去执行片外ROM指令;当EA接低电平时,CPU只执行片外ROM指令。该引脚的第二功能VPP是对8751片内EPROM编程写入时,作为21V编程电压的输入端。(4)PSEN(29脚):片外ROM读选通信号。说明:在读片外ROM时,为低电平(有效),以实现对片外ROM的读操作。,4、并行I/O引脚(32根,由4个8位口构成)其中:(1)P0.0P0.7(3932脚):一般的8位双向I/O口引脚或数据/地址总线低8位复用引脚。说明:P0口即可作数据/地址总线使用,又可作一般的I/O口使用。当CPU访问片外存储

9、器时,P0口分时先作低8位地址总线,后作双向数据总线,此时,P0口就不能再作一般I/O口使用。(2)P1.0P1.7(18脚):P1口作为一般的8位准双向I/O口使用。(3)P2.0P2.7(2128脚):一般8位准双向I/O口引脚或高8位地址总线引脚。说明:P2口即可作为一般的I/O口使用,也可作为片外存储器的高8位地址总线,与P0口配合,组成16位片外存储器单元地址,可访问64KB的存储空间。(4)P3.0P3.7(1017脚):一般8位准双向I/O口引脚或第二功能引脚。说明:P3口除了作为一般的I/O口使用之外,每个引脚还具有第二功能,P3的8条口线都定义有第二功能,详见表2-1(a),

10、表2-1 P3口各引脚与第二功能表,2.2 80C51单片机的存储器组织 80C51的存储器在物理结构为哈佛结构,它将程序存储器和数据存储器分开,如图2-4所示。从物理地址空间看,80C51单片机有四个存储器地址空间,即片内数据存储器(简称片内RAM)、片内程序存储器(片内ROM)、片外数据存储器(片外RAM)和片外程序存储器(片外ROM)。,但从使用的角度来看,80C51的存储器又分为三个逻辑空间,如图2-5所示。1、片内外统一寻址的64KB程序存储器空间,地址范围为0000HFFFFH(访问用指令MOVC)。2、64KB的片外数据存储器空间,地址范围也为0000HFFFFH(访问用指令MO

11、VX)。3、80C51的片内数据存储器RAM只有128B,地址范围为00H7FH;80C52的片内数据存储器RAM为256B,地址范围为00HFFH(访问用指令MOV)。,2.2.1 80C51单片机的程序存储器ROM 80C51程序存储器ROM用来存放程序、常数或表格等。80C51内部有4KB的掩膜ROM,87C51内部有4KB的EPROM,而80C31内部没有程序存储器。80C51的片外最多能扩展64 KB程序存储器,片内外的ROM是统一编址的。80C51程序存储器ROM空间地址分布图如图2-6(a)所示。80C51的引脚为选择内部或外部ROM控制端,当接高电平时,80C51的程序计数器P

12、C在0000H0FFFH地址范围内(即前4 KB地址)是执行片内ROM中的程序,当PC值超过0FFFH时,PC将自动转去执行片外1000HFFFFH地址范围ROM中的程序;当接低电平时,只能寻址外部ROM程序存储器,片外存储器可以从0000H开始编址。,对图2-6(a)ROM空间地址分布图作如下说明:1、80C51片内有4KB的ROM存储单元,地址为0000H0FFFH。2、80C51片外最多可扩60KB的ROM,地址为1000HFFFFH。,2.2.2 80C51ROM低地址特殊单元 80C51的程序存储器低地址单元中有6个单元具有特殊功能,见图2-6(b)所示,使用时应予以注意其含义。1、

13、0000H0002H:单片机复位后的程序入口地址(3个单元)。2、0003H000AH:外部中断0的中断服务程序入口地址(8个单元)。3、000BH0012H:定时器0的中断服务程序入口地址(8个单元)。4、0013H001AH:外部中断1的中断服务程序入口地址(8个单元)。5、001BH0022H:定时器1的中断服务程序入口地址(8个单元)。6、0023H002AH:串行口的中断服务程序入口地址(8个单元)。,具体应用时注意:第一组特殊单元是0000H0002H,3个单元不可能安排长程序,因此,系统复位后(PC)=0000H,80C51单片机从0000H单元开始取指令执行程序。如果程序不从0

14、000H单元开始,应在这3个单元中存放一条无条件转移指令,以便直接转去执行指定的程序。第二组特殊单元是0003H002AH,共40个单元。这40个单元被均匀地分为5段,作为5个中断源的中断地址区。中断响应后,按中断种类,自动转到各中断区的首地址去执行程序,因此在中断地址区中应存放中断服务程序。但通常情况下,8个单元难以存下一个完整的中断服务程序,因此通常也是从中断地址区首地址开始存放一条无条件转移指令,以便中断响应后,通过中断地址区,再转到中断服务程序的实际入口地址。,2.2.3 80C51单片机的数据存储器RAM 80C51数据存储器RAM主要用来存放运算的中间结果和数据等。80C51单片机

15、数据存储器RAM分为片内RAM和片外RAM两大部分,如图2.7所示。80C51的片内数据存储器RAM只有128B,地址范围为00H7FH;80C52的片内数据存储器RAM为256B,地址范围为00HFFH。片外数据存储器RAM最多可扩至64KB存储单元,地址范围为0000HFFFFH。,说明两点:80C52的片内RAM地址空间共有256B,又分为两个部分:低128B(00H7FH)RAM区与80C51的RAM区相同(访问时采用直接或间接寻址方式均可)。高128B(80HFFH)RAM区,在访问这个区只能用寄存器间接寻址。需要注意是该地址范围与特殊功能寄存器(SFR)区相重叠,区别是访问特殊功能

16、寄存器区采用直接寻址方式。片内RAM和片外RAM的低端地址0000H007FH区是相重叠的,因此,就需要采用不同的寻址方式来解决。访问片内RAM时用指令MOV,而访问片外RAM时用指令MOVX,另外片外RAM不能进行堆栈操作。,在80C51单片机中,尽管片内RAM的容量不大,但它的功能多,使用灵活。下面分别对低128B RAM区和高128B特殊功能寄存器(SFR)区进行讨论。一、内部数据存储器低128单元 内部数据存储器低128单元是指地址为00H7FH单元,如图2-8所示。低128单元是单片机的真正RAM存储器,按其用途划分为工作寄存器区、位寻址区和用户RAM区三个区域。1、工作寄存器区 8

17、0C51单片机内部RAM的00H1FH地址单元,共32B,分成4组工作寄存器,每组8个工作寄存单元。寄存器0组:地址00H07H(R0R7)寄存器1组:地址08H0FH(R0R7)寄存器2组:地址10H17H(R0R7)寄存器3组:地址18H1FH(R0R7)各组都以R0R7作工作寄存单元编号。由于它们的功能及使用不作预先规定,因此称之为通用寄存器。4组通用寄存器在任一时刻,CPU只能使用其中的一组工作寄存器,并且把正在使用的那组寄存器称之为当前寄存器组。到底是哪一组,由程序状态字寄存器PSW中RS1、RS0位的状态组合来决定。,图2-8 80C51片内RAM的配置,2、位寻址区 内部RAM的

18、20H2FH地址单元,既可作为一般RAM单元使用,进行字节操作,也可以对单元中每一位进行位操作,因此把该区称之为位寻址区。位寻址区共有16个RAM单元,计128位,地址为00H7FH,见表2-2。程序设计时,常将程序状态标志、位控制变量设在位寻址区内。这种位寻址能力是80C51的一个重要特点。3、用户RAM区 地址为30H7FH,共计80个字节,这就是供用户使用的一般RAM区。这个区域的操作指令非常丰富,数据处理方便灵活。对用户RAM区的使用没有任何规定或限制,但在一般应用中常把堆栈设置在此区中。,表2-2 片内RAM及位寻址区的位地址表,二.内部数据存储器RAM高128单元 在80C51内部

19、RAM的高128单元是供给专用寄存器使用的,它们分布在其单元地址为80HFFH的空间。因这些寄存器的功能已作专门规定,故称之为专用寄存器(Special Function Register),也可称为特殊功能寄存器(简称为SFR寄存器)。访问SFR寄存器只允许使用直接寻址方式。1、特殊功能寄存器(SFR)简介 80C51共有21个特殊功能寄存器(SFR),其中的11个SFR还具有位寻址功能,它们的字节地址能被8整除,即十六进制的地址码尾数为0或8,见表2-3用“*”表示的。现把其中部分SFR简单介绍如下:1)与运算器有关的特殊功能寄存器有3个(1)累加器ACC(Accumulator)。累加器

20、为8位寄存器,是最常用的专用寄存器,用于向ALU提供操作,因此,功能较多,地位重要。它既可用于存放操作数,也可用来存放运算的中间结果。80C51单片机中大部分单操作数指令的操作数就取自累加器,许多双操作数指令中的一个操作数也取自累加器。,表2-3 80C51 SFR中位地址分布表,(2)B寄存器。B寄存器是一个8位寄存器,主要用于乘、除运算。也可以作为RAM的一个单元使用。(3)程序状态字PSW(Program Status Word)。程序状态字是一个8位寄存器,用于存放程序运行中的各种状态信息,作为程序查询或判断的条件。PSW有些位的状态是根据程序执行结果,由硬件自动设置的,而有些位的状态

21、则使用软件方法设定。PSW的各位状态可以用专门指令进行测试,也可以用指令读出。PSW的各位定义见表2-4。各位的定义及使用作如下说明:CY(PSW.7)进位(借位)标志位。其功能有二:一是存放算术运算的进位()时,CY由硬件置“1”,否则清“0”;二是在进行位操作时,CY作为累加器借位)标志,在作加法(减法)运算时,如果操作结果的最高位有进位(借位C使用,可进行位传送、位与位的逻辑运算等位操作,会影响该标志位。AC(PSW.6)辅助进位标志位。在进行加法(减法)运算中,当低4位向高4位进位(借位)时,AC由硬件置“1”,否则AC位被清“0”。AC位常用于调整BCD码运算结果。,F0(PSW.5

22、)用户标志位。这是一个留给用户自己定义的标志位,可以根据自己的需要通过软件方法置位或复位F0位,用以控制程序的转向。RS1和RS0(PSW.4,PSW.3)工作寄存器组选择位。工作寄存器共有4组,对应关系见表2-5。RS1和RS0这两位的状态是由软件置“1”或清“0”来设置的,被选中的工作寄存器组即为当前工作寄存器组。注意:当单片机上电或复位后,RS1 RS0=00,选中第0组。OV(PSW.2)溢出标志位。在带符号数的算术运算时,如果运算结果超出了8位二进制数所能表示的符号数有效范围(-128+127),这产生了溢出OV=1,表示运算结果是错误的;否则,OV=0即无溢出产生,表示运算结果正确

23、。PSW.1位保留未用。P(PSW.0)奇偶标志位。表明运算结果累加器A中内容的奇偶性。如果A中有奇数个“1”,则P置“1”,否则置“0”。凡是改变累加器A中内容的指令均会影响P标志位。注意:P标志位对串行通信中的数据传输有重要的意义。在串行通信中常采用奇偶校验的办法来校验数据传输的可靠性。,2)与指针有关的特殊功能寄存器有3个(1)数据指针DPTR。数据指针为16位寄存器,用来存放16位地址。DPTR既可以按16位寄存器使用,也可以按两个8位寄存器分开使用,即:DPHDPTR高8位字节 DPLDPTR低8位字节 DPTR通常在访问片外RAM或ROM存储器时作地址指针使用,用间接寻址或变址寻址

24、可对片外的64KB范围的RAM或ROM数据进行操作。(2)堆栈指针SP(Stack Pointer)。SP是一个8位寄存器,它总是指向栈顶。80C51单片机在编程序时常将堆栈设在内部RAM 30H7FH中。堆栈是一个特殊的存储区,用来暂存数据和地址,它是按“先进后出”的原则存取数据的。堆栈共有两种操作:进栈和出栈。80C51单片机系统复位后,SP的内容为07H,从而复位后堆栈实际上是从08H单元开始的。但08H1FH单元分别属于工作寄存器13组,如程序要用到这些区,最好把SP值改为1FH或更大的值。一般在内部RAM的30H7FH单元中开辟堆栈。SP的内容一经确定,堆栈的位置也就跟着确定下来,由

25、于SP可初始化为不同值,因此堆栈位置是浮动的。(3)程序计数器PC(Program Counter)。PC是一个16位的计数器,它的作用是控制程序的执行顺序。其内容为将要执行指令的地址,寻址范围达64 KB。PC有自动加1功能,从而实现程序的顺序执行。PC没有地址,是不可寻址的,因此用户无法对它进行读写,但可以通过转移、调用、返回等指令改变其内容,以实现程序的转移。因地址不在SFR(专用寄存器)之内,一般不计作专用寄存器。,3)与接口有关的特殊功能寄存器有7个(1)并行I/O口P0、P1、P2、P3(4个),均为8位;可实现数据在接口输入/输出。(2)串行口数据缓冲器SBUF(详见串行口章节)

26、。(3)串行口控制寄存器SCON(详见串行口章节)。(4)串行通讯波特率倍增寄存器PCON(详见串行口章节)4)与中断相关的寄存器(2个)(1)中断允许控制寄存器IE(详见中断章节)。(2)中断优先级控制寄存器IP(详见中断章节)。5)与定时器/计数器相关的寄存器(6个)(1)定时/计数器T0的两个8位计数初值寄存器TH0、TL0,它们可以构成16位的计数器,TH0存放高8位,TL0存放低8位(详见定时/计数器章节)。(2)定时/计数器T1的两个8位计数初值寄存器TH1、TL1,它们可以构成16位的计数器,TH1存放高8位,TL1存放低8位(详见定时/计数器章节)。,(3)定时/计数器的工作方

27、式寄存器TMOD(详见定时/计数器章节)。(4)定时/计数器的控制寄存器TCON(详见定时/计数器章节)。注意:在80C52子系列中,高128字节RAM和SFR的地址是重叠的,究竟访问哪一块可通过不同的寻址方式加以区分,访问高128字节RAM采用寄存器间址,访问SFR则只能采用直接寻址,访问低128字节RAM时,两种寻址均可采用。对专用寄存器的字节寻址问题作如下几点说明:(1)21个可字节寻址的专用寄存器是不连续地分散在内部RAM高128单元之中,尽管还余有许多空闲地址,但用户并不能使用。(2)程序计数器PC不占据RAM单元,它在物理上是独立的,因此是不可寻址的寄存器。(3)对专用寄存器只能使

28、用直接寻址方式,书写时既可使用寄存器符号,也可使用寄存器。,2.3 80C51的并行输入/输出端口结构与操作 80C51单片机有4个8位并行I/O端口,称为P0、P1、P2和P3口,每个端口都各有8条I/O口线,每条I/O口线都能独立地用作输入或输出。每个口都包含一个锁存器、一个输出驱动器和输入缓冲器。实际上,它们已被归入专用寄存器之列,并且具有字节寻址和位寻址功能。2.3.1 80C51 P0P3接口功能简见 大多数口线都有双重功能,介绍如下:1、P0口具有双重功能:(1)作为通用I/O,外接I/O设备。(2)作为地址/数据总线。在有片外扩展存储器的系统 中,低8位地址和数据由P0口分时传送

29、。2、P1口是唯一的单功能口:作为输入/输出口,P1口的每一位都可作为输入/输出口。3、P2口具有双重功能:(1)作为输入/输出口。(2)作为高8位地址总线。在有片外扩展存储器的系统 中,高8位地址由P2口传送。4、P3口具有双重功能:(1)作第一功能使用时,其功能为输入/输出口。(2)作第二功能使用时,每一位功能定义如表2.1所示。80C51单片机的4个I/O口都是8位双向口,这些口在结构和特性上是基本相同的,但又各具特点,以下将分别介绍之。,2.3.2 P0口 P0口某一位的结构图如图2-9所示,由图可见,电路是由一个输出锁存器(D触发器)、两个三态输入缓冲器(1和2)、一个转换开关MUX

30、、一个输出驱动电路(T1和T2)、一个与门及一个反向器组成。1、P0口用作通用I/O口 当系统不扩展片外的ROM和不扩展片外RAM时,P0用作通用I/O口。CPU发控制电平“0”封锁与门,使上拉场效应管T1处于截止状态。因此,输出驱动级工作在需外接上拉电阻的漏极开路方式。同时使MUX开关同下面的触点接通,使锁存器的端与T2栅极接通。(1)P0口用作输出口时 CPU在执行输出指令时,内部数据总线的数据在“写锁存器”信号的作用下,由D端进入锁存器,经锁存器的端送至场效应管T2,再经T2反向,在P0.X引脚出现的数据正好是内部总线的数据。由于输出驱动级是漏极开路电路(因T1截止),在作I/O口使用时

31、应外接10K的上拉电阻。,图2-9 P0口某位的结构,(2)P0口用作输入口时 数据可以读自端口的锁存器,也可以读自端口的引脚,这要看输入操作执行的是“读锁存器”指令还是“读引脚”指令。读引脚:CPU在执行“MOV”类输入指令时(如:MOV A,P0),内部产生的操作信号是“读引脚”。P0.X引脚上的数据经过三态输入缓冲器2读入到内部总线。注意:在读引脚时,必须先向电路中的锁存器写入1,使场效应管T2截止,P0.X引脚处于悬浮状态,可作为高阻抗输入。否则,在作为输入方式之前若向锁存器输出过“0”,则T2导通会使引脚箝位在“0”电平,使输入高电平“1”无法读入。所以,P0口在作为通用I/O口时,

32、属于准双向口。读锁存器:CPU在执行“读修改写”类输入指令时(如:ANL P0,A),内部产生的操作信号是“读锁存器”,锁存器中的数据经过三态输入缓冲器1送到内部总线,然后与A的内容进行逻辑“与”,结果送回P0的端口锁存器并出现在引脚。除了MOV类指令外,其他的读口操作指令都属于这种情况。,(3)P0口用作地址/数据总线 当系统需要扩展片外的ROM或扩展片外RAM时,P0口就作地址/数据总线用。CPU及内部控制信号为“1”,使转换开关MUX打向上面的触点,使反相器的输出端和T2管栅极接通。若地址/数据线为1,则T1导通,T2截止,P0口输出为1;反之T1截止,T2导通,P0口输出为0。当数据从

33、P0口输入时,读引脚使三态缓冲器2打开,端口上的数据经缓冲器2送到内部总线。P0口作为地址/数据总线使用时是一个真正的双向口。(4)P0口小结 P0口既可作地址/数据总线使用,也可作通用I/O口使用。当P0口作地址/数据总线使用时,就不能再作通用I/O口使用了。P0口作输出口使用时,输出级属漏极开路,必须外接上拉10K电阻,才有高电平输出。P0口作输入口读引脚时,应先向锁存器写1,使V2截止,不影响输入电平。,P1口某一位的结构图如图2-10所示,由图可见,电路是由一个输出锁存器(D触发器)、两个三态输入缓冲器(1和2)、一个输出驱动电路(T和上拉电阻)组成。P1口作为通用I/O口使用。由于在

34、其输出端接有上拉电阻,故可以直接输出而无需外接上拉电阻。当P1口作输入口时,必须先向锁存器写“1”,使场效应管T截止。,图2-10 P1口某位的结构,2.3.3 P1口,2.3.4 P2口 P2口某一位的结构图如图2-11所示,由图可见,电路是由一个输出锁存器(D触发器)、两个三态输入缓冲器(1和2)、一个转换开关MUX、一个反向器、一个输出驱动电路(T和上拉电阻)组成。1、P2用作通用I/O口 当系统不在片外扩展程序存储器ROM时,只扩展256B的片外RAM时,仅用到了地址线的低8位,P2口仍可以作为通用I/O口使用。图2.11中的控制信号C决定转换开关MUX的位置:当C=0时,MUX拨向下

35、方,P0口为通用I/O口。P2口在作为通用I/O口时,属于准双向口。2、P2用作地址总线 当系统需要在片外扩展程序存储器ROM或扩展RAM的容量超过256字节时,单片机内硬件自动使控制C=1,MUX开关接向地址线,这时P2.X引脚的状态正好与地址线的信息相同。在实际应用中,P2口通常作为高8位地址总线使用。,图2-11 P2口某位的结构,2.3.5 P3口 P3口某一位的结构图如图2-12所示,由图可见,电路是由一个输出锁存器(D触发器)、3个三态输入缓冲器(1、2和3)、一个与非门和一个输出驱动电路(T和上拉电阻)组成。1、P3用作第一功能(通用I/O口)P3口用作通用I/O口时,第二输出功

36、能信号W=1,P3口的每一位都可定义为输入或输出,其工作原理同P1口类似。P3口作为通用I/O口时,属于准双向口。2、P3用作第二功能使用 当CPU不对P3口进行字节或位寻址时,内部硬件自动将口锁存器的Q端置1。这时,P3口作为第二功能使用。在真正的应用电路中,P3口的第二功能显得更为重要。,图2-12 P3口某位的结构,2.3.6 P0P3口使用时应注意事项 1、如果80C51单片机内部程序存贮器ROM够用,不需要扩展外部存贮器和I/O接口,80C51的四个口均可作I/O口使用。2、四个口在作输入口使用时,均应先对其写“1”,以避免误读。3、P0口作I/O口使用时应外接10K的上拉电阻,其它

37、口则可不必。4、P2可某几根线作地址使用时,剩下的线不能作I/O口线使用。5、P3口的某些口线作第二功能时,剩下的口线可以单独作I/O口线使用。,2.3.7 I/O端口带负载能力1、P0、P1、P2、P3口的电平与CMOS和TTL电平兼容。2、P0口的每一位能驱动8个LSTTL负载。在作为通用I/O口使用时,输出驱动电路是开漏的,所以,驱动集电极开路(OC门)电路或漏级开路电路需外接上拉电阻。当作为地址/数据总线使用时(T1可以提供上拉电平),口线不是开漏的,无需外接上拉电阻。3、P1P3口的每一位能驱动4个LSTTL负载。它们的输出驱动电路有上拉电阻,所以可以方便地由集电极开路(OC门)电路

38、或漏级开路电路所驱动,而无需外接上拉电阻。4、对于80C51单片机(CHMOS),端口只能提供几毫安的输出电流,故当作输出口去驱动一个普通晶体管的基极时,应在端口与晶体管基极间串联一个电阻,以限制高电平输出时的电流。,2.3.8 P口应用实例【例】设计一电路,监视某开关K,用发光二极管LED显示开关状态,如果开关合上,LED 亮、开关打开,LED熄灭。分析:根据题意设计电路如图2-13如示。开关接在P1.1口线,LED接P1.0口线,当开关断开时,P1.1为+5V,对应数字量为“1”,开关合上时P1.1电平为0V,对应数字量为“0”,这样就可以用JB指令对开关状态进行检测。LED正偏时才能发亮

39、,按电路接法,当P1.0输出“1”,LED正偏而发亮,当P1.0 输出“0”,LED 的两端电压为 0 而熄灭。,图2-13,仿真链接,编程如下:ORG 0000H LJMP MAIN ORG 1000HMAIN:CLR P1.0;使发光二极管灭LOOP:SETB P1.1;先对P1口写入“1”JB P1.1,L1;开关开,转LIG SETB P1.0;开关合上,二极管亮 SJMP AGAL1:CLR P1.0;开关开,二极管灭 SJMP LOOP END 注意:在上述电路图中二极管亮度不够,按下面两种电路接法,增加了驱动能力,二极管更亮些。,1、接成灌电流形式:,2、加驱动电路:,2.4 8

40、0C51时钟电路与时序 2.4.1 时钟电路 80C51单片机的时钟信号用来提供单片机内各种微操作时间基准。80C51单片机的时钟信号通常有两种电路形式:内部振荡方式和外部振荡方式。1、内部振荡方式 在引脚 XTAL1和 XTAL2外接晶体振荡器(简称晶振)如图2-14所示。电容器C1、C2起稳定振荡频率、快速起振的作用。电容值一般为 530PF(常用30PF)。晶振的振荡频率范围在1.2MHZ12MHZ(一般取12MHZ或6MHZ)。由于单片机内部有一个高增益运算放大器,当外接晶振后,就构成了自激振荡器并产生振荡时钟脉冲。,图2.14内部振荡方式,2、外部振荡方式 是把已有的时钟信号引入单片

41、机。这种方式适宜用于使单片机的时钟与外部信号保持一致。外部振荡方式如图2-15所示。对HMOS的单片机(8051)外部时钟信号由XTAL2引入,对于CHMOS的单片机(80C51),外部时钟由XTAL1引入。外部时钟信号为高电平持续时间要大于20ns,且频率低于12MHz的方波。,图2.15 外部振荡方式,2.4.2 时序 80C51的时序就是80C51在执行指令时所需控制信号的时间顺序。80C51单片机的时序定时单位从小到大依次为:时钟周期、状态周期、机器周期和指令周期。1、时钟周期 把晶振周期定义为节拍(用P表示)。晶振脉冲经过二分频后,就是单片机的时钟周期(即一个时钟周期是晶振周期的2倍

42、),时钟周期也称为状态(用S表示)。这样,一个状态就包含两个节拍,具前半周期对应的拍节叫节拍1(P1),后半周期对应的节拍叫节拍2(P2)。2、状态周期 状态周期(或状态S)是晶振周期的两倍,它分为P1节拍和P2节拍。,3、机器周期 80C51采用定时控制方式,因此它有固定的机器周期。规定一个机器周期的宽度为6个状态,并依次表示为S1S6。由于一个状态又包括两个节拍,因此,一个机器周期总共有12个节拍,分别记作S1P1、S1P2、S6P2。由于一个机器周期共有12个晶振周期,因此机器周期就是晶振脉冲的十二分频。当晶振脉冲频率为12 MHz时,一个机器周期为1s;当晶振脉冲频率为6 MHz时,一

43、个机器周期为2s。4、指令周期 指令周期是最大的时序定时单位,执行一条指令所需要的时间称为指令周期。它一般由若干个机器周期组成。不同的指令,所需要的机器周期数也不相同。通常,包含一个机器周期的指令称为单周期指令,包含两个机器周期的指令称为双周期指令。指令的运算速度与指令所包含的机器周期有关,机器周期数越少的指令执行速度越快。80C51单片机通常可以分为单周期指令、双周期指令和四周期指令等三种。四周期指令只有乘法和除法指令两条,其余均为单周期和双周期指令。,单片机执行任何一条指令时都可以分为取指令阶段和执行指令阶段。80C51的取指/执行时序如图2-16所示。由图2.16可见,ALE引脚上出现的

44、信号是周期性的,在每个机器周期内出现两次高电平。第一次出现在S1P2和S2P1期间,第二次出现在S4P2和S5P1期间。ALE信号每出现一次,CPU就进行一次取指操作,但由于不同指令的字节数和机器周期数不同,因此取指令操作也随指令不同而有小的差异。按照指令字节数和机器周期数,80C51的111条指令可分为6类,分别是:单字节单周期指令、单字节双周期指令、单字节四周期指令、双字节单周期指令、双字节双周期指令、三字节双周期指令,可以参见附录A。图2-16(a),(b)所示分别给出了单字节单周期和双字节单周期指令的时序。单周期指令的执行始于S1P2,这时操作码被锁存到指令寄存器内。若是双字节,则在同

45、一机器周期的S4读第二字节。若是单字节指令,则在S4仍有读操作,但被读入的字节无效,且程序计数器PC并不增量。图2-16(c)给出了单字节双周期指令的时序,两个机器周期内进行4次读操作码操作。因为是单字节指令,所以,后三次读操作都是无效的。,图2-16 80C51的典型时序,5、80C51单片机的时序小结 晶振周期:晶振的振荡周期,又称时钟周期,为最小的时序单位。状态周期:振荡频率经单片机内的二分频器分频后提供给片内CPU的时钟周期。因此,一个状态周期包含2个晶振周期。机器周期(MC):1个机器周期由6个状态周期及12个晶振周期组成。是计算机执行一种基本操作的时间单位。指令周期:执行一条指令所

46、需的时间。一个指令周期由14个机器周期组成,依据指令不同而不同。4种时序单位中,晶振周期和机器周期是单片机内计算其他时间值(例如,波特率、定时器的定时时间等)的基本时序单位。例:单片机外接晶振频率12MHZ时的各种时序换算:晶振周期=1/fosc=1/12MHZ=0.0833us 状态周期=2/fosc=2/12MHZ=0.167us 机器周期=12/fosc=12/12MHZ=1us 指令周期=(14)机器周期=14us。,2.5 80C51复位电路 2.5.1 80C51复位电路 80C51单片机复位的目的是使CPU和系统中的其他功能部件都处在一个确定的初始状态,并从这个状态开始工作,例如

47、复位后PC=0000H,使单片机从第一个单元取指令。80C51单片机复位的条件是:必须使RST端(9脚)加上持续两个机器周期(即24个晶振周期)的高电平。例如,若时钟频率为12 MHz,每机器周期为1s,则只需2s以上时间的高电平,在RST引脚出现高电平后的第二个机器周期执行复位。单片机常见的复位电路如图2-17(a)、(b)所示。图2-17(a)为上电复位电路,它是利用电容充电来实现的。在接电瞬间,RST端的电位与VCC相同,随着充电电流的减少,RST的电位逐渐下降。只要保证RST为高电平的时间大于两个机器周期,便能正常复位。,图2-17(b)为按键复位电路。该电路除具有上电复位功能外,若要

48、复位,只需按图2-17(b)中的RESET键,此时电源VCC经电阻R1、R2分压,在RESET端产生一个复位高电平。电路中通常选择:C=10f,R=10K。,图2-17复位电路,(a)上电自动复位,(b)按键手动复位,2.5.2 80C51单片机复位后的状态 80C51单片机的复位功能是把PC初始化为0000H,使CPU从0000H单元开始执行程序;复位操作同时使SFR寄存器进入初始化,但内部RAM的数据是不变的。几个主要特殊功能寄存器复位状态归纳如表2-6。对个别特殊功能寄存器作如下说明:PC=0000H:程序计数器为零表明单片机复位后程序从0000H地址单元开始执行。A=00H:表明累加器

49、已被清零。PSW=00H:表明选寄存器0组为工作寄存器组。SP=07H:表明堆栈指针指向片内RAM 07H单元,根据堆栈操作的先加后压法则,第一个被压入的数据被写入08H单元中,一般需重新设置SP值。P0P3=FFH:P0P3口用作输入口时,必须先写入“1”。单片机在复位后,已使P0P3口每一端线为“1”,为这些端线用作输入口做好了准备。,其中,表示无关位。记住一些特殊功能寄存器复位后的主要状态,对于熟悉单片机操作,减短应用程序中的初始化部分是十分必要的。,表2-6主要特殊功能寄存器复位状态,2.6 常用8位单片机系列介绍 2.6.1 AT系列单片机 Atmel公司是美国著名的高性能,低功耗,

50、非易失性存储器和数字集成电路的一流半导体制造公司。AT系列单片机主要有AT89、AT90、AT91和智能IC卡等四种产品系列。产品主要特点是:E2PROM存储技术和Flash闪速存储器技术世界领先。一、AT89系列单片机 AT89系列8位单片机可分为标准型、低档型和高档型三类。低档型单片机有AT89C51和AT89C2051两种型号;标准型单片机有AT89C51、AT89LV51、AT89C52、AT89LV52、AT89C55、AT89LV55六种型号;高档型单片机有AT89S53、AT89S8252和AT89S4D12等型号。其中,数字9表示内含Flash存储器,C表示CMOS工艺,LV表

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号