第2章硬件结构at89s51单片机

上传人:e****s 文档编号:243710969 上传时间:2024-09-29 格式:PPT 页数:99 大小:1.45MB
返回 下载 相关 举报
第2章硬件结构at89s51单片机_第1页
第1页 / 共99页
第2章硬件结构at89s51单片机_第2页
第2页 / 共99页
第2章硬件结构at89s51单片机_第3页
第3页 / 共99页
点击查看更多>>
资源描述
*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,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,发光二极管,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,AT89S51,的片内硬件基本结构、引脚功能、存储器结构、特殊功能寄存器功能、,4,个并行,I/O,口的结构和特点,,复位电路和时钟电路的设计,节电工作模式。,目的:,本章学习,为,AT89S51,系统的应用设计打下基础。,在原理和结构上,单片机把微机的许多概念、技术与特点都继承下来。用学习微机的思路来学习单片机。,内容概要,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,个机器周期的高电平,,可使单片机,复位,。正常工作,此脚电平应 。,14,当看门狗定时器溢出输出时,该脚将输出长达,96,个时钟振荡周期,的,高电平,。,(,2,),/VPP,(Enable Address/Voltage Pulse of Programing,,,31,脚,),:,引脚,第一功能,:外部程序存储器访问允许控制端。,=1,,在,PC,值不超出,0FFFH,(即不超出片内,4KB Flash,存储器的地址范围)时,单片机读,片内程序存储器,(,4KB,)中的程序,但,PC,值超出,0FFFH,(即超出片内,4KB Flash,地址范围)时,将,自动转向读取片外,60KB,(,1000H-FFFFH,)程序存储器空间中的程序。,=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,负载。,、和,可用于对片内,Flash,存储器串行编程和校验,它们分别是串行数据输入、输出和移位脉冲引脚。,(,3,),P2,口:,8,位,,准双向,I/O,口,具有内部上拉电阻。,当,AT89S51,扩展外部存储器及,I/O,口时,,P2,口作为,高,8,位地址总线,用,输出高,8,位地址。,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,”,。,以上的准双向口与双向口的差别,读者在阅读节后,将会有深刻的理解。,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,()进位标志位,可写为,C,。在算术和逻辑运算时,若有,进位,/,借位,,,Cy,1,;否则,,Cy,0,。在位处理器中,它是位累加器。,(,2,),Ac,()辅助进位标志位,在,BCD,码运算时,用作十进位调整。即当,D3,位向,D4,位产生进位或借位时,,Ac,1,;否则,,Ac,0,。,(,3,),F0,()用户设定标志位,由用户使用的一个状态标志位,可用指令来使它置,1,或清,0,,控制程序的流向。用户应充分利用。,26,(,4,),RS1,、,RS0,(、),4,组工作寄存器区选择,选择片内,RAM,区中的,4,组工作寄存器区中的某一组为当前工作寄存区见,表,2-2,。,(,5,),OV,()溢出标志位,当执行算术指令时,用来指示运算结果是否产生溢出。如果结果产生溢出,,OV=1,;否则,,OV=0,。,(,6,)位,保留位,(,7,),P,()奇偶标志位,指令执行完,累加器,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,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,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,,上方的场效应管导通,下方的场效应管截止,引脚输出为,1,;,当输出的地址,/,数据信息为,0,时,,上方的场效应管,截止,,,下方的场效应管,导通,,引脚输出为,0,。,54,输出电路是,上、下两个场效应管形成的,推拉式结构,,大大提高了负载能力,上方的场效应管这时起到,内部上拉电阻,的作用。,当,P0,口作为,数据,输入时,,仅从外部存储器(或,I/O,)读入信息,对应的“控制”信号为,0,,,MUX,接通锁存器的,端。,由于,P0,口作为地址,/,数据复用方式访问外部存储器时,,CPU,自动向,P0,口写入,FFH,,使下方场效应管截止,上方场效应管由于控制信号为,0,也截止,从而,保证数据信息的,高阻抗,输入,,从外部存储器输入的数据信息直接由引脚通过输入缓冲器,BUF2,进入内部总线。,具有,高阻抗输入的,I/O,口,应具有,高电平,、,低电平,和,高阻抗,3,种状态,的端口。因此,,P0,口作为地址,/,数据总线使用时是一个真正的双向端口,简称,双向口,。,(,2,),P0,口用作通用,I/O,口,当,P0,口不作为系统的地址,/,数据总线使用时,此时,P0,口也可作为通用的,I/O,口使用。,作通用的,I/O,口时,对应的“控制”信号为,0,,,MUX,打向下面,接通锁存器的 端,“与门”输出为,0,,上方场效应管截止,形成的,P0,口输出电路为漏极开路输出。,P0,口作输出口,时,来自,CPU,的“写”脉冲加在,D,锁存器的,CP,端,内部总线上的数据写入,D,锁存器,并由引脚输出。,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,口某一位的位电路结构,(,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,,使场效应管截止,引脚上的电平经输入缓冲器,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,,场效应管截止,,引脚输出,1,;,CPU,输出,0,时,,Q=0,,场效应管导通,,引脚输出,0,。,P2,口输入,时,分,“读锁存器”,和,“读引脚”,两种方式,:,“读锁存器”时,,,Q,端信号经输入缓冲器,BUF1,进入内部总线,“读引脚”时,,,先向锁存器写,1,,使场效应管截止,引脚上的电平经输入缓冲器,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,时,场效应管截止,引脚输出为,1,;,当第二输出为,0,时,场效应管导通,引脚输出为,0,。,当选择第二输入功能时,该位的锁存器和第二输出功能端均应置,1,,保证场效应管截止,引脚的信息由输入缓冲器,BUF3,的输出获得。,69,(,2,),P3,口用作第一功能,通用,I/O,口,用作,第一功能通用输出,时,,第二输出功能,端应保持高电平,与非门开启。,CPU,输出,1,时,,,Q=1,,场效应管截止,,引脚输出为,1,;,CPU,输出,0,时,,,Q=0,,场效应管导通,,引脚输出为,0,。,用作,第一功能通用输入,时,位的输出锁存器和第二输出功能均应置,1,,场效应管截止,引脚信息通过输入,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,P3,口驱动,LED,发光二极管,下面讨论,P1,P3,口与,LED,发光二极管的驱动连接问题。,P0,口与,P1,、,P2,、,P3,口相比,,P0,口的驱动能力较大,,每位可驱动,8,个,LSTTL,输入,而,P1,、,P2,、,P3,口,的每一位的驱动能力,,只有,P0,口的一半,。,当,P0,口,某位为,高电平,时,可提供,400,A,的电流;,当,P0,口某位为,低电平,()时,可提供的灌电流。,73,如低电平允许提高,灌电流可相应加大。所以,,任何一个口要想获得较大的驱动能力,只能用,低电平,输出。,例如,使用单片机的并行口,P1,P3,直接驱动,发光二极管,,电路如,图,2-12,。由于,P1,P3,内部有,30k,左右的,上拉电阻。,如,高电平,输出,,则强行从,P1,、,P2,和,P3,口输出的电流,I,d,会造成单片机端口的损坏,如,图,2-12,(,a,),所示。,如端口引脚为,低电平,,能使电流,I,d,从单片机外部流入内部,则,将大大增加流过的电流值,,如,图,2-12,(,b,),所示。,所以,当,P1,P3,口驱动,LED,发光二极管,时,应该采用低电平驱动。,74,(,a,),不恰当的连接:高电平驱动,(,b,),恰当的连接:低电平驱动,图,2-12,发光二极管与,AT89S51,并行口的直接连接,2.6,时钟电路与时序,时钟电路产生,AT89S51,工作时所,必需的控制信号,,在时钟信号的控制下,严格按时序执行指令。,执行指令,时,,CPU,首先,到程序存储器中,取出,需要执行的指令操作码,然后,译码,,并,由时序电路产生一系列控制信号,完成指令所规定的操作。,CPU,发的,时序信号,两类,,,一类,用对片内各个功能部件控制,用户无须了解;,另一类,用于对片外存储器或,I/O,口的控制,,这部分时序对于分析、设计硬件接口电路,至关重要,。,75,2.6.1,时钟电路设计,时钟频率,直接影响单片机的,速度,,时钟电路的质量也直接影响单片机系统的稳定性。,常用的时钟电路有,两种方式,,一种是,内部时钟,方式,另一种是,外部时钟,方式。,1,内部时钟方式,AT89S51,内部有一个用于构成振荡器的,高增益反相放大器,,输入端为芯片引脚,XTAL1,,输出端为引脚,XTAL2,。这两个引脚跨接石英晶体振荡器和微调电容,构成一个稳定的自激振荡器,,图,2-13,是,AT89S51,内部时钟方式,的,电路,。,76,图,2-13,内部时钟方式电路,C,1,和,C,2,的,典型值,通常选择为,30pF,。电容大小会影响振荡器频率高低、振荡器的稳定性和起振的快速性。晶振频率范围通常是,12MHz,。晶体频率越高,,单片机速度就越快,。速度快对,存储器的速度要求就高,,印制电路板的工艺要求也高,即线间的寄生电容要小。晶体和电容应尽可能与单片机靠近,以减少寄生电容,保证振荡器稳定、可靠地工作。为提高温度稳定性,采用,温度稳定性能好,的电容。,常选,6MHz,或,12MHz,的,石英晶体,。随着集成电路制造工艺技术的发展,单片机的,时钟频率,也在逐步提高,,已达,33MHz,。,78,79,2,外部时钟方式,用现成的外部振荡器产生脉冲信号,,常用于,多片,AT89S51,同时工作,以便于多片,AT89S51,单片机之间的同步,一般为低于,12MHz,的方波。,外部时钟源,直接接到,XTAL1,端,,,XTAL2,端悬空,,见,图,2-14,。,图,2-14,AT89S51,的外部时钟方式电路,3,时钟信号的输出,当使用片内振荡器,,XTAL1,、,XTAL2,引脚还能为应用系统中的其他芯片提供时钟,但需增加驱动能力。其,引出的方式有两种,,如,图,2-15,所示。,80,图,2-15,时钟信号的两种引出方式,2.6.2,机器周期、指令周期与指令时序,各种指令时序与时钟周期相关。,1,时钟周期,时钟控制信号的,基本时间单位,。若晶振频率为,f,osc,,则时钟周期,T,osc,=1/,f,osc,。如,f,osc,=6MHz,,,T,osc,。,2,机器周期,CPU,完成一个基本操作所需时间为,机器周期,。,执行一条指令分为几个机器周期,。每个机器周期完成一个,基本操作,,如取指令、读或写数据等。每,12,个时钟周期,为,1,个机器周期。,82,1,个机器周期,包括,12,个时钟周期,,分,6,个状态,:,S1,S6,。每个,状态又分两拍,:,P1,和,P2,。因此,一个机器周期中的,12,个时钟周期,表示为,S1P1,、,S1P2,、,S2P1,、,S2P2,、,、,S6P2,,,如,图,2-16,所示。,83,图,2-16,AT89S51,的机器周期,3,指令周期,执行一条指令,所需的时间,。简单的,单字节指令,,取出指令立即执行,,只需,一个机器周期,的时间,。而有些,复杂的指令,,如,转移、乘、除指令,则需,两个,或,多个,机器周期。,从指令执行时间看,:,单字节和双字节,指令,一般为单机器周期,和,双机器周期,;,三字节指令,都是,双机器周期,;,乘、除指令,占用,4,个机器周期,。,84,2.7,复位操作和复位电路,单片机的,初始化操作,,给复位脚,RST,加上,大于,2,个机器周期,(即,24,个时钟振荡周期)的,高电平,就使,AT89S51,复位。,2.7.1,复位操作,复位时,,PC,初始化为,0000H,,程序从,0000H,单元开始执行。,除系统的正常初始化外,当,程序出错,(如程序跑飞)或,操作错误,使系统处于,死锁,状态时,,需按复位键,使,RST,脚为高电平,使,AT89S51,摆脱,“跑飞”,或,“死锁”,状态而重新启动程序。,复位操作还对,其他一些寄存器,有影响,这些寄存器复位时的状态见,表,2-7,。,由,表,2-7,可看出,复位时,,SP=07H,,而,P0,P3,引脚均为高电平,。,在某些控制应用中,要,注意考虑,P0,P3,引脚的高电平,对接在这些引脚上的外部电路的影响,。,例如,,当,P1,口某个引脚外接一个继电器绕组,当复位时,该引脚为高电平,继电器绕组就会有电流通过,就会吸合继电器开关,使开关接通,可能会引起意想不到的后果。,86,2.7.2,复位电路设计,由复位电路实现。,AT89S51,片内复位电路结构见,图,2-17,。,复位引脚,RST,通过一个施密特触发器与复位电路相连,施密特触发器用来抑制噪声,在每个机器周期的,S5P2,,施密特触发器的输出电平由复位电路采样一次,然后才能得到内部复位操作所需要的信号。,复位电路采用,上电自动复位,和,按钮复位,两种方式,。最简单的上电自动复位电路如,图,2-18,所示。,对于,CMOS,型单片机,,由于在,RST,引脚内部,有一个,下拉电阻,,可将,电阻,R,去掉,,而将,电容,C,选为,10,F,。,88,图,2-17,片内复位电路结构,图,2-18,上电复位电路,上电自动复位,是给电容,C,充电加给,RST,引脚一个,短的高电平信号,,此信号随着,V,CC,对电容,C,的充电过程而逐渐回落,即,RST,引脚上的,高电平持续时间,取决于电容,C,充电时间,。为保证系统可靠复位,,RST,引脚上的高电平必须维持足够长的时间。,除了上电复位外,有时还需要,按键手动复位,。按键手动复位有,电平,和,脉冲,两种方式,。,按键手动复位,电路见,图,2-19,。,脉冲复位,是利用,RC,微分电路产生的,正脉冲,来实现,的,脉冲复位电路见,图,2-20,。图中阻容参数适于,6MHz,时钟。,90,91,图,2-19,按键电平复位电路,图,2-20,按键脉冲复位电路,92,图,2-21,所示电路能,输出,高、低两种电平,的复位控制信号,以适应外围,I/O,接口芯片所,要求的,不同复位电平信号,。,图,2-21,74LS122,为单稳电路,实验表明,电容,C,的选择约为,F,较好。,图,2-21,两种实用的兼有上电复位与按键复位的电路,2.8,低功耗节电模式,两种低功耗节电工作模式,:,空闲模式,(,idle mode,)和,掉电保持模式,(,power down mode,)。,掉电保持模式,下,,Vcc,可由,后备电源,供电。,图,2-22,为两种节电模式的,内部控制电路,。,93,图,2-22,低功耗节电模式的控制电路,两种节电模式可通过,PCON,的,位,IDL,和,位,PD,的设置来实现。格式如,图,2-23,所示。,94,图,2-23,特殊功能寄存器,PCON,的格式,PCON,寄存器各位定义:,SMOD,:,串行通信波特率选择(该位见第,7,章的介绍)。,:,保留位。,GF1,、,GF0,:,通用标志位,两个标志位用户使用。,PD,:,掉电保持模式控制位,,PD=1,,则,进入掉电保持模,式。,IDL,:,空闲模式控制位,若,IDL=1,,则,进入空闲运行模式,。,2.8.1,空闲模式,1.,空闲模式进入,如把,PCON,中的,IDL,位置,1,,,由,图,2-22,,则把通往,CPU,的时钟信号关断,便,进入空闲模式,。虽然振荡器运行,但是,CPU,进入空闲状态,。所有,外围电路(中断系统、串行口和定时器)仍继续工作,,,SP,、,PC,、,PSW,、,A,、,P0,P3,端口等所有其他寄存器、内部,RAM,和,SFR,中内容均保持进入空闲模式前状态。,2.,空闲模式退出,两种方法退出,,,响应中断方式,,,硬件复位方式,。,95,空闲模式下,若,任一个,允许的,中断请求被响应,时,,IDL,位,被片内硬件自动清,0,,从而,退出空闲模式,。当执行完中断服务程序返回时,将从设置空闲模式指令的下一条指令(断点处)继续执行程序。,当使用,硬件复位,退出空闲模式时,在复位逻辑电路发挥控制作用前,有长达两个机器周期时间,单片机要从断点处(,IDL,位置,1,指令的下一条指令处)继续执行程序。在这期间,片内硬件阻止,CPU,对片内,RAM,的访问,但不阻止对外部端口(或外部,RAM,)的访问。,为了避免在硬件复位退出空闲模式时出现对端口(或外部,RAM,),的不希望的写入,在进入空闲模式时,紧随,IDL,位置,1,指令后的不应是写端口(或外部,RAM,)的指令。,2.8.2,掉电运行模式,1.,掉电模式的进入,用指令把,PCON,寄存器的,PD,位,置,1,,便,进入掉电模式,。由,图,2-22,,在掉电模式下,,进入时钟振荡器的信号,被封锁,,振荡器停止工作。,由于没有时钟信号,内部的,所有功能部件均停止工作,,但,片内,RAM,和,SFR,的原来的内容都被保留,,有关,端口的输出状态值,都,保存在对应的特殊功能寄存器中,。,97,2.,掉电模式的退出,两种方法,:,硬件复位,和,外部中断,。硬件复位时要重新初始化,SFR,,但不改变片内,RAM,的内容。只有当,Vcc,恢复到正常工作水平时,只要硬件复位信号维持,10ms,,便可使单片机退出掉电运行模式。,2.8.3,掉电和空闲模式下的,WDT,掉电模式下振荡器停止,意味着,WDT,也就停止计数。
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 商业管理 > 商业计划


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!