主讲:李营QQ:43965356Tel:13411390910机电教研室实训四号楼208内容回顾单片机的特点与应用单片机的结构CPU存储器0000H0FFFH1000HFFFFHEA=1内部EA=0外部外部PSEN0000HFFFFHROM0003H000BH0013H001BH0023H复位入口INT0中断入口T0中断入口INT1中断入口T1中断入口串口中断入口MCS-51的程序存储器配置工作寄存器区位寻址区通用RAM区00H1FH30H7FH32个字节16个字节80个字节80HFFHSFR区直接寻址访问间接寻址访问增强型附加空间外部RAM(或I/O)64K0000HFFFFHRDWRMCS-51的数据存储器配置1.工作寄存器区低端32个字节分成4个工作寄存器组,每组8个单元。当前工作寄存器组的机制便于快速现场保护。PSW的RS1、RS0决定当前工作寄存器组号•寄存器0组:地址00H~07H;•寄存器1组:地址08H~0FH;•寄存器2组:地址10H~17H;•寄存器3组:地址18H~1FH。2.位寻址区位寻址区之后的30H至7FH共80个字节为通用RAM区。这些单元可以作为数据缓冲器使用。这一区域的操作指令非常丰富,数据处理方便灵活。在实际应用中,常需在RAM区设置堆栈。MCS-51的堆栈一般设在30H~7FH的范围内。栈顶的位置由SP寄存器指示。复位时SP的初值为07H,在系统初始化时可以重新设置。3.通用RAM区4.MCS-51的特殊功能寄存器(SFR)(specialfunctionregister)11个可位寻址与运算器相关的寄存器(3个)指针类寄存器(3个)与I/O口相关的寄存器(7个)与中断相关的寄存器(2个)与定时器/计数器相关的寄存器(6个)P34表2-4与运算器相关的寄存器(3个)•累加器ACC,8位。用于向ALU提供操作数,许多运算的结果也存放在累加器中;•寄存器B,8位。主要用于乘、除法运算。也可以作为RAM的一个单元使用;•程序状态字寄存器PSW,8位。CyACF0RS1RS0OV…PD7D6D5D4D3D2D1D0CY(PSW.7)——进位标志位。AC(PSW.6)——辅助进位(或称半进位)标志。F0(PSW.5)——由用户定义的标志位。RS1(PSW.4)、RS0(PSW.3)——工作寄存器组选择位。OV(PSW.2)——溢出标志位。由硬件置位或清零。P(PSW.0):奇偶标志位。ACC中结果有奇数个1时P=1,否则P=0。CyACF0RS1RS0OV…PD7D6D5D4D3D2D1D0RS1、RS0与片内工作寄存器组的对应关系RS1RS0寄存器组片内PAM地址通用寄存器名称000组00H~07HR0~R7011组08H~0FHR0~R7102组10H~17HR0~R7013组18H~1FHR0~R7﹡堆栈指针SP,8位。它总是指向栈顶。堆栈操作遵循“后进先出”的原则,入栈操作时,SP先加1,数据再压入SP指向的单元。出栈操作时,先将SP指向的单元的数据弹出,然后,SP再减1,这时SP指向的单元是新的栈顶。可见,MCS-51单片机的堆栈区是向地址增大的方向生成的。﹡数据指针DPTR,16位。用来存放16位的地址。它由两个8位的寄存器DPH和DPL组成。间接寻址或变址寻址可访问片外的64KB范围的RAM或ROM数据。指针类寄存器(3个)与I/O口相关的寄存器(7个)•并行I/O口P0、P1、P2、P3,均为8位;•串行口数据缓冲器SBUF(serialbuffer);串行口控制寄存器SCON;串行通讯波特率倍增寄存器PCON(一些位还与电源控制相关,所以又称为电源控制寄存器)。与中断相关的寄存器(2个)•中断允许控制寄存器IE(interruptenable);•中断优先级控制寄存器IP(interruptpriority)。与定时器/计数器相关的寄存器(6个)定时/计数器T0的两个8位计数初值寄存器TH0、TL0,它们可以构成16位的计数器,TH0存放高8位,TL0存放低8位;定时/计数器T1的两个8位计数初值寄存器TH1、TL1,它们可以构成16位的计数器,TH1存放高8位,TL1存放低8位;定时/计数器的工作方式寄存器TMOD;定时/计数器的控制寄存器TCON。§2-2MCS-51单片机引脚功能8位CPU4kbytes程序存储器(ROM)(52为8K)256bytes的数据存储器(RAM)(52有384bytes的RAM)32条I/O口线111条指令,大部分为单字节指令21个专用寄存器一、MCS-51单片机的功能简介2个可编程定时/计数5个中断源,2个优先级(52有6个)一个全双工串行通信口外部数据存储器寻址空间为64kB外部程序存储器寻址空间为64kB逻辑操作位寻址功能双列直插40PinDIP封装单一+5V电源供电引脚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单片机最小系统Y122.1184C915PC810uFS1SW-PBALEWRRDRXDTXDINT0EA/VP31X119X218RESET9RD17WR16INT012INT113T014T115P101P112P123P134P145P156P167P178P0039P0138P0237P0336P0435P0534P0633P0732P2021P2122P2223P2324P2425P2526P2627P2728PSEN29ALE/P30TXD11RXD10VCC40GND20U189S52VCCPSENP10P11P12P13P14P15P16P17T0T1INT1P00P01P02P03P04P05P06P07P20P21P22P23P24P25P26P27VCCR610KR4101R510KC1015PX1X2•P0~P3:通用I/O口;•VCC:电源端,一般接5V;•GND:电源地;•XTAL1,XTAL2:外接晶体振荡器,不能超过24M;需加微调电容,一般为30pF;•RST/VPD:复位端,平时为低电平;•ALE/PROG:地址锁存允许信号端;•EA/Vpp:外部程序存储器地址允许输入端/固化编程电压输入端;1.时钟电路引脚:•XTAL1:接外部晶振和微调电容的一端,在单片机内部,它是构成片内振荡器的反向放大器的输入端。当采用外部振荡器时,该引脚接收振荡器的信号,即把此信号直接接到内部振荡器的输入端。•XTAL2:接外部晶振和微调电容的另一端,在单片机内部,它是构成片内振荡器的反向放大器的输出端。当采用外部振荡器时,此引脚应悬空。(a)内部时钟电路;(b)HMOS型外部振荡源(C)CHMOS型外部振荡源2.控制信号引脚:•RST/VPD:•RST是复位信号输入端,高电平有效。当此输入端保持2个机器周期的高电平时,就可以完成复位操作。RST引脚的第二功能VPD是备用电源的输入端。上电复位按键复位ALE/PROG:(AddressLatchEnable/Programming)•当单片机上电正常工作后,ALE引脚不断向外输出正弦脉冲信号,此频率为振荡器频率的1/6。CPU访问外部存储器时,ALE作为锁存低8位地址的控制信号。此引脚的第二功能PROG作为8751编程脉冲输入端使用。•PSEN:(ProgramStoreEnable)在访问片外存储器时,此端定时输出负脉冲作为片外存储器的选通信号。•EA/VPP:(EnableAddress/VoltagePulseOfProgramming)当EA接高电平时,CPU访问片内ROM,并执行内部程序存储器中的指令,但当PC(程序计数器)的值超过4K时,将自动转去执行片外存储器内的程序。当EA脚接低电平时,CPU只访问片外ROM并执行外部程序存储器中的指令,而不管是否有片内程序存储器。VPP是对8751片内ROM固化程序时,作为施加较高编程电压(12V~21V)的输入端。3并行输入/输出接口1.P0口(三态双向口)P0口内部一位结构图P0用作通用I/O口当系统不进行片外的ROM扩展,也不进行片外RAM扩展时,P0用作通用I/O口。在这种情况下,单片机硬件自动使C=0,MUX开关接向锁存器的反相输出端。另外,与门输出的“0”使输出驱动器的上拉场效应管T1处于截止状态。因此,输出驱动级工作在需外接上拉电阻的漏极开路方式。作输出口时,CPU执行口的输出指令,内部数据总线上的数据在“写锁存器”信号的作用下由D端进入锁存器,经锁存器的反向(Qn+1=Qn)端送至场效应管T2,再经T2反向,在P0.X引脚出现的数据正好是内部总线的数据。作输入口时,数据可以读自口的锁存器,也可以读自口的引脚。这要根据输入操作采用的是“读锁存器”指令还是“读引脚”指令来决定。在执行“MOV”类输入指令时(如:MOVA,P0),内部产生的操作信号是“读引脚”。注意,在执行该类输入指令前要先把锁存器写入“1”,使场效应管T2截止,使引脚处于悬浮状态,可以作为高阻抗输入。否则,在作为输入方式之前曾向锁存器输出过“0”,则T2导通会使引脚箝位在“0”电平,使输入高电平“1”无法读入。所以,P0口在作为通用I/O口时,属于准双向口。P0用作地址/数据总线当系统进行片外的ROM扩展或进行片外RAM扩展,P0用作地址/数据总线时。在这种情况下,单片机内硬件自动使C=1,MUX开关接向反相器的输出端,这时与门的输出由地址/数据线的状态决定。2.P1、P2和P3口•P1、P2和P3口为准双向口,在内部差别不大,但使用功能有所不同。•P1口是用户专用8位准双向I/O口,具有通用输入/输出功能,每一位都能独立地设定为输入或输出。当由输出方式变为输入方式时,该位的锁存器必须写入“1”,然后才能进入输入操作。•P2口是8位准双向I/O口。外接I/O设备时,可作为扩展系统的地址总线,输出高8位地址,与P0口一起组成16位地址总线。对于8031而言,P2口一般只作为地址总线使用,而不作为I/O线直接与外部设备相连。P3口的第二功能•P3口是复用8位准双向I/O口