第2章80C51单片机的结构及原理第2章80C51单片机的结构及原理[学习目的](1)了解80C51的内部结构。(2)掌握80C51引脚信号功能定义。(3)掌握80C51的存储器空间分配及各I/O口的特点。(4)掌握80C51的复位电路、时钟电路及指令时序。[学习重点和难点](1)80C51的结构特点。(2)80C51存储器配置与空间的分布。(3)80C51程序状态寄存器(PSW)。(4)80C51的指令时序。第2章80C51单片机的结构及原理2.180C51单片机的结构与原理2.1.180C51单片机系列Intel公司推出的80C51是MCS-51系列单片机中以CHMOS为生产工艺的一个典型产品;其它厂商以8051为基核开发出的CMOS工艺单片机产品统称为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公司的ADμC8xx高精度ADC系列。9、LG公司的GMS90/97低压高速系列。第2章80C51单片机的结构及原理2.1.280C51单片机的结构80C51单片机的结构框图如图2-1所示,可以看出,在一块芯片上集成了一个微型计算机的主要部件,它包括以下几部分:(1)8位CPU1个。(2)时钟电路(振荡电路和时序OSC)。(3)4KB程序存储器(ROM/EPROM/Flsh),可外扩展到64KB。(4)128B数据存储器RAM,可外扩展到64KB。(5)2个16位定时/计数器。(6)64KB总线扩展控制电路。(7)4个8位并行I/O接口P0~P3。(8)1个全双工异步串行I/O接口。(9)中断系统:5个中断源,其中包括2个优先级嵌套中断。第2章80C51单片机的结构及原理第2章80C51单片机的结构及原理2.1.380C51单片机的内部结构80C51单片机的内部结构如图2-2所示,它由CPU、存储器、I/O口及SFR(特殊功能寄存器)等组成。具体说明如下:1、80C51CPU80C51CPU即微处理器,是一8位CPU,是单片机的核心部件,是计算机的控制指挥中心。同微型计算机CPU类似,80C51内部CPU由运算器和控制器两部分组成。(1)运算器组成:由算术运算/逻辑运算单元ALU(ArithmeticLogicUnit)为核心,由暂存器1、暂存器2、累加器ACC(Accumulator)、寄存器B及程序状态寄存器PSW(ProgramStatusWord)组成。主要任务:是完成算术运算、逻辑运算、位运算和数据传送等操作,运算结果的状态由程序状态寄存器(PSW)保存。第2章80C51单片机的结构及原理RAM地址寄存器寄存器RAM128BRAM程序地址寄存器P0驱动器P2锁存器P2驱动器P1锁存器暂存器2B寄存器4KBROM暂存器1ACCSPP0锁存器PCPC增1缓冲器P3锁存器OSC中断、串行口及定时器PSWALUDPTRP1驱动器P3驱动器XTAL1XTAL2P0.0~P0.7P2.0~P2.7P3.0~P3.7P1.0~P1.7RSTALEVCCVSS定时控制指令译码器指令寄存器PSENEA图2-280C51单片机的内部结构第2章80C51单片机的结构及原理(2)控制器组成:由程序计数器(PC)、PC增1寄存器、指令寄存器(IR)、指令译码器(ID)、数据指针(DPTR)、堆栈指针(SP)、缓冲器及定时控制电路等组成。主要任务:完成指挥控制工作,协调单片机各部分正常工作。2、80C51的片内存储器80C51的片内存储器与一般微机的存储器的配置不同。一般微机的ROM和RAM安排在同一空间的不同范围(称为普林斯顿结构)。而80C51单片机的存储器在物理上设计成程序存储器和数据存储器两个独立的空间(称为哈佛结构)。第2章80C51单片机的结构及原理2.1.480C51单片机的引脚及功能80C51单片机的封装是采用双列直插式(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完成复位操作。该引脚的第二功能是VPD,即备用电源的输入端,具有掉电保护功能。若在该引脚接+5V备用电源,在使用中若主电源VCC掉电,可保护片内RAM中的信息不丢失。第2章80C51单片机的结构及原理第2章80C51单片机的结构及原理(2)ALE/PROG(30脚):地址锁存允许信号输出引脚/编程脉冲输入引脚。说明:在系统扩展时,ALE用于控制把P0口输出的低8位地址锁存起来,以实现低位地址和数据的隔离。此外,由于ALE是以晶振fosc/6的固定频率输出的正脉冲(fosc代表振荡器的频率),因此,可作为外部时钟或外部定时脉冲使用。该引脚的第二功能是对8751内部4KBEPROM编程写入时,作为编程脉冲的输入端。(3)EA/VPP(31脚):外部程序存储器地址允许输入信号引脚/编程电压输入信号引脚。说明:当EA接高电平时,CPU执行片内ROM指令,当PC值超过0FFFH时,将自动转去执行片外ROM指令;当EA接低电平时,CPU只执行片外ROM指令。该引脚的第二功能VPP是对8751片内EPROM编程写入时,作为21V编程电压的输入端。(4)PSEN(29脚):片外ROM读选通信号。说明:在读片外ROM时,为低电平(有效),以实现对片外ROM的读操作。第2章80C51单片机的结构及原理4、并行I/O引脚(32根,由4个8位口构成)其中:(1)P0.0~P0.7(39~32脚):一般的8位双向I/O口引脚或数据/地址总线低8位复用引脚。说明:P0口即可作数据/地址总线使用,又可作一般的I/O口使用。当CPU访问片外存储器时,P0口分时先作低8位地址总线,后作双向数据总线,此时,P0口就不能再作一般I/O口使用。(2)P1.0~P1.7(1~8脚):P1口作为一般的8位准双向I/O口使用。(3)P2.0~P2.7(21~28脚):一般8位准双向I/O口引脚或高8位地址总线引脚。说明:P2口即可作为一般的I/O口使用,也可作为片外存储器的高8位地址总线,与P0口配合,组成16位片外存储器单元地址,可访问64KB的存储空间。(4)P3.0~P3.7(10~17脚):一般8位准双向I/O口引脚或第二功能引脚。说明:P3口除了作为一般的I/O口使用之外,每个引脚还具有第二功能,P3的8条口线都定义有第二功能,详见表2-1(a)第2章80C51单片机的结构及原理表2-1P3口各引脚与第二功能表第2章80C51单片机的结构及原理2.280C51单片机的存储器组织80C51的存储器在物理结构为哈佛结构,它将程序存储器和数据存储器分开,如图2-4所示。从物理地址空间看,80C51单片机有四个存储器地址空间,即片内数据存储器(简称片内RAM)、片内程序存储器(片内ROM)、片外数据存储器(片外RAM)和片外程序存储器(片外ROM)。第2章80C51单片机的结构及原理但从使用的角度来看,80C51的存储器又分为三个逻辑空间,如图2-5所示。1、片内外统一寻址的64KB程序存储器空间,地址范围为0000H~FFFFH(访问用指令MOVC)。2、64KB的片外数据存储器空间,地址范围也为0000H~FFFFH(访问用指令MOVX)。3、80C51的片内数据存储器RAM只有128B,地址范围为00H~7FH;80C52的片内数据存储器RAM为256B,地址范围为00H~FFH(访问用指令MOV)。第2章80C51单片机的结构及原理2.2.180C51单片机的程序存储器ROM80C51程序存储器ROM用来存放程序、常数或表格等。80C51内部有4KB的掩膜ROM,87C51内部有4KB的EPROM,而80C31内部没有程序存储器。80C51的片外最多能扩展64KB程序存储器,片内外的ROM是统一编址的。80C51程序存储器ROM空间地址分布图如图2-6(a)所示。80C51的引脚为选择内部或外部ROM控制端,当接高电平时,80C51的程序计数器PC在0000H~0FFFH地址范围内(即前4KB地址)是执行片内ROM中的程序,当PC值超过0FFFH时,PC将自动转去执行片外1000H~FFFFH地址范围ROM中的程序;当接低电平时,只能寻址外部ROM程序存储器,片外存储器可以从0000H开始编址。第2章80C51单片机的结构及原理对图2-6(a)ROM空间地址分布图作如下说明:1、80C51片内有4KB的ROM存储单元,地址为0000H~0FFFH。2、80C51片外最多可扩60KB的ROM,地址为1000H~FFFFH。第2章80C51单片机的结构及原理2.2.280C51ROM低地址特殊单元80C51的程序存储器低地址单元中有6个单元具有特殊功能,见图2-6(b)所示,使用时应予以注意其含义。1、0000H~0002H:单片机复位后的程序入口地址(3个单元)。2、0003H~000AH:外部中断0的中断服务程序入口地址(8个单元)。3、000BH~0012H:定时器0的中断服务程序入口地址(8个单元)。4、0013H~001AH:外部中断1的中断服务程序入口地址(8个单元)。5、001BH~0022H:定时器1的中断服务程序入口地址(8个单元)。6、0023H~002AH:串行口的中断服务程序入口地址(8个单元)。第2章80C51单片机的结构及原理具体应用时注意:第一组特殊单元是0000H~0002H,3个单元不可能安排长程序,因此,系统复位后(PC)=0000H,80C51单片机从0000H单元开始取指令执行程序。如果程序不从0000H单元开始,应在这3个单元中存放一条无条件转移指令,以便直接转去执行指定的程序。第二组特殊单元是0003H~002AH,共40个单元。这40个单元被均匀地分为5段,作为5个中断源的中断地址区。中断响应后,按中断种类,自动转到各中断区的首地址去执行程序,因此在中断地址区中应存放中断服务程序。但通常情况下,8个单元难以存下一个完整的中断服务程序,因此通常也是从中断地址区首地址开始存放一条无条件转移指令,以便中断响应后,通过中断地址区,再转到中断服务程序的实际入口地址。第2章80C51单片机的结构及原理2.2.380C51单片机的数据存储器RAM80C51数据存储器RAM主要用来存放运算的中间结果和数据等。80C51单片机数据存储器RAM分为片内RAM和片外RAM两大部分,如图2.7所示。80C51的片内数据存储器RAM只有128B,地址范围为00H~7FH;80C52的片内数据存储器RAM为256B,地址范围为00H~FFH。片外数据存储器RAM最多可扩至64KB存储单元,地址范围为0000H~FFFFH。说明两点:①80C52的片内RAM地址空间共有256B,又分为两个部分:●低128B(00H~7FH)RAM区与80C51的RAM区相同(访问时采用直接或间接寻址方式均可)。●高128B(80H~FFH)RAM区,在访问这个区只能用寄存器间接寻址。需要注意是该地址范围与特殊功能寄存器(SFR)区相重叠,区