单片机硬件结构.ppt

上传人:夺命阿水 文档编号:246803 上传时间:2023-03-22 格式:PPT 页数:81 大小:1.11MB
返回 下载 相关 举报
单片机硬件结构.ppt_第1页
第1页 / 共81页
单片机硬件结构.ppt_第2页
第2页 / 共81页
单片机硬件结构.ppt_第3页
第3页 / 共81页
单片机硬件结构.ppt_第4页
第4页 / 共81页
单片机硬件结构.ppt_第5页
第5页 / 共81页
点击查看更多>>
资源描述

《单片机硬件结构.ppt》由会员分享,可在线阅读,更多相关《单片机硬件结构.ppt(81页珍藏版)》请在课桌文档上搜索。

1、1,第2章 AT89S51单片机 硬件结构,2,内容概要,AT89S51片内硬件基本结构、引脚功能、存储器结构、特殊功能寄存器功能、4个并行I/O口的结构和特点,复位电路和时钟电路的设计,节电工作模式。目的:为AT89S51系统的应用设计打下基础。在原理和结构上,单片机把微机的许多概念、技术与特点都继承下来。用学习微机的思路来学习单片机。,3,2.1 AT89S51单片机的硬件组成片内结构如图2-1所示。把作为控制应用所必需的基本功能部件都集成在一个集成电路芯片上。有如下功能部件和特性:(1)8位微处理器(CPU);(2)数据存储器(128B RAM);(3)程序存储器(4KB Flash R

2、OM);(4)4个8位可编程并行I/O口(P0口、P1口、P2口、P3口);(5)1个全双工的异步串行口;(6)2个可编程的16位定时器/计数器;,4,图2-1 AT89S51单片机片内结构,5,(7)1个看门狗定时器;(8)中断系统具有5个中断源、5个中断向量;(9)特殊功能寄存器(SFR)26个;(10)低功耗模式有空闲模式和掉电模式,且具有掉电模式 下的中断恢复模式;(11)3个程序加密锁定位;与AT89C51比,AT89S51更突出的优点:(1)增加在线可编程功能ISP(In System Program),字节和页编程,现场程序调试和修改更加方便灵活;(2)数据指针增加到两个,方便了

3、对片外RAM的访问过程;(3)增加了看门狗定时器,提高了系统的抗干扰能力;,(4)增加断电标志;(5)增加掉电状态下的中断恢复模式;片内的各功能部件通过片内单一总线连接而成(见图2-1),基本结构依旧是CPU 加上外围芯片的传统微机结构。CPU对各种功能部件的控制是采用特殊功能寄存器(SFR,Special Function Register)的集中控制方式。介绍图2-1中片内各功能部件。(1)CPU(微处理器)8位的CPU,与通用CPU基本相同,包括了运算器和控制器两大部分,还有面向控制的位处理功能。,6,(2)数据存储器(RAM)片内为128B(52子系列为256B),片外最多可扩64KB

4、。(3)程序存储器(Flash ROM)片内集成有4KB的Flash存储器(AT89S52 则为8KB;AT89C55片内20KB),如片内容量不够,片外可外扩至64KB。(4)中断系统具有6个中断源,2级中断优先权。(5)定时器/计数器2个16位定时器/计数器(52子系列有3个),4种工作方式。,7,(6)1个看门狗定时器WDT当CPU由于干扰使程序陷入死循环或跑飞时,WDT可使程序恢复正常运行。(7)串行口1个全双工的异步串行口,4种工作方式。可进行串行通信,扩展并行I/O口,还可与多个单片机构成多机系统。(8)P0、口P1口、P2口和P3口4个8位并行I/O口。(9)特殊功能寄存器(SF

5、R)26个,对片内各功能部件管理、控制和监视。是各个功能部件的控制寄存器和状态寄存器,映射在片内RAM区80HFFH内。,8,AT89S51完全兼容AT89C51,在充分保留原来软、硬件条件下,完全可以用AT89S51直接代换。2.2 AT89S51的引脚功能先了解引脚,牢记各引脚的功能。AT89S51与51系列中各种型号芯片的引脚互相兼容。目前多采用40只引脚双列直插,如图2-2。此外,还有44引脚的PLCC和TQFP封装方式的芯片。引脚按其功能可分为如下3类:(1)电源及时钟引脚VCC、VSS;XTAL1、XTAL2。(2)控制引脚 PSEN*、ALE/PROG*、EA*/VPP、RST(

6、RESET)(3)I/O口引脚P0、P1、P2、P3,为4个8位I/O口,9,2.2.1 电源及时钟引脚1电源引脚(1)VCC(40脚):+5V电源。(2)VSS(20脚):数字地。,10,图2-2 AT89S51双列直插封装方式的引脚,2时钟引脚(1)XTAL1(19脚):片内振荡器反相放大器和时钟发生器电路输入端。用片内振荡器时,该脚接外部石英晶体和微调电容。外接时钟源时,该脚接外部时钟振荡器的信号。(2)XTAL2(18脚):片内振荡器反相放大器的输出端。当使用片内振荡器,该脚连接外部石英晶体和微调电容。当使用外部时钟源时,本脚悬空。2.2.2 控制引脚(1)RST(RESET,9脚)复

