版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第2章单片机的硬件结构
【知识目标】1.熟悉AT89S51单片机的片内硬件基本结构;2.了解AT89S51单片机的引脚,熟悉并掌握各引脚的功能;3.掌握AT89S51单片机的存储器结构;4.熟悉AT89S51单片机的特殊功能寄存器功能;5.了解4个并行I/O口的结构,熟悉其特点;6.熟悉单片机时序的相关概念;7.了解节电工作模式。第2章单片机的硬件结构【技能目标】1.掌握AT89S51单片机的存储器分配;2.掌握AT89S51单片机的4个并行I/O口的应用;3.熟悉复位电路和时钟电路的设计。2.1AT89S51单片机的硬件组成2.2AT89S51单片机的引脚功能2.3AT89S51的CPU2.4AT89S51单片机的存储器结构2.5AT89S51的并行I/O口2.6时钟电路及复位电路2.7AT89S51单片机的工作方式第2章单片机的硬件结构
2.1AT89S51单片机的硬件组成AT89S51单片机在一块芯片上集成了CPU、RAM、ROM、定时/计数器和多种I/O功能部件,具有如下功能部件和特性。(1)8位微处理器。(2)与MCS-51产品指令系统完全兼容。(3)内部数据存储器128B(4)4个8位可编程I/O口。(5)2个16位定时/计数器。(6)5个中断源。(7)1个全双工的异步串行口。(8)在线可编程功能(ISP)的4KB闪速存储器。(9)工作电压4.0~5.5V。(10)看门狗定时器。(11)双数据指针。(12)三个程序加密锁定位。(13)低功耗空闲和掉电模式。AT89S51单片机片内的各个功能部件通过单一总线连接,如图2-1所示。CPU对各功能的控制是采用特殊功能寄存器(SFR)的集中控制方式,现对各组成部分的情况介绍如下。(1)中央处理器(CPU)。AT89S51单片机的中央处理器是8位,完成运算和控制操作。(2)内部数据存储器。实际上AT89S51单片机中共有256字节RAM单元,但其中后128单元被特殊功能寄存器占用,供用户使用的只是前128单元,用于存放可读写的数据。因此,通常所说的内部数据存储器是指前128单元,简称“内部RAM”。(3)内部程序存储器。如图2-1所示,AT89S51单片机共有4KBFlashROM,用于存放程序和原始数据,简称“内部ROM”。(4)定时器/计数器。AT89S51共有两个16位的定时器/计数器,以实现定时或计数功能,并以其定时或计数结果对单片机进行控制。(5)并行I/O口。AT89S51共有4个8位的I/O口(P0、P1、P2、P3),以实现数据的并行输入输出。(6)串行口。AT89S51单片机有一个全双工的串行口,以实现单片机和其它数据设备之间的串行数据传送。该串行口功能较强,既可作为全双工异步通信收发器使用,也可作为同步移位器使用。(7)中断控制系统。AT89S51单片机的有五个中断源、两个中断优先级。(8)开门狗定时器WDT。WDT提供了当CPU由于干扰使程序陷入死循环或跑飞状态时而使程序恢复正常运行的有效手段。(9)特殊功能寄存器(SFR)。AT89S51单片机共有26个特殊功能寄存器,用于CPU对片内各功能部件进行管理、控制和监视。特殊功能寄存器实际上是片内各个功能部件的控制寄存器和状态寄存器,这些特殊功能寄存器映射在片内RAM区80H~0FFH的地址区间内。(10)在线可编程功能(ISP)程序代码存储阵列可以通过串行ISP接口编程。AT89S51单片机与MCS-51系列单片机中各种型号芯片的引脚是互相兼容的,AT89S51单片机多采用40引脚双列直插封装(DIP)方式,如图2-2所示。另外还有采用PLCC封装方式的芯片,44引脚中有4只引脚是无用引脚;TQFP封装方式的芯片,44引脚中有3只引脚是无用引脚,有两只接地引脚。2.2AT89S51单片机的引脚功能1)电源引脚Vcc和VssVcc(40脚),电源端,接+5V电源。Vss(20脚):接地端,接数字地。
通常,Vcc和Vss之间应接高频和低频滤波电容。2)时钟电路引脚XTAL1和XTAL2XTAL1(19脚):当使用片内振荡器时,该引脚接外部石英晶振和微调电容一端。若使用外部时钟时,该引脚接外部时钟信号。XTAL2(18脚):当使用片内振荡器时,接外部石英晶振和微调电容的另一端。若使用外部时钟时,该引脚悬空。2.2.1电源及时钟引脚RST(9脚):复位信号输入端,高电平有效。当振荡器工作时,RST引脚出现两个机器周期以上高电平将使单片机复位。WDT溢出也使该引脚输出高电平,设置特殊功能寄存器AUXR的DISRTO位(地址8EH,将在本章后面介绍)可打开或关闭该功能。DISRTO位缺省为RST输出高电平打开状态。ALE/(30脚):地址锁存控制信号/编程脉冲输入端。当访问外部程序存储器或数据存储器时,ALE输出脉冲用于锁存低8位地址。即使不访问外部存储器,ALE仍以时钟振荡频率的1/6输出固定的正脉冲信号,因此它可对外输出时钟或用于定时目的。要注意的是:每当访问外部数据存储器时将跳过一个ALE脉冲。
2.2.2控制引脚为该引脚的第二功能,对F1ash存储器编程期间,该引脚用于输入编程脉冲。
如有必要,可通过对特殊功能寄存器(SFR)区中的AUXR的D0位置位,可禁止ALE操作。该位置位后,只有一条MOVX和MOVC指令ALE才会被激活。此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE无效。
(29脚):程序储存允许输出端,是外部程序存储器的读选通信号,低电平有效。当AT89S51从外部程序存储器取指令时,每个机器周期两次
有效,即输出两个脉冲。当访问外部数据存储器,不会出现两次有效的
信号。
(31脚):为该引脚的第一功能,为访问程序存储器控制信号。当
信号为低电平时,对ROM的读操作限定在外部程序存储器;而当
信号为高电平时,则对ROM的读操作是从内部程序存储器开始,并可延续至外部程序存储器。
为该引脚的第二功能,在对片内Flash进行编程时,
引脚接入编程电压。1)P0口,P0.0~P0.7(32脚~39脚),为双向8位三态I/O口。当AT89S51单片机扩展片外存储器或扩展I/O端口时,P0口作为地址总线低8位及数据总线分时复用端口。除此之外,P0口也可以作为通用的I/O端口使用。2)P1口,P1.0~P1.7(1脚~8脚),为8位准双向I/O口,作为通用的I/O端口使用。P1.5/MOSI,P1.6/MISO和P1.7/SCK也可用于对片内Flash存储器串行编程和校验,它们分别是串行数据输入、串行数据输出和移位脉冲引脚。2.2.3并行I/O口引脚3)P2口,P2.0~P2.7(21脚~28脚),为8位准双向I/O口,当作为通用I/O口使用时,可直接连接外部I/O设备;当扩展外部存储器或I/O端口时,P2口作为地址总线的高8位,输出高8位地址。4)P3口,P3.0~P3.7(10脚~17脚),为8位准双向I/O口,可作为通用I/O口使用,还可以将每位用于第二功能。P3口的第二功能定义如表2-1所示。引脚第二功能名称P3.0RXD串行口输入端P3.1TXD串行口输出端P3.2外部中断0输入端口P3.3外部中断1输入端口P3.4T0定时/计数器0外部计数脉冲输入端口P3.5T1定时/计数器1外部计数脉冲输入端口P3.6写选通输出口P3.7读选通输出口中央处理器(CPU),是单片机的核心,包括运算器和控制器,完成运算和控制的功能。2.3.1运算器运算器主要是对操作数进行算术运算、逻辑运算和位操作运算。它以算术逻辑单元ALU为核心,包括累加器A,寄存器B、程序状态字PSW、位处理器等部件。(1)算术逻辑运算单元ALU算术逻辑运算单元ALU不仅能进行加、减、乘、除等基本运算,还可以对8位变量进行逻辑“与”、“或”、“异或”、循环移位、求补、清零等操作。单片机的ALU还可以对位变量置1、清0、求补、逻辑与和逻辑或等功能。(2)累加器A累加器A又称为ACC,它通过暂存器和ALU相连,它是CPU中工作最繁忙的寄存器,因为在进行算术、逻辑运算时,运算器的一个输入多为ACC的输出,而运算结果大多数也要送到ACC中。2.3AT89S51的CPU(3)寄存器B寄存器B在作乘除运算时用来存放一个操作数,它也用来存放乘除运算后的一部分结果,若不作乘除操作时,寄存器B可用作通用寄存器使用。(4)程序状态字寄存器PSW。PSW是8位寄存器,属于特殊功能寄存器,字节地址是D0H,用来存放运算结果的一些特征,其格式如表2-2:D7D6D5D4D3D2D1D0CYACF0RSIRS0OVF1P其中每位的具体含义如下:CY(PSW.7):进位标志位,常用C表示。在进行加法(或减法)运算时,若运算结果最高位有进位(或借位)时,C置“1”,否则清“0”;在进行位操作时,C作为位操作累加器。AC(PSW.6):半进位标志位。在进行加法(或减法)运算时,若低半字节向高半字节有进位(或借位)时,AC置“1”,否则清“0”;AC还作为BCD码运算调整时的判别位。F0(PSW.5):用户标志位,由用户置位、清零。在编写程序时,用户可以充分的使用该位。RS1(PSW.4)、RS0(PSW.3):工作寄存器指针,用来选择当前工作的寄存器组。由用户用指令改变RS1、RS0的组合,以选择当前的工作寄存器组。工作寄存器共有4组,其对应关系见表2-3。RS1RS0所选的寄存器组片内RAM地址00第0组00H~07H01第1组08H~0FH10第2组10H~17H11第3组18H~1FH单片机复位时,RSl=RS0=0,CPU选中第0组为当前工作寄存器。OV(PSW.2):溢出标志。反映运算结果是否溢出,溢出时OV为“1”,否则为“0”。在有符号数的两个数进行加减法运算时,结果超出了-128~+127,此时运算结果是错误的,则OV=1。如果OV=0,说明运算结果是正确的。在乘法运算中,当乘积大于255时,OV=1,否则OV=0;在除法运算时,如果除数为0,则OV=1,否则OV=0。在有符号数进行加减法运算时,常用的判别方法是:两个有符号数在进行加法(或减法)运算时,第六位或第七位中仅有1位发生进位(或借位)现象,则OV=1;第六、七位都没进位(或借位)或都有进位(或借位),则OV=0。F1(PSW.1),保留位,未用。P(PSW.0):奇偶标志。反映累加器A中内容的奇偶性。若A中有奇数个“1”,则P置为“1”,否则P清“0”。此标志位对串行口通信中的数据传输有重要的意义,在串行通信中,常用奇偶检验的方法来检验数据传输的可靠性。则:
(A)=0D0HCY=0AC=1(A)=8FHCY=1AC=0OV=1P=1OV=0P=1
01010110(+86)
11001000(-56)+)01111010(+122)
+)11000111(-57)011010000→A
110001111→A控制器是CPU的大脑中枢,它包括定时控制逻辑、指令寄存器、指令译码器、双数据指针及程序计数器PC、堆栈指针SP以及地址寄存器、地址缓冲器等。它的功能是对逐条指令进行译码,并通过定时和控制电路在规定的时刻发出各种操作所需的内部和外部控制信号,协调各部分的工作,完成指令规定的操作。下面介绍控制器中主要部件的功能。2.3.2控制器(1)程序计数器PC(ProgramCounter)。PC是控制器中最基本的寄存器,是一个独立的计数器,存放着下一条要执行的指令在程序存储器ROM中的地址,是不可访问的,即用户不能直接使用指令对PC进行读或者写的操作。在MCS-51中,PC是一个16位的计数器,故可对64KB(64K==65536)的程序存储器进行寻址。程序计数器PC的工作过程是:CPU读指令时,PC的内容作为所取指令的地址输出给程序存储器,然后ROM按此地址输出指令字节,同时PC本身内容自动增加,指向下一条指令在ROM中的首地址。所谓堆栈就是只允许在其一端进行数据插入和数据删除操作的线性表。数据写入堆栈称为入栈(PUSH)。数据从堆栈中读出称之为出栈(POP)。堆栈是按照“后进先出”的规则读取数据。堆栈的主要功能有两个:保护断点和保护现场。在计算机转去执行子程序或中断服务之前,必须考虑其返回问题和现场保护问题。为此应预先把主程序的断点和单片机中各有关寄存器单元的内容保护起来,为程序的正确运行做准备。此外,堆栈也可用于数据的临时存放,在程序设计中时常用到。堆栈可有两种类型:向上生长型和向下生长型,在MCS-51单片机属向上生长型,如图2-3所示。向上生长型堆栈,栈底在低地址单元。随着数据进栈,地址递增;反之,随着数据的出栈,地址递减。(2)堆栈指针SP(StackPointer)。图2-3向上生长型堆栈堆栈指针SP是一个8位的专用寄存器,用来存放栈顶的地址。进栈时,堆栈指针SP自动加1,然后将数据压入SP所指定的地址单元;出栈时,先将SP所指向单元中的数据弹出,然后SP自动减1。堆栈区通常设置在内部RAM30H~7FH区间。通用微机系统采用的是程序存储器和数据存储器统一编址的普林斯顿结构,而单片机中使用的是程序存储器和数据存储器相互独立编址的哈佛结构。如图2-4所示为MCS-51系列单片机存储器结构图。2.4AT89S51单片机的存储器结构如图2-4所示,MCS-51系列单片机的存储器分为程序存储器和数据存储器,其中程序存储器为片内片外统一编制,数据存储器分为内部数据存储器和外部数据存储器。程序存储器是主要用于存放程序和常数。AT89S51单片机的程序存储器从空间上分为片内程序存储器和片外程序存储器,但是片内程序存储器和片外程序存储器是统一编址。片内程序存储器是4KB,地址范围为0000H~0FFFH。片外程序存储器根据用户需要扩展,最大可以扩展64KB,地址范围为0000H~FFFFH。CPU访问片内存储器和片外存储器有单片机
引脚的电平决定。当=0时,CPU从片外程序存储器0000H开始读取指令,而片内ROM中的内容不会被理会。当=1时,CPU从片内程序存储器0000H开始读取指令,但是当PC的值大于0FFFH时,PC自动读取片外ROM1000H~FFFFH空间内的指令,而片外程序存储器0000H~0FFFH存储器空间中的内容不会被读取。AT89S51单片机复位后,程序计数器PC为0000H,系统从0000H开始执行程序。AT89S51单片机的程序存储器中有5个地址单元被固定用于中断源的中断服务子程序的入口地址,如表2-4所示。2.4.1程序存储器空间5个中断源中断入口地址外部中断00003H定时/计数器0溢出中断000BH外部中断10013H定时/计数器1溢出中断001BH串行中断0023H
表2-45个中断源的中断入口地址
中断程序响应后,自动转到各个中断入口地址执行程序,但是由于两个中断入口地址之间只有8个单元,通常情况下,8个单元很难存储一个中断服务子程序。因此通常在该地址区的开始存放一条无条件转移指令,跳向中断服务子程序。用户的主程序一般存储在0030H单元以后。数据存储器主要用来存储输入/输出数据,中间结果等信息。MCS-51单片机的数据存储器分为片内数据存储器、特殊功能寄存器和片外数据存储器,如图2-4所示。(1)片内数据存储器片内数据存储器共有128B,地址为00H~7FH,分为工作寄存器区、位寻址区和用户RAM区。00H~1FH为工作寄存器区,共32个单元,如图2-5所示,被分为4组,每组有8个寄存器(R0~R7)。任意一刻,CPU只能使用其中的一组寄存器,称当前正在使用的寄存器组为当前寄存器。具体使用哪组寄存器由PSW中的RS1和RS0位决定,CPU复位后使用的是0组寄存器。如果在程序的运行过程中不使用的寄存器也可以作为RAM使用。2.4.2数据存储器空间20H~2FH为位寻址区,共16个单元。这16个单元可以作为字节单元使用,同时这16个单元中的每一位也可以单独使用,即位寻址,如图2-5所示。位地址的表示可以使用位地址直接表示,也可以使用字节地址和位相结合的表示方法。如00H位可以直接使用位地址表示,也可以使用20H.0表示。需要注意的是,位地址00H~7FH和片内RAM中的字节地址00H~7FH的编码表示相同。但是在位操作指令的地址是位地址,而不是字节地址,同理在字节操作指令中是字节地址。30H~7FH为用户RAM区。用于存放各种数据、中间结果,起到数据缓冲的作用。在实际使用中,常需要把堆栈设在用户RAM区。
字节地址
用户RAM区7FH…30H堆栈、数据缓冲位寻址区2FH7FH7EH7DH7CH7BH7AH79H78H2EH77H76H75H74H73H72H71H70H2DH6FH6EH6DH6CH6BH6AH69H68H2CH67H66H65H64H63H62H61H60H2BH5FH5EH5DH5CH5BH5AH59H58H2AH57H56H55H54H53H52H51H50H29H4FH4EH4DH4CH4BH4AH49H48H28H47H46H45H44H43H42H41H40H27H3FH3EH3DH3CH3BH3AH39H38H26H37H36H35H34H33H32H31H30H25H2FH2EH2DH2CH2BH2AH29H28H24H27H26H25H24H23H22H21H20H23H1FH1EH1DH1CH1BH1AH19H18H22H17H16H15H14H13H12H11H10H21H0FH0EH0DH0CH0BH0AH09H08H20H07H06H05H04H03H02H01H00H工作寄存器区1FH…18H3组工作寄存器17H…10H2组工作寄存器1FH…08H1组工作寄存器07H…00H0组工作寄存器如果片内RAM不够用时,可根据用户需求扩展片外数据存储器,最大范围为0000H~FFFFH,共64KB。由于在单片机中片内RAM和片外RAM是独立编址的,访问的指令也不同,在使用过程中是不会造成混乱的。(2)片外数据存储器内部RAM的高128字节单元称为特殊功能寄存器区。在此区中离散的分布着26个特殊功能寄存器,AT89S51单片机对片内各个功能的控制是采用这26个特殊功能寄存器集中控制。特殊功能寄存器在内部RAM中的分布如表2-5所示。特殊功能寄存器的字节地址能被8整除的单元可以位寻址。注意,尽管在特殊功能寄存器区还有空闲单元,但是用户不能使用。2.4.3特殊功能寄存器序号地址符号名称位地址1F0HBB寄存器F7H~F0H2E0HA或Acc累计器E7H~E0H3D0HPSW程序状态字D7H~D0H4B8HIP中断优先级控制器BFH~B8H5B0HP3P3口锁存器B7H~B0H6A8HIE中断允许控制寄存器AFH~A8H7A6HWDTRST看门狗复位寄存器—
8A2HAUXR1辅助寄存器—9A0HP2P2口锁存器A7H~A0H1099HSBUF串行数据缓冲器—1198HSCON串行控制寄存器9FH~98H1290HP1P1口锁存器97H~90H138EHAUXR辅助寄存器—148DHTH1定时/计数器1高字节—158CHTH0定时/计数器0高字节—168BHTL1定时/计数器1低字节—178AHTL0定时/计数器0低字节—1889HTMOD定时/计数器工作方式寄存器—1988HTCON定时器控制寄存器8FH~88H2087HPCON串行口控制寄存器—2185HDP1H数据指针DPTR1高字节—2284HDP1L数据指针DPTR1低字节—2383HDP0H数据指针DPTR0高字节—2482HDP0L数据指针DPTR0低字节—2581HSP堆栈指针—2680HP0P0口锁存器87H~80H表2-5SFR的名称及其分布特殊功能寄存器区中的累加器A、寄存器B、程序状态字PSW及堆栈指针SP在前面章节已经介绍,先对其中的一部分作简单说明,余下的SFR将在后续章节中介绍。(1)AUXR寄存器AUXR是辅助寄存器,位地址为8EH,其各位定义如表2-6所示。D7D6D5D4D3D2D1D0———WDIDLEDISRTO——DISALEDISALE:ALE禁止/允许位。DISALE=0,ALE以时钟振荡频率的1/6输出脉冲。DISALE=1,ALE仅在执行MOVX或MOVC指令期间输出脉冲。DISRTO:禁止/允许WDT溢出时的复位输出。DISRTO=0,在WDT溢出时复位引脚输出高电平;DISRTO=1,复位引脚仅为输入。WDIDLE:WDT在空闲模式下的禁止/允许位。WDIDLE=0,在空闲模式下WDT继续计数。WDIDLE=1,在空闲模式下WDT停止计数。AUXR1是辅助寄存器,字节地址为A2H,此寄存器中只定义了D0位,如表2-7所示。DPS:数据指针选择位。DPS=0,选择数据指针DPTR0;DPS=1,选择数据指针DPTR1。(2)AUXR1寄存器D7D6D5D4D3D2D1D0———————DPS与AT89C51单片机不同的是,AT89S51单片机是双数据指针寄存器,即DPTR0和DPTR1。DPTR0为AT89C51单片机原有的数据指针,DPTR1为AT89S51单片机新增的数据指针。通过设置AUXR1的DPS位选择使用两个数据指针中的一个。当DPS=0时,选用DPTR0;当DPS=1时,选用DPTR1;默认选用DPTR0。在实际使用中,统一用DPH表示DPTR的高8位,用DPL表示DPTR的低8位。DPTR可以对16位进行整体操作,也可以分开使用。(3)数据指针DPTR0和DPTR1WDT是为了解决CPU程序运行时可能进入混乱或死循环而设置,它由一个14位计数器和看门狗复位WDTRST位构成。外部复位时,WDT默认为关闭状态,要打开WDT,用户必须按顺序将1EH和E1H写到WDTRST寄存器,当启动了WDT,它会随晶体振荡器在每个及其周期计数,除硬件复位或WDT溢出复位外没有其它方法关闭WDT,当WDT溢出,将使RST引脚输出高电平的复位脉冲。(4)WDT看门狗定时器AT89S51单片机共有211个寻址位,其中一部分在128位在内部RAM位寻址区,如图2-5所示。另一部分83个可寻址位分布在特殊功能寄存器区,如表2-8所示。2.4.4位地址空间SFR位地址/位定义字节地址D7D6D5D4D3D2D1D0BF7HF6HF5HF4HF3HF2HF1HF0HF0HAccE7HE6HE5HE4HE3HE2HE1HE0HE0HPSWD7HD6HD5HD4HD3HD2HD1HD0HD0HCYACF0RS1RS0OVF1PIPBFHBEHBDHBCHBBHBAHB9HB8HB8H———PSPT1PX1PT0PX0P3B7HB6HB5HB4HB3HB2HB1HB0HB0HP3.7P3.6P3.5P3.4P3.3P3.2P3.1P3.0IEAFHAEHADHACHABHAAHA9HA8HA8HEA——ESET1EX1ET0EX0P2A7HA6HA5HA4HA3HA2HA1HA0HA0HP2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0SCON9FH9EH9DH9CH9BH9AH99H98H98HSM0SM1SM2RENTB8RB8TIRIP197H96H95H94H93H92H91H90H90HP1.7P1.6P1.5P1.4P1.3P1.2P1.1P1.0TCON8FH8EH8DH8CH8BH8AH89H88H88HTF1TR1TF0TR0IE1IT1IE0IT0P087H86H85H84H83H82H81H80H80HP0.7P0.6P0.5P0.4P0.3P0.2P0.1P0.0MCS-51系列单片机有4个8位的I/O接口,分别为P0、P1、P2、P3。2.5.1P0口P0口的字节地址为80H,位地址为80H~87H。P0口的各位口线具有完全相同但又相互独立的逻辑电路,如图2-6所示为P0口的位结构图。2.5AT89S51的并行I/O口如图2-6所示,P0口位结构主要包括一个数据输出锁存器、两个三态输入缓冲器BUF1和BUF2、一个多路转换开关MUX及两只场效应管VT1和VT2组成。设置多路开关是因为P0口既可以作为地址/数据线使用,又可以作为通用I/O口线使用。由图中可知,MUX由控制信号实现锁存器的输出或地址/数据线的输出。当P0口作为地址/数据线输出时,控制信号为高电平,MUX接反相器的输出。如果输出的地址/数据为“1”,效应管VT2截止,场效应管VT1导通,此时P0.x引脚输出的是“1”。如果输出的地址/数据为“0”,场效应管VT1截止,场效应管VT2导通,此时P0.x引脚输出的是“0”。P0口的各个引脚上的状态跟随着地址/数据线的状态变化。输出驱动电路由于两个FET处于反相,形成推拉式电路结构,大大提高了负载能力。当P0口作为地址/数据线输入时,控制信号为低电平,MUX接锁存器的
端,场效应管VT1截止。P0口作为地址/数据线访问外部存储器时,CPU自动向P0口写入FFH,使场效应管VT2截止。此时,数据信息高阻抗输入,外部数据信息从P0.x引脚经过输入缓冲器BUF2进入内部总线。由此可见,P0口作为地址/数据线时具有高电平、低电平和高阻抗三种状态,是双向口。当P0口作为通用I/O口使用时,控制信号为低电平,MUX接锁存器的
端,场效应管VT1截止。当P0口作为输出端口时,当内部总线输出的是“1”,那么
端为“0”,使场效应管VT2截止。由于P0口输出为漏极开路,若使P0.x引脚输出为高电平,P0口必须外接上拉电阻;当内部总线输出的是“0”,那么
端为“1”,使场效应管VT2导通。P0.x输出为“0”。当P0口作为输入端口时,由于该电平信号既加到场效应管VT2,又加到三态缓冲器BUF2上,如果此端口上一个状态输出锁存数据“0”,则VT2导通,引脚上的电位就被场效应管VT2钳在“0”电平上,使输入的“1”无法读入。因此,当P0口作为输入端口时,在输入数据前,应先通过内部总线使锁存器
端为“0”,使VT2截止,即CPU向锁存器写入“1”。综上所示,P0口作为地址/数据线是双向口,作为通用I/O接口使用时是准双向口;P0口作为通用I/O端口使用时,如果作为输出口线,需外接上拉电阻;作为输入口线,应首先向锁存器写入“1”。P0口常用作地址/数据线,也可以作为通用I/O端口。P0口可以驱动8个LS型TTL负载。P1口的字节地址为90H,位地址为90H~97H。P1口的位电路结构图如图2-7所示。2.5.2P1口如图2-7所示,P1口位结构主要包括一个数据输出锁存器、两个三态输入缓冲器BUF1和BUF2、一个场效应管VT和一个上拉电阻组成。P1口是一个准双向口,专供用户使用。作通用I/O接口使用,其内部有上拉电阻与电源相连,故不必再外接上拉电阻。当作输入时,必须先向对应的锁存器写“1”,使VT截止。P1口可以驱动4个LS型TTL负载。
P2口的字节地址为A0H,位地址为A0H~A7H。P2口的位电路结构图如图2-8所示。2.5.3P2口如图2-8所示,P2口位结构主要包括一个数据输出锁存器、一个多路转换开关MUX、两个三态输入缓冲器BUF1和BUF2、一个场效应管VT和一个上拉电阻组成,结构与P0口类似。P2口可以作为地址线的高8位和通用I/O端口使用。当P2口输出地址时,多路转接开关MUX的一个输入端接“地址”端,P2口作为通用I/O口使用,MUX接
端,使输出的数据送到P2的引脚上。由图2-8可知,P2口作为通用I/O口输入时,应对锁存器写入“1”,使场效应管VT截止。P2口可以驱动4个LS型TTL负载。P3口的字节地址为B0H,位地址为B0H~B7H。P3口的位电路结构图如图2-9所示。
2.5.4P3口如图2-9所示,P3口位结构主要包括一个数据输出锁存器、一个多路转换开关MUX、三个三态输入缓冲器、一个场效应管VT、一个上拉电阻及一个与非门组成。P3口可以作为通用I/O口使用,但在实际应用中它的第二功能信号更为重要。当输出第二功能信号时,将锁存器应预先置“1”,使与非门对第二功能信号的输出事畅通的,从而实现第二功能信号的输出。对于第二功能为输入信号的引脚,在口线的输入通路上增加了一个缓冲器,输入的信号就从这个缓冲器的输出端取得。当作为通用I/O口使用时,电路中的“第二输出功能信号线应保持高电平,与非门开通,以维持从锁存器到输出端数据输出通路的畅通。综上所述,P3口作为第二功能或者作为通用I/O口线输入时,必须将锁存器置“1”。如果某些口线不用作第二功能,可以作为通用I/O使用。P3口可以驱动4个LS型TTL负载。计算机的工作是在时序脉冲的控制下有条不紊地进行。时钟电路用于产生AT89S51单片机工作时所必需的时钟控制信号。使单片机能严格地按时序执行程序。2.6.1时钟电路与时序(1)时钟电路常用的时钟电路有两种方式,一种是内部时钟,另一种是外部时钟。1)内部时钟AT89S51单片机内部有一个用于构成振荡器的高增益反相放大器,该高增益反相放大器的输入端为芯片引脚XTAL1,输出端为引脚XTAL2。这两个引脚跨接石英晶体振荡嚣(简称晶振)和微调电容,构成一个稳定的自激振荡器,图2-10所示为AT89S51单片机内部时钟方式电路。2.6时钟电路及复位电路电路中的电容Cl和C2典型值约为30pF。晶振的振荡频率范围通常在1.2MHz~12MHz。晶振的频率越高,则系统的时钟频率也就越高,单片机的运行速度也就越快。但反过来运行速度快对存储器的速度要求就高,对印刷电路板的工艺要求也高,即要求线间的寄生电容要小;晶振和电容应尽可能安装得与单片机芯片靠近,以减少寄生电容,更好地保证振荡器稳定、可靠地工作。为了提高温度稳定性,应采用温度稳定性能好的电容。AT89S51单片机常用的晶振的频率为6MHZ或12MHZ,最高频率可达到33MHZ。图2-10单片机内部时钟电路外部时钟方式是使用外部振荡脉冲信号,常用于多片AT89S51单片机同时工作,以便于多片AT89S51单片机之间的同步,一般为低于12MHz的方波。外部的时钟源直接接到XTAL1端,通过XTAL1端输入到片内的时钟发生器上,电路如图2-11所示。2)外部时钟单片机执行的指令均是在CPU控制器的时序控制电路的控制下进行的,各种时序均与时钟周期有关。1)时钟周期时钟周期也称为振荡周期,是为单片机提供定时信号的振荡源的周期,是单片机的基本时间单位。若时钟晶振的振荡频率为
,则时钟周期
。2)状态周期状态周期是CPU从一个状态转换到另一状态所需的时间。在AT89S51单片机中,1个状态周期由2个时钟周期组成,它分为P1节拍和P2节拍。(2)时序CPU完成一个基本操作所需要的时间称为机器周期。单片机中常把执行一条指令的过程分为几个机器周期。每个机器周期完成—个基本操作,如取指令、读或写数据等。AT89S51单片机中1个机器周期由12个时钟周期组成,分为6个状态:S1~S6。即
。3)机器周期图2-12AT89S51单片机机器周期与状态周期指令周期是执行一条指令所需的时间。AT89S51单片机按字节可分为单字节、双字节和三字节指令。因此,执行一条指令的时间也不同。对于简单的单字节指令,取出指令立即执行,只需1个机器周期的时间。而有些复杂的指令,如转移、乘、除运算指令则需2个或4个机器周期。从指令的执行速度看,单字节和双字节指令一般为单机器周期和双机器周期,三字节指令都是双机器周期,只有乘除指令占用4个机器周期。4)指令周期复位是令单片机初始化的操作,其主要功能是初始化单片机的工作状态。例如,把PC的值初始化为0000H,即(PC)=0000H,这样,单片机在复位后就从程序存储的0000H单元开始执行程序。另外,当程序运行出错或因操作错误而使系统处于死锁状态时,为摆脱困境,也可按复位键来重新初始化单片机。除程序计数器PC初始化外,复位操作还对其他属于片内RAM的SFR块中的特殊功能寄存器的值有影响,它们的复位初始化状态如表2-9所示。2.6.2复位电路寄存器复位状态寄存器复位状态PC0000HTH000HP0~P3FFHTH100HSP07HAUXR×××00××0BDP0L00HSCON00HDP0H00HSBUF××××××××BDP1L00HAUXR1×××××××0BDP1H00HWDTRST××××××××BPCON0×××0000BIE0××00000BTCON00HIP××000000BTMOD00HPSW00HTL000HA00HTL100HB00H表2-9复位后各寄存器的状态AT89S51单片机的RST引脚(9脚)是复位信号输入端,高电平有效。在此引脚加上持续时间大于2个机器周期的高电平,就使单片机复位。复位后,单片机从程序存储器0000H单元开始执行程序。复位操作有上电自动复位、按键复位等方式。复位电路如图2-13、图2-14所示。
图2-13上电复位电路
图2-14按键复位电路上电复位电路如图2-13所示,是通过外部复位电路的电容充电来实现的,其电路如图2-13所示。只要电源Vcc的上升时间不超过1ms,就可以实现自动上电复位,即接通电源就完成了系统的复位操作。按键复
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 遵义市播州区新南高级中学2026年春教师招聘备考题库及一套参考答案详解
- 2026年北京市大兴区卫生健康委员会面向应届毕业生公开招聘工作人员备考题库及1套完整答案详解
- 中国铁路广州局集团有限公司2026年招聘普通高校毕业生备考题库(二)及一套答案详解
- 龙岩市2026年教育类引进生招聘备考题库及答案详解(夺冠系列)
- 北京工业大学2025年聘用制人员招聘备考题库(第十八批)及完整答案详解1套
- 兴国县鼎龙乡中心幼儿园2026年春季教师招聘备考题库及参考答案详解一套
- 2026年中央芭蕾舞团招聘备考题库(芭蕾舞演员)含答案详解
- 江西省第五人民医院2026年公开招聘编制外工作人员备考题库及完整答案详解一套
- 初中生物实践课中苔藓植物组织培养实验设计课题报告教学研究课题报告
- 放疗引起的口腔黏膜损伤护理
- 2025至2030中国考试系统行业市场发展现状分析及发展趋势与投资前景报告
- 胶质瘤的围手术期护理
- CJ/T 312-2009建筑排水管道系统噪声测试方法
- 大棚施工合同(7篇)
- DB31/ 807.1-2014重点单位保安服务要求第1部分:基本要求
- 工程造价审计服务投标方案(技术方案)
- 采购石粉合同协议
- 工控网管理制度
- 驾考试题100道及答案
- 液氧泄露应急预案演练方案
- 测量年终工作总结
评论
0/150
提交评论