第2章 AT89系列单片机的硬件体系结构(结构、引脚、存储器配置、专用寄存器、时钟与时序、工作方式)(已标).ppt

上传人:rrsccc 文档编号:9561247 上传时间:2021-03-06 格式:PPT 页数:80 大小:1.48MB
返回 下载 相关 举报
第2章 AT89系列单片机的硬件体系结构(结构、引脚、存储器配置、专用寄存器、时钟与时序、工作方式)(已标).ppt_第1页
第1页 / 共80页
第2章 AT89系列单片机的硬件体系结构(结构、引脚、存储器配置、专用寄存器、时钟与时序、工作方式)(已标).ppt_第2页
第2页 / 共80页
第2章 AT89系列单片机的硬件体系结构(结构、引脚、存储器配置、专用寄存器、时钟与时序、工作方式)(已标).ppt_第3页
第3页 / 共80页
第2章 AT89系列单片机的硬件体系结构(结构、引脚、存储器配置、专用寄存器、时钟与时序、工作方式)(已标).ppt_第4页
第4页 / 共80页
第2章 AT89系列单片机的硬件体系结构(结构、引脚、存储器配置、专用寄存器、时钟与时序、工作方式)(已标).ppt_第5页
第5页 / 共80页
点击查看更多>>
资源描述

《第2章 AT89系列单片机的硬件体系结构(结构、引脚、存储器配置、专用寄存器、时钟与时序、工作方式)(已标).ppt》由会员分享,可在线阅读,更多相关《第2章 AT89系列单片机的硬件体系结构(结构、引脚、存储器配置、专用寄存器、时钟与时序、工作方式)(已标).ppt(80页珍藏版)》请在三一文库上搜索。

1、1,2021/3/6,单片机原理与应用电子课件,第 2 章,AT89系列单片机 的硬件体系结构,2021/3/6,2,本章主要内容,2.1 AT89系列单片机概述 2.2AT89系列单片机的结构原理 2.3 AT89系列单片机的存储器结构 2.4 AT89系列单片机的引脚功能 2.5 AT89系列单片机的I/O接口 2.6AT89S系列单片机内部看门狗定时器(WDT) 2.7 AT89系列单片机的复位工作方式 2.8 AT89系列单片机的低功耗方式 2.9 AT89系列单片机的时序,2021/3/6,3,第 2 章 AT89系列单片机的硬件体系结构,ATMEL公司是美国20世纪80年代中期成立

2、并发展起来的半导体公司。该公司率先将独特的Flash存储技术注入于单片机产品中。其推出的AT89系列单片机,在世界电子技术行业中引起了极大的反响,在国内也受到广大用户的欢迎。 本章以AT89S51为主线叙述AT89XXX系列单片机的内部结构、引脚功能、工作方式和时序等方面的知识,本章的知识是学习后续章节的基础,也是单片机应用系统硬件设计的基础。,2021/3/6,4,2.1 AT89系列单片机概述,2.1.1 AT89系列单片机简介 AT89系列单片机是与MCS51系列单片机兼容的低功耗高性能位Flash单片机。它是在MCS-51的技术内核为主导的基础上倾注了ATMEL公司优良技术进行新的设计

3、和开发,使之功能更强、更具特色,尤其是AT89S系列单片机具有在系统可程序设计功能,使生产维护更加方便灵活。,2021/3/6,5,2.1.2 AT89系列单片机的主要性能 与MCS-51单片机产品兼容 4K/8K等可程序设计Flash内存 1000次擦写周期 全静态操作:0Hz33MHz(89S系列)或00Hz24MHz(89C系列) 三级加密程序内存 32个可程序设计I/O口线 两个/三个16位定时器/计数器 6/8个中断源 全双工UART串行通道 低功耗空闲和掉电模式 看门狗定时器及双数据指针(89S系列) 灵活的在系统程序设计(ISP)(89S系列),2021/3/6,6,2.1.3

4、AT89系列单片机的主要品种 Atmel公司的AT89系列单片机有多种型号,但以AT89X51和AT89X52为代表,其主要单片机品种及其特性见表2-1。,2021/3/6,7,2.1.3 AT89系列单片机的主要品种 从表2-1中可以看出,AT89系列单片机主要分为51和52两个子系列,每个子系列都有四种型号. 52子系列与51子系列相比不同之处: flash程序内存增至8KB,数据存储器增至256B,有3个定时器/计数器等; AT89S和AT89C相比新增加了以下功能: 支持在系统程序设计ISP 使生产及维护更方便;增加了片内看门狗使用户的应用系统更坚固;双数据指针使数据操作更加快捷方便;

