18051单片机基础知识一.8051单片机的特点·8位CPU·片内振荡器及时钟电路·32根I/O线·外部存储器寻址范围ROM、RAM各64K·2个16位的定时器/计数器·5个中断源,2个中断优先级·全双工串行口·布尔处理器二.MCS-51系列单片机性能表ROM形式片内ROM(字节)片内RAM(字节)寻址范围I/O中断源计数器并行口串行口片内ROM片内EPROM外接EPROM8051875180314K1282×64K2×164×81580C5187C5180C314K1282×64K2×164×8158052875280328K2562×64K2×164×81680C5287C5280C328K2562×64K2×164×817三.中央处理器中央处理器(CPU)由运算器和控制逻辑构成,其中包括若干SFR(特殊功能寄存器)。以ALU为中心的运算器:ALU(算术逻辑单元)能对数据进行加、减、乘、除等算术运算;“与”、“或”、“异或”等逻辑运算以及位操作运算。程序状态字PSW:D7D6D5D4D3D2D1D0CYACF0RS1RS0OVPCY—进位标志。有进位/借位时CY=1,否则CY=0AC—半进位标志。当D3位向D4位产生进位/借位时AC=1,否则AC=0,常用于十进制调整运算中。F0—用户可设定的标志位,可置位/复位,也可供测试。RS1,RS0—四个通用寄存器组的选择位,该两位的四种组合状态用来选择03寄存器组。RS1,RS0与工作寄存器组的关系RS1RS0工作寄存器组000组(0007H)011组(080FH)102组(1017H)113组(181FH)OV—溢出标志。当带符号数运算结果超出-128+127范围时OV=1,否则OV=0。2当无符号数乘法结果超过255时,或当无符号数除法的除数为0时OV=1,否则OV=0。P—奇偶校验标志。每条指令执行完,若A中1的个数为奇数时P=1,否则P=0,即偶校验方式。四.控制器、时钟电路和基本时序周期·控制逻辑主要包括定时和控制逻辑、指令寄存器、译码器以及地址指针DPTR和程序计数器PC等。1.8051的时钟时钟是时序的基础,8051片内由一个反相放大器构成振荡器,可以由它产生时钟。时钟可以由两种方式产生:内部方式和外部方式XTAL1XTAL2外部时钟XTAL21.2M12MHzXTAL11030PF1030PFVSS(a)内部方式(b)外部方式2.8051的基本时序周期·振荡周期:指振荡源的周期,若为内部产生方式时,为石英晶体的振荡周期。·时钟周期:(称S周期)为振荡周期的两倍,时钟周期=振荡周期P1+振荡周期P2。·机器周期:一个机器周期含6个时钟周期(S周期)。·指令周期:完成一条指令占用的全部时间。8051的指令周期含14个机器周期,其中多数为单周期指令,还有2周期指令和4周期指令。3.指令部件·程序计数器PC:8051的PC是16位的计数器,其内容为下一条待执行指令的地址,可寻址范围64K。·指令寄存器IR:IR用来存放当前正在执行的指令。·指令译码器ID:ID对IR中指令操作码进行分析解释,产生相应的控制信号。·数据指针DPTR:DPTR是16位地址寄存器,既可以用于寻址外部数据存储器,也可以寻址外部程序存储器中的表格数据。DPTR也可以寻址64K地址空间。五.存贮器组织8051单片机物理上有四个存贮空间:片内程序存贮器和片外程序存贮器、片内数据存贮器和片外数据存贮器。FFFFFFFFFF8010003000FF200000000000外部ROM内部ROMEA=1外部ROMEA=0SFRRAM位寻址工作寄存器组(03)外部RAMRAM3六.片内并行接口8051的芯片引脚中没有专门的地址总线和数据总线,在向外扩展存贮器和接口时,由P2口输出地址总线的高8位A15A8,由P0口输出地址总线的低8位A7A0,同时对P0口采用总线复用技术,P0口兼作8位双向数据总线D7D0,即由P0口分时输出低8位地址或输入/输出8位数据,在不作总线扩展时,P0口和P2口可以作为普通I/O口使用。P1口只能用作I/O口。P3口的每一位都有各自的第二功能,见下表:通道位第二功能注释P3.0RXD串行输入口P3.1TXD串行输出口P3.2INT0外部中断0输入P3.3INT1外部中断1输入P3.4T0计数器0计数输入P3.5T1计数器1计数输入P3.6WR外部数据RAM写选通信号P3.7RD外部数据RAM读选通信号七.8051内部资源1.串行口8051单片机内部有一个可编程的、全双工的串行接口,串行收发存贮在特殊功能寄存器SFR中的串行数据缓冲器SBUF中的数据,SBUF占用内部RAM地址99H。但在机器内部,实际上有两个数据缓冲器:发送缓冲器和接收缓冲器,因此,可以同时保留收/发数据,进行收/发操作,但收/发操作都是对同一地址99H进行的。2.定时器/计数器8051内部有两个16位可编程定时器/计数器,记为T0和T1,最大计数值为216-1;可编程是指它们的工作方式由指令来设定,或者当计数器用,或者当定时器用,并且计数(定时)的范围也可以由指令来设置。这种控制功能是通过定时器方式控制寄存器TMOD来完成的。定时器在计到规定的定时值时可以向CPU发出中断申请,从而完成某种定时控制功能。在计数状态下同样也可以申请中断,定时器控制寄存器TCON用来负责定时器的启动、停止以及中断管理。在定时工作时,时钟由单片机内部提供,即系统时钟经过12分频后作为定时器的时钟。计数工作时,时钟脉冲(计数脉冲)由T0和T1(即P3.4,P3.5)输入。3.中断系统8051的中断系统允许接受5个独立的中断源,即两个外部中断申请,两个定时器/计数器中断以及一个串行口中断。外部中断申请通过INT0和INT1(即P3.2和P3.3)输入,输入方式可以是电平触发(低电平有效),也可以是边沿触发(下降沿有效)。两个定时器中断请求是定时器溢出时向CPU提出的,即当定时器由状态全1转为全0时发出的。第五个中断请求是4由串行口发出的,串行口每发送完一个数据或接收完一个数据,就可提出一次中断申请。8051单片机可以设置两个中断优先级,即高优先级和低优先级,由中断优先控制寄存器IP来控制。八.8051的芯片引脚8051单片机是采用40引脚双列直插封装的芯片,有些引脚具有两种功能,引脚功能如下:(T2)P1.0140VCC(T2EX)P1.1239P0.0(AD0)P1.2338P0.1(AD1)P1.3437P0.2(AD2)P1.4536P0.3(AD3)P1.5635P0.4(AD4)P1.6734P0.5(AD5)P1.7833P0.6(AD6)RST/VPD932P0.7(AD7)(RXD)P3.01031EA/VPP(TXD)P3.11130ALE/PROG(INT0)P3.21229PSEN(INT1)P3.31328P2.7(A15)(T0)P3.41427P2.6(A14)(T1)P3.51526P2.5(A13)(WR)P3.61625P2.4(A12)(RD)P3.71724P2.3(A11)XTAL21823P2.2(A10)XTAL11922P2.1(A9)VSS2021P2.0(A8)VCC(40)电源+5VVSS(20)接地XTAL1(19)和XTAL2(18)使用内部振荡电路时,用来接石英晶体和电容;使用外部时钟时,用来输入时钟脉冲。P0口(3932)双向I/O口,既可以作地址/数据总线口,也可以作为普通I/O口用。P1口(18)准双向通用I/O口。P2口(2128)准双向口,既可以作地址总线口输出地址高8位,也可以作普通I/O口用。P3口(1017)多用途端口,既可以作普通I/O口用,也可以按每位定义的第二功能操作。ALE/PROG(30)地址锁存信号输出端。在访问片外存贮器时,ALE为有效高电平时,P0口输出地址低8位,可以用ALE信号做外部地址锁存信号。fALE=1/6fOSC,可以作系统中其它芯片的时钟源。第二功能PROG是对8751的EPROM编程时的编程脉冲输入端。RST/VPD(9)复位信号输入端。8051接通电源后,在时钟电路作用下,该脚上出现两个机器周期(24个振荡周期)以上的高电平,使内部复位。第二功能是VPD,即备用电源输入端,当主电源VCC发生故障,降低到低电5平规定值时,VPD将为RAM提供备用电源,以保证存贮在RAM中的信号不丢失。EA/VPP(31)内部和外部程序存贮器选择线。EA=0时访问外部ROM(0000HFFFFH);EA=1时,地址0000H0FFFH空间访问内部ROM,地址1000HFFFFH空间访问外部ROM。PSEN(29)片外程序存贮器选通信号,低电平有效。对8052单片机,由于内部多一个定时器,还需要附加别的输入端,为此,又借用P1.0和P1.7作为定时器2的输入T2和T2EX。九.单片机的工作方式单片机的工作方式包括:复位方式、单步执行方式、低功耗操作方式以及EPROM编程和校验方式。1.复位方式RST引脚是复位信号的输入端。复位信号是高电平有效,高电平有效的持续时间应为24个振荡周期以上,若时钟频率为6MHZ,则复位信号至少应持续4微秒以上,才可以使单片机复位,复位以后,07H写入栈指针SP,P0口P3口均置1(允许输入),程序计数器PC和其它特殊功能寄存器SFR全部请“0”。只要该脚保持高电平,8051便循环复位。当RST端由高变低后,8051由ROM的0000H开始执行程序。8051的复位操作不影响内部RAM的内容。当VCC加电后,RAM的内容是随机的。单片机的复位方式有上电自动复位和手工复位两种:上电复位电路和按钮复位电路。22μF+5V+5VRST200KIN41482001KRESET22μF(a)上电复位电路(b)按钮复位电路只要VCC上升时间不超过1ms,通过在VCC和RST引脚之间加一个10μf的电容,就可以实现自动上电复位,即打开电源就可以自动复位。2.程序执行方式程序执行方式是单片机的基本工作方式。所执行的程序可以在内部ROM、外部ROM或者同时放在内外ROM中,若程序放在外部ROM中(如对8031),则应使EA=0;否则可令EA=1。由于复位之后PC=0000H,所以程序总是从地址0000H开始的,通常在0000H单元开始存放一条转移指令,从而使程序跳转到真正的程序入口地址。3.单步执行方式单步执行方式是使程序的执行处于外加脉冲(通常用一个按键产生)的控制下,一条指令一条指令地执行,即按一次键,执行一条指令。单步执行方式可以利用8051的中断控制来实现。其中断系统规定:从中断服务程序返回以后至少要执行一条指令后才能重新进入中断。将外加脉冲加到INT0输入,平时为低电平,通过编程规定INT0信号是低电平有效,因此不来脉冲时总是处于响应中断的状态,在中断服务程序中要安排这样的指令:JNBP3.2$;若INT0=0,不往下执行6JBP3.2$;若INT0=1,不往下执行RETI;返回主程序执行一条指令因此,只有INT0上来一个正脉冲,才能通过第一、第二两条指令,返回主程序并执行一条指令。由于INT0此时已回到0,故重新进入中断,在第一条指令处等待正脉冲的到来,从而实现来一个脉冲执行一条指令的单步操作。4.低功耗操作方式CMOS型单片机由两种低功耗操作方式:节电操作方式和掉电操作方式。在节电方式时,CPU停止工作,而RAM、定时器、串行口和中断系统继续工作。在掉电方式时,仅给片内RAM供电,片内所有其它的电路均不工作。5.EPROM编程和校验方式对于内部集成有EPROM的8051单片机,可以进入编程或校验方式。①内部EPROM编程编程时,时钟频率应在4MHZ6MHZ的范围内,其余有关引脚的接发和用法如下:P1口和P2口的P2.0P2.3为EPROM的4K的高地址输入,P1口为低8位地址;P2.4P2.6以及PSEN应为低电平;P0口为编程数据输入;P2.7和R