资源预览内容
第1页 / 共108页
第2页 / 共108页
第3页 / 共108页
第4页 / 共108页
第5页 / 共108页
第6页 / 共108页
第7页 / 共108页
第8页 / 共108页
第9页 / 共108页
第10页 / 共108页
亲,该文档总共108页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第3章 MCS-51单片机的结构和原理,MCS是Intel公司单片机的系列符号。Intel推出有MCS-48、MCS-51、MCS-96系列单片机。 MCS-51系列单片机既包括三个基本型8031、8051、8751,还包括对应的低功耗型号80C31、MCS-51、87C51,因而MCS-51特指Intel的这几种型号。,由于Intel公司将MCS-51的核心技术授权给了很多其它公司,所以有很多公司在做以8051为核心的单片机,例如PHILIPS、SIEMENS、ADM、ATMEL等公司推出的一系列以MCS-51为核心、与MCS-51兼容的8位单片机。他们对MCS-51一般都作了一些扩充,更有特点、功能更强、市场竞争力更强,不应该把它们称为MCS-51系列单片机。MCS只是Intel公司专用的。,3.1 MCS-51系列单片机的结构,一、基本组成与内部结构 1、中央处理器CPU 它是单片机的核心,用于产生各种控制信号,完成对数据的算术逻辑运算和传送 2、内部数据存储器RAM 用来存放可以读/写的数据,3、内部程序存储器ROM 用来存放程序指令或某些常数表格 4、四个8位的并行I/O接口P0、P1、P2、P3 每个接口都可用作数据的输入或输出 5、2个(或3个)定时器/计数器,6、内部中断系统 具有5个中断源、2个优先级的嵌套中断结构,可实现二级中断服务程序嵌套。每一个中断源都可用软件程序规定为高优先级中断或低优先级中断 7、一个串行接口电路 可用于异步接收发送器,8、内部时钟电路 振荡频率可高达40MHz,但晶体和微调电容需要外接,中央处理器 CPU包含运算器和控制器两大部分,运算器完成各种算术和逻辑运算,控制器在单片机内部协调各功能部件之间的数据传送和运算操作,并对单片机外部发出若干控制信息。,二、CPU,1、运算器 运算器以算术逻辑单元ALU为核心,加上累加器ACC、暂存寄存器TMP和程序状态字寄存器PSW等组成。,ALU 主要用于完成二进制数据的算术和逻辑运算,并通过对运算结果的判断来影响程序状态字寄存器PSW中有关位的状态。,ACC 是一个8位寄存器(在指令中一般写为A),它通过暂存寄存器TMP与算术逻辑单元ALU相连。ACC的工作最为繁忙,因为在进行算术逻辑运算时,ALU的一个输入多为ACC的输出,而大多数运算结果也需要送到ACC中。,B B寄存器是一个8位寄存器,在做乘除运算时,B寄存器用来存放一个操作数,它也用来存放乘除运算后的一部分结果。若不做乘除操作,B寄存器可用作通用寄存器。,PSW 程序状态字寄存器PSW也是一个8位寄存器,用于存放运算结果的一些特征。其格式为:,CY:进位标志 在进行加法或减法运算时,若运算结果的最高位有进位或借位,则CY=1,否则CY=0。在执行位操作指令时,CY作为位累加器。 AC:辅助进位标志 在进行加法或减法运算时,若低半字节向高半字节有进位或借位(即当D3向D4有进位或借位)时AC=1,否则AC=0。AC还作为BCD码运算调整时的判别位。,F0:用户标志 用户可根据自己的需要对F0赋予一定的含义 OV:溢出标志 当两个带符号的单字节数进行运算时,如果运算结果超出-128-+127的范围,则OV=1,表示有溢出,否则OV=0表示无溢出,P:奇偶校验标志 每条指令执行完毕后,都按照累加器A中“1”的个数来决定P值,当“1”的个数是奇数时P=1,否则P=0 D1:保留位,RS1和RS0:工作寄存器组选择位,2、控制器 控制器包括定时控制逻辑、指令寄存器、指令译码器、程序计数器PC、数据指针DPTR、堆栈指针SP、地址寄存器和地址缓冲器等。它的功能是逐条对指令进行译码,并通过定时和控制电路在规定的时刻发出各种操作所需的内部和外部控制信号,协调各部分的工作。,程序计数器PC 用于存放下一条将要执行指令的地址。当一条指令按PC所指向的地址从程序存储器中取出之后,PC的值会自动增量,即指向下一条指令。,堆栈指针SP 堆栈指针SP是一个8位专用寄存器,它用来指示出堆栈在内部RAM中的起始位置。系统复位后,SP初始化为07H,使得堆栈实际上从08H单元开始。由于08H-1FH单元分别属于工作寄存器1-3,因此若在程序设计中使用堆栈时最好把SP值改为1FH或更大的值。,MCS-51单片机的堆栈属于向上生长型。堆栈的数据操作规则是“先进后出”,因此在使用堆栈之前应先给SP赋值,规定栈底的位置。每往堆栈中压入一个数据,SP的内容自动加1。因此随着数据的压入, SP的值将越来越大;当数据从堆栈弹出时,SP的值将越来越小。,数据指针DPTR(9月25日) 数据指针DPTR是一个16位的特殊功能寄存器,用来存放16位数据存储器的地址,以便对片外数据RAM进行读写操作。数据指针DPTR的高位字节寄存器用DPH表示,低位字节寄存器用DPL表示,DPTR可以作为一个16位寄存器DPTR来用,也可以作为两个独立的8位寄存器DPH和DPL来用。,三、存储器,从使用者的角度看,MCS-51单片机有四个存储器空间:容量为4KB的片内程序存储器(8031没有片内程序存储器);64KB的片外程序存储器;256B的内部数据存储器;以及64KB的外部数据存储器。在访问这几个不同的存储器时应采用不同形式的指令。,MCS-51单片机存储器容量,1、程序存储器 程序存储器用于存放编好的程序和表格常数,它以程序计数器PC作地址指针,由于MCS-51单片机的程序计数器为16位,因此可寻址的地址空间为64K字节。,片内ROM与片外ROM的地址在0000H-0FFFH范围内是重叠的,因此单片机的CPU提供了一个控制信号EA来区分内部ROM和外部ROM:当EA接高电平时,单片机从片内ROM取程序指令,而当指令地址超过0FFFH后,就自动的转向片外ROM取指令;当EA接低电平时,所有的取指令操作均对片外ROM进行。 对于由片内无ROM(或EPROM)的单片机8031构成的应用系统,必须使EA=0,程序存储器只能外部扩展。,注意 程序存储器的某些单元是保留给系统使用的,0000H-0002H单元是所有执行程序的入口地址,单片机复位后程序计数器PC的内容为0000H,故系统必须从0000H单元开始取指令来执行程序,即0000H单元是系统的起始地址,一般在该单元存放一条绝对跳转指令(LJMP),而用户设计的主程序,从跳转后的地址开始安放。,0003H-002AH单元被均匀的分为五段,用于五个中断服务程序的入口,用户程序不应进入这一区域,因此用户应该在这些入口地址处放一条绝对跳转指令(LJMP),因为两个中断入口间仅有八个单元,存放中断服务程序显然不够用,所以必须加跳转指令使程序跳到中断服务程序的起始地址。,0003H 000AH INT0中断地址区 000BH 0012H T0中断地址区 0013H 001AH INT1中断地址区 001BH 0022H T1中断地址区 0023H 002AH 串口中断地址区,2、内部数据存储器 片内数据存储器由工作寄存器、位寻址区和数据缓冲区组成,不同的地址区域内,功能不完全相同。,(1)工作寄存器 内部RAM的00H-1FH为工作寄存器区,共分为4个组,每个组有8个工作寄存器R0-R7,即一共有32个内部RAM单元作为工作寄存器使用。当前程序使用的工作寄存器区是由程序状态字PSW的第3位(RS0)和第4位(RS1)来指示的。程序中未使用的工作寄存器单元也可作为数据缓冲区使用。,(2)位寻址区域 内部RAM的20H-2FH为位寻址区域,这16个单元的每一位都有一个8位地址,位地址范围为00H-7FH。程序设计时通常把各种程序状态标志、位控制变量设在位寻址区内。位寻址区的RAM单元也可以作为一般的数据缓冲器使用。,(3)数据缓冲区 内部RAM的30H-7FH为数据缓冲区,共80个字节,所以留给用户使用的片内RAM单元并不多。,(4)特殊功能寄存器(SFR) 特殊功能寄存器是用来对片内各功能模块进行管理、控制、监视的控制寄存器和状态寄存器,是一个特殊功能的RAM区,它们位于片内数据存储器之上,离散的分布在80H-FFH的地址空间范围内。对于尚无定义的字节单元,用户不能作寄存器使用,若访问没有定义的单元,则将得到一个不确定的随机数。,3、外部数据存储器 片内RAM与片外RAM的地址在0000H-00FFH范围内是重叠的,因此单片机对片内外数据存储器的操作使用了不同的指令,这样就不会发生混乱。 MOV 90H,A MOVX Ri,A,片外数据存储器与程序存储器的地址完全重叠,两者的区分靠引脚来完成: 当从外部ROM中取指令时,用选通信号PSEN;而从外部RAM中读写数据时则采用RD或WD。,四、并行I/O口,80C51单片机有4个并行I/O口,称为P0、P1、P2、P3,每个并行口都有8根引脚,共有32根I/O引脚,它们都是双向通道。每一条I/O引脚都能独立的用作输入或输出。做输出时数据可以锁存,做输入时数据可以缓冲。,1、 I/O口的使用 在输入/输出工作方式下,P0、P1、P2和P3的基本特性是相同的。实际使用中,P0口一般作数据/低8位地址复用口,这时在P0口上要加个接口地址锁存器,因为在读写片外存储器时,P0口先送出低8位地址信号,该信号只能维持很短的时间,然后P0口又送出8位数据信号。为了在整个读写片外存储器期间,,都存在有效的低8位地址信号,则必须在P0口上加接一个地址锁存器,在ALE信号有效期间将低8位地址锁存于锁存器内,再从这个锁存器对外输出低8位地址。P1口一般作I/O扩展口用,P2口作高8位地址和I/O口扩展的地址译码使用,因为在整个读写期间P2口的信号维持不变,因此P2口不需加接锁存器。P3口一般作中断输入、串行通讯口使用。一般在片外接有存储器时,P0、P2、P3都不能再用作通用I/O口,此时只有P1口可作通用I/O口使用。,2、80C51单片机的片外总线结构 根据上述描述可以看出,真正可以完全为用户所使用的I/O口只有P1口以及部分作为第一功能使用时的P3口,也就是说,单片机的引脚除了电源、复位、时钟接入、用户I/O口外,其余管脚都是为实现系统扩展而设置的,这些引脚构成了80C51单片机的片外三总线结构。,地址总线(AB) 地址总线的宽度为16位,外部存储器直接寻址为64K字节,16位地址总线由P0口经地址锁存器提供低8位地址(A0-A7),P2口直接提供高8位地址(A8-A15) 数据总线(DB) 数据总线的宽度为8位,由P0口提供,控制总线(CB) 由P3口的第二功能状态和4根独立控制线RESET、EA、ALE、PSEN组成,3.2 单片机的引脚及其功能 CHMOS工艺制造的单片机除采用DIP(双列直插)封装方式外,还采用方形封装工艺,管脚数为44,但有4只引脚(1、12、23、34)是不使用的。,1、主电源引脚 VCC(40):接+5V电源 VSS(20):接地 2、外接晶体引脚 在使用单片机内部振荡电路时,引脚XTAL1(19)和XTAL2(18)之间接石英晶体和微调电容,使用外部时钟: 对NMOS单片机(8051系列),X1接地,X2接入外部时钟;对CHMOS单片机(MCS-51系列),X1接入外部时钟,X2悬浮,XTAL1,XTAL2,XTAL2,XTAL1,外部时钟,3、控制或与其它电源复用引脚 (1)RST/VPD(9):复位信号输入端 当此输入端保持两个机器周期(即24个振荡周期)的高电平,就可以完成复位操作。第二功能是备用电源输入端,即当VCC掉电期间,此引脚可接上备用电源,以保护单片机内部RAM的数据不丢失。,(2)ALE/PROG(30):地址锁存允许信号 在访问外部存储器时,用来锁存由P0口送出的低8位地址信号。不访问外部存储器时,ALE以振荡频率的1/6的固定速率输出脉冲信号。第二功能用于对8751片内的EPROM输入编程脉冲,(3)PSEN
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号