5、速度更高最高可使用33MHZ的晶振; AT89LS和AT89LV系列 可以在更低的电压(2.7V)和更宽的范围下(2.7V6.0V)工作,使应用范围更加广泛。,2021/3/6,8,2.1.4 AT89系列单片机的型号编码 AT89 系列单片机的型号编码由三个部分组成,它们是前缀、型号和后缀,格式如下: AT 89XXXXXYYYY 其中AT 是前缀,89XXXXX 是型号,YYYY 是后缀。 有关参数的表示和意义如下: 前缀由字母“AT”组成,表示该器件是ATMEL公司的产品。 型号由“89CXXXX”或“89LVXXXX”或“89SXXXX”等表示。 “89CXXXX”中,9是表示内部含F

6、lash内存,C表示为CMOS产品。 “89LVXXXX”中,LV表示低压产品。 “89SXXXX”中,S表示含有串行下载Flash内存。 “XXXX”,表示器件型号数如51、52、53、1051、8252等,2021/3/6,9,后缀由“YYYY”四个参数组成,每个参数的表示和意义不同。在型号与后缀部分有“-”号隔开。 后缀中的第一个参数 Y用于表示速度,后缀中的第二个参数Y用于表示封装,后缀中第三个参数 Y用于表示温度范围,后缀中第四个参数Y用于说明产品的处理情况。 例如:有一个单片机型号为“AT89C5112PI”,则表示意义为该单片机是 ATMEL公司的Flash单片机,内部是CMOS

7、结构,速度为12 MHz,封装为塑封DIP,是工业用产品,按标准处理工艺生产。,2021/3/6,10,2.2AT89系列单片机的结构原理,2.2.1 AT89系列单片机的基本组成 图2-1是AT89系列单片机的基本结构框图。,图2-1 AT89系列单片机的基本结构框图,2021/3/6,11,2.2.2 AT89系列单片机的内部框图 图2-2 是AT89S系列单片机的内部结构框图。,图2-2 AT89S系列单片机的内部结构框图,2021/3/6,12,2.2.3 AT89系列单片机的CPU 中央处理器CPU是单片机的大脑,它决定了单片机的指令系统及主要功能。CPU由运算器和控制器两部分组成,

8、主要完成取指令、指令译玛、发出各种操作所需的控制信号,使单片机各个部分协调工作。 1运算器 运算器是以算术逻辑单元ALU(Arithmetic Logic Unit)为核心,加上累加器A、寄存器B、程序状态字PSW及专门用于位操作的布尔处理机等组成的,它可以实现数据的算术运算、逻辑运算、位变量处理和数据传送等操作。 (1) 累加器ACC 累加器ACC是一个8位累加器,它是CPU中使用最频繁的寄存器,ALU进行运算时,数据绝大多数时候都来自于累加器ACC。它一般用于存放参加运算的操作数和运算结果,在指令系统中用A表示。,2021/3/6,13,(2) B寄存器 B寄存器是运算器中的一个工作寄存器

9、,它是为乘法和除法指令而设置的。在除法指令中,被除数取自ACC,除数取自B,商数存放在ACC中,而余数则存放在B中。乘法指令的两个操作数分别取自ACC和B,乘积则存放在AB寄存器对中(此处的A即ACC)。在其他的运算中,B寄存器可作为中间结果寄存器使用。 (3)程序状态字寄存器PSW 程序状态字寄存器PSW是一个8位的寄存器,包含了各种程序状态信息,它相当于一个标志寄存器,以供程序查询和判别。PSW的格式、各标志的含义及功能定义见表2-4.,2021/3/6,14,此寄存器各位的含义如下(其中PSW.1未用): CY(PSW.7):进位标志(Carry Flag)。在执行某些算术和逻辑指令时,

10、它可以被硬件或软件置位或清零。CY在布尔处理机中被认为是位累加器,其重要性相当于一般中央处理器中的累加器A。 AC(PSW.6):辅助进位标志(Assist Carry Flag)。当进行加法或减法操作而产生由低4位数向高4位数进位或借位时,AC将被硬件置位,否则就被清零。AC被用于BCD码调整,详见指令系统中的“DA A”指令。 F0(PSW.5):用户标志位(Flag) 。F0是用户定义的一个状态标记,用软件来使它置位或清零。该标志位状态一经设定,可由软件测试F0,以控制程序的流向。 RS1、RS0(PSW.4、PSW.3):寄存器区选择控制位(Register Selection)。可以

11、用软件来置位或清零以确定工作寄存器区。RS1、RS0与寄存器区的对应关系见表2-5。,2021/3/6,15,OV(PSW.2):溢出标志(Over Flag) 。带符号加减运算中,超出了累加器A所能表示的符号数有效范围(128127)时,即产生溢出,OV=1,表明运算运算结果错误。如果OV=0,表明运算结果正确。 执行加法指令ADD时,当位6向位7进位,而位7不向C进位时,OV=1;或者位6不向位7进位,而位7向C进位时,同样OV=1。 乘法指令,乘积超过255时,OV=1,乘积在AB寄存器对中。若OV=0,则说明乘积没有超过255,乘积只在累加器A中。,2021/3/6,16,除法指令,O

