第2章MCS-51单片机的硬件结构2.1MCS-51单片机的硬件结构CPU运算部件控制部件BRAMP0口P2口ROM(EPROM)串行口C/T中断系统SFRP1口8P3口888XTAL1XTAL2PSENALEEARESETVccVss按功能可分成8个部件,通过片内单一总线连接起来1.微处理器2.数据存储器3.程序存储器4.I/O口5.串行口6.定时/计数器7.中断系统8.特殊功能寄存器控制方式:SFR对各功能部件集中控制片内总线各功能部件:1.CPU(微处理器)2.数据存储器(RAM)片内为128个字节(52子系列的为256个字节)3.程序存储器(ROM/EPROM)8031:无此部件;8051:4K字节ROM;8751:4K字节EPROM;89C51/89C52/89C55:4K/8K/20K字节闪存。4.P1口、P2口、P3口、P0口:为4个并行8位I/O口。5.串行口1个全双工的异步串行口6.定时器/计数器7.中断系统8.特殊功能寄存器(SFR)共有21个,是一个具有特殊功能的RAM区。2.2MCS-51的引脚40只引脚双列直插封装(DIP)44只引脚方形封装方式(4只无用)引脚逻辑图•8051单片机为40条引脚双列直插式封装•引脚可分为三个部分X1X2EAPSENALERSTVCCGND8051P0P1P2P3P00~P07P10~P17P20~P27P30~P37控制引脚并行I/O口引脚电源及时钟引脚(1)电源及时钟引脚:Vcc、Vss;XTAL1、XTAL2。(2)控制引脚:PSEN*、EA*、ALE、RESET(3)I/O口引脚:P0、P1、P2、P3,4个8位I/O口2.2.1电源及时钟引脚1.电源引脚(1)Vcc(40脚):+5V电源;(2)Vss(20脚):接地。2.时钟引脚(1)XTAL1(19脚):采用外接晶体振荡器时,此引脚应接地。(2)XTAL2(18脚):接外部晶体的另一端。2.2.2控制引脚(1)RST/VPD(9脚):复位与备用电源(2)ALE/PROG*(30脚):第一功能ALE:地址锁存允许第二功能PROG*:编程脉冲输入端。(3)PSEN*(29脚):读外部程序存储器的选通信号。可以驱动8个LS型TTL负载。(4)EA*/VPP(31脚):EA*为内外程序存储器选择控制EA*=1,访问片内程序存储器,EA*=0,单片机则只访问外部程序存储器。第二功能VPP,用于施加编程电压。2.2.3I/O口引脚(1)P0口:双向8位三态I/O口,地址总线(低8位)及数据总线分时复用口,可驱动8个LS型TTL负载。(2)P1口:8位准双向I/O口,可驱动4个LS型TTL负载。(3)P2口:8位准双向I/O口,与地址总线(高8位)复用,可驱动4个LS型TTL负载。(4)P3口:8位准双向I/O口,双功能复用口,可驱动4个LS型TTL负载。注意:准双向口与双向三态口的差别。当3个准双向I/O口作输入口使用时,要向该口先写“1”,另外准双向I/O口无高阻的“浮空”状态。引脚转义引脚功能说明P3.0RXD串行数据接收端P3.1TXD串行数据发送端P3.2INT0外部中断0请求P3.3INT1外部中断1请求P3.4T0计数器0外部输入P3.5T1计数器1外部输入P3.6WR外部数据存储器写P3.7RD外部数据存储器读2.3MCS-51的CPU由运算器和控制器所构成2.3.1运算器对操作数进行算术、逻辑运算和位操作。1.算术逻辑运算单元ALU2.累加器A使用最频繁的寄存器,可写为Acc。A的作用:(1)是ALU单元的输入之一,又是运算结果存放单元。(2)数据传送大多都通过累加器A。(3)A的进位标志Cy同时又是位处理机的位累加器。3.程序状态字寄存器PSW(1)Cy(PSW.7)进位标志位(2)Ac(PSW.6)辅助进位标志位(3)F0(PSW.5)标志位由用户使用的一个状态标志位。(4)RS1、RS0(PSW.4、PSW.3):4组工作寄存器区选择控制位1和位0。工作寄存器区的选择18~1FH3区1110~17H2区1008~0FH1区0100~07H0区00R0~R7地址寄存器组RS1RS0(5)OV(PSW.2)溢出标志位指示运算是否产生溢出。各种算术运算指令对该位的影响情况较复杂,将在第3章介绍。(6)PSW.1位:保留位,未用(7)P(PSW.0)奇偶标志位P=1,A中“1”的个数为奇数P=0,A中“1”的个数为偶数2.3.2控制器1.程序计数器PC(ProgramCounter)存放下一条要执行的指令在程序存储器中的地址。基本工作方式:(1)程序计数器自动加1(2)执行有条件或无条件转移指令时,程序计数器将被置入新的数值,从而使程序的流向发生变化。(3)执行子程序调用或中断调用时完成下列操作:①PC的当前值保护②将子程序入口地址或中断向量的地址送入PC。2.指令寄存器IR、指令译码器及控制逻辑电路2.4MCS-51存储器的结构哈佛(Har-vard)结构存储器空间可划分为5类:1.程序存储器空间8031无内部程序存储器。2.内部数据存储器空间3.特殊功能寄存器4.位地址空间211个可寻址位。5.外部数据寄存器空间片外可扩展64K字节RAM。内部数据存储器(a)外部数据存储器(b)MCS-51单片机存储器空间分配特殊功能寄存器00H1FH20H2FH30H7FH80HFFH80H88H90H98HA0HA8HB0HB8HD0HE0HF0H特殊功能寄存器中位寻址外部ROM内部ROM(EA=1)外部ROM(EA=0)0000H0000H0FFFH0FFFH1000HFFFFH外部RAM(I/O口地址)0000HFFFFH程序存储器(c)工作寄存器区位寻址区通用RAM区返回2.4.1程序存储器存放应用程序和表格之类的固定常数。分为片内和片外两部分,由EA*引脚上所接电平确定程序存储器中的0000H地址是系统程序的启动地址5个单元具有特殊用途表2-15种中断源的中断入口地址外中断00003H定时器T0000BH外中断10013H定时器T1001BH串行口0023H2.4.2内部数据存储器共128个字节,字节地址为00H~7FH。00H~1FH:32个单元,是4组通用工作寄存器区20H~2FH:16个单元,可进行128位的位寻址30H~7FH:用户RAM区,只能进行字节寻址,用作数据缓冲区以及堆栈区。2.4.3特殊功能寄存器(SFR)CPU对各种功能部件的控制采用特殊功能寄存器集中控制方式,共21个。有的SFR可进行位寻址,其字节地址的末位是0H或8H。表2-2SFR的名称及其分布SFR中的某些寄存器1.堆栈指针SP指示出堆栈顶部在内部RAM块中的位置复位后,SP中的内容为07H。(1)保护断点(2)现场保护堆栈向上生长2.数据指针DPTR16位特殊功能寄存器,高位字节寄存器用DPH表示,低位字节寄存器用DPL表示。3.I/O端口P0~P3P0~P3分别为I/O端口P0~P3的锁存器。4.寄存器B为执行乘法和除法操作设置的。在不执行乘、除的情况下,可当作一个普通寄存器来使用。5.串行数据缓冲器SBUF存放欲发送或已接收的数据,一个字节地址,物理上是由两个独立的寄存器组成,一个是发送缓冲器,另一个是接收缓冲器。6.定时器/计数器两个16位定时器/计数器T1和T0,各由两个独立的8位寄存器组成:TH1、TL1、TH0、TL0,只能字节寻址,但不能把T1或T0当作一个16位寄存器来寻址访问。2.4.4位地址空间211个(128个+83个)寻址位。位地址范围为:00H~FFH。内部RAM的可寻址位128个(字节地址20H~2FH)见表2-3(P24)。特殊功能寄存器SFR为83个可寻址位,见表2-4(P24)。表2-3内部的可寻址位及位地址表2-4SFR中的位地址分布2.4.5外部数据存储器最多可外扩64K字节的RAM或I/O。几点注意:(1)地址的重叠性程序存储器与数据存储器全部64K字节地址空间重叠(2)程序存储器与数据存储器在使用上是严格区分的(3)位地址空间共有两个区域(4)片外与片内数据存储器由指令来区分(5)片外数据存储区中,RAM与I/O端口统一编址。所有外围I/O端口的地址均占用RAM地址单元,使用与访问外部数据存储器相同的传送指令。内部数据存储器(a)外部数据存储器(b)MCS-51单片机存储器空间分配特殊功能寄存器00H1FH20H2FH30H7FH80HFFH80H88H90H98HA0HA8HB0HB8HD0HE0HF0H特殊功能寄存器中位寻址外部ROM内部ROM(EA=1)外部ROM(EA=0)0000H0000H0FFFH0FFFH1000HFFFFH外部RAM(I/O口地址)0000HFFFFH程序存储器(c)工作寄存器区位寻址区通用RAM区返回多路开关1)功能:用于控制选通I/O方式还是地址/数据输出方式2)方式控制:由内部控制信号产生输入锁存器两个输入缓冲器(BUF1和BUF2)推拉式I/O驱动器2.5并行I/O端口共有4个8位双向I/O口,共32口线。每位均有自己的锁存器(SFR),输出驱动器和输入缓冲器。2.5.1P0口位图内部结构BUF2BUF15、P0R2为读引脚信号,执行“MOVA,P0”时该信号有效6、读引脚(端口)时,输出锁存器应为“1”说明:1、当控制信号为0时,P0口做双向I/O口,为漏极开路(三态)2、控制信号为1时,P0口为地址/数据复用总线(用于口扩展)3、P0W为端口输出写信号,用于锁存输出状态4、P0R1为读锁存器信号,执行“ANLP0,#0FH”时该信号有效QQDCVcc控制AD0P0R1P0R2D0P0W图1、P0口内部结构读锁存器读引脚锁存器内部总线写锁存器地址/数据P00多路开关102.5.2P1口内部结构VccP10QQDCP1R1P1R2D0P1WR*图2、P1口内部结构•P1口内部结构如图2所示•输出部分有内部上拉电阻R*约为20K。•其他部分与P0端口使用相类似(读引脚时先写入1)。写数据读端口P10VccP118051K1D1R1图2.1、P1口应用2.5.3P2口内部结构2、当控制信号为1时P2口输出地址信息,此时单片机完成外部的取指操作或对外部数据存储器16位地址的读写操作。3、当P2口作为普通I/O口使用时用法和P1口类似。说明:1、P2可以作为通用的I/O,也可以作为高8位地址输出。QQDCVcc控制地址P2R1P2R2D0P2WP20图3、P2口内部结构R*P0.3地址锁存器CBI/OA15A14A13A12A11A10A9A8A7A6A5A4A3A2A1A0D7D6D5D4D3D2D1D0DBABP1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7RESETP3.0P3.1P3.3P3.4P3.5P3.6P3.7VSSVCCP0.0P0.1P0.2P0.5P0.6P0.7EAALEPSENP2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0P3.2MCS-51片外总线结构示意图返回MCS-51单片机片外总线P0.4返回单片机8031P2.0P2.1P2.2A8A9A10ALERD74LS373G6264A7A6A5A4A3A2A1A0O0O1O2O3O4O5O6O7P0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7OECEQ0Q1Q2Q3Q4Q5Q6Q7D0D1D2D3D4D5D6D7WEWRP2.7P2.3P2.4A11A126264WE单片机8031P2.0:.A8..ALERD74LS373GA7..A0P0.0:P0.7OECEQ0..Q7D0..D7A12P2.4WRD7..D02.5.4P3口内部结构说明:1、做普通端口使用时,第二功能应为“1”。QQDCVcc变异输出P3R1P3R2D0P3WP30图3、P3口内部结构R*变异输入2、使用第二功能时,输出端口锁存器应为“1”。3、变异功能()P3.0TXDP3.4T0P3.1RXDP3.