第2章80C51的结构和原理教学内容:•MCS-51总体结构•MCS-51时钟及CPU工作时序•MCS-51存储器配置教学目的:1、熟悉80C51单片机的结构2、掌握80C51的内部资源,特别是存储器配置3、理解单片机的工作原理和基本时序教学重点:1、80C51单片机的结构2、80C51单片机存储器及SFR配置3、80C51单片机I/O口特点教学难点:单片机存储器的配置及其工作原理MCS-51系列基本产品型号:8051、8031、8751称为51子系列。不同型号MCS-51单片机CPU处理能力和指令系统完全兼容,只是存储器和I/O接口的配置有所不同。MCS-51总体结构片内ROM形式无ROMEPROMEEPROM片内ROM容量片内RAM容量定时/计数器中断源51子系列80318051875189514KB128B2552子系列80328052875289528KB256B36MCS-51单片机基本组成示意图时钟电路ROMSFR和RAMCPU定时/计数器并行端口中断系统串行端口系统总线时钟源T0T1P0P1P2P3TXDRXDINT0INT1一、MCS-51单片机的组成MCS-51基本型单片机的基本组成部件▪8位CPU,片内振荡器;▪4K字节ROM,128字节RAM;▪21个特殊功能寄存器;▪32根可编程I/O口线;▪可寻址各64K的外部程序存储器、外部数据存储器;▪2个l6位的定时器/计数器;▪中断结构:具有5个中断源,2个优先级;▪一个可编程全双工串行口;▪有位寻址功能,适于布尔处理的位处理机。•电源引脚:Vcc(+5V)和Vss(接地)•外接晶振引脚:XTAL1,XTAL2•I/O引脚P0、P1、P2和P3•控制和复位引脚ALE、、、RETPSENEAMCS-51单片机引脚40个引脚分为四类:电源、地2条;时钟2条;控制4条;I/O线32条。1.I/O口线功能4个8位并行I/O接口引脚:P0.0~P0.7(低8位地址、数据、I/O口)P1.0~P1.7(准双向口)P2.0~P2.7(高8位地址、I/O)P3.0~P3.7(I/O口、第二功能)为多功能引脚,可自动切换用作数据总线、地址总线、控制总线和或I/O接口外部引脚。MCS-51单片机引脚P0.0--P0.7(39-32):双向I/O口P0.第二功能是在访问外部存储器时,可分时用作低8位地址和8位数据线;在对8751编程和校验时,用于数据的输人/输出。PO口能以吸收电流的方式驱动8个LS型TTL负载Pl.0--Pl.7(1-8):双向I/O口Pl。P1口能驱动(吸收或输出电流)4个LS型TTL负载。在对EPROM编程和程序验证时,它接收低8位地址。在8052单片机中P1.0还用作定时器2的计数触发输人端T2,P1.1还用作定时器2的外部控制端T2EX。P2.0--P2.7(21-28):双向I/O口P2。P2口可以驱动(吸收或输出电流)4个LS型TTL负载。第二功能是在访问外部存储器时,输出高8位地址。在对EPROM编程和校验时,它接收高位地址。P3.0--P3.7(10-17):双向I/O口P3。P3口能驱动(吸收或输出电流)4个LS型TTL负载。P3口的每条引脚都有各自的第二功能。表2.7P3口的第二功能2.控制线ALE:地址锁存允许信号端PSEN:外部程序存储器读选通信号端EA/VPP:程序存储器选择信号端和编程电源输入端MCS-51单片机引脚ALE/(30):ALE是地址锁存允许信号端,一般常用来连接外接地址锁存器芯片的锁存引脚PROG在访问外部存储器时,用来锁存由PO口送出的低8位地址信号。在不访问外部存储器时,ALE以振荡频率1/6的固定速率输出脉冲信号。因此它可用作对外输出的时钟。但要注意,当对片外RAM进行读/写时,ALE信号不是周期性的。第二功能是作为编程写入(固化程序)编程脉冲输人端。PROG它是外部程序存储器ROM的读选通信号,一般连接程序存储器的选通信号引脚。在执行访问外部ROM指令时,会自动产生PSEN信号;而在访问外部数据存储器RAM或访问内部ROM时,不产生PSEN信号。PSEN(29):外部程序存储器地址允许输入端/固化编程电压输入端,它是访问外部存储器的控制信号。当EA高电平时,访问内部程序存储器;但当程序计数器PC的值超过OFFFH(对8051/80051/8751)或1FFFH(对8052)时,将自动转向执行外部程序存储器内的程序。当EA保持低电平时,只访问外部程序存储器,不管是否有内部程序存储器。第二功能VPP,对于片内有EPROM的芯片固化编程时,它作为施加较高编程电压(一般12~21V)的输入端。/PPEAV(31):RST/VPD(9):RST是复位信号输人端。当此输人端保持两个机器周期(24个振荡周期)的高电平时,就可以完成复位操作。第二功能是VPD,即备用电源输人端。当主电源发生故障,降低到规定的低电平以下时。将为片内RAM提供备用电源,以保证存储在RAM中的信息不丢失。单片机的复位操作使单片机进入初始化状态,其中包括使程序计数器PC=0000H,这表明程序从0000H地址单元开始执行。21个特殊功能寄存器复位后的状态为确定值。XTALl(19):接外部晶体的一个引脚。当单片机采用外部时钟信号时,此脚应接地。XTAL2(18):接外部晶体的一个引脚。当单片机采用外部时钟信号时,外部时钟信号由此引脚接入。使用单片机内部振荡电路时,用来接外部晶体的两端和微调电容。当单片机采用外部时钟信号时,则用来输入时钟脉冲。Vss(20):接地端。Vcc(40):电源端,接十5V。MCS-51单片机内部结构(图)中央处理器CPU一、CPU内部结构1.算术逻辑运算单元ALU(8位)+、–、×、÷算术运算,与、或、非、异或逻辑运算、循环移位、位处理。2.寄存器阵列(1)工作寄存器R0~R7(8位)(暂存寄存器)暂存运算数据和中间结果。4个工作寄存器区,工作寄存器0区~3区。每个区均含8个寄存器R0~R7,占用32个片内RAM单元。用PSW中的两位PSW.4和PSW.3来切换工作寄存器区,选用一个工作寄存器区进行读写操作。(2)累加器Acc(8位)需要ALU处理的数据和计算结果多数要经过A累加器。(3)寄存器B(8位)与A累加器配合执行乘、除运算。亦可作通用寄存器。(4)程序状态字PSW(8位)(P23)存放ALU运算过程的标志状态CyACF0RS1RS0OV—P进位/辅助进位/用户定/选工作寄/溢出标志/奇偶标志P:奇偶标志位,存于ACC中的运算结果有奇数个“1”时,P=1,否则为0.(5)数据指针DPTR(16位)(P23)存放片外存储器地址,作为片外存储器的指针。可分成两个8位寄存器DPH、DPL使用。(6)堆栈指针SP(8位)按“先进后出、后进先出”的原则存取数据的存储区。MCS-51堆栈设在片内RAM区(一般是30H~7FH)。数据入栈/出栈时,SP自动加1/减1,其内容始终为栈顶地址。入栈:SP+1SP,数据再压入SP所指的单元;出栈:数据先弹出,SP-1SP。总结:80C51单片机的堆栈区是向地址增大的方向生成的。复位时:SP=07H。(7)程序计数器PC(16位)(注:不属于特殊功能寄存器SFR区)CPU总是按PC的指示读取程序。PC可自动加1。因此CPU执行程序一般是顺序方式。当发生转移、子程序调用、中断和复位等操作,PC被强制改写,程序执行顺序也发生改变。复位时:PC=0000H。2.1.3MCS-51单片机的片外总线结构三总线结构:1.地址总线(AddressBus)总线宽度为16位,可访问64K外部存储器。A0~A7——P0口(经锁存器)A8~A15——P2口2.数据总线(DataBus)总线宽度为8位(P0)3.控制总线(ControlBus)由P3口和4根独立控制线组成2.2.1MCS-51时钟时钟频率范围要求在1.2MHz~12MHz之间。1.内部时钟方式:内部一个高增益反相放大器与片外石英晶体或陶瓷谐振器构成了一个自激振荡器。晶体振荡器的振荡频率决定单片机的时钟频率。XTAL1单片机XTAL22.外部时钟方式:外部振荡器输入时钟信号。振荡周期:为单片机提供定时信号的振荡源周期。时钟周期:又称状态周期或S周期。时钟周期是振荡周期的两倍。机器周期:完成一个基本操作所需要的时间。一个机器周期由6个时钟周期组成。指令周期:一条指令的执行时间。以机器周期为单位可分为:单周期、双周期和四周期指令。若外接晶振为12MHz时,MCS-51单片机的四个周期的具体值为:振荡周期=1/12us;时钟周期=1/6us;机器周期=1us;指令周期=1~4us;2.2.2MCS-51工作时序P1P2S1P2振荡周期时钟周期机器周期机器周期指令周期XTAL2(OSC)S2S3S4S5S6S1S2S4S5S3S6P1P1P1P1P1P1P1P1P1P1P1P2P2P2P2P2P2P2P2P2P2MCS-51单片机各种周期的相互关系2.3MCS-51单片机存储器空间结构图图(a)是程序存储器,图(b)是内部数据存储器,图(c)是外部数据存储器2.3.1程序存储器程序存储器的结构如图所示,包括片内和片外程序存储器两个部分。其主要用来存放编好的用户程序和表格常数,它以16位的程序计数器PC作为地址指针,故寻址空间为64KB,也即是8051单片机外部可扩展最多达64KB的EPROM。EA接高电平:CPU首先从片内0000H字节单元取取指令;超过0FFFH后转向片外扩展的EPROM对应单元。EA接低电平:复位后CPU直接从片外EPROM的0000H单元开始取指令执行。FFFFH外部ROM内部ROM(EA=1)外部ROM(EA=0)0000H0000H0FFFH0FFFH1000H程序存储器MCS-51存储器配置2.3.1程序存储器内部4KB程序存储器资源分布如下图所示:注意:程序存储器的某些单元是专门预留给系统专用的,详细请见表2-2.2.3.2数据存储器数据存储器的结构如图所示,包括片内和片外数据存储器两个部分。1、片外数据存储器8051片外最大可以扩展数据存储器的容量是64KB。地址范围为0000H~FFFFH。2、片内数据存储器8051片内有数据存储器256个字节单元,地址范围为00H~0FFH,分为低128B(00H~7FH)数据存储区和高128B(80H~0FFH)的特殊功能寄存器区(SFR区)(1)位寻址区地址为20H~2FH的16个字节单元中共128位,每一位都有相应的位地址,可用位寻址方式对其进行置位、复位、内容传送、逻辑运算等操作。128位的位地址定义为00H~7FH,其位地址分布如下表所示。注意:程序状态字位和位控制变量一般设在位寻址区。(2)用户RAM区地址范围为30H~7FH,作为数据缓冲器使用,可用于原始数据及运算结果的存储。注意:堆栈一般设在此区域内(3)特殊功能寄存器区(SFR区)此区离散地分布着21个特殊功能寄存器。这些特殊功能寄存器的符号、名称及地址如右表所示。(3)特殊功能寄存器区(SFR区)注意:上表中标有‘*’标记的11个特殊功能寄存器都是位寻址寄存器,其特点是它们的字节地址正好被8整除。它们字节单元的每一位可以按位寻址操作。(4)数据指针DPTR注意:DPTR既可以作为一个16位寄存器来处理,也可以作为两个独立的8位寄存器DPH(字节单元地址83H)和DPL(字节单元地址82H)进行分别使用。本章小结本章主要介绍了80C51单片机的硬件结构,从其内部剖析80C51运作时的工作原理,紧接着将其每个引脚的功能从其应用的角度作了详细的讲解,最后详细讲解了80C51存储器配置。