12、V=1,表示除数为0,运算不被执行;否则,OV=0。 P(PSW.0):奇偶标志。每个指令周期都由硬件来置位或清零,以表示累加器A中1的位数的奇偶数。若1的位数为奇数,P置1,否则P清零。 P标志位对串行通信中的数据传输有重要的意义,在串行通信中常用奇偶校验的办法来检验数据传输的可靠性。在发送端可根据P的值对数据进行奇偶置位或清零。 PSW.1:程序状态字的第1位,该位的含义没有定义,若用户要使用这一位,可直接使用PSW.1的位地址。 PSW寄存器除具有字节地址外,还具有位地址,因此,可以对PSW中的任一位进行操作,这无疑大大提高了指令执行的效率。,2021/3/6,17,例【 2-1 】 试

13、分析下面指令执行后,累加器A,进位标志位C、辅助进位标志AC、溢出标志OV、奇偶标志P的值? MOV A,#66H ADD A,#59H 分析:第一条指令执行时把立即数66H送入累加器A,第二条指令执行时把累加器A中的立即数67H与立即数59H相加,结果回送到累加器A中。加法运算过程如下: 66H=01100110B 59H=01011001B 0 1 1 0 0 1 1 0 B + 0 1 0 1 1 0 0 1 B 1 0 1 1 1 1 1 1=0BFH 则执行后累加器A中的值为0BFH,由相加过程得C=0、AC=0、OV=1、P=1。,2021/3/6,18,2控制器 控制部件是单片机

14、的控制中心,它包括定时和控制电路、指令寄存器、指令译码器、程序计数器PC、堆栈指针SP、数据指针DPTR以及信息传送控制部件等。 它先以振荡信号为基准产生CPU的时序,从ROM中取出指令到指令寄存器,然后在指令译码器中对指令进行译码,产生指令执行所需的各种控制信号,送到单片机内部的各功能部件,指挥各功能部件产生相应的操作,完成指令对应的功能。,2021/3/6,19,(1)程序计数器PC (program counter ) 程序计数器PC用于存放CPU要执行的下一条指令的地址。 执行指令时,CPU按PC的指示地址从ROM中读取指令码送入指令寄存器中,由指令译码器对指令进行译码,发出相应的控制

15、信号,从而完成指令所指定的操作。读取指令后PC会自动+1指向CPU要执行的下一条指令的地址。 系统复位后PC的初始值为0000H,因此CPU从ROM中0000H单元读取指令并译码执行。 程序计数器PC不属于特殊功能寄存器SFR(special function register )块,本身并没有地址,因而不可寻址,用户无法对它进行读/写操作,但是可以通过转移、调用、返回等指令改变其内容,以控制程序按要求转移。,2021/3/6,20,(2) 堆栈指针SP 堆栈指针SP(stack pointer)是一个8位特殊功能寄存器。它指示出堆栈顶部在内部RAM中的位置。系统复位后,SP初始化为07H,使

16、得堆栈事实上由08H单元开始。考虑到08H1FH单元分属于工作寄存器区13,若程序设计中要用到这些区,则最好把SP值改置为1FH或更大的值如60H。 除用软件直接改变SP值外,在执行PUSH、POP、各种子程序调用、中断响应、子程序返回(RET)和中断返回(RETI)等指令时,SP值将自动调整。,2021/3/6,21,(3) 数据指针DPTR (data pointer ) DPTR为16位的数据指针寄存器,由两个8位的寄存器DPH和DPL组成,可存放一个16位的地址值。 当CPU访问64KB的外部数据存储器时,就用DPTR作地址指针,存放外部内存的地址; 当CPU访问64KB的程序存储器时

17、,DPTR用作基址寄存器。 CPU也可单独对DPH、DPL操作,即将DPTR分成两个寄存器使用。,2021/3/6,22,2.3AT89系列单片机的存储器结构,AT89系列单片机采用哈佛结构,有单独的程序存储器和数据存储器。外部程序存储器和数据存储器都可以64K寻址。AT89系列单片机存储器的结构如图2-3所示。,图2-3 AT89系列单片机内存的结构,2021/3/6,23,2.3.1 AT89系列单片机的程序存储器 1AT89系列单片机程序存储器ROM 程序存储器用于存放编好的程序、常数或表格。在正常工作时只可读不可写,掉电后数据不丢失。以AT89S51单片机为例: (1)片内具有4K的f