7、位信号输入,在引脚加上持续时间大于2个机器周期的高电平,可使单片机复位。正常工作,此脚应 0.5V。,11,当看门狗定时器溢出输出时,该脚将输出长达96个时钟振荡周期的高电平。(2)EA*/VPP(Enable Address/Voltage Pulse of Programing,31脚)EA*:引脚第一功能:外部程序存储器访问允许控制端。EA*=1,在PC值不超出0FFFH(即不超出片内4KB Flash存储器的地址范围)时,单片机读片内程序存储器(4KB)中的程序,但PC值超出0FFFH(即超出片内4KB Flash地址范围)时,将自动转向读取片外60KB(1000H-FFFFH)程序存

8、储器空间中的程序。,EA*=0,只读取外部的程序存储器中的内容,读取的地址范围为0000HFFFFH,片内的4KB Flash 程序存储器不起作用。VPP:引脚第二功能,对片内Flash编程,接编程电压。(3)ALE/PROG*(Address Latch Enable/PROGramming,30脚)ALE为CPU访问外部程序存储器或外部数据存储器提供地址锁存信号,将低8位地址锁存在片外的地址锁存器中。,13,此外,单片机正常运行时,ALE端一直有正脉冲信号输出,此频率为时钟振荡器频率fosc的1/6。可作外部定时或触发信号用。注意,每当AT89S51访问外部RAM时(执行MOVX类指令),

9、要丢失一个ALE脉冲。如需要,可将特殊功能寄存器AUXR(地址为8EH,将在后面介绍)的第0位(ALE禁止位)置1,来禁止ALE操作,但执行访问外部程序存储器或外部数据存储器指令“MOVC”或“MOVX”时,ALE仍然有效。即ALE禁止位不影响对外部存储器的访问。PROG*:引脚第二功能,对片内 Flash编程,为编程脉冲输入,14,(4)PSEN*(Program Strobe ENable,29脚)片外程序存储器读选通信号,低有效。2.2.3 并行I/O口引脚(1)P0口:8位,漏极开路的双向I/O口当外扩存储器及I/O接口芯片时,P0口作为低8位地址总线及数据总线的分时复用端口。P0口也

10、可作通用的I/O口用,需加上拉电阻,这时为准双向口。作为通用I/O输入,应先向端口写入1。可驱动8个LS型TTL负载。(2)P1口:8位,准双向I/O口,具有内部上拉电阻。准双向I/O口,作为通用I/O输入时,应先向端口锁存器写1,15,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位地址。,P2口也可作为普通的I/O口使用。当作为

11、通用I/O输入时,应先向端口输出锁存器写1。P2口可驱动4个LS型TTL负载。(4)P3口:8位,准双向I/O口,具有内部上拉电阻。可作为通用的I/O口使用。作为通用I/O输入,应先向端口输出锁存器写入1。可驱动4个LS型TTL负载。P3口还可提供第二功能。第二功能定义如表2-1,应熟记。,17,18,综上所述,P0口可作为总线口,为双向口。作为通用的I/O口使用时,为准双向口,这时需加上拉电阻。P1口、P2口、P3口均为准双向口。注意:准双向口与双向口的差别。准双向口仅有两个状态。而P0口作为总线使用,口线内无上拉电阻,处于高阻“悬浮”态。故P0口为双向三态I/O口。为什么P0口要有高阻“悬

