资源描述
*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,1,第,2,章,AT89S51,单片机 硬件结构,2,第,2,章 目录,2.1 AT89S51,单片机的硬件组成,2.2 AT89S51,的引脚功能,2.2.1,电源及时钟引脚,2.2.2,控制引脚,2.2.3,并行,I/O,口引脚,2.3 AT89S51,的,CPU,2.3.1,运算器,2.3.2,控制器,2.4 AT89S51,存储器的结构,2.4.1,程序存储器空间,2.4.2,数据存储器空间,2.4.3,特殊功能寄存器(,SFR,),2.4.4,位地址空间,2.5 AT89S51,的并行,I/O,端口,2.5.1 P0,口,2.5.2 P1,口,2.5.3 P2,口,2.5.4 P3,口,2.5.5 P1,P3,口驱动,LED,发光二极管,3,2.6,时钟电路与时序,2.6.1,时钟电路设计,2.6.2,机器周期、指令周期与指令时序,2.7,复位操作和复位电路,2.7.1,复位操作,2.7.2,复位电路设计,2.8,低功耗节电模式,2.8.1,空闲模式,2.8.2,掉电运行模式,2.8.3,掉电和空闲模式下的,WDT,4,AT89S51,的片内硬件基本结构、引脚功能、存储器结构、特殊功能寄存器功能、,4,个并行,I/O,口的结构和特点,,复位电路和时钟电路的设计,节电工作模式。,目的:,本章,学习,,为,AT89S51,系统的应用,设计,打下基础。,在原理和结构上,单片机把微机的许多概念、技术与特点都继承下来。用学习微机的思路来学习单片机。,内容概要,5,6,2.1 AT89S51,单片机的硬件组成,片内硬件组成结构如,图,2-1,所示。把作为控制应用所必需的基本功能部件都集成在一个尺寸有限的集成电路芯片上。,有如下,功能部件,和,特性,:,(,1,),8,位微处理器(,CPU,);,(,2,)数据存储器(,128B RAM,);,(,3,)程序存储器(,4KB Flash ROM,);,(,4,),4,个,8,位可编程并行,I/O,口(,P0,口、,P1,口、,P2,口、,P3,口);,(,5,),1,个全双工的异步串行口;,(,6,),2,个可编程的,16,位定时器,/,计数器;,7,图,2-1,AT89S51,单片机片内结构,8,(,7,),1,个看门狗定时器;,(,8,)中断系统具有,5,个中断源、,5,个中断向量;,(,9,)特殊功能寄存器(,SFR,),26,个;,(,10,)低功耗模式有,空闲模式,和,掉电模式,,且具有掉电模式,下的中断恢复模式;,(,11,),3,个程序加密锁定位,。,与,AT89C51,相比,,AT89S51,有更突出的优点,:,(,1,)增加在线可编程功能,ISP,(,In System Program,),,字节,和,页编程,,现场程序调试和修改更加方便灵活;,(,2,),数据指针,增加到,两个,,方便了对片外,RAM,的访问过程;,(,3,),增加,了,看门狗定时器,,提高了系统的抗干扰能力;,(,4,),增加,断电标志,;,(,5,)增加,掉电状态,下的,中断恢复模式,。,片内各功能部件通过片内单一总线连接而成(见,图,2-1,),,基本结构,依旧是,CPU,加上外围芯片的传统微机结构。,CPU,对各种功能部件的控制,是采用,特殊功能寄存器,(,SFR,,,Special Function Register,)的集中控制方式。,下面,介绍图,2-1,中,片内各功能部件,。,(,1,),CPU,(微处理器),8,位的,CPU,,与通用,CPU,基本相同,同样包括了,运算器,和,控制器,两大部分,还有面向控制的,位处理功能,。,9,(,2,)数据存储器(,RAM,),片内为,128B,(,52,子系列,为,256B,),片外最多可扩,64KB,。片内,128B,的,RAM,以高速,RAM,的形式集成,可加快单片机运行的速度,和,降低功耗。,(,3,)程序存储器(,Flash ROM,),片内集成有,4KB,的,Flash,存储器(,AT89S52,则,为,8KB,;,AT89C55,片内,20KB,),如片内容量不够,片外可外扩至,64KB,。,(,4,)中断系统,具有,6,个,中断源,,2,级中断优先权。,(,5,)定时器,/,计数器,2,个,16,位定时器,/,计数器(,52,子系列有,3,个),,4,种,工作方式。,10,(,6,),1,个看门狗定时器,WDT,当,CPU,由于干扰使程序陷入死循环或跑飞时,,,WDT,可,使程序恢复正常运行。,(,7,)串行口,1,个全双工的异步串行口,,4,种工作方式。可进行串行通信,扩展并行,I/O,口,还可与多个单片机构成多机系统。,(,8,),P1,口、,P2,口、,P3,口、,P0,口,4,个,8,位并行,I/O,口。,(,9,)特殊功能寄存器(,SFR,),26,个,对片内各功能部件管理、控制和监视。是各个功能部件的,控制寄存器,和,状态寄存器,映射在片内,RAM,区,80H,FFH,内。,11,AT89S51,完全兼容,AT89C51,,在充分保留原来软、硬件条件下,完全可以用,AT89S51,直接代换。,2.2 AT89S51,的引脚功能,先了解引脚,牢记各引脚的功能。,AT89S51,与,51,系列中各种型号芯片的引脚互相兼容。目前多采用,40,只,引脚,双列直插,,,如,图,2-2,所示,。,引脚按其功能可分为如下,3,类,:,(,1,)电源及时钟引脚,V,CC,、,V,SS,;,XTAL1,、,XTAL2,。,(,2,)控制引脚,、,ALE/,、,/,V,PP,、,RST,(,RESET,),(,3,),I/O,口引脚,P0,、,P1,、,P2,、,P3,,为,4,个,8,位,I/O,口,12,2.2.1,电源及时钟引脚,1,电源引脚,(,1,),V,CC,(,40,脚):,+5V,电源,。,(,2,),V,SS,(,20,脚):,数字地,。,13,图,2-2,AT89S51,双列直插封装方式的引脚,2,时钟引脚,(,1,),XTAL1,(,19,脚):,片内振荡器反相放大器和时钟发生器电路输入端。用片内振荡器时,该脚接外部石英晶体和微调电容。,外接时钟源时,,该脚接外部时钟振荡器的信号。,(,2,),XTAL2,(,18,脚):,片内振荡器反相放大器的输出端。当使用,片内振荡器,,该脚连接外部石英晶体和微调电容。当使用,外部时钟源,时,本脚,悬空,。,2.2.2,控制引脚,(,1,),RST(RESET,,,9,脚,),复位信号输入,在引脚加上,持续时间大于,2,个机器周期的高电平,,可使单片机,复位,。正常工作,此脚,电平,应,0.5V,。,14,当看门狗定时器溢出输出时,该脚将输出长达,96,个时钟振荡周期,的,高电平,。,(,2,),/VPP,(Enable Address/Voltage Pulse of,Programing,,,31,脚,),:,引脚,第一功能,:外部程序存储器访问允许控制端。,=1,,在,PC,值不超出,0FFFH,(即不超出片内,4KB Flash,存储器的地址范围)时,单片机读,片内程序存储器,(,4KB,)中的程序,但,PC,值超出,0FFFH,(即超出片内,4KB Flash,地址范围)时,将,自动转向读取片外,60KB,(,1000H-FFFFH,)程序存储器空间中的程序。,15,=0,,,只读取,外部的程序存储器,中的内容,读取的地址范围为,0000H,FFFFH,,片内的,4KB Flash,程序存储器不起作用。,V,PP,:,引脚,第二功能,,对片内,Flash,编程,接,编程电压,。,(,3,),ALE/,(,Address Latch Enable/,PROGramming,,,30,脚),ALE,为,CPU,访问外部程序存储器或外部数据存储器提供,地址锁存信号,,将,低,8,位地址,锁存在片外的地址锁存器中。,16,此外,单片机,正常运行,时,,ALE,端,一直有正脉冲信号输出,,此频率为时钟振荡器频率,f,osc,的,1/6,。可用作外部定时或触发信号。,注意,,每当,AT89S51,访问外部,RAM,时(执行,MOVX,类指令),要,丢失一个,ALE,脉冲,。,如需要,可将,特殊功能寄存器,AUXR,(地址为,8EH,,将在后面介绍)的,第,0,位,(,ALE,禁止位)置,1,,来,禁止,ALE,操作,,但执行访问外部程序存储器或外部数据存储器指令,“,MOVC,”,或,“,MOVX,”,时,,ALE,仍然有效。,即,ALE,禁止位不影响对外部存储器的访问。,:,引脚,第二功能,,对片内,Flash,编程,为,编程脉冲输入,脚。,17,(,4,),(,Program Strobe,ENable,,,29,脚),片外程序存储器读选通信号,低,电平,有效。,2.2.3,并行,I/O,口引脚,(,1,),P0,口:,8,位,漏极开路的双向,I/O,口,当,外扩存储器及,I/O,接口芯片时,,,P0,口作为低,8,位地址总线及数据总线的,分时复用,端口。,P0,口也可,用,作通用的,I/O,口,,需加上拉电阻,这时为,准双向口,。作为通用,I/O,输入,应先向端口写入,1,。可驱动,8,个,LS,型,TTL,负载。,(,2,),P1,口:,8,位,准双向,I/O,口,具有内部上拉电阻。,准双向,I/O,口,作为通用,I/O,输入时,应先向端口锁存器写,1,。,18,P1,口可驱动,4,个,LS,型,TTL,负载。,P1.5/MOSI,、,P1.6/MISO,和,P1.7/SCK,可用于对片内,Flash,存储器串行编程和校验,它们分别是串行数据输入、输出和移位脉冲引脚。,(,3,),P2,口:,8,位,,准双向,I/O,口,具有内部上拉电阻。,当,AT89S51,扩展外部存储器及,I/O,口时,,P2,口作为,高,8,位地址总线,用,输出高,8,位地址。,19,P2,口,也可作为普通的,I/O,口,使用。当作为通用,I/O,输入时,,应先向端口输出锁存器写,1,。,P2,口可驱动,4,个,LS,型,TTL,负载,。,(,4,),P3,口:,8,位,,准双向,I/O,口,,具有内部上拉电阻。,可作为,通用的,I/O,口使用,。作为,通用,I/O,输入,,应先向端口输出锁存器写入,1,。可驱动,4,个,LS,型,TTL,负载。,P3,口还可提供,第二功能,。第二功能定义,见,表,2-1,,应熟记。,20,21,综上所述,,P0,口,可,作为总线,口,,为双向口。作为通用的,I/O,口使用时,为准双向口,这时需加上拉电阻。,P1,口、,P2,口、,P3,口,均为准双向口。,注意,:,准双向口与双向口的差别,。准双向口仅有两个状态。而,P0,口作为总线使用,口线内无上拉电阻,处于高阻,“,悬浮,”,态。故,P0,口为双向三态,I/O,口。,为什么,P0,口要有高阻,“,悬浮,”,态?,准双向,I/O,口则无高阻的,“,悬浮,”,状态。,另外,,准双向口,作通用,I/O,的输入口使用时,,一定要向该口先写入,“,1,”,。,以上的准双向口与双向口的差别,读者在阅读,2.5,节后,将会有深刻的理解。,22,至此,,40,个,引脚已介绍,完,,应熟记每一引脚功能对应用系统硬件电路设计十分重要。,2.3 AT89S51,的,CPU,由图,2-1,可见,,CPU,由,运算器,和,控制器,构成。,2.3.1,运算器,对操作数进行算术、逻辑和位操作运算。主要包括算术逻辑运算单元,ALU,、累加器,A,、位处理器、程序状态字寄存器,PSW,及两个暂存器等。,1,算术逻辑运算单元,ALU,可对,8,位变量,逻辑,运算,(,与、或、异或、循环、求补和清零,),,还可,算术运算,(,加、减、乘、除,),23,ALU,还有位操作功能,对位变量进行位处理,如置,“,1,”,、清,“,0,”,、求补、测试转移及逻辑,“,与,”,、,“,或,”,等,。,2,累加器,A,使用最频繁的寄存器,,可,写为,Acc,。,“,A,”,与,“,Acc,”,书写上的差别,将在第,3,章介绍。,作用如下:,(,1,),ALU,单元的输入数据源之一,又是,ALU,运算结果存放单元,。,(,2,)数据传送大多都通过累加器,A,,相当于数据的中转站。为解决,“,瓶颈堵塞,”,问题,,AT89S51,增加了一部分可以不经过累加器的传送指令。,24,A,的进位标志,Cy,是特殊的,因为它同时又是,位处理机的,位累加器,3,程序状态字寄存器,PSW,PSW,(,Program Status Word,)位于片内特殊功能寄存器区,,字节地址为,D0H,。,包含了,程序运行状态的信息,,其中,4,位保存当前指令执行后的状态,供程序查询和判断。,格式如图,2-3,所示,。,图,2-3,PSW,的格式,25,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,,,控制程序的流向。用户应充分利用。,26,(,4,),RS1,、,RS0,(,PSW.4,、,PSW.3,),4,组工作寄存器区选择,选择片内,RAM,区中的,4,组工作寄存器区中的某一组为当前工作寄存区,见,表,2-2,。,(,5,),OV,(,PSW.2,)溢出标志位,当执行算术指令时,用来指示运算结果是否产生溢出。如果结果产生溢出,,OV=1,;否则,,OV=0,。,(,6,),PSW.1,位,保留位,(,7,),P,(,PSW.0,)奇偶标志位,指令执行完,累加器,A,中,“,1,”,的个数,是,奇数,还是,偶数,。,27,P=1,,,表示,A,中,“,1,”,的个数为,奇数,。,P=0,,表示,A,中,“,1,”,的个数为,偶数,。,此标志位对串行通信有重要的意义,,,常用,奇偶检验,的方法来检验数据串行传输的可靠性。,28,29,2.3.2,控制器,任务,识别指令,并根据指令的性质控制单片机各功能部件,从而保证单片机各部分能自动协调地工作。,控制器包括,:,程序计数器、指令寄存器、指令译码器、定时及控制逻辑电路等。功能是控制指令的读入、译码和执行,从而对各功能部件进行定时和逻辑控制。,程序计数器,PC,是一个独立的,16,位计数器,不可访问。单片机复位时,,PC,中内容为,0000H,,从程序存储器,0000H,单元取指令,开始执行程序。,PC,工作过程是,:,CPU,读指令时,,PC,的内容作为所取指令的地址,程序存储器按此地址输出指令字节,同时,PC,自动加,1,。,PC,中内容变化轨迹,决定程序流程。当,顺序执行,程序时自动加,1,;执行,转移程序,或,子程序、中断子程序调用,时,自动将其内容更改成所要转移的目的地址。,PC,的计数宽度,决定了程序存储器的地址范围。,PC,为,16,位,故可对,64KB,(,=2,16,B,),寻址。,2.4 AT89S51,存储器的结构,存储器,的,结构特点之一是将程序存储器和数据存储器分开,(哈佛结构),,并有,各自,的访问指令。,存储器空间可分为,4,类,。,30,.,程序存储器空间,片内和片外两部分。,片内,4KB,Flash,,编程和擦除完全是电气实现。可用通用编程器对其编程,也可,在线编程,。,当片内,4KB Flash,存储器不够用时,可片外扩展,最多可扩展至,64KB,程序存储器。,.,数据存储器空间,片内,与,片外,两部分。,片内有,128 B RAM,(,52,子系列为,256B,),。,片内,RAM,不够用时,在,片外可扩展至,64KB RAM,。,31,.,特殊功能寄存器,SFR,(,Special Function Register,),片内各功能部件的控制寄存器及状态寄存器。,SFR,综合反映了整个单片机基本系统内部实际的工作状态及工作方式。,.,位地址空间,共有,211,个,可寻址位,构成了位地址空间。它们位于内部,RAM,(共,128,位)和特殊功能寄存器区(共,83,位)中。,2.4.1,程序存储器空间,存放程序和表格之类的固定常数。片内为,4KB,的,Flash,,地址为,0000H,0FFFH,。,16,位地址线,可外扩的程序存储器空间最大为,64KB,,地址为,0000H,FFFFH,。,使用,时,应注意以下问题,:,32,(,1,)分为,片内,和,片外,两部分,,访问片内的还是片外的程序存储器,由,引脚电平,确定。,=1,时,,CPU,从片内,0000H,开始取指令,,当,PC,值没有超出,0FFFH,时,只访问片内,Flash,存储器,,当,PC,值超出,0FFFH,自动转向读片外程序存储器空间,1000H,FFFFH,内的程序。,=0,时,只能执行片外程序存储器(,0000H,FFFFH,)中的程序。不理会片内,4KB Flash,存储器。,(,2,)程序存储器某些固定单元,用于各中断源中断服务程序入口。,33,34,64KB,程序存储器空间中有,5,个特殊单元,分别对应于,5,个中断源,的中断入口地址,见,表,2-3,。,通常这,5,个中断入口,地址处,都放一条跳转指令,跳向对应的,中断服务子程序,而不是直接存放中断服务子程序,。,2.4.2,数据存储器空间,片内与片外两部分。,.,片内数据存储器,片内数据存储器(,RAM,)共,128,个单元,字节地址,为,00H,7FH,。,图,2-4,为片内数据存储器的结构。,35,图,2-4,AT89S51,片内,RAM,结构,00H,1FH,的,32,个单元,是,4,组通用工作寄存器区,每区包含,8B,,为,R7,R0,。可,通过指令改变,RS1,、,RS0,两位,来选择。,20H,2FH,的,16,个,单元的,128,位可位寻址,也可字节寻址。,30H,7FH,的单元只能字节寻址,用作存数据以及作为堆栈区。,.,片外数据存储器,当片内,128B,的,RAM,不够用时,需外扩,最多可外扩,64KB,的,RAM,。,注意,片内,RAM,与片外,RAM,两个空间是相互独立的,,片内,RAM,与片外,RAM,的低,128B,的地址是相同的,,但由于使用的是不同的访问指令,所以不会发生冲突。,36,2.4.3,特殊功能寄存器(,SFR,),采用特殊功能寄存器集中控制,各功能部件,。,特殊功能寄存器,映射在片内,RAM,的,80H,FFH,区域,中,共,26,个,。,表,2-4,SFR,的名称及其分布。有些还可位寻址,位地址,见,表,2-4,。,与,AT89C51,相比,,新增,5,个,SFR,:,DP1L,、,DP1H,、,AUXR,、,AUXR1,和,WDTRST,,已在,表,2-4,中标出。,凡是,可位寻址的,SFR,,字节地址末位只能是,0H,或,8H,。另外,若读,/,写,未,定义单元,将得到一个不确定的随机数。,下面介绍某些,SFR,,余下的,SFR,将在后,面,介绍。,37,38,39,1,堆栈指针,SP,指示堆栈顶部在内部,RAM,块中的位置。,堆栈结构,向上生长型,。单片机,复位,后,,SP,为,07H,,使得堆栈实际上从,08H,单元开始,,由于,08H,1FH,单元分别是属于,1,3,组的工作寄存器区,,最好在复位,后,把,SP,值改置为,60H,或更大的值,,避免堆栈与工作寄存器冲突。,堆栈是为,子程序调用,和,中断操作,而设,,,主要,用来,保护断点,和,现场,。,(,1,)保护断点。,无论是子程序调用操作还是中断服务子程序调用,最终都要返回主程序。应预先把主程序的断点在堆栈中保护起来,为程序正确返回做准备。,40,(,2,)现场保护。,执行子程序或中断服务子程序时,要用到一些寄存器单元,会破坏原有内容。要把有关寄存器单元的内容保存起来,送入堆栈,这就是所谓的,“,现场保护,”,。,两种操作:,数据压入,(,PUSH,),堆栈,,数据弹出,(,POP,),堆栈。数据压入堆栈,,SP,自动加,1,;数据弹出堆栈,,SP,自动减,1,。,2,寄存器,B,为执行乘法和除法,而,设。在不执行乘、除法操作的情况下,可把它当作一个普通寄存器来使用。,41,42,乘法,,两乘数分别在,A,、,B,中,执行乘法指令后,乘积在,BA,中,除法,,被除数取自,A,,除数取自,B,,商存放在,A,中,余数存,B,中。,3,AUXR,寄存器,AUXR,是辅助寄存器,其格式如,图,2-5,所示,:,图,2-5,AUXR,寄存器的格式,43,其中,:,DISALE,:,ALE,的禁止,/,允许位,。,0,:,ALE,有效,发出脉冲;,1,:,ALE,仅在执行,MOVC,和,MOVX,类指令时有效,不访问外部存储器时,,ALE,不输出脉冲信号,。,DISRTO,:,禁止,/,允许,WDT,溢出时的复位输出,。,0,:,WDT,溢出时,在,RST,引脚输出一个高电平脉冲;,1,:,RST,引脚仅为输入脚。,WDIDLE,:,WDT,在空闲模式下的禁止,/,允许位。,0,:,WDT,在空闲模式下继续计数;,1,:,WDT,在空闲模式下暂停计数。,44,4.,数据指针,DPTR0,和,DPTR1,双数据指针寄存器,,,便于访问,数据存储器,。,DPTR0,:,AT89C51,单片机,原有,的数据指针,;,DPTR1,:,新增加,的数据指针。,AUXR1,的,DPS,位,用于,选择,两个数据指针,。当,DPS=0,时,选用,DPTR0,;当,DPS=1,时,选用,DPTR1,。,数据指针,可作为一个,16,位寄存器来用,也可作为两个独立的,8,位寄存器,DP0H,(或,DP1H,)和,DP0L,(或,DP1L,)来用。,45,5.AUXR1,寄存器,AUXR1,是辅助寄存器,格式如,图,2-6,所示,:,DPS,:,数据指针寄存器选择位。,0,:,选择数据指针寄存器,DPTR0,;,1,:,选择数据指针寄存器,DPTR1,。,图,2-6,AUXR1,寄存器的格式,6.,看门狗定时器,WDT,WDT,包含一个,14,位计数器,和,看门狗定时器复位寄存器,(,WDTRST,)。,当,CPU,由于干扰,程序陷入死循环或跑飞状态时,,WDT,提供了一种使程序恢复正常运行的有效手段。,有关,WDT,在抗干扰设计中的应用以及低功耗模式下运行的状态,将在相应的章节中具体介绍。,上面介绍的特殊功能寄存器,,除了前两个,SP,和,B,以外,其余的均为,AT89S51,在,AT89C51,基础上,新增加的,SFR,。,46,2.4.4,位地址空间,211,个寻址位的位地址,位地址范围为,00H,FFH,,其中,00H,7FH,这,128,位处于,片内,RAM,字节地址,20H,2FH,单元中,如,表,2-5,所示。其余的,83,个可寻址位,分布在,特殊功能寄存器,SFR,中,,见,表,2-6,。,可被位寻址的,特殊寄存器,有,11,个,,共有位地址,88,个,,5,个位未用,其余,83,个位的位地址离散地分布于片内数据存储器区字节地址为,80H,FFH,的范围内,其,最低的位地址等于其字节地址,,且其字节地址的,末位都为,0H,或,8H,。,47,48,49,特殊功能,寄存器,位 地 址,字 节地 址,D7,D6,D5,D4,D3,D2,D1,D0,B,F7H,F6H,F5H,F4H,F3H,F2H,F1H,F0H,F0H,Acc,E7H,E6H,E5H,E4H,E3H,E2H,E1H,E0H,E0H,PSW,D7H,D6H,D5H,D4H,D3H,D2H,D1H,D0H,D0H,IP,BCH,BBH,BAH,B9H,B8H,B8H,P3,B7H,B6H,B5H,B4H,B3H,B2H,B1H,B0H,B0H,IE,AFH,ACH,ABH,AAH,A9H,A8H,A8H,P2,A7H,A6H,A5H,A4H,A3H,A2H,A1H,A0H,A0H,SCON,9FH,9EH,9DH,9CH,9BH,9AH,99H,98H,98H,P1,97H,96H,95H,94H,93H,92H,91H,90H,90H,TCON,8FH,8EH,8DH,8CH,8BH,8AH,89H,88H,88H,P0,87H,86H,85H,84H,83H,82H,81H,80H,80H,表,2-6 SFR,中的位地址分布,作为对,AT89S51,存储器结构的总结,,图,2-7,为,各类存储器的结构图。,从图中可,清楚看出各类存储器在存储器空间的位置。,50,图,2-7,AT89S51,单片机的存储器结构,2.5 AT89S51,的并行,I/O,端口,4,个双向的,8,位并行,I/O,端口,分别记为,P0,、,P1,、,P2,和,P3,,其中,输出锁存器,属于,特殊功能寄存器,。端口的每一位均由输出锁存器、输出驱动器和输入缓冲器组成,,4,个端口按,字节输入,/,输出,外,,也,可,位寻址,。,2.5.1 P0,口,P0,口是一个,双功能,的,8,位并行端口,,字节地址,为,80H,,位地址为,80H,87H,。端口的各位具有完全相同但又相互独立的电路结构,,P0,口,某一位的,位电路结构,如,图,2-8,所示,。,51,52,图,2-8,P0,口某一位的位电路结构,1,位电路结构,P0,口某一位的电路包括:,(,1,)一个数据输出的锁存器,用于数据位的锁存。,(,2,)两个三态的数据输入缓冲器,分别是用于,读锁存器数据,的输入缓冲器,BUF1,和,读引脚数据,的输入缓冲器,BUF2,。,(,3,)一个多路转接开关,MUX,,它的一个输入来自锁存器的,端,另一个输入为地址,/,数据信号的反相输出。,MUX,由,“,控制,”,信号控制,实现锁存器的输出和地址,/,数据信号之间的转接。,(,4,)数据输出的,控制和驱动电路,,由,两个场效应管,(,FET,)组成。,53,2,工作过程分析,(,1,),P0,口用作地址,/,数据总线,外扩存储器或,I/O,时,,P0,口作为单片机系统,复用的,地址,/,数据总线使用。,当作为,地址或数据输出,时,,“,控制,”,信号为,1,,硬件自动使转接开关,MUX,打向上面,接通反相器的输出,同时使与门处于开启状态。,当,输出的地址,/,数据信息为,1,时,与门输出为,1,,上方的场效应管导通,下方的场效应管截止,,P0.x,引脚输出为,1,;,当输出的地址,/,数据信息为,0,时,,上方的场效应管,截止,,,下方的场效应管,导通,,,P0.x,引脚输出为,0,。,54,输出电路是,上、下两个场效应管形成的,推拉式结构,,大大提高了负载能力,上方的场效应管这时起到,内部上拉电阻,的作用。,当,P0,口作为,数据,输入时,,仅从外部存储器(或,I/O,)读入信息,对应的,“,控制,”,信号为,0,,,MUX,接通锁存器的,端。,由于,P0,口作为地址,/,数据复用方式访问外部存储器时,,CPU,自动向,P0,口写入,FFH,,使下方场效应管截止,上方场效应管由于控制信号为,0,也截止,从而,保证数据信息的,高阻抗,输入,,从外部存储器输入的数据信息直接由,P0.x,引脚通过输入缓冲器,BUF2,进入内部总线。,55,具有,高阻抗输入的,I/O,口,应具有,高电平,、,低电平,和,高阻抗,3,种状态,的端口。因此,,P0,口作为地址,/,数据总线使用时是一个真正的双向端口,简称,双向口,。,(,2,),P0,口用作通用,I/O,口,当,P0,口不作为系统的地址,/,数据总线使用时,此时,P0,口也可作为通用的,I/O,口使用。,作通用的,I/O,口时,对应的,“,控制,”,信号为,0,,,MUX,打向下面,接通锁存器的,端,,“,与门,”,输出为,0,,上方场效应管截止,形成的,P0,口输出电路为漏极开路输出。,P0,口作输出口,时,来自,CPU,的,“,写,”,脉冲加在,D,锁存器的,CP,端,内部总线上的数据写入,D,锁存器,并由引脚,P0.x,输出。,56,当,D,锁存器为,1,时,,端为,0,,下方场效应管截止,输出为漏极开路,此时,必须外接上拉电阻才能有高电平输出;当,D,锁存器为,0,时,下方场效应管导通,,P0,口输出为低电平。,P0,口作输入口,使用时,有,两种读入方式,:,“,读锁存器,”,和,“,读引脚,”,。,当,CPU,发出,“,读锁存器,”,指令时,,锁存器的状态,由,Q,端经上方的三态缓冲器,BUF1,进入内部总线;,当,CPU,发出,“,读引脚,”,指令,时,锁存器的输出状态,=1,(即,端,为,0,),而使下方场效应管截止,,引脚的状态,经下方的三态缓冲器,BUF2,进入内部总线。,57,3,P0,口的特点,P0,口为,双功能口,地址,/,数据复用,口和,通用,I/O,口。,(,1,),当,P0,口用作,地址,/,数据复用,口时,是一个,真正的双向口,,,输出低,8,位地址和输出,/,输入,8,位数据。,(,2,),当,P0,口用作,通用,I/O,口时,由于需要在片外接上拉电阻,端口不存在高阻抗(悬浮)状态,因此是一个,准双向口,。,为保证引脚信号的,正确读入,,应,首先向锁存器写,1,。单片机复位后,锁存器自动被置,1,;当,P0,口由原来输出转变为输入时,应先置锁存器为,1,,方可执行输入操作。,58,P0,口,大多作为地址,/,数据复用口,使用,就不能再作为通用,I/O,口使用。,2.5.2 P1,口,单功能的,I/O,口,,字节地址为,90H,,位地址为,90H,97H,。,P1,口某一位的,位电路结构,如,图,2-9,所示,。,1,位电路结构,P1,口位电路结构由以下,三部分组成,:,(,1,)一个数据输出锁存器,用于输出数据位的锁存。,59,图,2-9,P1,口某一位的位电路结构,60,(,2,)两个三态的数据输入缓冲器,BUF1,和,BUF2,,分别用于读锁存器数据和读引脚数据的输入缓冲。,(,3,)数据输出驱动电路,由一个场效应管(,FET,)和一个片内上拉电阻组成。,2,工作过程分析,P1,口,只能作为通用的,I/O,口,使用。,(,1,),P1,口作,输出口,时,若,CPU,输出,1,,,Q=1,,,=0,,场效应管截止,,P1,口引脚的输出为,1,;若,CPU,输出,0,,,Q=0,,,=1,,场效应管导通,,P1,口引脚的输出为,0,。,61,(,2,),P1,口作为,输入口,时,分为,“,读锁存器,”,和,“,读引脚,”,两种方式。,“,读锁存器,”,时,,锁存器的输出端,Q,的状态经输入缓冲器,BUF1,进入内部总线;,“,读引脚,”,时,,,先向锁存器写,1,,使场效应管截止,,P1.x,引脚上的电平经输入缓冲器,BUF2,进入内部总线。,3,P1,口的特点,由于内部上拉电阻,,无,高阻抗输入,状态,故为,准双向口,。,P1,口,“,读引脚,”,输入,时,必须,先向锁存器写入,1,。,2.5.3 P2,口,双功能口,,字节地址,为,A0H,,,位地址,为,A0H,A7H,。,P2,口某一位的,位电路结构,如,图,2-10,所示,。,62,63,图,2-10,P2,口某一位的位电路结构,1,位电路结构,P2,口,某一位的电路,包括:,(,1,)一个数据输出锁存器,用于输出数据位的锁存。,(,2,)两个三态数据输入缓冲器,BUF1,和,BUF2,,分别用于读锁存器数据和读引脚数据的输入缓冲。,(,3,)一个多路转接开关,MUX,,一个输入是锁存器的,Q,端,另一个输入是高,8,位地址。,(,4,)输出驱动电路,由场效应管(,FET,)和内部上拉电阻组成。,64,2,工作过程分析,(,1,),P2,口用作,地址总线,在控制信号作用下,,MUX,与,“,地址,”,接通。当,“,地址,”,为,0,时,场效应管导通,,P2,口引脚输出,为,0,;当,“,地址,”,线为,1,时,场效应管截止,,P2,口引脚输出,1,。,(,2,),P2,口用作,通用,I/O,口,在内部控制信号作用下,,MUX,与 锁存器的,Q,端接通。,CPU,输出,1,时,,Q=1,,场效应管截止,,P2.x,引脚输出,1,;,CPU,输出,0,时,,Q=0,,场效应管导通,,P2.x,引脚输出,0,。,65,P2,口输入,时,分,“,读锁存器,”,和,“,读引脚,”,两种方式,:,“,读锁存器,”,时,,,Q,端信号经输入缓冲器,BUF1,进入内部总,线,“,读引脚,”,时,,,先向锁存器写,1,,使场效应管截止,,P2.x,引脚上的电平经输入缓冲器,BUF2,进入内部总线。,3,P2,口的特点,作为地址输出线,时,,P2,口高,8,位地址,,P0,口输出的低,8,位地址寻址,64KB,地址空间。,作为通用,I/O,口,时,,P2,口为准双向口。功能与,P1,口一样。,一般情况下,,P2,口,大多作为高,8,位地址总线口,使用,这时就不能再作为通用,I/O,口。,66,2.5.4 P3,口,由于,引脚数目有限,,在,P3,口,增加了第二功能,。每,1,位都可以分别定义为第二输入功能或第二输出功能。,P3,口,字节地址,为,B0H,,,位地址,B0H,B7H,。,P3,口某一位的位电路结构,见,图,2-11,。,1,位电路结构,P3,口某一位的电路包括:,(,1,),1,个,数据输出锁存器,锁存输出数据位。,(,2,),3,个,三态数据输入缓冲器,BUF1,、,BUF2,和,BUF3,,分别用于读锁存器、读引脚数据和第二功能数据的输入缓冲。,(,3,)输出驱动,由与非门、场效应管(,FET,)和内部上拉电阻组成。,67,68,图,2-11,P3,口某一位的位电路结构,2,工作过程分析,(,1,),P3,口用作第二输入,/,输出功能,当选择第二输出功能时,该位的锁存器需要置,1,,使与非门为开启状态。,当第二输出为,1,时,场效应管截止,,P3.x,引脚输出为,1,;,当第二输出为,0,时,场效应管导通,,P3.x,引脚输出为,0,。,当选择第二输入功能时,该位的锁存器和第二输出功能端均应置,1,,保证场效应管截止,,P3.x,引脚的信息由输入缓冲器,BUF3,的输出获得。,69,(,2,),P3,口用作第一功能,通用,I/O,口,用作,第一功能通用输出,时,,第二输出功能,端应保持高电平,与非门开启。,CPU,输出,1,时,,,Q=1,,场效应管截止,,P3.x,引脚输出为,1,;,CPU,输出,0,时,,,Q=0,,场效应管导通,,P3.x,引脚输出为,0,。,用作,第一功能通用输入,时,,P3.x,位的输出锁存器和第二输出功能均应置,1,,场效应管截止,,P3.x,引脚信息通过输入,BUF3,和,BUF2,进入内部总线,完成,“,读引脚,”,操作。,当,P3,口,第一功能通用输入,时,也可执行,“,读锁存器,”,操作,此时,Q,端信息经过缓冲器,BUF1,进入内部总线。,70,3,P3,口的特点,P3,口内部,有上拉电阻,,,无,高阻抗输入态,-,准双向口,。,P3,口作为第二功能的输出,/,输入,或第一功能通用输入,均须将相应位的锁存器置,1,。实际应用中,由于复位后,P3,口锁存器自动置,1,,满足第二功能所需的条件,所以不需任何设置工作,就可以进入第二功能操作。,当,某位不作为第二功能,用时,可,作为第一功能通用,I/O,使用。,引脚输入部分有两个缓冲器,第二功能的输入信号取自缓冲器,BUF3,的输出端,第一功能的输入信号取自缓冲器,BUF2,的输出端。,71,P3,口的,第二功能定义,见,表,2-1,,读者应熟记。,2.5.5 P1,P
展开阅读全文