8051单片机基本结构8051单片机的特点8051单片机可分为无ROM型和ROM型两种无ROM型的芯片,必须外接EPROM才能应用(典型芯片为8031)ROM型芯片又分为EPROM型(典型芯片为8751)、FLASH型(典型芯片为89C51)、掩膜ROM型(典型芯片为8051)、一次性可编程ROM(OneTimeProgramming,简称OTP)的芯片(典型芯片为97C51)。8051单片机的基本组成时钟电路SFR和RAMROMCPU定时/计数器并行端口中断系统串行端口系统总线时钟源T0T1P0P1P2P3TXDRXDINT0INT1(1)一个8位微处理器CPU。(2)片内数据存储器RAM和特殊功能寄存器SFR。(3)片内程序存储器ROM。(4)两个定时/计数器T0、T1,可用作定时器,也可用以对外部脉冲进行计数。(5)四个8位可编程的并行I/O端口,每个端口既可作输入,也可作输出。(6)一个串行端口,用于数据的串行通信。(7)中断控制系统。(8)内部时钟电路。一个8051单片机包含下列部件8051单片机内部结构通道0驱动器通道2驱动器RAM地址锁存器RAM通道0锁存器通道2锁存器ROM/EPROMB寄存器程序地址寄存器缓冲器PC递增器程序计数器PC数据指针DPTRVCCGNDP1.0~P1.7堆栈指针SPACCTMP2PSW通道3锁存器通道1锁存器通道1驱动器通道3驱动器TMP1SCONTMODPCONTCONTL0TH1TH0TL1IESBUF(TX/RX)IP中断、串行口和定时器逻辑振荡器P3.0~P3.7RSTEAALEPSENXTAL2XTAL1ALU(+5V)指令寄存器定时和控制逻辑指令译码器CPU即中央处理器,是单片机的核心部件,它完成各种运算和控制操作,CPU由运算器和控制器两部分组成。(1)运算器运算器以算术逻辑单元ALU为核心,加上累加器ACC、暂存寄存器TMP和程序状态字寄存器PSW等所组成。ALU主要用于完成二进制数据的算术和逻辑运算,并通过对运算结果的判断影响程序状态字寄存器PSW中有关位的状态。D7D0PSW:8051单片机的CPUCYACF0RS1RS0OV—PPSW中各位的意义如下:CY:进位标志。在进行加法或减法运算时,若运算结果的最高位有进位或借位,CY=1,否则CY=0,在执行位操作指令时,CY作为位累加器。AC:辅助进位标志。在进行加法或减法运算时,若低半字节向高半字节有进位或借位,AC=1,否则AC=0,AC还作为BCD码运算调整时的判别位。F0:用户标志。RS1和RS0:工作寄存器组选择,如下表所示。RS1RS0工作寄存器组片内RAM地址00第0组00H~07H01第1组08H~0FH10第2组10H~17H11第3组18H~1FHOV:溢出标志。当两个带符号的单字节数进行运算,结果超出-128~+127的范围时,OV=1,表示有溢出,否则OV=0表示无溢出。PSW中的D1位为保留位,对于8051来说没有意义,对于8052来说为用户标志,与F0相同。P:奇偶校验标志。每条指令指行完毕后,都按照累加器A中“1”的个数来决定P值,当“1”的个数为奇数时,P=1,否则P=0。(2)控制器控制器包括程序计数器PC、指令寄存器、指令译码器、数据指针DPTR、堆栈指针SP、缓冲器以及定时与控制电路等。控制电路完成指挥控制工作,协调单片机各部分正常工作。程序计数器PC:当一条指令按PC所指向的地址从程序存储器中取出之后,PC的值会自动增量,即指向下一条指令。堆栈指针SP:用来指示堆栈的起始地址。80C51单片机的堆栈位于片内RAM中,而且属于“上长型”堆栈,复位后SP被初始化为07H,使得堆栈实际上由08H单元开始。指令译码器:当指令送入指令译码器后,由译码器对该指令进行译码,CPU根据译码器输出的电平信号使定时控制电路产生执行该指令所需要的各种控制信号。数据指针寄存器DRTR:它是一个16位寄存器,由高位字节DPH和低位字节DPL组成,用来存放16位数据存储器的地址,以便对片外64kB的数据RAM区进行读写操作。P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7RST/VPDRXD/P3.0TXD/P3.1INT0/P3.2INT1/P3.3T0/P3.4T1/P3.5WR/P3.6RD/P3.7XTAL2XTAL1VSS12345678910111213141516171819208031805187514039383736353433323130292827262521222324VCCP0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7EA/VppALE/PROGPSENP2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.08051单片机引脚描述电源引脚Vcc和VssVcc:电源端,接+5V。Vss:接地端。时钟电路引脚XTAL1和XTAL2XTAL1:接外部晶振和微调电容的一端,在片内它是振荡器倒相放大器的输入,若使用外部TTL时钟时,该引脚必须接地。XTAL2:接外部晶振和微调电容的另一端,在片内它是振荡器倒相放大器的输出,若使用外部TTL时钟时,该引脚为外部时钟的输入端。地址锁存允许ALE系统扩展时,ALE用于控制地址锁存器锁存P0口输出的低8位地址,从而实现数据与低位地址的复用。外部程序存储器读选通信号PSENPSEN是外部程序存储器的读选通信号,低电平有效。程序存储器地址允许输入端EA/VPP当EA为高电平时,CPU执行片内程序存储器指令,但当PC中的值超过0FFFH时,将自动转向执行片外程序存储器指令。当EA为低电平时,CPU只执行片外程序存储器指令。复位信号RST该信号高电平有效,在输入端保持两个机器周期的高电平后,就可以完成复位操作。输入/输出端口引脚P0,P1,P2和P3P0口(P0.0~P0.7):该端口为漏极开路的8位准双向口,它为外部低8位地址线和8位数据线复用端口,驱动能力为8个LSTTL负载。P1口(P1.0~P1.7):它是一个内部带上拉电阻的8位准双向I/O口,P1口的驱动能力为4个LSTTL负载。P2口(P2.0~P2.7):它为一个内部带上拉电阻的8位准双向I/O口,P2口的驱动能力也为4个LSTTL负载。在访问外部程序存储器时,作为高8位地址线。P3口(P3.0~P3.7):为内部带上拉电阻的8位准双向I/O口,P3口除了作为一般的I/O口使用之外,每个引脚都具有第二功能。特殊功能寄存器通用RAM区位寻址区00H1FH20H2FH30H7FH80HFFH80H88H90H98HA0HA8HB0HB8HD0HE0HF0H特殊功能寄存器地址外部ROM内部ROM(EA=1)外部ROM(EA=0)0000H0000H0FFFH0FFFH1000HFFFFH外部RAM(I/O口地址)0000HFFFFH内部数据存储器外部数据存储器程序存储器工作寄存器区8051单片机的存储器配置片内数据存储器RAM。片外数据存储器RAM。程序存储器ROM。程序存储器ROM地址空间为64kB,片外数据存储器RAM也有64kB的寻址区,在地址上是与ROM重迭的。8051单片机通过不同信号来选通ROM或RAM。当从外部ROM中取指令时,采用选通信号PSEN,而从外部RAM中读写数据时则采用读RD和写WR信号或来选通,因此不会因地址重迭而发生混乱。8051在物理上有3个存储器空间片内数据存储器RAM片内RAM有256个字节,其中00H~7FH地址空间是直接寻址区,该区域内从00H~1FH地址为工作寄存器区,安排了4组工作寄存器,每组都为R0~R7,在某一时刻,CPU只能使用其中任意一组工作寄存器,由程序状态字PSW中RS0和RS1的状态决定。片内RAM的20H~2FH地址单元为位寻址区,其中每个字节的每一位都规定了位地址。每个地址单元除了可进行字节操作之外,还可进行位操作。片内RAM的80H~FFH地址空间是特殊功能寄存器SFR区,对于51子系列在该区域内安排了21个特殊功能寄存器,对于52子系列则在该区域内安排了26个特殊功能寄器,同时扩展了128个字节的间接寻址片内RAM,地址也为80~FFH,与SFR区地址重迭。片内数据存储器中的位地址特殊功能寄存器地址及功能表片外数据存储器RAM当片内RAM不能满足数量上的要求时,可通过总线端口和其他I/O口扩展外部RAM,其最大容量可达64KB字节。在片内数据存储器中,数据区和扩展的I/O口是统一编址的,使用的指令也完全相同,因此,用户在应用系统设计时,必须合理地进行外部RAM和I/O端口的地址分配,并保证译码的唯一性。程序存储器ROM程序存储器ROM包括片内ROM和片外ROM两个部分。主要用来存放编好的用户程序和表格常数,它以16位的程序计数器PC作为地址指针,寻址空间为64KB。当EA接高电平时,单片机从片内ROM的4kB字节存储器区取指令,当指令地址超过0FFFH后,自动地转向片外ROM取指令。当EA接低电平时,所有的取指操作均对片外程序存储器进行。8051单片机的CPU时序1单片机的时钟电路2振荡周期、时钟周期、机器周期和指令周期3单片机指令的取指和执行时序单片机的时钟电路单片机时钟电路通常有两种形式:1.内部振荡方式:8051单片机片内有一个用于构成振荡器的高增益反相放大器,引脚XTAL1和XTAL2分别是此放大器的输入端和输出端。把放大器与作为反馈元件的晶体振荡器或陶瓷谐振器连接,就构成了内部自激振荡器并产生振荡时钟脉冲。2.外部振荡方式:外部振荡方式就是把外部已有的时钟信号引入单片机内。XTAL2XTAL1MCS-51C1C2CYSXTAL2XTAL1MCS-51+5VVSSTTL外部时钟源内部振荡方式外部振荡方式P1P2S1振荡周期时钟周期机器周期机器周期指令周期XTAL2(OSC)S2S3S4S5S6S1S2S4S5S3S6P1P1P1P1P1P1P1P1P1P1P1P2P2P2P2P2P2P2P2P2P28051单片机各种周期的相互关系振荡周期、时钟周期、机器周期、指令周期P21.振荡周期:为单片机提供时钟信号的振荡源的周期。2.时钟周期:振荡源信号经二分频后形成的时钟脉冲信号,为振荡周期的2倍。3.机器周期:完成一个基本操作所需的时间,通常为12个振荡周期。4.指令周期:指CPU执行一条指令所需要的时间,一个指令周期通常含有1~4个机器周期。振荡周期=1/12μs时钟周期=1/6μs机器周期=1μs指令周期=1~4μs8051单片机外接晶振为12MHz时四个周期的具体值复位电路及复位状态1.复位电路单片机复位电路包括片内、片外两部分。外部复位电路就是为内部复位电路提供两个机器周期以上的高电平而设计的。8051单片机通常采用上电自动复位和按键手动复位两种方式。单片机运行出错或进入死循环时,可按复位键重新运行。C122μFRSTR11KΩ+5V+5V803180518751(a)上电复位电路(b)按键复位电路C122μFRSTR2200Ω803180518751R11KΩ上电复位和按键复位电路特殊功能寄存器初始状态特殊功能寄存器初始状态ACC00HTMOD00HPC0000HTCON00HPSW00HTH000HSP07HTL000HDPL00HTH100HDPH00HTL100HP0~P3FFHSBUF不定IP×××00000BSCON00HIE0××00000BPCON0×××0000B2.复位状态8051单片机的并行I/O口8051单片机有4个双向并行的8位I/O口P0~P3。P0口为三态双向口,可驱动8个TTL电路,P1、P2、P3口为准双向口(作为输入时,需要先向口锁存器写入1,故称为准双向口),其负载能力为4个TTL电路。1.P0口的结构VCCP0.X锁存器读锁存器地址/数据控制D读引脚写锁存器内部总线QQMUXT2T1CL2.P1口的结构VCCP1.X锁存器读锁存器D读引脚写锁存器内部总线QQT内部上拉电阻CL3.P2口的结构VCCP2.