18、lash结构的电可擦除只读存储器,与INTEL公司早期产品的紫外线擦除的EPROM结构相比,使用更灵活更方便。 (2)外部可以扩展64K的ROM,以满足一些大程序的需要。 但是建议用户尽量不要外扩ROM,因为当扩展外部ROM的时候,系统要占有单片机的P0、P2口及P3口的部分口线作为总线。所以在大多数的应用场合,尽量选择片内的FLASH内存的容量能够满足实际需要单片机型号,这样不仅可以节省额外的硬件投资、节省单片机的口线资源,更重要的是片内FLASH中的程序在下载、烧写时通过“加密”可以得到保护。只有当程序特别大,内部空间无法满足要求时才选用扩展外部ROM。,2021/3/6,24,(3)程序

19、内存最低端的地址可以在片内Flash中,或在外部ROM中。通过单片机/EA的引脚的电平来选择。 例如,在带有4KB片内Flash的AT89S51中,如果把/EA引脚连到Vcc,当地址为0000H0FFFH时,则访问内部Flash;当地址为1000HFFFFH时,将自动转向外部程序内存。 如果/EA端接地,则只访问外部程序内存,不管是否有内部Flash内存。,2021/3/6,25,2AT89系列单片机程序存储器管理 (1)每个ROM单元(byte)对应一个惟一的16bit的地址编码(Address) (2)CPU要到某个ROM单元去取指令,是通过把地址编码写入16位的程序计数器PC来实现的,因

20、此AT89系列单片机地址的编码范围(通常称为寻址范围)为: 0000 0000 0000 0000B 1111 1111 1111 1111B(二进制) 0 0 0 0 H F F F F H (十六进制) 0 65535 (十进制) (3)系统复位后,PC的初始值为0000H,以后的取值是CPU根据用户程序的运行流程自动装载的(程序顺序执行时,PC值自动加1;执行转移指令、子程序调用和中断服务程序时,PC值分别等于转移的目标地址、子程序或中断服务程序的入口地址。,2021/3/6,26,3AT89系列单片机程序存储器的分配 程序内存的某些单元是保留给系统使用的,这几个单元的配置如图2-4所示

21、。 从图2-4可知,单片机复位后,程序计数器PC的内容为0000H,所以CPU总是从0000H单元开始执行程序。,图2-4 程序内存的复位及中断入口配置,2021/3/6,27,3AT89系列单片机程序存储器的分配 从地址0003H开始,系统每隔8个单元为6个中断服务子程序分配有一个固定的入口地址。 如外部中断0的入口地址为0003H;定时器0的入口地址为000BH;外部中断1的入口地址为0013H;定时器1的入口地址为001BH;以此类推。 中断响应后,程序指针PC将自动根据中断类型指向这些入口地址的某一个,CPU就从这里开始执行中断服务子程序。 因此从0003H单元开始的这段区域应该保留给

22、中断使用,所以程序设计时在0000H0002H单元放置一条转移指令,跳过这段区域,转到系统主程序,除非系统不使用中断,主程序才可以覆盖这段区域。,2021/3/6,28,2.3.2 AT89系列单片机的数据存储器 数据存储器RAM用于存放程序中的“中间数据”或程序运行后的结果。掉电后内容会丢失。 与程序存储器一样,数据存储器同样可分为两个地址空间:一个为内部256B内存空间,一个为外部扩展的64KB内存空间。 使用外部RAM同样是要付出占用口资源为代价的,所以一般情况下不提倡使用外部RAM。 51系列单片机使用MOV指令访问内部RAM空间,使用 MOVX指令访问外部RAM空间。,2021/3/

23、6,29,1.内部数据存储器的结构 单片机的内部数据存储器结构如图2-5所示。片内数据存储器地址范围是00HFFH,只有256个字节。 对于51系列高128B被特殊功能寄存器占用。对于52等内部具有256B系列单片机,高128字节与特殊功能寄存器地址重迭。也就是说高128字节与特殊功能寄存器有相同的地址,而物理上是分开的。 当一条指令访问高于7FH 的地址时,寻址方式决定CPU 访问高128 字节RAM 还是特殊功能寄存器空间。,图2-5单片机的内部数据存储器结构,2021/3/6,30,直接寻址方式访问特殊功能寄存器(SFR): 例如:MOV 0A0H , #data,直接寻址指令访问0A0

24、H(P2口)存储单元; 间接寻址方式访问高128 字节RAM: 例如:当R0 内容为0A0H,指令MOV R0 , #data,访问的是地址0A0H的寄存器,而不是P2口(它的地址也是0A0H)。 (1)低128字节RAM区 低128字节区的分配情况如图2-6所示。主要分为三个区域:工作寄存器组区、位寻址区和用户RAM区。,图2-6 内部RAM低128字节区的分配,2021/3/6,31,1)工作寄存器组区 最低32个单元(地址为00H1FH)是4个通用工作寄存器组。每个寄存器组含有8个8位寄存器,编号为R0R7。 程序状态字PSW中的2位RS0、RS1用来确定当前采用哪一个工作寄存器组,其对

25、应关系如前面的表2-3所示。 在某一时刻只能选用其中的一组寄存器工作,系统复位后,指向工作寄存器组0。如果用户程序不需要4个工作寄存器区,则不用的工作寄存器单元可以作一般的RAM使用。,2021/3/6,32,2)位寻址区 内部RAM区中的20H2FH单元(16字节)可供位寻址,这16个单元共有128位,每位均可直接寻址,其位地址范围为00H7FH,具体情况见表2-6。 这些位地址有两种表示方式:一种是采用位地址形式,即00H7FH; 一种是用字节地址(20H2FH).位数方式表示。例如,位地址00H07H也可表示为20H.020H.7。,2021/3/6,34,3)用户RAM区 30H7FH

