2-第二章 80C51单片机的硬件_第1页
2-第二章 80C51单片机的硬件_第2页
2-第二章 80C51单片机的硬件_第3页
2-第二章 80C51单片机的硬件_第4页
2-第二章 80C51单片机的硬件_第5页
已阅读5页,还剩69页未读 继续免费阅读

下载本文档

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

文档简介

第二章80C51单片机的硬件结构,80C51单片机的内部结构80C51的外部引脚及功能80C51的存储器配置80C51的并行输入输出接口电路80C51外围电路设计,2.180C51单片机的内部结构,80C51系列单片机是由Intel等各大公司推出的8位主流单片机系列,它是我国目前应用最广泛的一种单片机系列。以该系列中的典型芯片80C51为线索来介绍单片机的内部结构、外部引脚、存储器配置、并行I/O端口、外围电路等内容。在51系列单片机里,80C51是最典型的单片机,其它芯片都具有与80C51基本相同的硬件结构和软件特征,其内部结构如图2.1所示。,80C51概况数据总线为8位,地址总线为16位;CMOS工艺;128B的RAM;4K的ROM;2个16位的定时器;5个中断源;.,2.280C51的外部引脚及功能,引脚共计40根,其中:电源引脚:2根,Vcc和Vss;晶振引脚:2根,XTAL1和XTAL2;I/O引脚:32根;控制引脚:4根EARSTPSENALE,2.380C51的存储器配置,80C51的片内集成有一定容量的程序存储器和数据存储器(128B)。当然,还可以根据需要对存储器进行外部扩展。80C51的存储器配置如图2.3所示。从物理上分,80C51的存储器有4个存储空间:片内程序存储器、片外程序存储器、片内数据存储器和片外数据存储器。从逻辑上分,80C51有3个存储器地址空间:片内外统一的64KB的程序存储器地址空间、256B的内部数据存储器地址空间(其中128B的专用寄存器地址空间,仅有部分字节有实际意义)和64KB的外部数据存储器地址空间。为了区分不同的存储器空间,在用指令访问这三个不同的逻辑空间时采用了不同形式的指令。,一、程序存储器,80C51单片机内部有4K的程序存储器,0000H3FFFH;程序从0000H开始;有一些特殊功能的区域,如中断入口地址。,中断入口地址表:,二、内部数据存储器,内部数据存储器在物理上分为两个不同的存储空间:数据存储器空间(低128单元)特殊功能寄存器空间(高128单元)。这两个空间是相连的。从用户角度而言,低128单元才是真正的数据存储器。,1.数据存储器空间(低128单元),数据存储器空间(低128单元)按功能划分为:通用寄存器区位寻址区用户区图2.4内部数据存储器配置,(1).通用寄存器区,00H1FH的32个单元是4个通用工作寄存器区,每个区有8个8位寄存器,其编号为R0R7。在任一时刻,CPU只能使用其中的一组寄存器,并且把正在使用的那组寄存器称之为当前寄存器区。到底选择哪一个工作组为当前工作区,取决于专用寄存器PSW(程序状态字)中的RS1和RS0位的状态。RS1和RS0的状态可通过指令来改变。用户可以通过设置RS1和RS0位的状态来选择/切换当前工作寄存器区,这给用户保护寄存器中的内容提供了极大的方便。,(2).位寻址区,RAM中的20H2FH的16个单元除了可作为一般RAM单元进行字节寻址外,还可进行位寻址,称作位寻址区。位寻址区共有16个RAM单元,合计128位,位地址为00H7FH。80C51单片机具有位处理机(又称布尔处理机)功能,位处理机的存储空间就包括这个位寻址区。表2-3为位寻址区的位地址表。,表2-3位寻址区的位地址,(3).用户区,在内部RAM低128单元中,通用寄存器占去32个单元,位寻址区占去16个单元,剩下的80个单元就是供用户使用的一般RAM区,地址单元为30H7FH。对这部分区域的使用不作任何规定和限制,但应当说明的是,堆栈一般开辟在此区。,*关于堆栈堆栈:是一个特殊的存储区域;特点:“后进先出”。单片机的堆栈是地址增加型,即压入数据时地址指针增加。堆站的操作有压入:PUSH弹出:POP,2特殊功能寄存器SFR(高128单元),内部RAM的高128单元是给特殊寄存器使用的,因此称之为专用寄存器区,其单元地址为80HFFH。因为这些寄存器的功能已作专门规定,所以称其为专用寄存器或特殊功能寄存器(SpecialFunctionRegisters)。特殊功能寄存器的总数为21个,仅占用了80HFFH中的很小一部分。表2-4给出了这些特殊功能寄存器的符号、名称和地址等。,表2-4特殊功能寄存器一览表,21个特殊功能寄存器是不连读地分散在内部RAM的高128单元之中,尽管其中还有许多空闲地址,但用户不能使用。程序计数器PC是独立于SFR之外的唯一的一个不可寻址的专用寄存器。PC不占RAM单元,在物理上是独立存在的。它不包括在21个特殊功能寄存器中。在21个特殊功能寄存器中,有11个寄存器不仅可以字节寻址,也可以进行位寻址。凡是能进行位寻址的SFR,其特征是字节地址都能被8整除(字节地址的末位是0或8)。IP中有3位、IE中有2位、PSW中有一位对用户无实际意义,所以直接寻址位为82位;再加上数据存储器中的128位,80C51共计有210位可寻址位。,(1)程序计数器PCPC是一个16位的计数器。其内容为将要执行的指令地址,寻址范围达64KB。PC有自动加1功能,从而实现程序的顺序执行。PC没有地址,是不可寻址的(但在物理上是存在的),因此用户无法对它进行读写;但可以通过转移、调用返回等指令改变其内容,以实现程序的转移。,(2)累加器A累加器A为8位寄存器,是最常用的专用寄存器,功能较多。它既可用于存放操作数,也可用来存放中间结果。80C51单片机中大部分单操作数指令的操作数就取自累加器,许多双操作数指令中的一个操作数也取自累加器。加、减、乘、除运算指令的运算结果都存放在累加器A或AB寄存器对中。,(3)B寄存器B寄存器是一个8位寄存器,主要用于乘除运算。乘法运算时,B是乘数。乘法操作后,乘积的高8位存于B中。除法运算时,B存放除数。除法操作后,余数存于B中。此外,B寄存器也可作为一般数据寄存器使用。,(4)程序状态字PSW(PROGRAMSTATUSWORD)程序状态字PSW是一个8位寄存器,用于存放程序运行的状态信息。其中,有些位的状态是程序执行的结果,是由硬件自动置位的;而有些位的状态则采用软件的方法来设定。PSW的位状态可以用专门指令进行测试,也可以用指令读出。一些条件转移指令会根据PSW有关位的状态进行程序转移。PSW的各位含义如图2.5所示。其中PSW.1为保留位,未用。,图2.5程序状态字PSW,图中:CY(PSW.7):进位标志位CY是PSW中最常用的标志位,其功能有二:一是存放算术运算的进位标志;二是在位操作中作累加位使用。位传送、位与、位或操作,操作数之一为进位标志位。AC(PSW.6):辅助进位位当进行加法或减法操作而产生由低4位向高4位的进位或借位时,由硬件将AC置1;否则就被清除。AC还用于十进制调整,同DAA指令结合起来使用。,F0(PSW.5):用户标志位它是用户定义的一个状态标记,可以用软件来使它置位或清除,也可用软件测试F0以控制程序的流向。RS1、RS0(PSW.4,PSW.3):当前寄存器区选择位用软件来置位或清除,以选择和确定当前工作寄存器区。RS1、RS0与寄存器区的关系如表2-5所示。,表2-5RS1、RS0与寄存器区的关系,OV(PSW.2)溢出标志位在带符号数运算中,OV1,表示加减运算结果超出了累加器所能表示的符号数的有效范围(128127),即产生了溢出,因此运算结果是错误的;否则OV0,运算结果正确,无溢出。溢出标志OV在硬件上是通过一个异或门来实现的,即:OVC6C7其中,C6为D6位向D7位的进位或借位,C7为D7向C的进位或借位。在乘法运行中,OV1,表示乘积超过255,即乘积分别放在B与A中;否则OV0,表示乘积只放在中。在除法运行中,OV1,表示除数为0,除法不能进行;否则,OV0,除数不为0,除法可正常进行。,(PSW.0):奇偶位每个指令周期都由硬件来置位或清除,以表示累加器中1的个数的奇偶性。P1,则累加器中1的个数为奇数;若P=0,则累加器中1的个数为偶数。,(5)栈指针SP栈指针SP是一个8位专用寄存器。它指示出堆栈顶部在内部数据存储器中的位置。系统复位后,SP初始化为07H,使得堆栈向上由08H单元开始。考虑到08H1FH单元属于工作寄存器区,若程序设计中要用到这些区,最好把SP的值置为1FH或更大一些,一般将堆栈开辟在30H7FH区域中。SP的值越小,堆栈深度就越深,但最大为128字节。,SP的值除了可以用软件直接改变外(MOVSP,#DATA),在执行堆栈操作,程序调用、子程序返回及中断返回等指令时,SP的值自动增量或减量。堆栈操作指令为:PUSHACC(压入堆栈)POPACC(弹出堆栈),(6)数据指针DPTR数据指针DPTR是唯一1个16位的可寻址的专用寄存器;由两个8位寄存器DPH和DPL拼装而成,其中DPH为DPTR的高8位,DPL为DPTR的低8位。它既可作为一个16位寄存器来使用,也可作为2个独立的8位寄存器(DPH和DPL)来使用。DPTR通常用来存放16位地址。既可访问外部RAM,也可访问ROM。例如:MOVDPTR,#2000HMOVXA,PPTR;将外RAM2000H单元内容AMOVCA,A+DPTR;访问ROM指令,(7)端口P0P3专用寄存器P0、P1、P2和P3分别是I/O口P0P3的锁存器。在80C51中,I/O和RAM统一编址,既可以字节寻址,也可以位寻址,使用起来较方便。有关P0P3的详细情况,在后续内容中介绍。,(8)串行数据缓冲器SBUF串行数据缓冲器SBUF用于存放欲发送或接收的数据,它实际上由两个独立的寄存器组成,一个是发送缓冲器,另一个是接收缓冲器。当要发送的数据传送到SBUF时,进入的是发送缓冲器,当要从SBUF取数据时,则取自接收缓冲器,取走的是刚接收到的数据。,(9)定时器/计数器80C51单片机有两个16位定时器/计数器T0和T1,它们分别由两个独立的8位寄存器组成,共有4个独立的寄存器:TH0,TL0,TH1,TL1,可对这4个寄存器寻址,但不能把T0和T1当成16位寄存器来访问。,(10)其它控制寄存器IP、IE、TMOD、TCON、SCON和PCON寄存器分别包含有中断系统、定时器/计数器、串行口和供电方式的控制和状态位,这些寄存器将在以后内容中介绍。,三、外部数据存储器,当用户需处理的数据量较大而80C51的内部RAM不够用时,单片机需要在芯片外部连接数据存储器(RAM)和I/O接口。单片机可访问的外部RAM的地址空间为064KB,最多可由16位地址线寻址;外部RAM与外部I/O口统一编址,即CPU对RAM和I/O口不加区分;对外部数据存储器只能采用间接寻址方式进行访问,访问外部RAM的专用指令为MOVX。,R0、R1和DPTR都可作为间接寻址寄存器使用,前者寻址范围仅为256B,后者为64KB。例如:MOVXA,Ri;(i=0,1)范围为256BMOVXA,DPTR;范围为64K,需要指出的是,尽管80C51单片机的存储器有内部ROM、外部ROM、内部RAM和外部RAM,存储器空间也是重叠的,但在实际应用中不会发生混乱。对内ROM和外ROM,单片机是通过EA引脚来控制的,内外统一,不会出错;对内外RAM而言,通过指令MOV和MOVX加以区分。因此,用户在使用时可尽管放心,只要你使用正确的指令,就能指挥单片机为你正常地工作了。,2.4并行输入输出接口电路,单片机芯片内的一项重要内容就是并行I/O口。80C51共有四个位的并行O口,分别记作P0、P1、P2和P3。实际上,它们已被归入专用寄存器之列,具有字节寻址和位寻址功能。口是一个综合概念。在单片机中,口是一个集数据输入缓冲,数据输出驱动及锁存等多项功能为一体的I/O电路。口有时称为端口。80C51单片机的四个I/O口都是位双向口,这些口在结构和特性上是基本相同的,但又各具特点。,一、P0口,图2.6P0的结构图,它包括1个输出锁存器,2个三态缓冲器,1个输出驱动电路和1个输出控制电路。输出驱动电路由一对FET(场效应管)组成,其工作状态受输出控制电路的控制。控制电路包括:1个与门、一个反相器和1路模拟转换开关(MUX)。模拟转换开关的位置由来自CPU的控制信号决定,当控制信号为低电平“”时,开关处于图示位置,它把输出极与锁存器的端接通。同时,因与门输出为,输出级中的上拉FET处于截止状态。因此输出极是漏极开路的开漏电路。这时P0可作一般的I/O口用。CPU向端口输出数据时,写脉冲加在触发器的时钟端CP上,这样,与内部总线相连的端的数据取反后就出现在端上,又经输出FET反相,在P0引脚上出现的数据正好是内部总线的数据。P0的输出级可以驱动个LSTTL输入,但在开漏状态下,为了驱动NMOS输入端,需接外部上拉电阻。,1输出操作(写操作)当P0口用作输出口使用时,内部的写脉冲加在触发器的CP端,数据写入锁存器,并向端口引脚输出。即锁存器的输出与引脚的输出状态是一致的。作通用输出口时,输出级属漏极开路,在驱动NMOS电路时应外接上拉电阻。,2输入操作(读操作)当P0口作为输入口使用时,应区分读引脚和读锁存器(端口)两种情况。为此,在电路中有两个用于读入的三态缓冲器。有读引脚和读锁存器之分。,读引脚在端口处于输入状态的情况下读引脚。作输入口使用时,应先向锁存器写“”,这时输出级个FET截止,可用作高阻抗输入(系统复位时P0=FFH)。读引脚,就是读芯片引脚的数据。这时使用下方的数据缓冲器,由“读引脚”信号把缓冲器打开,把端口引脚上的数据经缓冲器通过内部总线读进来。MOV类传送指令进行读口操作就是属于这种情况。,读锁存器在端口已处于输出状态的情况下读锁存器。读锁存器是通过上方的缓冲器读锁存器端的状态。在端口已处于输出状态的情况下,不能正常读取引脚的信号,只能读取锁存器的状态;这样安排的目的是适应对端口进行“读修改写”操作指令的需要。例如“ANLP0,A”就属于这类指令,执行时先读入P0口锁存器中的数据,然后与A的内容进行逻辑“与”,再把结果送到P0口输出。从这种意义上说,该指令又可看作是输出指令。除MOV类指令外的其它口操作指令都属于这种情况。,注意:当0口进行一般的输出时,由于输出电路是漏极开路电路,必须外接上拉电阻才能有高电平输出。作输入使用时,应区分读引脚和读锁存器。读引脚时,必须先向电路中的锁存器写入“”,使FET截止,引脚处于悬浮状态,可作为高阻抗输入。因为,若曾经输出锁存过数据0,则FET导通,引脚上的电位始终被钳在“0”电平上,输入数据不可能被正确地读入。0口在实际应用中,多作为地址/数据总线使用,这要比作一般I/O口应用简单。此时,可分为两种情况:一种情况是从P0输出地址或数据,这时控制信号应为高电平“”,转换开关把反相器输出端与下拉FET接通,同时与门开锁。输出的地址或数据信号既通过与门去驱动上提FET,又通过反相器去驱动下拉FET。另一种情况是从P0输入数据,这时信号仍应从输入缓冲器进入内部总线。,3结论P0口既可作地址/数据总线使用,又可作通用I/O口用。当P0口作地址数据总线使用时,就不能再把它当通用I/O口使用了。作通用输出口时,输出级属漏极开路,在驱动NMOS电路时应外接上拉电阻。作通用输入口使用时,应区分读引脚和读锁存器。读引脚时,应先向锁存器写“”,这时输出级个FET截止,可用作高阻抗输入。,二、P1口,P1口的口线逻辑电路如图2.7。,因为P1口通常是用作通用I/O使用的,所以在电路结构上与P0口有一些不同之处。首先,它不再需要多路开关MUX;其次,电路内部已有上拉电阻,与场效应管共同组成输出驱动电路。因此,1口用作输出口使用时,已能向外提供推拉电流负载,无须再外接上拉电阻。当1口作为输入口使用时,同样也需向其锁存器写入“1”,使输出驱动电路的FET截止。,P1口通常作为通用I/O使用;作输出口使用时,无须外接上拉电阻;作输入口使用时,应区分读引脚和读锁存器。读引脚时,应先向锁存器写“”。,四、P3口,P3口的口线逻辑电路如图2.9。,P3口的特点在于:为适应引脚信号第二功能的需要,增加了第二功能控制逻辑。由于第二功能信号有输入和输出两类,因此分两种情况说明。对于第二功能为输出的信号引脚,当作为I/O使用时,第二功能信号引线应保持高电平,与非门开通,以维持从锁存器到输出端数据输出道路的畅通。当输出第二功能信号时,该位的锁存器应置“”,使与门对第二功能信号的输出是畅通的,从而实现第二功能信号的输出。对于第二功能为输入的信号引脚,在口线的输入通道上增加了一个缓冲器,输入的第二功能信号就从这个缓冲器的输出端取得,而作为I/O使用的数据输入,仍取自三态缓冲器的输出端,不管是作为输入口使用,还是作为第二功能信号输入使用,输出电路中的锁存器和第二功能输出信号线都应保持高电平。(等于“1”)。,P3口的各口线既可作通用I/O口用,又可作第二功能使用。当某些口线作为第二功能使用时,不能再把当通用I/O口使用;其它未用的口线仍可作为通用I/O口线使用。P3口作通用I/O使用时,与P1口相似。作输出口使用时,无须外接上拉电阻;作输入口使用时,应区分读引脚和读锁存器。读引脚时,应先向锁存器写“”。,五、P0P3口的使用特点综上所述,在一般使用情况下,P1和P2口可作为通用I/O口提供给用户,且无须上拉电阻;P0口作为数据总线使用;而P3口通常工作在第二功能状态。当然,在芯片外连接有RAM和I/O口时,P2口作为地址总线使用。,2.580C51的外围电路,单片机应该说是一个小系统了;然而,由于实用系统中有一些功能器件无法集成到芯片内部,如晶振、复位电路等,因此需要在片外附加相应的电路,下面就介绍一下实际应用中的单片机外围电路设计。,一、时钟电路与时序时钟电路用于产生单片机工作所需要的时钟信号;而时序研究的是指令中各信号之间的关系。单片机本身就是一个复杂的同步时序电路,为了保证同步工作方式的实现,电路就应在唯一的时钟信号控制下严格地按时序进行工作。,1时钟信号的产生采用内部时钟电路在80C51芯片内部有一个高增益反相放大器,其输入端为芯片引脚XTAL1,其输出端为引脚XTAL2;而在芯片的外部,XTAL1和XTAL2之间跨接晶体振荡器和微调电容,从而构成一个稳定的自激振荡器,这就是单片机的时钟电路,如图2.10所示。,时钟电路产生的振荡脉冲,经过触发器进行二分频之后才能为单片机的时钟脉冲信号。请特别注意时钟脉冲与振荡脉冲之间的二分频关系,否则会造成概念上的错误。电容C1和C2的典型值为30PF。晶体的振荡频率范围是1.2MHz12MHz。晶体振荡频率愈高,则系统的时钟频率也高,单片机运算速度也就快;但反过来,运行速度快,对存储器的速度要求就高,对印刷电路板的工艺要求也高。80C51在通常应用情况下,使用振荡频率为6MHz或12MHz的石英晶体。,引入外部脉冲电路在由多片80C51单片机组成的系统中,为了使各单片机之间的时钟信号同步,应当引入唯一的公用外部脉冲作为系统中各单片机的振荡脉冲,这时外部脉冲信号是从从XTAL1引入,XTAL2悬空,其连接如图2.11所示。,2时序的定时单位时序是用定时单位来说明的,80C51的时序定时单位共有个,从小到大依次是:节拍状态机器周期指令周期。,节拍与状态振荡脉冲的周期叫做节拍,用表示。振荡脉冲经过二分频后,就是单片机的时钟信号,把时钟信号的周期定义为状态,用表示。这样,一个状态就包括两个节拍,其前半周期对应的节拍叫节拍(),后半周期对应的节拍叫节拍()。机器周期80C51采用定时控制方式,因此它有固定的机器周期。80C51的一个机器周期的宽度为个状态,并依次表示为,由于一个状态又包括两个节拍,因此一个机器周期总共有个节拍,分别记作S1P1、S1P2

温馨提示

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

评论

0/150

提交评论