12、浮”态?准双向I/O口则无高阻的“悬浮”状态。另外,准双向口作通用I/O的输入口使用时,一定要向该口先写入“1”。以上的准双向口与双向口的差别,读者在学习第4章后,将会有深刻的理解。,19,至此,40只引脚已介绍,应熟记每一引脚功能,对应用系统硬件电路设计十分重要。2.3 AT89S51的CPU由图2-1可见,由运算器和控制器构成的。2.3.1 运算器对操作数进行算术、逻辑和位操作运算。主要包括算术逻辑运算单元ALU、累加器A、位处理器、程序状态字寄存器PSW及两个暂存器等。1算术逻辑运算单元ALU可对8位变量逻辑运算(与、或、异或、循环、求补和清零),还可算术运算(加、减、乘、除),20,A

13、LU还有位操作功能,对位变量进行位处理,如置“1”、清“0”、求补、测试转移及逻辑“与”、“或”等。2累加器A累加器A是CPU中使用最频繁的一个8位寄存器,在使用汇编语言编程时,有些场合必须写为Acc。作用如下:(1)ALU单元的输入数据源之一,又是ALU运算结果存放单元(2)数据传送大多都通过累加器A,相当于数据的中转站。为解决“瓶颈堵塞”问题,AT89S51增加了一部分可以不经过累加器的传送指令。,21,A的进位标志Cy是特殊的,因为它同时又是位处理机的位累加器3程序状态字寄存器PSWPSW(Program Status Word)位于片内特殊功能寄存器区,字节地址为D0H。包含了程序运行

14、状态的信息,其中4位保存当前指令执行后的状态,供程序查询和判断。格式如图2-3。图2-3 PSW的格式,22,PSW中各个位的功能:(1)Cy(PSW.7)进位标志位可写为C。在算术和逻辑运算时,若有进位/借位,Cy1;否则,Cy0。在位处理器中,它是位累加器。(2)Ac(PSW.6)辅助进位标志位在BCD码运算时,用作十进位调整。即当D3位向D4位产生进位或借位时,Ac1;否则,Ac0。(3)F0(PSW.5)用户设定标志位由用户使用的一个状态标志位,可用指令来使它置“1”或清“0,控制程序的流向。用户应充分利用。,23,(4)RS1、RS0(PSW.4、PSW.3)4组工作寄存器区选择选择

15、片内RAM区中的4组工作寄存器区中的某一组为当前工作寄存区。如表2-2。(5)OV(PSW.2)溢出标志位当执行算术指令时,用来指示运算结果是否产生溢出。如果结果产生溢出,OV=1;否则,OV=0。(6)PSW.1位 保留位(7)P(PSW.0)奇偶标志位指令执行完,累加器A中“1”的个数是奇数还是偶数。,24,P=1,表示A中“1”的个数为奇数。P=0,表示A中“1”的个数为偶数。此标志位对串行通信有重要的意义,常用奇偶检验的方法来检验数据串行传输的可靠性。,25,表2-2 RS1、RS0与4组工作寄存器区的对应关系,26,2.3.2 控制器任务识别指令,并根据指令的性质控制单片机各功能部件

16、,从而保证单片机各部分能自动协调地工作。控制器包括:程序计数器、指令寄存器、指令译码器、定时及控制逻辑电路等。功能是控制指令的读入、译码和执行,从而对各功能部件进行定时和逻辑控制。程序计数器PC是一个独立的16位计数器,不可访问。单片机复位时,PC中的内容为0000H,从程序存储器0000H单元取指令,开始执行程序。PC工作过程是:CPU读指令时,PC的内容作为所取指令的地址,程序存储器按此地址输出指令字节,同时PC自动加1。,PC中内容变化轨迹决定程序流程。当顺序执行程序时自动加1;执行转移程序或子程序、中断子程序调用时,自动将其内容更改成所要转移的目的地址。PC的计数宽度决定了程序存储器的