26、共80个字节单元,为字节寻址的内部RAM区,可供用户作为数据存储区。这一区域的操作指令非常丰富,数据处理方便灵活,是非常宝贵的资源。但是,如果堆栈指针初始化时设置在这个区域,就要留出足够的字节单元作为堆栈区,以防止在数据存储时,破坏了堆栈的内容。 堆栈:是按先进后出或后进先出原则进行读/写的特殊RAM区域。51单片机的堆栈区是不固定的,原则上可设置在内部RAM的任意区域内。实际使用时要根据对片内RAM各功能区的使用情况而灵活设置, 应避开工作寄存器区、位寻址区和用户实际使用的数据区,一般设在2FH地址单元以后的区域。,2021/3/6,35,堆栈的作用:主要用在子程序调用或中断处理过程中,用于

27、保护断点和现场,实现子程序或中断的多级嵌套处理。 在CPU响应中断或调用子程序时,会自动地将断点处的16位返回地址压入堆栈。 在中断服务程序或子程序结束时,返回地址会自动由堆栈弹出,并放回到程序计数器PC中,使程序从原断口处继续执行下去。 堆栈除了用于保护断点处的返回地址外,还可以用于保护其他一些重要信息,要注意的是,必须按照“后进先出”的原则存取信息。堆栈也可以作为特殊的数据交换区使用。,2021/3/6,36,堆栈的开辟:栈顶的位置由专门设置的堆栈指针寄存器SP指出。 51单片机的SP是8位寄存器,堆栈属向上生长的,当数据压入堆栈时,SP的内容自动加1,作为本次进栈的指针, 然后再存入数据

28、。SP的值随着数据的存入而增加。 当数据从堆栈弹出之后, SP的值随之减少。 复位时, SP的初值为07H,用户在初始化程序中可以给SP赋新的初值。,2021/3/6,37,(2)高128字节的特殊功能寄存器SFR区 特殊功能寄存器SFR是单片机片内资源的控制指挥单元,单片机内部不管集成了多少外围接口部件和功能单元,都是通过特殊功能寄存器SFR进行控制和管理的,因此学习任何一个单片机的功能部件的使用,一定要了解与之相关的SFR,并弄清通过这些SFR如何去控制你所使用的功能部件。 51系列单片机内的I/O锁存器、定时器、串行口数据缓冲器以及各种控制寄存器和状态寄存器都以特殊功能寄存器的形式出现。

29、它们离散地分布在80HFFH的地址空间范围内,具体分布见表2-7。,2021/3/6,38,2021/3/6,39,表2-7列出了AT89S52单片机所有的特殊功能寄存器及其地址和初始值。字节地址能被8整除的专用寄存器都可以实现位寻址,个别不能被8整除的专用寄存器也可以实现位寻址,其位地址见表2-8。,2021/3/6,40,1)SFR的使用方法 从表2-7可以看出,80HFFH这128字节并不是所有的地址都定义了SFR。在这个区域当中,除了SFR之外剩余的空闲单元,用户不得使用。读这些地址,一般将得到一个随机数据;写入的数据将会无效。 必须使用直接寻址方式对SFR进行访问,可使用寄存器名称(

30、是它的符号地址)或地址。 例如:0EOH累加器的地址 ACC累加器的名称,2021/3/6,41,具有位地址和位名称的SFR才可以位寻址,位地址有以下4种表示形式: 直接使用位地址表示 例如:0D7H PSW最高位的位地址 使用位名称表示、 例如:CY PSW最高位的位名称 使用SFR字节地址.位形式表示 例如:0D7H.7 PSW字节地址.最高位 使用SFR名称. 位形式表示 例如:PSW.7 PSW名称.最高位,2021/3/6,42,2)AT89S系列单片机新增的SFR及功能简介 AT89S系列单片机除了如表2-8所示的和AT89C系列单片机相同的SFR以外,又新增了几个SFR,使其功能

