2020/1/211第2章80C51单片机的硬件结构80C51系列概述2.180C51内部结构及基本功能部件2.280C51典型资源配置与引脚封装2.380C51单片机的CPU2.480C51的存储器组织2.580C51的并行口结构与操作2.680C51的工作时序与复位电路2.72020/1/2122.480C51的CPUP3口驱动器P0口驱动器RAM地址寄存器RAM128/256字节P2口锁存器P0口锁存器P3口锁存器栈指针SPROM4K/8K字节暂存器2ACCBPSWALU暂存器1指令寄存器IRDPHDPL程序计数器PCROM地址寄存器缓冲器振荡器RSTEAALEPSENXTAL1XTAL2VSSVCCP2口驱动器P0.0~P0.7P2.7~P2.0串口、中断及定时/计数器P1口驱动器P1口锁存器P1.0~P1.7P3.0~P3.740201891017181921282930313239译码及控制逻辑TCONIEIPSCONSBUFTL2TL1TL0TH2TH1TH0RCAP2LRCAP2HT2CONPCONTMODT2MOD2020/1/2132.4.1CPU的功能单元运算器累加器ACC寄存器BPSW控制器程序计数器PC指令寄存器IR定时与控制逻辑其他寄存器程序计数器PC数据指针DPTR堆栈指针SP工作寄存器R0~R72020/1/214MCS-51的CPU由运算器和控制器所构成:一运算器对操作数进行算术、逻辑运算和位操作。1.算术逻辑运算单元ALU功能强大,可以用来完成算术运算,逻辑判断,逻辑运算和信息传递的部件,或者说是数据处理的部件。2020/1/2152.累加器A使用最频繁的寄存器,可写为Acc。地址为E0H。A的作用:(1)是ALU的输入之一,又是运算结果的存放单元。(2)数据传送大多都通过累加器A。MCS-51增加了一部分可以不经过累加器的传送指令,即可加快数据的传送速度,又减少A的“瓶颈堵塞”现象。A的进位标志CY同时又是位处理机的位累加器。2020/1/2163.寄存器B在做乘、除法时放乘数或除数。乘法中,ALU的两个输入分别为A,B,运算结果存放在BA寄存器中。B中放乘积的高8位,A中放乘积的低8位。除法中,被除数取自A,除数取自B,商存放在A中,余数存放在B中。不做乘除法时,寄存器B被当着普通寄存器使用。2020/1/2174.程序状态字寄存器PSW8位寄存器,用于寄存指令执行的状态信息。(1)Cy(PSW.7)进位,借位标志位,位累加器C(2)Ac(PSW.6)辅助进位,借位标志位。低半字节向上有进位或借位时。(3)F0(PSW.5)用户使用的状态标志位。软件位。2020/1/218(4)RS1、RS0(PSW.4、PSW.3):4组工作寄存器区选择控制位1和位0。RS1RS0所选的4组寄存器000区(内部RAM地址00H~07H)011区(内部RAM地址08H~0FH)102区(内部RAM地址10H~17H)113区(内部RAM地址18H~1FH)2020/1/2192020/1/2110(5)OV(PSW.2)溢出标志位指示运算是否产生溢出。各种算术运算指令对该位的影响情况较复杂,将在第3章介绍。加减运算:OV=1表示加减运算结果超出了A所表达的符号数范围:-128---+127乘法运算:表示乘积超过255,即乘积分别在B与A中;OV=0,表示乘积只放在A中。除法运算:OV=1表示除数为0,除法不能进行;OV=0,除数不为0,除法可正常进行。(6)PSW.1位:保留位,未用(7)P(PSW.0)奇偶标志位P=1,A中“1”的个数为奇数;P=0,A中“1”的个数为偶数2020/1/2111二.控制器(1)程序计数器PC(ProgramCounter)存放下一条要执行的指令在程序存储器中的地址。基本工作方式有以下几种:(1)程序计数器自动加1(2)执行有条件转移或无条件转移指令时,程序计数器将被置入新的数值,从而使程序的流向发生变化。(3)在执行调用子程序调用或中断调用,完成下列操作:①PC的现行值保护②将子程序入口地址或中断向量的地址送入PC。2020/1/2112(2)堆栈与堆栈指针SP在程序实际运行中,在子程序调用、中断服务处理等场合用以保护CPU的现场,这种重要信息的缓冲(RAM)区称为堆栈。进入栈区的“断点”数据应遵循“先进后出”的原则。MCS—51单片机堆栈区不是固定的。原则上可设在内部RAM的任意区域内。专门设置的堆栈指针寄存器SP(8位),指出栈顶的位置。当数据推入栈区后,SP的值也自动随之变化(+1)。2020/1/2113MCS—51单片机的堆栈属向上生长型,如下图所示。2020/1/2114(3)数据指针寄存器DPTR数据指针DPTR是一个16位的专用寄存器,其高位字节寄存器用DPH表示,低位字节寄存器用DPL表示。既可作为一个16位寄存器DPTR来处理,也可作为两个独立的8位寄存器DPH和DPL来处理。DPTR主要用来存放16位地址,当对64KB外部数据存储器空间寻址时,作为间址寄存器用。在访问程序存储器时,用作基址寄存器。2020/1/2115寄存器及其存储器映射如下图:R7R6R5R4R3R2R1R0DPLABSPPCDPTR系统寄存器工作寄存器0组R7R6R5R4R3R2R1R0R7R6R5R4R3R2R1R0R7R6R5R4R3R2R1R0DPHPSW1组2组3组工作寄存器区位寻址区通用RAM区00H1FH30H7FH80HFFHSFR区直接寻址访问间接寻址访问增强型附加空间注:PC不属于SFR空间BAPSWSPDPLDPH81H82H83HD0HE0HF0H1FH18H00H07H17H2020/1/21162.580C51的存储器组织80C51存储器可以分成两大类:RAM,CPU在运行时能随时进行数据的写入和读出,但在关闭电源时,其所存储的信息将丢失。用来存放暂时性的输入输出数据、运算的中间结果或用作堆栈。ROM,写入信息后不易改写的存储器。断电后,其中的信息保留不变。用来存放固定的程序或数据,如系统监控程序、常数表格等。2020/1/21172.5.180C51单片机的程序存储器配置片内与片外程序存储器的选择EA引脚接高电平---片内0000H0FFFH1000HFFFFH片内ROM,4K片外ROM空间60KPSEN21200140312809EA①PC内容小于FFFH时②PC内容大于FFFH时+5V2020/1/2118EA引脚接高地---片外0000HFFFFH片外ROM空间64KPSEN21200140312809EA2020/1/2119程序存储器低端的几个特殊单元0000H0003H000BH0013H001BH0023H复位入口INT0中断入口T0中断入口INT1中断入口T1中断入口串口中断入口002BHT2中断入口3字节8字节8字节8字节8字节8字节0000H0003H0100H主程序中断服务程序2000HLJMP0100HLJMP2000HRETI2020/1/2120程序存储器中的指令代码及其观察0000H74HFEHF5HA0H23H01H02H0001H0002H0003H0004H0005H0006HROMMOVA,#0FEHMOVP2,ARLAAJMPLOOPC:表示ROM2020/1/21212.5.280C51单片机数据存储器配置片内、片外数据存储器概况工作寄存器区位寻址区通用RAM区00H1FH30H7FH32个字节16个字节80个字节80HFFHSFR区直接寻址访问间接寻址访问增强型附加空间外部RAM(或I/O)64K0000HFFFFHRDWR片内RAM及SFR片外RAM2020/1/2122工作寄存器区(含寄存器组0~3)寄存器组0:地址00H~07H寄存器组1:地址08H~0FH寄存器组2:地址10H~17H寄存器组3:地址18H~1FH当前工作寄存器组选择PSW寄存器中:CYACF0RS1RS0OV-P2020/1/2123片内RAM详图工作寄存器区位寻址区通用RAM区00H1FH30H7FH80HFFHSFR区直接寻址访问间接寻址访问增强型附加空间PSWCYACF0RS1RS0=OV-P11,3组10,2组01,1组00,0组00H07H01H02H03H04H05H06H1FH07060502010003040F0E0D0A09080B0C17161512111013141F1E1D1A19181B1C67666562616063646F6E6D6A69686B6C77767572717073747F7E7D7A79787B7C20H2FH位地址R7R6R5R4R3R2R1R0R7R6R5R4R3R2R1R0R7R6R5R4R3R2R1R0R7R6R5R4R3R2R1R01FH18H17H2020/1/2124位寻址区字节地址位地址D7D6D5D4D3D2D1D020H07H06H05H04H03H02H01H00H21H0FH0EH0DH0CH0BH0AH09H08H22H17H16H15H14H13H12H11H10H23H1FH1EH1DH1CH1BH1AH19H18H24H27H26H25H24H23H22H21H20H25H2FH2EH2DH2CH2BH2AH29H28H26H37H36H35H34H33H32H31H30H27H3FH3EH3DH3CH3BH3AH39H38H28H47H46H45H44H43H42H41H40H29H4FH4EH4DH4CH4BH4AH49H48H2AH57H56H55H54H53H52H51H50H2BH5FH5EH5DH5CH5BH5AH59H58H2CH67H66H65H64H63H62H61H60H2DH6FH6EH6DH6CH6BH6AH69H68H2EH77H76H75H74H73H72H71H70H2FH7FH7EH7DH7CH7BH7AH79H78H2020/1/2125通用RAM区工作寄存器区位寻址区通用RAM区00H1FH30H7FH30H~7FH,共80字节数据缓冲堆栈SP指示栈顶复位时SP=07H系统初始化通常重新设置2020/1/2126RAM内容查看00H00H0FH30H3FHRAM01H31HR0D:表示内部RAM2020/1/21272.5.380C51单片机的特殊功能寄存器(SFR)工作寄存器区位寻址区通用RAM区00H1FH30H7FH80HFFHSFR区直接寻址访问间接寻址访问增强型附加空间基本型单片机有21个SFR离散地分布在80H~FFH空间。与运算器相关3个ACCBPSW与定时/计数器相关6个TH0,TL0TH1,TL1TMODTCON指针类3个SPDPH,DPL与口相关7个P0,P1,P2,P3SBUFSCONPCON与中断相关2个IEIP