17、地址范围。PC为16位,故可对64KB(=216B)寻址。2.4 AT89S51存储器的结构存储器结构特点之一是将程序存储器和数据存储器分开(哈佛结构),并有各自的访问指令。存储器空间可分为4类。,27,.程序存储器空间片内和片外两部分。片内程序存储器为4KB的Flash存储器,编程和擦除全是电气实现,且速度快。可用通用编程器编程,也可在线编程。当片内的4KB的Flash存储器不够用时,用户可在片外可扩展程序存储器,最多可扩展至64KB程序存储器。.数据存储器空间片内与片外两部分。片内有128 B RAM(52子系列为256B)。片内RAM 不够用时,在片外可扩展至64KB RAM。,28,.

18、特殊功能寄存器SFR(Special Function Register)片内各功能部件的控制寄存器及状态寄存器。SFR综合反映了整个单片机基本系统内部实际的工作状态及工作方式。.位地址空间共有211个可寻址位,构成了位地址空间。它们位于内部 RAM(共128位)和特殊功能寄存器区(共83位)中。2.4.1 程序存储器空间存放程序和表格之类的固定常数。片内为4KB的 Flash,地址为0000H0FFFH。16位地址线,可外扩的程序存储器空间最大为64KB,地址为0000HFFFFH。使用应注意以下问题,29,(1)分为片内和片外两部分,访问片内的还是片外的程序存储器,由EA*引脚电平确定。E

19、A*=1时,CPU从片内0000H开始取指令,当PC值没有超出0FFFH时,只访问片内Flash 存储器,当PC值超出0FFFH自动转向读片外程序存储器空间1000HFFFFH 内的程序。EA*=0时,只能执行片外程序存储器(0000HFFFFH)中的程序。不理会片内4KB Flash 存储器。(2)程序存储器某些固定单元用于各中断源中断服务程序入口。,30,31,64KB程序存储器空间中有5个特殊单元分别对应于5个中断源 的中断入口地址,见表2-3。通常这5个中断入口地址处都放一条跳转指令跳向对应的 中断服务子程序,而不是直接存放中断服务子程序。,2.4.2 数据存储器空间片内与片外两部分。

20、.片内数据存储器片内数据存储器(RAM)共128个单元,字节地址为00H7FH。图2-4为片内数据存储器的结构。,32,图2-4 AT89S51片内RAM结构,00H1FH 的32个单元是4组通用工作寄存器区,每区包含8B,为R7R0。可通过指令改变RS1、RS0两位来选择。20H2FH的16个单元的128位可位寻址,也可字节寻址。30H7FH的单元只能字节寻址,用作存数据以及作为堆栈区。.片外数据存储器当片内128B的RAM不够用时,需外扩,最多可外扩64KB的RAM。注意,片内RAM与片外RAM两个空间是相互独立的,片内RAM与片外RAM的低128B的地址是相同的,但由于使用的是不同的访问

21、指令,所以不会发生冲突。,33,2.4.3 特殊功能寄存器(SFR)采用特殊功能寄存器集中控制各功能部件。特殊功能寄存器映射在片内RAM的 80HFFH 区域中,共26个。表2-4是SFR的名称及其分布。有些还可位寻址,位地址见表2-4。与AT89C51相比,新增5个SFR:DP1L、DP1H、AUXR、AUXR1和WDTRST,已在表2-4中标出。凡是可位寻址的SFR,字节地址末位只能是0H或8H。另外,若读/写未定义单元,将得到一个不确定的随机数。下面某些介绍SFR,余下的SFR将在后面介绍。,34,35,1堆栈指针SP指示堆栈顶部在内部RAM块中的位置。堆栈结构-向上生长型。单片机复位后

22、,SP为07H,使得堆栈实际上从08H单元开始,由于08H1FH单元分别是属于13组的工作寄存器区,最好在复位后把SP值改置为60H或更大的值,避免堆栈与工作寄存器冲突。堆栈主要是为子程序调用和中断操作而设。保护断点和现场(1)保护断点。无论是子程序调用操作还是中断服务子程序调用,最终都要返回主程序。应预先把主程序的断点在堆栈中保护起来,为程序正确返回做准备。,37,(2)现场保护。执行子程序或中断服务子程序时,要用到一些寄存器单元,会破坏原有内容。要把有关寄存器单元的内容保存起来,送入堆栈,这就是所谓的“现场保护”。两种操作:数据压入(PUSH)堆栈,数据弹出(POP)堆栈。数据压入堆栈,S