31、更强。 双数据指针寄存器DPTR0和DPTR1 (Double data pointer register ): AT89S系列单片机提供了两路16位数据指针寄存器:位于SFR中82H83H的DPTR0和位于84H85H的DPTR1,能给程序设计带来很大的便利。 在8051体系中,数据指针DPTR作为一个特殊的16位寄存器,用于寻址64 KB的XDATA或CODE空间。双数据指针可以改善同时需要两个16位指针运用时的性能。 DPTR0仍然运用原来的地址,用AUXR1的0位DPS来切换。当DPS位为0时,所有对DPTR的操作运用 DPTR0;当DPS位为1时,所有对DPTR的操作运用 DPTR1

32、。 这样,通过一个基本的INC AUXR1指令,就可以来回切换两个数据指针,2021/3/6,43,例如: MOV AUXR1,#0 ; DPS (Data Pointer Selection )为0,DPTR0有效 INC AUXR1 ; DPS为1,DPTR1有效 (INC为加1指令) INC AUXR1 ; DPS为0,DPTR0有效 辅助寄存器1(AUXR1) (auxiliary register ) AUXR1用于选择双数据指针寄存器DP0和DP1,它的字节地址为A2H,不可以位寻址。各位的定义如图2-7所示。 图2-7辅助寄存器1 AUXR1 其中:- :预留扩展用; DPS :

33、数据指针选择位 DPS=0 选择DPTR寄存器DP0L和DP0H;DPS=1 选择DPTR寄存器DP1L和DP1H。,2021/3/6,44,辅助寄存器(AUXR) AUXR 用于选择ALE (地址锁存允许Address latch enable )的时钟输出方式、RESET输出及空闲模式下WDT (看门狗定时器 Watch Dog Timer )的工作方式,地址为8EH,不可以位寻址,各位的定义如图2-8所示。,图2-8 辅助寄存器AUXR 其中: - :预留扩展用 DISALE: ALE使能标志位 DISALE=0 ALE 以1/6晶振频率输出信号;DISALE=1 ALE 只有在执行MO

34、VX 或MOVC指令时启动 DISRTO: 复位输出标志位 DISRTO=0 看门狗(WDT)定时结束,Reset 输出高电平;DISRTO=1 Reset 只有输入 WDIDLE:空闲模式下WDT使能标志位 WDIDLE=0 空闲模式下,WDT继续计数;WDIDLE=1 空闲模式下,WDT停止计数,2021/3/6,45,看门狗复位特殊功能寄存器WDTRST WDTRST的地址为0A6H,用于系统初始化时向WDTRST寄存器依次写入0E1H和0E1H来启动WDT;当WDT启动后,系统正常工作时,用户必须定时向WDTRST写入01EH和0E1H即喂狗来避免WDT溢出。当系统由于干扰造成死机,不

35、能定时向WDTRST写入01EH和0E1H即喂狗时,WDT溢出使系统复位,使系统恢复正常工作。 (3)内部高128B的RAM区(仅52等系列单片机具有) 内部高128B的RAM区具有和SFR区相同的地址,但必须使用间接寻址方式访问,例如:将50H写入85H单元,可以采用如下形式: MOV R0,#85H MOV R0,#50H,2021/3/6,46,2.外部数据存储器 外部数据存储器的寻址空间可达64KB,地址范围是0000HFFFFH。P0端口作为RAM的地址/数据总线,当外部地址空间小于FFH时,只需P0口作为地址总线即可,P2口可以作为一般的I/O使用。当外部地址空间大于FFH时,则由

36、P2端口传送高8位地址。对片外数据存储器的访问,使用MOVX的间接寻址指令,以区别对内部RAM的访问,同时产生读、写信号。,2021/3/6,47,2.4 AT89系列单片机的引脚功能,2.4.1 外部引脚 图2-9是AT89S52单片机的引脚结构图,它有双列直插式的PDIP封装、方形的PLCC封装和PQFP/TQFP封装。,2021/3/6,48,图2-9 AT89S52单片机的引脚图 在图2-9 AT89S52单片机的引脚图中,P1.0(T2EX)、 P1.1(T2)引脚的第二功能(括号内功能),只有52等内部具有T2的系列单片机具有,P1.5(MOSI)、P1.6(MISO)、P1.7(

37、SCK)引脚的第二功能只有89S系列单片机具有。这些引脚从功能角度来看可分为下面四个部分:,2021/3/6,49,图2-9 AT89S52单片机的引脚图 1输入输出引脚 AT89系列单片机共有四个8位的并行I/O口:P0、P1、P2、P3口,对应的引脚分别是P0.0 P0.7,P1.0 P1.7,P2.0 P2.7,P3.0 P3.7,共32根I/O线。每根线可以单独用作输入或输出。,2021/3/6,50,2控制引脚 (1)RST 复位输入端。 在振荡器运行时,在此脚上出现两个机器周期以上的高电平将使单片机复位。看门狗定时器(Watchdog)溢出后,该引脚会保持98个振荡周期的高电平,也

