第2章AT89S51单片机硬件结构单片机原理及接口技术(C51编程)(第2版)目录CONTENTS2.1AT89S51单片机的硬件组成2.2AT89S51的引脚功能2.3AT89S51的CPU2.4AT89S51存储器的结构2.5AT89S51的并行I/O端口2.6时钟电路与时序2.7复位操作和复位电路2.8看门狗定时器(WDT)的使用2.9低功耗节电模式2.10AT89S52单片机与AT89S51单片机的差异2.1AT89S51单片机的硬件组成片内结构如图2-1所示。把作为控制应用所必需的基本功能部件都集成在一个集成电路芯片上。图2-1AT89S51单片机片内结构2.1AT89S51单片机的硬件组成有如下功能部件和特性:8位微处理器(CPU);01OPTION02OPTION03OPTION04OPTION数据存储器(128BRAM);程序存储器(4KBFlashROM);4个8位可编程并行I/O口(P0口、P1口、P2口、P3口);1个全双工的异步串行口;2个可编程的16位定时器/计数器;05OPTION06OPTION2.1AT89S51单片机的硬件组成有如下功能部件和特性:1个看门狗定时器;中断系统有5个中断源,对应5个中断向量;特殊功能寄存器(SFR)26个;低功耗模式有空闲模式和掉电模式,且具有掉电模式下的中断恢复模式;3个程序加密锁定位;07OPTION08OPTION09OPTION10OPTION11OPTION2.1AT89S51单片机的硬件组成与AT89C51比,AT89S51更突出的优点:(1)增加在线可编程功能ISP(InSystemProgram),字节和页编程,现场程序调试和修改更加方便灵活;(2)数据指针增加到两个,方便对片外RAM的访问;(3)增加了看门狗定时器,提高了系统的抗干扰能力;(4)增加断电标志;(5)增加掉电状态下的中断恢复模式;2.1AT89S51单片机的硬件组成片内各功能部件通过片内单一总线连接而成(图2-1),基本结构依旧是CPU加上外围芯片的传统微机结构。CPU对各种功能部件的控制是采用特殊功能寄存器(SFR,SpecialFunctionRegister)的集中控制方式。介绍图2-1中片内各功能部件。图2-1AT89S51单片机片内结构2.1AT89S51单片机的硬件组成(1)CPU(微处理器)8位,与通用CPU基本相同,包括了运算器和控制器两大部分,还有面向控制的位处理功能。(2)数据存储器(RAM)片内为128B(52子系列为256B),片外最多可扩64KB。图2-1AT89S51单片机片内结构(3)程序存储器(FlashROM)片内集成有4KB的Flash存储器(AT89S52则为8KB;AT89C55片内20KB),如片内容量不够,片外可外扩至64KB。2.1AT89S51单片机的硬件组成(4)中断系统具有5个中断源,2级中断优先权。(5)定时器/计数器2个16位定时器/计数器(52子系列有3个),4种工作方式。图2-1AT89S51单片机片内结构(6)串行口1个全双工的异步串口,4种工作方式。可进行串行通信,扩展并行I/O口,还可与多个单片机构成多机通信系统。2.1AT89S51单片机的硬件组成(7)4个8位的并行口:P0口、P1口、P2口和P3口。(8)特殊功能寄存器(SFR)26个,对片内各功能部件管理、控制和监视。是各功能件的控制寄存器和状态寄存器,映射片内RAM区80H~FFH内。图2-1AT89S51单片机片内结构(9)1个看门狗定时器WDT当由于干扰程序陷入死循环或跑飞时,可使程序恢复正常运行。目录CONTENTS2.1AT89S51单片机的硬件组成2.2AT89S51的引脚功能2.3AT89S51的CPU2.4AT89S51存储器的结构2.5AT89S51的并行I/O端口2.6时钟电路与时序2.7复位操作和复位电路2.8看门狗定时器(WDT)的使用2.9低功耗节电模式2.10AT89S52单片机与AT89S51单片机的差异2.2AT89S51的引脚功能先了解引脚,牢记各引脚功能。AT89S51与各种8051芯片的引脚兼容。目前多采用40只引脚双列直插,如图2-2。此外,还有44引脚的PLCC和TQFP封装方式的芯片。引脚按其功能可分为如下3类:(1)电源及时钟引脚—VCC、VSS;XTAL1、XTAL2。(2)控制引脚—PSEN*、ALE/PROG*、EA*/VPP、RST(RESET)(3)I/O口引脚——P0、P1、P2、P3,为4个8位I/O口2.2.1电源及时钟引脚1.电源引脚图2-2AT89S51双列直插封装方式的引脚(1)VCC(40脚):+5V电源。(2)VSS(20脚):数字地。▲▲▲2.2.1电源及时钟引脚2.时钟引脚(1)XTAL1(19脚):片内振荡器反相放大器和时钟发生器电路输入端。用片内振荡器时,该脚接外部石英晶体和微调电容。外接时钟源时,该脚接来自外部时钟振荡器的信号。(2)XTAL2(18脚):片内振荡器反相放大器的输出端。当使用片内振荡器,该脚接外部石英晶体和微调电容。当使用外部时钟源时,本脚悬空。2.2.2控制引脚(1)RST(RESET,9脚)复位信号输入,在引脚加上持续时间大于2个机器周期的高电平,可使单片机复位。正常工作,此脚电平应≤0.5V。当看门狗溢出时,该脚将输出96个时钟振荡周期的高电平。2.2.2控制引脚(2)EA*/VPP(EnableAddress/VoltagePulseofPrograming,31脚)EA*:第一功能:外部程序存储器访问允许控制端。EA*=1,在PC值≤0FFFH(不超出片内4KBFlash存储器地址范围)时,单片机读片内Flash存储器(4KB)中的程序,但PC值0FFFH(超出片内4KBFlash地址范围)时,将自动转向读取片外60KB(1000H-FFFFH)程序存储器空间中的程序。2.2.2控制引脚(2)EA*/VPP(EnableAddress/VoltagePulseofPrograming,31脚)EA*=0,只读取片外程序存储器中内容,读取地址范围为0000H~FFFFH,片内的4KBFlash程序存储器不起作用。VPP:引脚第二功能,对片内Flash编程,接编程电压。2.2.2控制引脚(3)ALE/PROG*(AddressLatchEnable/PROGramming,30脚)ALE:为CPU访问外部程序存储器或外部数据存储器提供地址锁存控制信号,将低8位地址锁存在片外的地址锁存器中,见图2-3。图2-3ALE作为低8位地址的锁存控制信号2.2.2控制引脚(3)ALE/PROG*(AddressLatchEnable/PROGramming,30脚)此外,单片机正常运行时,ALE端一直有正脉冲信号输出,此频率为fosc的1/6。该信号可作外部定时或触发信号使用。注意:每当AT89S51访问外部RAM或I/O时,要丢失一个ALE脉冲,所以ALE引脚的输出信号频率并不是准确的1/6fosc。如不需要ALE端输出脉冲信号,可将特殊功能寄存器AUXR(地址8EH,本章后面介绍)的第0位(ALE禁止位)置1,来禁止ALE操作,但在执行访问外部程序存储器或外部数据存储器操作时,ALE仍然有效,即ALE禁止位不影响对单片机对外部存储器的访问。2.2.2控制引脚(3)ALE/PROG*(AddressLatchEnable/PROGramming,30脚)PROG*:引脚第二功能,对片内Flash编程,加编程脉冲输入。(4)PSEN*(ProgramStrobeENable,29脚)片外程序存储器读选通信号,低有效。2.2.3并行I/O口引脚(1)P0口:P0.7~P0.0脚,8位,漏极开路的双向I/O口当外扩存储器及I/O接口芯片时,P0口作为低8位地址总线及数据总线的分时复用端口。P0口也可作通用的I/O口用,需加上拉电阻,这时为准双向口。如作输入,应先向端口写1。可驱动8个LS型TTL负载。(2)P1口:P1.7~P1.0脚,8位,准双向I/O口,内有上拉电阻。准双向I/O口,作通用I/O输入时,应先向端口锁存器写1,P1口可驱动4个LS型TTL负载。2.2.3并行I/O口引脚P1.5/MOSI、P1.6/MISO和P1.7/SCK也可用于对片内Flash存储器串行编程和校验,分别是串行数据输入、输出和移位脉冲引脚。(3)P2口:P2.7~P2.0脚,8位,准双向I/O口,具有内部上拉电阻。当AT89S51扩展外部存储器及I/O口时,P2口作为高8位地址总线输出高8位地址。P2口也可作普通I/O使用。当作通用I/O输入时,应先向端口输出锁存器写1。可驱动4个LS型TTL负载。(4)P3口:P3.7~P3.0脚,8位,准双向I/O口,具有内部上拉电阻。2.2.3并行I/O口引脚可作为通用的I/O口使用。作为通用I/O输入,应先向端口输出锁存器写入1。可驱动4个LS型TTL负载。P3口还可提供第二功能。第二功能定义如表2-1,应熟记。综上所述,P0口作为总线口时,为双向口,作通用I/O用时,为准双向口,需加上拉电阻。P1、P2、P3口均为准双向口。2.2.3并行I/O口引脚2.2.3并行I/O口引脚注意:准双向口与双向口的差别。准双向口仅有两个状态。而P0口作为总线使用,口线内无上拉电阻,处于高阻“悬浮”态。故为双向三态I/O口。为什么P0口要有高阻“悬浮”态?因为P0口作为数据总线用时,多个数据源都挂在数据总线上,当P0口不需要读写其他数据源时,需要与数据总线高阻“悬浮”隔离。准双向I/O口则无高阻“悬浮”态。另外,准双向口作通用I/O输入使用时,需先向该口先写入“1”。准双向口与双向口的差别,学习2.5节的P0~P3口内部结构后,会有更深入了解。至此,40只引脚已介绍,应熟记每一引脚功能,对应用系统硬件电路设计十分重要。目录CONTENTS2.1AT89S51单片机的硬件组成2.2AT89S51的引脚功能2.3AT89S51的CPU2.4AT89S51存储器的结构2.5AT89S51的并行I/O端口2.6时钟电路与时序2.7复位操作和复位电路2.8看门狗定时器(WDT)的使用2.9低功耗节电模式2.10AT89S52单片机与AT89S51单片机的差异2.3.1运算器可对8位变量逻辑运算(与、或、异或、循环、求补和清零),还可算术运算(加、减、乘、除)。ALU还有位操作功能,对位变量进行位处理,如置“1”、清“0”、求补、测试转移及逻辑“与”、“或”等。1.算术逻辑运算单元ALU2.3.1运算器累加器A是CPU中使用频繁的一个8位寄存器,在使用汇编语言编程时,有些场合必须写为Acc。作用如下:(1)ALU单元的输入数据源之一,又是ALU运算结果存放单元。(2)数据传送大多都通过累加器A,相当于数据的中转站。为解决“瓶颈堵塞”问题,AT89S51增加了一部分可不经过累加器的传送指令。A的进位标志Cy是特殊的,因为它同时又是位处理机的位累加器。2.累加器A2.3.1运算器PSW(ProgramStatusWord)位于片内特殊功能寄存器区,字节地址D0H。包含了程序运行状态的信息,其中4位保存当前指令执行后的状态,供程序查询和判断。格式如图2-4。3.程序状态字寄存器PSWPSW(图2-4PSW的格式)2.3.1运算器PSW中各位功能:(1)Cy(PSW.7)进位标志位可写为C。在算术和逻辑运算时,若有进位/借位,Cy=1;否则,Cy=0。在位处理器中,它是位累加器。(2)Ac(PSW.6)辅助进位标志位在BCD码运算时,用作十进位调整。即当D3位向D4位产生进位或借位时,Ac=1;否则,Ac=0。(3)F0(PSW.5)用户设定标志位由用户使用的一个状态标志位,可用指令来使它置“1”或清“0,控制程序的流向。用户应充分利用。3.程序状态字寄存器PSW2.3.1运算器(4)RS1、RS0(PSW.4、PSW.3)4组工作寄存器区选择。选择片内RAM区