23、P自动加1;数据弹出堆栈,SP自动减1。2寄存器B为执行乘法和除法而设。在不执行乘、除法操作的情况下,可把它当作一个普通寄存器来使用。,38,39,乘法,两乘数分别在A、B中,执行乘法指令后,乘积在BA中除法,被除数取自A,除数取自B,商存放在A中,余数存B中。3AUXR寄存器 AUXR是辅助寄存器,其格式如图2-5:,图2-5 AUXR寄存器的格式,40,其中:DISALE:ALE的禁止/允许位。0:ALE有效,发出脉冲;1:ALE仅在执行MOVC和MOVX类指令时有效,不访问外部存储器时,ALE不输出脉冲信号;DISRTO:禁止/允许WDT溢出时的复位输出。0:WDT溢出时,在RST引脚输

24、出一个高电平脉冲;1:RST引脚仅为输入脚。WDIDLE:WDT在空闲模式下的禁止/允许位。0:WDT在空闲模式下继续计数;1:WDT在空闲模式下暂停计数。,41,4.数据指针DPTR0和DPTR1双数据指针寄存器,便于访问数据存储器。DPTR0:AT89C51单片机原有的数据指针,DPTR1:新增加的数据指针。AUXR1的DPS位用于选择两个数据指针。当DPS=0时,选用DPTR0;当DPS=1时,选用DPTR1。数据指针可作为一个16位寄存器来用,也可作为两个独立的8位寄存器DP0H(或DP1H)和DP0L(或DP1L)来用。,42,5.AUXR1寄存器AUXR1是辅助寄存器,格式如图2-

25、6:DPS:数据指针寄存器选择位。0:选择数据指针寄存器DPTR0;1:选择数据指针寄存器DPTR1。,图2-6 AUXR1寄存器的格式,6.看门狗定时器WDT包含1个14位计数器和看门狗定时器复位寄存器(WDTRST)。用于当CPU由于干扰,程序陷入死循环或跑飞状态时,WDT提供了一种使程序恢复正常运行的有效手段。有关WDT在抗干扰设计中的应用以及低功耗模式下运行的状态,将在相应的章节中具体介绍。上面介绍的特殊功能寄存器,除了前两个SP和B以外,其余的均为AT89S51在AT89C51基础上新增加的SFR。,43,2.4.4 位地址空间211个寻址位的位地址,位地址范围为 00HFFH,其中

26、 00H7FH 这128位处于片内RAM 字节地址 20H2FH 单元中,如表2-5所示。其余的83个可寻址位分布在特殊功能寄存器SFR中,如表2-6。可被位寻址的特殊寄存器有11个,共有位地址88个,5个位未用,其余83个位的位地址离散地分布于片内数据存储器区字节地址为80HFFH的范围内,其最低的位地址等于其字节地址,且其字节地址的末位都为0H或8H。,44,46,表2-6 SFR中的位地址分布,作为对AT89S51存储器结构的总结,图2-7为各类存储器的结构图。清楚看出各类存储器在存储器空间的位置。,47,图2-7 AT89S51单片机的存储器结构,2.5 AT89S51的并行I/O端口

27、4个双向的8位并行I/O端口,分别记为P0、P1、P2和P3,其中输出锁存器属于特殊功能寄存器。端口的每一位均由输出锁存器、输出驱动器和输入缓冲器组成,4个端口按字节输入/输出外,也可位寻址。1 P0口P0口字节地址为80H,位地址为80H87H。P0口可作为双功能口:在外扩程序存储器、数据存储器(或外扩I/O)情况下,只能作为系统的低8位地址/数据总线端口来使用,否则可作为通用I/O端口使用。,48,P0口具有如下特点。(1)当P0口用作地址/数据复用口时,是一个真正的双向口,用作与外部存储器的连接,输出低8位地址和输出/输入8位数据。(2)当P0口用作通用I/O口时,由于需在片外接上拉电阻