38、会使单片机复位。 (2)ALE/PROG 地址锁存允许/编程脉冲 在访问外部存储器时,这个输出信号用于锁存低字节地址。在对Flash内存编程时,这条引脚用于输入编程脉冲PROG。一般情况下,ALE是振荡器频率的6分频信号,可用于外部定时或时钟。但是,在对外部数据存储器每次存取中,会跳过一个ALE脉冲。在需要时,可以把AUXR寄存器的0位置为“1”,从而屏蔽ALE的工作;而只有在MOVX或MOVC指令执行时ALE才被启动。在单片机处于外部执行方式时,对ALE屏蔽位置“1”并不起作用。,2021/3/6,51,(3)/PSEN 外部程序存储器的选通信号 它用于读外部程序存储器的选通信号,低电平有效

39、。当AT89系列单片机在执行来自外部程序存储器的指令时,每一个机器周期PSEN被启动2次。在对外部数据存储器的每次存取中,/PSEN不出现。 (4)/EA/Vpp 外部程序存储器访问允许端/编程电源输入端 /EA接地,单片机从地址为0000HFFFFH的外部程序内存中读取代码。/EA接到Vcc,单片机先从内部程序内存中读取代码,然后自动转向外部。在对Flash内存编程时,这条引脚接收12V编程电压Vpp。,2021/3/6,52,3电源和时钟引脚 Vcc:电源端。 GND:接地端。 4外接晶体引脚 XTAL1:接外部晶体的一个引脚。在单片机内部,它是构成片内振荡器的反相放大器的输入端。当采用外

40、部振荡器时,该引脚接收振荡器的信号,即把此信号直接接到内部时钟发生器的输入端。 XTAL2:接外部晶体的另一个引脚。在单片机内部,它是构成片内振荡器的反相放大器的输出端。当采用外部振荡器时,此引脚应悬浮不连接。如图2-10、图2-11所示。,2021/3/6,53,图2-10内部振荡器的接法 图2-11外部振荡器的接法,2021/3/6,54,2.4.2 片外总线结构 从AT89系列单片机引脚可以看出,除了电源、复位、时钟输入以及I/O口外,其余的管脚都是为实现系统扩展而设置的。这些管脚构成了片外三总线结构,如图2-12所示。,图2-12 51系列单片机片外总线结构图,2021/3/6,55,

41、1.地址总线(AB) 地址总线的宽度是16位,因此可以寻址的范围是64KB。采用分时复用技术,可以对外部64KB的数据存储器或程序存储器直接寻址。它由P0口提供16位地址总线的低8位(A0A7),由P2口提供地址总线的高8位(A8A15)。 2.数据总线(DB) 数据总线的宽度是8位,它由P0口提供。 3.控制总线(CB) 控制总线由P3口的第二功能(RXD、TXD、INT0、INT1、T0、T1、RD、WR)和4根独立的控制线(RST、EA、ALE、PSEN)组成。,2021/3/6,56,2.5 AT89系列单片机的I/O接口,AT89系列单片机有P0(P0.0P0.7)、P1(P1.0P

42、1.7)、P2(P2.0P2.7)、P3(P3.0P3.7)4个8位双向输入/输出端口,在结构上因端口的使用功能不同,其结构和性能都有所不同因此了解端口的结构特点是十分必要的,下面分别介绍。 2.5.1 P0口 P0口是一个8位漏极开路的双向I/O口。图2-13是P0口的位结构图。,2021/3/6,57,图2-13 P0口的位结构图 1.P0口作通用I/O口使用。 对于内部有flash内存的单片机,P0口可以作通用I/O口,此时控制端为低电平,转换开关MUX把输出级与锁存器的端接通,同时因与门输出为低电平,输出级T1管处于截止状态,输出级为漏极开路电路。 (1)在I/O模式下作输出口使用时,

43、P0口应外接上拉电阻(10K左右),否则P0口无法输出高电平 (2)在I/O模式下作输入口使用时,在输入操作前应先向端口写“1”,2021/3/6,58,2. P0口作低8位地址/数据复用总线使用。 若单片机外部扩展存储器,P0口输出低8位地址或数据信息,此时控制端应为高电平,转换开关MUX将反相器输出端与输出级场效应管T2接通。在该模式,P0口拥有内部上拉电阻。工作时低8位地址与数据线分时使用P0口。低8位地址由ALE信号的负跳变使它锁存到外部地址锁存器中,而高8位地址由P2口输出。 3. 对Flash内存进行编程或校验时输入或输出代码 在对Flash内存进行编程下载时,P0用于接收程序代码

