2.680C51的并行口结构与操作本章共分六节,主要讲述:2.180C51系列概述2.280C51的基本结构与应用模式2.380C51典型产品资源配置与引脚封装2.480C51的内部结构2.580C51的存储器组织2.180C51系列概述2.1.1MCS-51系列(1)MCS-51是Intel公司生产的一个单片机系列名称。属于这一系列的单片机有多种,如:﹡8051/8751/8031;﹡8052/8752/8032;﹡80C51/87C51/80C31﹡80C52/87C52/80C32等。(2)该系列生产工艺有两种:CHMOS是CMOS和HMOS的结合,既保持了HMOS高速度和高密度的特点,还具有CMOS的低功耗的特点。在产品型号中凡带有字母“C”的即为CHMOS芯片,CHMOS芯片的电平既与TTL电平兼容,又与CMOS电平兼容。一是HMOS工艺(高密度短沟道MOS工艺)。二是CHMOS工艺(互补金属氧化物的HMOS工艺)。(3)在功能上,该系列单片机有基本型和增强型两大类:增强型:8052/8752/803280C52/87C52/80C32基本型:8051/8751/803180C51/87C51/80C31(4)在片内程序存储器的配置上,该系列单片机有三种形式,即掩膜ROM、EPROM和ROMLess(无片内程序存储器)。如:﹡80C51有4K字节的掩膜ROM;﹡87C51有4K字节的EPROM;﹡80C31在芯片内无程序存储器。2.1.280C51系列﹡Intel的:80C31、80C51、87C51,80C32、80C52、87C52等;﹡ATMEL的:89C51、89C52、89C2051等;﹡Philips、华邦、Dallas、Siemens(Infineon)等公司的许多产品。80C51是MCS-51系列中CHMOS工艺的一个典型品种;其它厂商以8051为基核开发出的CMOS工艺单片机产品统称为80C51系列。当前常用的80C51系列单片机主要产品有:2.280C51的基本结构与应用模式2.2.180C51的基本结构时钟电路总线控制CPUROM/EPROM/FLASH4K字节RAM128字节SFR21个定时/计数器2个中断系统5中断源2优先级串行口全双工1个并行口4个RSTEAALEPSENXTAL2XTAL1P0P1P2P3VCCVSS2.2.280C51的应用模式一、总线型单片机应用模式74LS373OEGALE80C31D7::D0Q7::Q0PSENEAP2P0ABDBCBWRRD89C51P2P0P3P18+5V888P3.0P3.5含第二功能总线型应用的“三总线”模式非总线型应用的“多I/O”模式二、非总线型单片机应用模式非总线型单片机已经将用于外部总线扩展用的I/O口线和控制功能线去掉,从而使单片机的引脚数减少、体积减小。对于不需进行并行外围扩展,装置的体积要求苛刻且程序量不大的系统极其适合。非总线型单片机典型产品如:AT89C2051/AT89C4051。2.380C51典型产品资源配置与引脚2.3.180C51典型产品资源配置由表可见:(1)增强型与基本型在以下几点不同:﹡片内ROM字节数:从4K增加到8K;﹡片内RAM字节数:从128增加到256;﹡定时/计数器从2个增加到3个;﹡中断源由5个增加到6个。(2)片内ROM的配置形式:﹡无ROM(即ROMLess)型,应用时要在片外扩展程序存储器;﹡掩膜ROM(即MaskROM)型,用户程序由芯片生产厂写入;﹡EPROM型,用户程序通过写入装置写入,通过紫外线照射擦除;﹡FlashROM型,用户程序可以电写入或擦除(当前常用方式)。还有OTPROM型(一次性编程写入ROM)产品,具有较高的环境适应性和可靠性。2.3.280C51的引脚封装123456789101112131415161718192040393837363534333231302928272625242322211234567891020191817161514131211P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7RST/VPDP3.0/RXDP3.1/TXDP3.2/INT0P3.3/INT1P3.4/T0P3.5/T1P3.6/WRP3.7/RDXTAL2XTAL1VSSVCCP0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7EA/VPPALE/PROGPSENP2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0RSTP3.0/RXDP3.1/TXDXTAL2XTAL1P3.2/INT0P3.3/INT1P3.4/T0P3.5/T1GNDVCCP1.7P1.6P1.5P1.4P1.3P1.2P1.1/AIN1P1.0/AIN0P3.7注:类似的还有Philips公司的87LPC64,20引脚8XC748/750/(751),24引脚8X749(752),28引脚8XC754,28引脚等等80C51/89C5189C2051总线型非总线型2.480C51的内部结构P3口驱动器P1口驱动器P2口驱动器P0口驱动器RAM地址寄存器ARRAM128字节P0口锁存器P2口锁存器P1口锁存器P3口锁存器堆栈指针SPSCONSBUFPCONTCONTMODTL0TL1TH0TH1IEIPROM4K字节暂存器2ACCBPSWALU暂存器1指令寄存器IR指令译码器ID定时与控制DPHDPLPC增量器程序计数器PC地址寄存器AR缓冲器振荡器RSTEAALEPSENXTAL1XTAL2VSSVCC2.4.180C51的内部结构一、80C51的微处理器(CPU)(1)运算器累加器ACC;寄存器B;程序状态字寄存器PSW。(2)控制器程序计数器PC;指令寄存器IR;定时与控制逻辑。二、80C51的片内存储器在物理上设计成程序存储器和数据存储器两个独立的空间(称为哈佛结构):﹡内部ROM容量4K字节范围是:000H~0FFFH﹡内部RAM容量128字节范围是:00H~7FH三、80C51的I/O口及功能单元•四个8位的并行口,即P0~P3。它们均为双向口,既可作为输入,又可作为输出。每个口各有8条I/O线。•有一个全双工的串行口(利用P3口的两个引脚P3.0和P3.1);•有2个16位的定时/计数器;•有1套完善的中断系统。四、80C51的特殊功能寄存器(SFR)•内部有SP,DPTR(可分成DPH、DPL两个8位寄存器),PCON,…,IE,IP等21个特殊功能寄存器单元,它们同内部RAM的128个字节统一编址,地址范围是80H~FFH。这些SFR只用到了80H~FFH中的21个字节单元,且这些单元是离散分布的。增强型单片机的SFR有26个字节单元,所增加的5个单元均与定时/计数器2相关。2.4.280C51的时钟与时序一、80C51的时钟产生方式80C51振荡器C1C2CYS80C51悬空外部时钟信号XTAL1XTAL2XTAL2XTAL1内部时钟外部时钟二、80C51的时钟信号一个机器周期包含12个晶荡周期或6个时钟周期S1S2S3S4S5S6机器周期TCY分频器振荡器晶振周期时钟周期(S状态)80C51P1P2指令的执行时间称作指令周期(单、双、四周期)二、80C51的典型时序各指令的微操作在时间上有严格的次序,这种微操作的时间次序我们称作时序。单字节指令双字节指令1、单周期指令时序S1S2S3S4S5S61个机器周期P1P2ALE读操作码空读S1S2S3S4S5S61个机器周期P1P2ALE读操作码读第二字节2个机器周期中ALE信号有效4次,后3次读操作无效。2、双周期指令时序S1S2S3S4S5S6第1机器周期P1P2ALE读操作码空读3次S1S2S3S4S5S6第2机器周期在第二机器周期无读操作码的操作,而是进行外部数据存储器的寻址和数据选通。ALE信号会出现非周期现象。访问外部RAM的双周期指令时序S1S2S3S4S5S6第1机器周期P1P2ALE读操作码空读S1S2S3S4S5S6第2机器周期数据地址及选通2.4.380C51单片机的复位一、复位电路复位目的是使单片机或系统中的其它部件处于某种确定的初始状态。80C51C1R1+5V80C51C1R1+5VR2KRSTRST上电复位电路按键与上电复位二、单片机复位后的状态PC=0000H,所以程序从0000H地址单元开始执行;启动后,片内RAM为随机值,运行中的复位操作不改变片内RAM的内容;特殊功能寄存器复位后的状态是确定的:•P0~P3=FFH,各口可用于输出,也可用于输入;•SP=07H,第一个入栈内容将写入08H单元;•IP、IE和PCON的有效位为0,各中断源处于低优先级且均被关断、串行通讯的波特率不加倍;•PSW=00H,当前工作寄存器为0组。2.580C51的存储器组织80C51存储器可以分成两大类:﹡RAM,CPU在运行时能随时进行数据的写入和读出,但在关闭电源时,其所存储的信息将丢失。它用来存放暂时性的输入输出数据、运算的中间结果或用作堆栈。﹡ROM是一种写入信息后不易改写的存储器。断电后,ROM中的信息保留不变。用来存放固定的程序或数据,如系统监控程序、常数表格等。2.5.180C51的程序存储器配置0000H0FFFH1000HFFFFHEA=1内部EA=0外部外部PSEN0000HFFFFHROM0003H000BH0013H001BH0023H复位入口INT0中断入口T0中断入口INT1中断入口T1中断入口串口中断入口PC是16位的计数器,所以能寻址64KB的ROM。80C51内部有4KB的掩膜ROM,87C51在内部有4KB的EPROM,而80C31在内部没有程序存储器。2.5.280C51的数据存储器配置工作寄存器区位寻址区通用RAM区00H1FH30H7FH32个字节16个字节80个字节80HFFHSFR区直接寻址访问间接寻址访问增强型附加空间外部RAM(或I/O)64K0000HFFFFHRDWR一、工作寄存器区低端32个字节分成4个工作寄存器组,每组8个单元。当前工作寄存器组的机制便于快速现场保护。PSW的RS1、RS0决定当前工作寄存器组号•寄存器0组:地址00H~07H;•寄存器1组:地址08H~0FH;•寄存器2组:地址10H~17H;•寄存器3组:地址18H~1FH。二、位寻址区三、通用RAM区位寻址区之后的30H至7FH共80个字节为通用RAM区。这些单元可以作为数据缓冲器使用。这一区域的操作指令非常丰富,数据处理方便灵活。在实际应用中,常需在RAM区设置堆栈。80C51的堆栈一般设在30H~7FH的范围内。栈顶的位置由SP寄存器指示。复位时SP的初值为07H,在系统初始化时可以重新设置。2.5.380C51的特殊功能寄存器(SFR)一、与运算器相关的寄存器(3个)•累加器ACC,8位。用于向ALU提供操作数,许多运算的结果也存放在累加器中;•寄存器B,8位。主要用于乘、除法运算。也可以作为RAM的一个单元使用;•程序状态字寄存器PSW,8位。其各位含义为:CY:进位、借位标志。有进位、借位时CY=1,否则CY=0;AC:辅助进位、借位标志;F0:用户标志位,由用户自己定义;RS1、RS0:当前工作寄存器组选择位;OV:溢出标志位。有溢出时OV=1,否则OV=0;P:奇偶标志位。ACC中结果有奇数个1时P=1,否则P=0。二、指针类寄存器(3个)﹡堆栈指针SP,8位。它总是指向栈顶。堆栈操作遵循“后进先出”的原则,入栈操作时,SP先加1,数据再压入SP指向的单元。出栈操作时,先将SP指向的单元的数据弹出,然后,SP再减1,这时SP指向的单元是新的栈顶。可见,80C51单片机的堆栈区是向地址增大的方向生成的。﹡数据指针DPTR,16位。用来存放16位的地址。它由两个8位的寄存器DPH和DPL组成。间接寻址或变址寻址可访问片外的64KB范围的RAM或ROM数据。三、与口相关的寄存器(7个)•并行I/O口P0、P1、P2、P3,均