28、,端口不存在高阻抗(悬浮)状态,因此是一准双向口。为保证正确读入引脚信号,应首先向锁存器写1。单片机复位后,锁存器自动被置1;当P0口由原来的输出状态转变为输入状态时,应首先向锁存器写1,方可执行输入操作。一般情况下,P0口大多作为地址/数据复用口使用,这时就不能再作为通用I/O口使用。,49,2.P1口单功能的I/O口,字节地址为90H,位地址为90H97H。特点如下。(1)P1口由于有内部上拉电阻,没有高阻抗输入状态,故为准双向口。作为输出口时,不需要在片外接上拉电阻。(2)P1口“读引脚”输入时,必须先向P1口锁存器先写入1。,50,3.P2口是一个双功能口,字节地址为A0H,位地址为A

29、0HA7H。P2口某一位的位电路结构如图4-3所示。在片外扩有存储器或I/O的情况下,P2口大多作为高8位地址总线口使用,这时就不能再作为通用I/O口。特点如下:(1)作为地址输出线使用时,P2口可输出外部存储器的高8位地址,与P0口输出的低8位一起构成16位地址,可寻址64KB的地址空间。当P2口作为高8位地址输出口时,输出锁存器的内容保持不变。(2)作通用I/O口使用时,P2口为准双向口,功能与P1口一样,51,4.P3口由于AT89S51的引脚数目有限,因此在P3口电路中增加了引脚的第二功能。P3口的第二功能定义如表2-7所示,读者应熟记。P3口的每一位都可定义为第二输入功能或第二输出功

30、能。P3口的字节地址为B0H,位地址为B0HB7H。P3口的特点如下:(1)P3口内部有上拉电阻,不存在高阻抗输入状态,为准双向口。(2)P3口作为第二功能的输出/输入,或第一功能通用输入,需要先将相应位的锁存器置1。,52,实际应用中,由于复位后P3口锁存器自动置1,满足第二功能所需的条件,所以不需要任何设置工作,就可以进入第二功能操作。当某位不作为第二功能使用时,可作为第一功能通用I/O使用。,2.6 时钟电路与时序时钟电路产生AT89S51工作时所必需的控制信号,在时钟信号的控制下,严格按时序执行指令。执行指令时,CPU首先到程序存储器中取出需要执行的指令操作码,然后译码,并由时序电路产

31、生一系列控制信号完成指令所规定的操作。CPU发的时序信号两类,一类用对片内各个功能部件控制,用户无须了解;另一类用于对片外存储器或I/O端口的控制,这部分时序对于分析、设计硬件接口电路至关重要。,55,2.6.1 时钟电路设计 时钟频率直接影响单片机的速度,时钟电路的质量也直接影响单片机系统的稳定性。常用的时钟电路有两种方式,一种是内部时钟方式,另一种是外部时钟方式。1内部时钟方式 AT89S51内部有一个用于构成振荡器的高增益反相放大器,输入端为芯片引脚XTAL1,输出端为引脚XTAL2。这两个引脚跨接石英晶体振荡器和微调电容,构成一个稳定的自激振荡器,图2-8是AT89S51内部时钟方式的

32、电路。,56,图2-8 内部时钟方式电路,电路中的电容C1和C2的典型值通常选择为30pF。晶体振荡频率的范围通常是在1.212MHz。AT89S51单片机常选择振荡频率6MHz或12MHz的石英晶体。,58,59,2外部时钟方式 用现成的外部振荡器产生脉冲信号,常用于多片AT89S51同时工作,以便于多片AT89S51单片机之间的同步。外部时钟源直接接到XTAL1端,XTAL2端悬空,见图2-9。,图2-9 AT89S51的外部时钟方式电路,3时钟信号的输出当使用片内振荡器,XTAL1、XTAL2引脚还能为应用系统中的其他芯片提供时钟,但需增加驱动能力。其引出的方式有两种,如图2-10。,6

