第2章MCS-51系列单片机的结构及原理●教学目标:介绍MCS-51系列单片机的内部结构与外部引脚功能介绍MCS-51系列单片机输入输出端口的结构与功能介绍MCS-51系列单片机的存储器组织介绍MCS-51系列单片机的CPU时序●学习要求:掌握MCS-51系列单片机的内部结构与外部引脚功能掌握MCS-51系列单片机存储器的构成与编址方法掌握输入输出端口的功能,了解输入输出端口的结构掌握振荡电路与复位电路的构成,了解单片机的CPU时序2.1MCS-51系列单片机的结构与引脚功能MCS-51系列单片机是美国Intel公司在1980年推出的8位单片微型计算机,包含51和52两个子系列。51子系列的典型产品有8031,8051和8751三种机型;52子系列包括8032,8052二种主要机型;区别:片内存储器大小、定时器/计数器个数、中断源个数。2.1.1MCS-51系列单片机的结构与配置•MCS-51系列单片机的结构框图见图2-1。•51子系列的配置如下:(1)8位CPU;(2)振荡频率1.2~12MHZ;(3)128个字节的片内数据存储器(片内RAM);(4)21个专用寄存器;(5)4KB的片内程序存储器(8031无);(6)8位并行I/O口P0,P1,P2,P3;(7)一个全双工串行I/O口;(8)2个16位定时器/计数器;(9)5个中断源,分为2个优先级。图2-1MCS-51系列单片机的结构框图片内主要包括:中央处理器CPU(运算电路:ALU,ACC,B,PSW,2个暂存器;控制电路:PC,PC加1寄存器,指令寄存器,定时及控制电路,振荡电路等),内部数据存储器,内部程序存储器,定时器/计数器,并行I/O口,串行口,中断控制电路,时钟电路,位处理器,内部总线。图中:PC程序计数器,DPTR数据指针,SP堆栈指针,A累加器(或ACC),B寄存器,PSW程序状态字均为专用寄存器。图2-2MCS-51系列单片机的引脚功能2.1.2MCS-51系列单片机的引脚功能•主电源引脚Vss(地)、Vcc(+5V电源)•外接晶振引脚XTAL1、XTAL2•输入/输出引脚P0、P1、P2、P3P0.0~P0.7:P0口的8个引脚,P0口是8位漏极开路型双向I/O端口,在接有片外存储器或I/0扩展接口时,P0.0~P0.7分时复用,作低8位地址总线与双向8位数据总线。(AD0—AD7)P1.0~P1.7:P1口的8个引脚,P1口是一个带内部上拉电阻的8位双向I/O口;对于52子系列,P1.0还可用于定时器/计数器2的计数脉冲输入端T2,P1.1还可作定时器/计数器2的外部控制端T2EX。P2.0~P2.7:P2口的8个引脚,P2口也是一个带内部上拉电阻的双向I/O口,在访问片外存储器或扩展I/O接口时,还用于提供高8位地址。(A8—A15)P3.0~P3.7:P3口的8个引脚,P3口也是一个带上拉电阻的I/O口,除可以作双向的输入输出口外,还具有第2功能,见表2-1。表2-1P3口第二功能表引脚第二功能P3.0P3.1P3.2P3.3P3.4P3.5P3.6P3.7RXD(串行口输入)TXD(串行口输出)INT0(外部中断0输入)INT1(外部中断1输入)T0(定时器0的外部输入)T1(定时器1的外部输入)WR(片外数据存储器写控制信号)RD(片外数据存储器读控制信号)•控制线(4条):ALE/PROG:双功能引脚。由于P0口的8个引脚是低8位地址总线与数据总线分时复用,因此必须将P0口输出的低8位地址进行锁存。在访问片外存储器时,每机器周期该信号出现2次,其下降沿用于控制锁存P0口输出的低8位地址。即使不访问片外存储器,该引脚上仍出现上述频率的周期性信号,因此也可作为对外输出的时钟脉冲,频率为振荡器频率的1/6,必须注意的是:在访问片内外存储器时,ALE脉冲会跳空1个。对片内含有EPROM的机型,此引脚在编程时可作为编程脉冲PROG的输入端。PSEN:片外程序存储器读选通信号输出端,在CPU从片外程序存储器取指期间,此信号每个机器周期两次有效,以通过P0口读入指令;在访问片外数据存储器时,该信号不出现。EA/Vpp:双功能引脚,为片外程序存储器选用端。当该引脚为“0”信号有效时,选择片外程序存储器;当EA/Vpp=1时,访问片内程序存储器,并可延续至外部程序存储器。对片内含有EPROM的机型,此引脚在编程期间用于施加+21v的编程电压。RST/VPO:双功能引脚,在单片机工作期间,当此引脚上出现连接2个机器周期的高电平时可实现复位操作。在Vcc掉电期间,若该引脚接备用电源(+5v),可向片内RAM供电,以保存片内RAM中的信息。图2-1的虚框部分为微处理器,又称CPU,微处理器包括控制器、运算器。控制器由指令寄存器、指令译码器、定时控制部分组成,可根据不同的指令产生相应的控制信号,使各部分协调工作,完成指令所规定的功能。运算器由算术逻辑运算单元ALU、累加器A(或ACC)、B寄存器、暂存器1、暂存器2、程序状态字PSW构成。程序状态字PSW是1个8位的专用寄存器,用于存放程序运行中的各种状态信息,可进行位寻址。PSW的各位定义见图2-3。D7D6D5D4D3D2D1D0图2-3程序状态字各位的含义CACF0RS1RS0OVF1P2.2MCS-51系列单片机的微处理器与CPU时序2.2.1MCS-51系列单片机的微处理器(1)进位标志C(PSW.7):很多算术逻辑运算指令执行后都会影响进位标志C。例如加减运算,若运算结果有进位或借位,则C=1,若无,则C=0。可用专门的指令或硬件将C置位或清零,在进行位操作时,C又起着位累加器的作用,类似于累加器A。(2)辅助进位标志AC(PSW.6):做加减运算时,若低半字节有进位(借位),则AC=1,否则AC=0,辅助进位标志主要用于BCD运算调整时。(3)软件标志FO(PSW.5):这是可由用户定义的一个状态标志,可由用户置位或复位。F1的定义与F0相同。(4)工作寄存器组选择位RS1、RS0(PSW.4,PSW.3):RS1、RS0与工作寄存器组的对应关系如下:RS1RS0工作寄存器组片内RAM地址00第0组00H~07H01第1组08H~0FH10第2组10H~17H11第3组18H~1FH单片机上电复位后,RS1RS0=00,此时第0组的8个工作寄存器为当前工作寄存器组。MCS-51系列单片机共有4组工作寄存器,每组8个,依次为R0/R1/R2/R3/R4/R5/R6/R7。(5)溢出标志OV(PSW.2):当运算结果超出机器所能表示的范围时称溢出。OV是带符号数运算的溢出标志,如发生溢出,则OV=1;否则OV=0。(加减运算OV=C7Y⊕C6Y)(6)奇偶标志P(PSW.0):P反映执行指令后累加器A中1的个数的奇偶,若A中1的个数为奇数,则P=1,若A中1的个数为偶数,则P=0。•程序状态字可反映运算结果的状态,下面以加法指令为例进行说明。例:分析执行下列指令序列后,A、C、AC、OV、P的内容是什么?MOVA,#79HADDA,#58H该指令序列的功能是将79H+58H→A。计算过程如下:(79H)01111001+(58H)01011000————————————(D1H)11010001指令执行后,A=D1H最高位无进位,故C=0;低半字节有进位,AC=1;OV=0⊕1=1,发生溢出(2个正数相加变为负数);A中1的个数为偶数,故P=0。2.2.2CPU时序一.振荡器CPU执行指令的一系列动作是在时序电路的控制下一拍一拍进行的。其节拍信号由振荡器产生,MCS-51系列单片机的内部有一个高增益的反相放大器,外接晶体后可构成自激振荡器产生节拍信号,接法见图2-1;也可使用片外振荡器,采用不同工艺制造的单片机芯片接法不同。芯片制造工艺接法XTAL1XTAL2HMOS型接地接片外振荡脉冲输入端(带上拉电阻)CHMOS型接片外振荡脉冲输入端(带上拉电阻)悬浮,不接二、时钟周期、机器周期、指令周期振荡器输出的振荡脉冲经2分频后作为内部节拍信号,作单片机内部各部件协调工作的控制信号,其周期称为时钟周期。计算机一条指令的执行分几个阶段,每一阶段完成一项规定的操作,完成某一规定操作所需的时间称为一个机器周期。对MCS-51系列单片机,6个时钟周期构成一个机器周期。CPU执行一条指令所需的时间为指令周期。指令周期以机器周期为单位,MCS-51系列单片机的指令多为单周期、双周期指令,只有乘除指令为4周期指令,若用12MHZ晶振,则单周期指令、双周期指令的执行时间分别为1μs和2μs,而乘除指令则需4μs。图2-380C51单片机的时钟电路框图图2-4CPU取指与执行指令时序图三、CPU时序MCS-51系列单片机的一个机器周期包含6个时钟周期。用S1、S2、……、S6表示,每个时钟周期的2个振荡节拍用P1、P2表示,则一个机器周期包括12个振荡周期,不同周期、不同字节数的指令时序不同。2.38051存储器配置MCS-51系列单片机内部一般既有只读存储ROM,又有随机存储器RAM,片内存储器的类型及容量见下表。存储器类型片内程序存储器容量(B)片内数据存储器容量(B)MCS-51系列单片机型号掩膜ROMEPROMRAMSFR51子系列803180518751——4KB————4KB12812812812812812852子系列80328052——8KB————256256128128当片内存储器容量不够时,可在片外扩展,加用片外程序存储器与片外数据存储器。从结构上讲共有四个存储空间:片内程序存储器、片外程序存储器、片内数据存储器、片外数据存储器,见图2-5。图2-5MCS-51系列单片机存储器配置图2.3.1程序存储器程序存储器存放程序及各种表格、常数,其寻址范围为64KB,编址范围为0000H至FFFFH。对于片内无程序存储器的机型(8031、8032),其程序存储器均在片外扩展;对于片内有程序存储器的机型(8051、8052、8751),也可在需要时扩展片外程序存储器。在既有片内又有片外程序存储器时,通常编址时先片内,后片外,片内片外连续不重叠。EA有两种接法:•EA=1,此时复位后先执行片内程序存储器的程序;当PC中的内容超过片内程序存储器最后的一个单元的地址时,将自动转去执行片外程序存储器的程序。•EA=0,此时将不访问片内程序存储器而直接访问片外程序存储器,片外存储器也可以0000H开始编址。程序存储器中有特殊用途的7个单元:0000H单元:MCS-51系列单片机复位后PC=0000H,即系统复位后从0000H单元开始执行程序。0003H外部中断0中断服务程序入口地址000BH定时器/计数器0溢出中断入口地址0013H外部中断1入口地址001BH定时器/计数器1溢出中断入口地址0023H串行口中断入口地址002BH定时器/计数器2溢出或T2EX端负跳变(仅8032、8052用)中断入口地址注意:以上7个单元相隔很近,通常要执行的程序并不在此,单元内通常是一条绝对转移指令,转到程序真正的起始地址去执行程序。2.3.2数据存储器MCS-51系列单片机的片内数据存储器分为片内RAM块与特殊功能寄存器(SFR)块,对于51子系列,片内RAM块的地址从00H~7FH,占128个字节,SFR块从80H~FFH,也为128字节。对于52子系列,前者编址从00H~FFH,占256个字节,后者编址为80H~FFH,占128字节。片内RAM的高128个字节的地址与SFR块重叠,当片内数据存储器容量不够时可扩展片外数据存储器。片外数据存储器用R0、R1间址寻址时,寻址范围为256个字节,用数据指针寄存器DPTR时寻址范围最大为64KB。在编址时,片外数据存储器的地址可与片内数据存储器的地址重叠,事实上,数据存储器与程序存储器的地址也是重叠的。规定:片内RAM的高128个字节用寄存器间址寻址,而SFR块用直接寻址;访问片内数据存储器用MOV指令,访问片外数据存储器用MOVX指令;而访问