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