44、字节;在校验时,则输出程序代码字节,此时需要外加上拉电阻。,2021/3/6,59,2.5.2 P1口 P1口是一个有内部上拉电阻的准双向口,位结构如图2-14所示,P1口在电路结构上与P0口有一些不同之处。首先它不再需要多路转接电路MUX,其次是电路的内部有上拉电阻。与场效应管共同组成输出驱动电路。 1. P1口作通用I/O口使用 作为输出口使用时,已能向外提供推拉电流负载,无需再外接上拉电阻。在作输入时,和P0口一样,必须先将“1”写入锁存器,使场效应管T2截止,从而完成输入操作。,图2-14 P1口的位结构图,2021/3/6,60,2. P1口管脚复用功能 对于52系列单片机,P1.0

45、与P1.1可以配置成定时/计数器2的外部计数输入端(P1.0/T2)与定时/计数器2的触发输入端(P1.0/T2EX);对于AT89S系列单片机P1.5、P1.6、P1.7用于flash内存的ISP下载引脚。 3.对Flash内存进行编程或校验时接收低8位地址 在对AT89系列单片机内部Flash并行编程下载和程序校验时,P1口接收低8位地址。,2021/3/6,61,2.5.3 P2口 1. P2口作通用I/O口使用。 当P2口作通用I/O口使用时,是一个准双向口,位结构如图2-14所示,此时转换开关MUX倒向左边,输出级与锁存器接通,引脚可接I/O设备,其输入/输出操作与P1口完全相同。,

46、图2-15 P2口的位结构图,2021/3/6,62,2. P2口作高8位地址总线口使用。 当系统扩展外部存储器时,P2口用于输出高8位地址A15A8。这时在CPU的控制下,转换开关MUX倒向右边,接通内部地址总线。 3. 对Flash内存进行编程和校验时接收高位地址 在对AT89系列单片机内部Flash并行程序设计和程序校验时,P2口也接收高位地址或一些控制信号。,2021/3/6,63,2.5.4 P3口 P3口是一个多用途的口,也是一个准双向口,作为第一功能(通用I/O端口)使用时,其功能同P1口。P3口的位结构如图2-16所示。当作为I/O使用时,第二功能信号引线应保持高电平,与非门开

47、通,以维持从锁存器到输出端数据输出通路的畅通。,图2-16 P3口的位结构图,2021/3/6,64,2.5.4 P3口,P3口还接收一些控制信当作第二功能使用时,每一位功能定义如表2-10所示。P3口的第二功能实际上就是系统具有控制功能的控制线。当输出第二功能信号时,该位的锁存器应置“1”,使与非门对第二功能信号的输出是畅通的,从而实现第二功能信号的输出。CPU区分单片机的引脚是否有第二功能只要CPU执行到相应的指令,就自动转成了第二功能。,2021/3/6,65,2.6AT89S系列单片机内部看门狗定时器(WDT),2.6.1看门狗定时器(WDT)简介 WDT是为了解决CPU运行时可能进入

48、混乱或死循环而设置的,AT89S51的WDT由一个14bit计数器和看门狗复位RST(WDTRST)构成。 外部复位时,WDT默认为关闭状态,要打开WDT,用户必须顺序将01EH和0E1H写到WDTRST寄存器(SFR地址为0A6H)中。 当启动WDT后,它会随晶体振荡器在每个机器周期计数,除硬件复位或WDT溢出复位外没有其它方法关闭WDT。 WDT溢出将使RST引脚输出高电平的复位脉冲,复位脉冲持续时间98个时钟周期,2021/3/6,66,2.6.2看门狗定时器(WDT)的使用 1.按次序写01EH和0E1H到WDTRST寄存器(RST地址为0A6H)中,打开WDT。 2当WDT打开后,需

49、周期性地写01EH和0E1H到WDTRST寄存器以避免WDT计数溢出。 3WDT打开时它会随晶体振荡器在每个机器周期计数,14bit WDT计数器计数达到16383(即3FFFH),WDT将溢出并使器件复位。这意味着用户必须在小于16383个机器周期内复位WDT(重写01EH和0E1H到WDTRST寄存器)。,2021/3/6,67,2.7 AT89系列单片机的复位工作方式,复位:将单片机系统置成特定初始状态的操作,复位后程序从头(0000H单元)开始执行程序。 系统刚接通电源或重新启动时均进入复位状态。当系统处于正常工作状态时,如果RST引脚上有一个高电平并维持2个机器周期(24个振荡周期)以上,则CPU就可以实现可靠复位,如图2-17所示,其中TCY为机器周期,等于12个时钟周期。各寄存器和程序计数器PC的状态见表2-11所示。,图2-17 复位电路示意图,2021/3/6,68,系统简单的复位电路图如图2-18所示其中. 图2.18

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

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1