33、0,图2-10 时钟信号的两种引出方式,2.6.2 机器周期、指令周期与指令时序各种指令时序与时钟周期相关。1时钟周期时钟控制信号的基本时间单位。若晶振频率为fosc,则时钟周期Tosc=1/fosc。如fosc=6MHz,Tosc=166.7ns。2机器周期 CPU完成一个基本操作所需时间为机器周期。执行一条指令分为几个机器周期。每个机器周期完成一个基本操作,如取指令、读或写数据等。每12个时钟周期为1个机器周期,62,1个机器周期包括12个时钟周期,分6个状态:S1S6。每个状态又分两拍:P1和P2。因此,一个机器周期中的12个时钟周期表示为S1P1、S1P2、S2P1、S2P2、S6P2

34、,如图2-11。,63,图2-11 AT89S51的机器周期,3指令周期执行一条指令所需的时间。简单的单字节指令,取出指令立即执行,只需一个机器周期的时间。而有些复杂的指令,如转移、乘、除指令则需两个或多个机器周期。从指令执行时间看:单字节和双字节指令一般为单机器周期和双机器周期;三字节指令都是双机器周期;乘、除指令占用4个机器周期。,64,2.7 复位操作和复位电路单片机的初始化操作,给复位脚RST加上大于2个机器周期(即24个时钟振荡周期)的高电平就使AT89S51复位。2.7.1 复位操作复位时,PC初始化为0000H,程序从0000H单元开始执行。除系统的正常初始化外,当程序出错(如程

35、序跑飞)或操作错误使系统处于死锁状态时,需按复位键使RST脚为高电平,使AT89S51摆脱“跑飞”或“死锁”状态而重新启动程序。,复位操作还对其他一些寄存器有影响,这些寄存器复位时的状态如表2-8。由表2-8可看出,复位时,SP=07H,而P0P3引脚均为高电平。在某些控制应用中,要注意考虑P0P3引脚的高电平对接在这些引脚上的外部电路的影响。例如,当P1口某个引脚外接一个继电器绕组,当复位时,该引脚为高电平,继电器绕组就会有电流通过,就会吸合继电器开关,使开关接通,可能会引起意想不到的后果。,66,2.7.2 复位电路设计由复位电路实现。AT89S51片内复位电路结构见图2-12。复位引脚R

36、ST通过一个施密特触发器与复位电路相连,施密特触发器用来抑制噪声,在每个机器周期的S5P2,施密特触发器的输出电平由复位电路采样一次,然后才能得到内部复位操作所需要的信号。复位电路采用上电自动复位和按钮复位两种方式。最简单的上电自动复位电路如图2-13所示。对于CMOS型单片机,由于在RST引脚内部有一个下拉电阻,可将电阻R去掉,而将电容C选为10F。,68,图2-12 片内复位电路结构 图2-13 上电复位电路,上电自动复位是给电容C充电加给RST引脚一个短的高电平信号,此信号随着VCC对电容C的充电过程而逐渐回落,即RST引脚上的高电平持续时间取决于电容C充电时间。为保证系统可靠复位,RS

37、T引脚上的高电平必须维持足够长的时间。除了上电复位外,有时还需要按键手动复位。按键手动复位有电平和脉冲两种方式。按键手动复位电路见图2-14。脉冲复位是利用RC微分电路产生的正脉冲来实现的,脉冲复位电路见图2-15。图中阻容参数适于6MHz时钟。,70,71,图2-14 按键电平复位电路 图2-15 按键脉冲复位电路,72,图2-16的电路能输出高、低两种电平的复位控制信号,以适应外围I/O接口芯片所要求的不同复位电平信号。图2-1674LS122为单稳电路,实验表明,电容C的选择约为0.1F较好。,图2-16 两种实用的兼有上电复位与按键复位的电路,在实际设计中,若有外部扩展的I/O接口电路

38、也需初始复位,若它们的复位端和AT89S51的复位端相连,复位电路中的R、C参数要受到影响,这时复位电路中的R、C参数要统一考虑,以保证可靠的复位。如果AT89S51单片机与外围I/O接口电路的复位电路和复位时间不完全一致,使单片机初始化程序不能正常运行,外围I/O接口电路的复位也可以不与AT89S51单片机复位端相连,采用独立的上电复位电路。若RC上电复位电路接施密特电路输入端,施密特电路输出接AT89S51单片机和外围电路复位端,则能使系统可靠地同步复位。一般来说,,单片机的复位速度比外围I/O接口电路快些。为保证系统可靠复位,在单片机应用程序的初始化程序段应安排一定的复位延迟时间。,2.

