第2篇单片机原理及应用第5章单片机的结构与工作原理教学目的:了解80C51系列单片机的内部结构、工作原理、存储器结构、时序及复位电路等硬件内容。教学重点:1.内部主要组成及工作原理;2.存储器结构特点;3.I/O的复用结构及应用特点;4.时序及复位电路的作用。教学难点:1.特殊功能寄存器的作用;2.堆栈及堆栈指针的作用。5.1单片机结构5.1.1标准型单片机的组成及结构TXDRXD0P1P2P3P数据地址/中断控制CPU振荡器UART串行端口I/O端口外部中断源SPI串行端口内部中断源内部总线看门狗定时器2定时器1定时器0计数器输入数据存储器程序存储器总线控制MOSIMISOCLK图5.1AT89S51/S52的基本组成功能框图图5.2AT89S51/52内部结构框图各主要部分的作用中央处理器(CPU)数据存储器(内部RAM)程序存储器(内部ROM)定时/计数器并行I/O口串行口时钟电路中断系统5.1.2引脚定义与功能1.主电源引脚GND和VCC2.时钟电路引脚XTAL1和XTAL23.控制信号引脚RST/VPPALE/4.输入/输出引脚(P0、P1、P2和P3端口引脚)PSENPSENPSENPSENPROGEA5.2.1存储器结构和地址空间SFRRAMFF807F004KB程序存储器(EA=1)0FFF000089S51片内存储器片外数据存储器FFFF0064KBRAM(I/O)FF100片外程序存储器64KBROM(EA=0)FFFF00000FFF1000图5.4AT89S51存储空间分布图5.280C51的存储器80C51系列单片机的存储器在物理结构上可以分为如下4个存储空间:·片内程序存储器;·片外程序存储器;·片内数据存储器;·片外数据存储器。但在逻辑上,即从用户使用的角度上,80C51系列有三个存储空间:·片内外统一编址的64KB的程序存储器地址空间(用16位地址);·片内数据存储器地址空间,寻址范围为00~FFH;·64KB片外数据存储器地址空间。5.2.2程序存储器1.程序存储器的结构和地址分配程序存储器用16位地址指针PC和DPTR,寻址范围为64kB。可选择片内程序存储器或片外程序存储器。片外程序存储器必须通过并行扩展总线扩展,同时应将片外程序存储器选择引脚EA接地;选择片内程序存储器时,EA接高电平。2.程序存储器的入口地址0000H:复位后,程序将自动从0000H开始执行80C51有5个中断源,其相应的入口地址安排在程序存储器的固定单元,这些入口地址不得随意被其它程序指令占用:0003H:外部中断0入口。000BH:定时器0溢出中断入口。0013H:外部中断1入口。001BH:定时器1溢出中断入口。0023H:串行口中断入口。002BH:定时器2溢出中断入口。只有AT89S52/C52有)5.2.3数据存储器1.片内数据存储器的结构及操作片内数据存储器采用8位地址指针,寻址范围为256B,分为两部分:00H~7FH为可直接寻址和间接寻址空间;80H~FFH直接寻址的空间为SFR空间,不能作数据存储器用。对于AT89C52/S52还有一块只能间接寻址的地址为80H~FFH的数据存储器。2.低128字节RAM·通用工作寄存器区·位寻址区·用户RAM区3.高128字节用户RAM区仅AT89S52有4.片外数据存储器的结构及操作片外数据存储器和外围扩展电路统一编址,可寻址范围为64KB。片外数据存储器寻址空间的数据传送使用专门的MOVX指令。片外数据存储器只能和累加器A交换数据,通过地址指针DPTR或工作寄存器Ri间接寻址。用户RAM区位寻址区(位地址00H~7FH)用户RAM区(仅89S52有)第3组工作寄存器区R0~R7第2组工作寄存器区R0~R7第1组工作寄存器区R0~R7第0组工作寄存器区R0~R7FFH80H7FH30H2FH20H1FH18H17H10H0FH08H07H00HFFHF0HE0HD0HCDHCCHCBHCAHC9HC8HB8HB0HA8HA6HA0H99H98H90H8DH8CH8BH8AH89H88H87H85H84H83H82H81H80HBACCPSWTH2*TL2*RCAP2H*RCAP2L*T2MOD*T2CON*IPP3IEWDTRSTP2SBUFSCONP1TH1TH0TL1TL0TMODTCONPCONDP1HDP1LDPHDPLSPP0专用寄存器区SFR图5.5片内数据存储器的配置5.3特殊功能寄存器SFR80C51单片机中,在片内RAM的80H~FFH空间建立了集中的特殊功能寄存器SFR空间,通过该空间的SFR实现对80C51系列单片机内部资源的运行管理操作、位地址空间的操作等。这种集中的、归一化操作管理寄存器的模式是单片机内部资源操作管理的重要方式。采用SFR操作管理方式后,单片机内各种单元电路都可按照可编程集成器件的运行管理方式,通过对SFR的读写来实现操作管理。访问这些专用寄存器仅允许使用直接寻址的方式。5.3.180C51系列的SFR80C51系列的SFR在数量与功能上大同小异,它们离散地分布在片内数据存储器的高128字节地址80H~FFH中,但他们是不能作为数据存储器使用的,所以对这些特殊功能寄存器是不能随意写入数字的,特别是功能部件中的控制寄存器,不同的数字将使它们具有不同的工作方式。特殊功能寄存器并未占满80H~FFH整个地址空间,对空闲地址的操作是无意义的。若访问到空闲地址,则读出的是随机数。5.3.2AT89S51/S52的SFR地址分布及寻址1.访问这些专用寄存器仅允许使用直接寻址的方式。2.对于AT89S52单片机,其片内RAM的80H~FFH地址上有2个物理空间(见图2-6),一个是SFR的物理空间,一个是扩展的高128字节的数据存储器物理空间,他们所用的地址单元相同,通过不同的寻址方式区分这2个空间。3.这26/32个专用寄存器都可以字节寻址,其中有11/12个专用寄存器还具有位寻址能力,它们的字节地址正好能被8整除。(参考书中表)4.SFR的位寻址与字节寻址80C51中可位寻址SFR的直接地址为×OH或×8H,相邻的8个地址号依次作为相应的8个位地址号。例如:P1口的口地址是90H(字节地址),而位地址90H是P1.0,位地址91H是P1.1等等依次类推。5.3.3SFR的功能及应用1.程序状态字寄存器PSWD7HD6HD5HD4HD3HD2HD1HD0HCACF0RS1RS0OV-PPSW的各位功能简要说明如下:C为进位标志,AC为半进位标志,F0为用户标志,RS1和RS0为当前工作寄存器组的选择位:表2-7RS0、RS1对工作寄存器组的选择RS1RS0寄存器组片内RAM地址00第0组00H07H01第1组08H0FH10第2组10H17H11第3组18H1FHOV是溢出标志位:该位表示在有符号数进行加、减运算时,是否发生了溢出。P是奇偶标志位:表示累加器A内容的奇偶性。D1H位也可做用户标志,位名称需自己定义。2.ACC3.双数据指针寄存器DPTR0/14.SP堆栈指针堆栈指针SP(StackPointer)中始终存放着堆栈栈顶的地址。每存入或取出一个字节数据,SP就自动加1或减1。堆栈操作过程见图2-6。图5.6堆栈和堆栈指针示意图5.4输入/输出端口结构5.4.1P0口1.P0口位电路结构2.工作原理1)P0作为一般I/O口2)P0口作为地址/数据总线图5.7P0口某位结构5.4.2P1口1.P1口位电路结构2.工作原理P1口作输出P1口作为输入3.P1口各位的第二功能图5.8P1口某位结构5.4.3P2口1.P2口位电路结构2.工作原理P2口作输出,可作为高8位地址线1)P2口作为输入2)作通用I/O口图5.9P2口某位结构5.4.4P3口1.P3口位电路结构2.工作原理1)作为通用I/O2)作为第2功能引脚(见书中表2-8)图5.10P3口某位结构5.4.54个I/0端口的主要异同点1.主要相同点1)锁存器加引脚的典型结构2)I/O的复用结构I/O端口的总线复用I/O端口的功能复用3)在对双向口作输入操作时,一定要先向锁存器写“1”,然后才能正确读入引脚状态。2.主要不同点1)P1~P3为准双向口结构2)驱动能力不同3)功能不同5.5复位及时钟电路5.5.1复位和复位电路复位是单片机的初始化操作,单片机在启动运行时,都需要先复位,它的作用是使CPU和系统中其他部件都处于一个确定的初始状态,并从这个状态开始工作。1.内部复位信号的产生内部复位电路89S51施密特触发器RST/VPD图5.11复位电路原理图5.5.1复位和复位电路复位是单片机的初始化操作,单片机在启动运行时,都需要先复位,它的作用是使CPU和系统中其他部件都处于一个确定的初始状态,并从这个状态开始工作。1.内部复位信号的产生内部复位电路89S51施密特触发器RST/VPD图5.11复位电路原理图2.复位状态复位后,PC初始化为0,于是单片机自动从0单元开始执行程序。复位后片内各专用寄存器的状态如表3-9所示,表中X为不定数。SFR的复位状态I/O口(P0、P1、P2、P3)各位为FFH状态,即双向I/O口的输入状态。堆栈指针SP=07H,即堆栈底为片内RAM的07H单元。除上述SFR外,其余SFR的复位状态大部分为零或为随机数。3.复位方式与外部复位电路(a)上电复位(b)按键脉冲复位(c)按键电平复位图5.12复位电路5.5.2时钟电路1.振荡器和时钟电路原理XTAL1XTAL2PD2QQ36ALE机器周期状态时钟时钟发生器fOSC400RfP1P2振荡器80C51图5.13振荡器工作原理2.时钟电路接法外部时钟NCXTAL1XTAL280C51VSS晶振XTAL1XTAL280C51VSS图5.14内部时钟方式图5.15外时钟源接法5.680C51系列单片机的低功耗方式5.6.1电源控制寄存器PCON(87H)D7D6D5D4D3D2D1D0SMODGF1GF0PDIDL其各位作用如下:(l)SMOD:波特率倍增位。在串行口工作方式1、2或3下,SMOD=1使波特率加倍(详见第7章)。(2)GF1和GF0:通用标志位。用户用软件置、复位。(3)PD:掉电方式位。若PD=1,进入掉电工作方式。(4)IDL:待机方式位。若IDL=1,进入待机工作方式。5.6.2待机方式1.待机方式的工作特点2.单片机进入待机方式的方法向PCON中写一个字节,使IDL=13.单片机终止待机方式的方法通过硬件复位通过中断方法5.6.3掉电方式1.掉电方式的工作特点2.单片机进入掉电方式的方法向PCON中写一个字节,使PD=13.单片机退出掉电方式的方法硬件复位