39、8 低功耗节电模式两种低功耗节电工作模式:空闲模式(idle mode)和掉电保持模式(power down mode)。掉电保持模式下,Vcc可由后备电源供电。图2-17为两种节电模式的内部控制电路。,75,图2-17 低功耗节电模式的控制电路,两种节电模式可通过PCON的位IDL和位PD的设置来实现。格式如图2-18。,76,图2-18 特殊功能寄存器PCON的格式PCON寄存器各位定义:SMOD:串行通信波特率选择(该位见第7章的介绍)。:保留位。GF1、GF0:通用标志位,两个标志位用户使用。PD:掉电保持模式控制位,PD=1,则进入掉电保持模式。IDL:空闲模式控制位,若IDL=1,

40、则进入空闲运行模式。,2.8.1 空闲模式1.空闲模式进入如把PCON中的IDL位置“1”,由图2-22,则把通往CPU的时钟信号关断,便进入空闲模式。虽然振荡器运行,但是CPU进入空闲状态。所有外围电路(中断系统、串行口和定时器)仍继续工作,SP、PC、PSW、A、P0-P3端口等所有其他寄存器、内部RAM和SFR中内容均保持进入空闲模式前状态。2.空闲模式退出两种方法退出,响应中断方式,硬件复位方式。,77,空闲模式下,若任一个允许的中断请求被响应时,IDL位被片内硬件自动清“0”,从而退出空闲模式。当执行完中断服务程序返回时,将从设置空闲模式指令的下一条指令(断点处)继续执行程序。当使用

41、硬件复位退出空闲模式时,在复位逻辑电路发挥控制作用前,有长达两个机器周期时间,单片机要从断点处(IDL位置“1”指令的下一条指令处)继续执行程序。在这期间,片内硬件阻止CPU对片内RAM的访问,但不阻止对外部端口(或外部RAM)的访问。为了避免在硬件复位退出空闲模式时出现对端口(或外部RAM),的不希望的写入,在进入空闲模式时,紧随IDL位置1指令后的不应是写端口(或外部RAM)的指令。2.8.2 掉电运行模式1.掉电模式的进入用指令把PCON寄存器的PD位置1,便进入掉电模式。由图2-22,在掉电模式下,进入时钟振荡器的信号被封锁,振荡器停止工作。由于没有时钟信号,内部的所有功能部件均停止工

42、作,但片内RAM和SFR的原来的内容都被保留,有关端口的输出状态值都保存在对应的特殊功能寄存器中。,79,2.掉电模式的退出两种方法:硬件复位和外部中断。硬件复位时要重新初始化SFR,但不改变片内RAM的内容。只有当Vcc恢复到正常工作水平时,只要硬件复位信号维持10ms,便可使单片机退出掉电运行模式。2.8.3 掉电和空闲模式下的WDT掉电模式下振荡器停止,意味着WDT也就停止计数。用户在掉电模式下不需操作WDT。退出有两种方法:硬件复位和外部中断。当用硬件复位退出掉电模式时,对WDT的操作与正常情况一样。中断方式退出掉电模式时,应使中断输入保持足够长时间的低,80,电平,以使振荡器达到稳定。当中断变为高电平之后,该中断被执行,在中断服务程序中复位寄存器WDTRST。在外部中断引脚保持低电平时,为防止WDT溢出复位,在系统进入掉电模式前先对寄存器WDTRST复位。在进入空闲模式前,应先设置AUXR中的WDIDLE位,以确认WDT是否继续计数。当WDIDLE=0,空闲模式下的WDT保持继续计数。为防止复位单片机,用户可设计一定时器。该定时器使器件定时退出空闲模式,然后复位WDTRST,再重新进入空闲模式。当WDIDLE=1,WDT在空闲模式下暂停计数,退出空闲模式后,方可恢复计数。,81,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 在线阅读 > 生活休闲


备案号:宁ICP备20000045号-1

经营许可证:宁B2-20210002

宁公网安备 64010402000986号