




已阅读5页,还剩2页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第二章 AT89S51 单片机的硬件结构第二章 AT89S51 单片机的硬件结构 本章“从内到外”主要讲述关于AT89S51单片机的一些基础知识。首先介绍AT89S51单片机的组成、CPU 、存储器组织以及特殊功能寄存器(SFR),然后,详细讲解了AT89S51的引脚分布及其功能;最后,讨论了使用AT89S51单片机时的时钟和复位电路。 2.1 AT89S51 单片机的组成 如前所述,AT89S51单片机与MCS-51完全兼容,内部的结构如图2.1所示: 从功能上分,它包括如下部件:一个8位中央处理器(CPU);4K可在线编程Flash ;128字节RAM与特殊功能寄存器;2个16位定时/计数器;中断逻辑控制电路;一个全双工串行接口(UART);32条可编程的IO口线;另外,还包括一些寄存器如程序计数器PC 、程序状态寄存器PSW 、堆栈指针寄存器SP 、数据指针寄存器DPTR等部件。 2.2 AT89S51 单片机 CPU 的结构 CPU是单片机的核心,它主要由运算器(ALU)、时序控制逻辑电路(控制器)以及各种寄存器等部件组成。 ( 1 )运算器的功能是进行算术和逻辑运算。它主要由算术逻辑单元ALU(Arithmetic Logic Unit)和寄存器组成,实现“加、减、乘、除、比较”等算术运算和“与、或、异或、求补、循环”等逻辑操作。运算器中还包含一个布尔处理器,可以执行置位、清零、求补、取反、测试、逻辑与、逻辑或等操作,为单片机的应用提供了极大的便利。( 2 )控制器的主要功能是产生各种控制信号和时序。在CPU内部协调各寄存器之间的数据传送,完成ALU的各种算术或逻辑运算操作;在CPU访问外部存储器或端口时,提供地址锁存信号ALE、外部程序存贮器选通信号PSEN以及读(/RD)、写(/WR)等控制信号。( 3 )寄存器。CPU中还有一些寄存器,如累加器(ACC)、程序状态字(PSW)、B寄存器、程序计数器PC 、堆栈指针(SP)、指令寄存器(IR)等,这些寄存器有的在片内特殊功能寄存器空间有地址映像,它们既可看作CPU的寄存器,也可看作具有确定单元的存储单元。 累加器ACC(Accumulator)。ACC是一个8位的寄存器,也是CPU中最重要、最繁忙的寄存器,许多运算中的数据和结果都要经过累加器。 程序状态字PSW(Program Status Word)。PSW是一个8位的寄存器,用于存放程序运行结果的一些特征,本书拟在特殊功能寄存器一节详细介绍。 B寄存器。B寄存器主要是和ACC配合完成乖法和除法运算,存放运算结果,不进行乖、除运算时,B寄存器可作为RAM使用。 程序计数器PC。程序计数器PC用来存放即将执行的指令地址。它是一个独立的16位寄存器,没有内存映射单元,总是指向将要执行的指令的地址,并具有内容自动加l功能。 堆栈指针SP(Stack Pointer)。为一个指向堆栈顶部的指针,当执行子程序调用或中断服务程序时,需要将下一条要执行的指令地址即PC值压入堆栈保存起来,当子程序或中断返回时,再将SP指向单元的内容回送到程序计数器PC中。这是一个很重要的指针。 指令寄存器IR(Instruction Register)。指令寄存器的功能是存放指令代码,CPU执行指令时,由程序存储器中读取指令代码送入指令寄存器,经译码器译码后,由定时与控制部分发出相应的控制信号,以完成指令功能,它也没有内存映射单元。( 4 )布尔(位)处理器。除对字节(Byte)进行操作外,AT89S51单片机借用PSW中的C可以直接对位(Bit)进行操作,在进行位操作时,C就类似进行字节操作的ACC用作数据源或存放结果。通过位操作指令可以实现置位、清零、取反以及位逻辑运算等操作。 2.3 AT89S51 单片机系统的存贮器组织 单片机系统中,存放程序的存储器称为程序存储器,类似与通用计算机系统中的ROM,只能进行读操作,存放数据的存储器称为数据存储器,相当于通用计算机系统中的RAM。与通用计算机系统不同,单片机系统中的程序存储器和数据存储器都有各自的读信号(PSEN 、/RD ),换言之,单片机系统的存储器可以分成两个物理存储器,即程序存储器和数据存储器,它们的范围都是64KB 。 DPS :数据指针寄存器选择(Data Pointer Register Select)。为 1 时,选择 DP1L和DP1H为当前DPTR;为 0 时,选择DP0L和DP0H为当前DPTR ; “”保留位,用于扩展。 系统复位后,DPS为0,即选择DP0L和DP0H为当前DPTR。 11 ) WDTRST :看门狗定时器复位(Watchdog Timer Reset)专用功能寄存器。 单片机系统在正常工作时,CPU常会受到各种干扰,使程序陷入死循环或跑飞状态,看门狗定时器(WDT ,Watchdog Timer)是一种能使程序自动恢复到正常的运行状态的有效方法。 AT89S51 单片机内部包含了一个WDT,它包含了一个14位的计数器和一个看门狗定时器复位(WDTRST)SFR ,WDTRST的地址为0A6H 。当WDT使能后,只要振荡器在工作,每个机器周期都会使WDT计数器的值加1 。 WDT的工作原理如下: 正常情况下,程序周期性地在WDT计数器的值到达3FFFH之前对其进行清0,如果CPU受到干扰使程序进入非正常运行状态,这种清零操作将不再被执行,当WDT的计数器的值到达 3FFFH时,便产生溢出,引起单片机复位,在单片机的RST引脚上输出一宽度为98个振荡周期的正脉冲,同时,置PC的值为0000H ,程序从头开始重新执行,恢复到正常的运行状态。 单片机上电复位后,WDT的缺省状态是禁止,为了使能WDT ,用户必须按顺序依次向 WDTRST写入1EH 和 0E1H两字节数据。WDT 一旦使能,将无法通过软件禁止,用户必须在最长 16383个机器周期时间内对WDT的计数器清0 ,计数器清0操作同使能WDT一样,也是按顺序依次向WDTRST写入1EH 和 0E1H 两字节数据,换言之,每次按顺序依次向WDTRST写入1EH和0E1H 两字节数据后,WDT计数器都从0重新开始计数。WDTRST是一个只写寄存器,而WDT的计数器既不能读,也不能写。 当单片机工作在掉电模式(Power-down mode)时,振荡器停止,这时WDT的计数器也停止计数,用户程序可以不再对其进行清0操作。硬件复位和低电平触发的外部中断都可以使单片机退出掉电模式。如果是硬件复位退出掉电模式,以后对WDT操作和正常系统复位时的操作完全相同;如果是低电平中断引起退出掉电模式,则要求引起中断的低电平信号要有足够的宽度,以保证振荡器在低电平期间能进入稳定的工作状态。为了避免在中断信号为低电平期间,WDT引起复位,WDT计数器在中断信号变成高电平后才开始计数。一般情况下,进入中断服务程序时,要对WDT的计数器清0。为了避免在刚退出掉电模式的几个机器周期内产生复位,最好在进入掉电模式前,先对WDT的计数器执行一次清0操作。 SFR AUXR中的WDIDLE位决定了空闲(IDLE mode)模式时WDT的计数器是否继续计数,若 WDIDLE为0(缺省值),则在空闲模式时,WDT的计数器会继续计数,为了避免在空闲模式时, WDT引起AT89S51单片机复位,用户程序总是设置一个定时器,周期性地退出空闲模式,对 WDT的计数器清0 ,然后,再进入空闲模式。当WDIDLE为1时,在空闲模式,WDT的计数器停止计数,退出空闲模式时,WDT的计数器恢复计数。 ( 3 )外部数据存储器。当内部RAM不够用,就需要扩展外部数据存储器,原则最大可扩展64KB。按照访问方式的不同,外部数据存储器也可分成二块,最低的256字节(0000H00FFH)既通过DPTR寻址,也可能通过R0和R1间接寻址,而0100H0FFFFH只能通过DPTR 间接寻址。 实际使用中,可以通过分页技术使外部数据存储器的容量远远超过64KB;另一种方法是使用非并行接口的存储器芯片,如使用I2C接口的存储器芯片或SPI接口的存储器芯片,可使数据存储器的容量扩至数百兆。单片机的外部数据存储器和端口是统一编址的,也就是说,如果某一个单元作了端口,就不能再作为存储器单元,反之,如果某一个单元作为存储器单元,就不能再作为端口。 2.4 AT89S51 单片机引脚及功能 AT89S51单片机有4种封装形式,分别为40-lead PDIP、44-lead PLCC、40-lead TQFP和 42-lead PDIP,其中40脚 PDIP 封装的引脚分布如图2.5所示,引脚描述如下: P0、P1、P2、P3口可总结如下: 从结构上讲,每个端口均有锁存器、输出驱动和输入缓冲等组成 P1、P2、P3口内部均有上拉电阻,当它们用作通用输入口(即读引脚状态)时,对应位的锁存器Q端必须先置为“1”;P0口内部无上拉电阻,作为I/O口使用时,必须外接上拉电阻,读引脚时,对应的锁存器也必须先置“1”。 当系统有外部存储器时,P0一般分时用作地址/数据总线,P2用作高8位地址总线, P3口的P3.7和P3.6负责提供外部数据存储器的读、写信号;当系统没有外部存储器时,P0、 P1、P2、P3均可用作I/O口。 2.5 AT89S51 的时钟电路 单片机系统中的各个部件是在一个统一的时钟脉冲控制下有序地进行工作,时钟电路是单片机系统最基本、最重要的电路。 2.5.1 时钟电路AT89S51单片机内部有一个高增益反相放大器,引脚XTAL1和XTAL2分别是该放大器的输入端和输出端,如果在引脚XTAL1和XTAL2两端跨接上晶体振荡器(晶振)或陶瓷振荡器就构成了稳定的自激振荡电路,该振荡器电路的输出可直接送入内部时序电路。AT89S51单片机的时钟可由两种方式产生,即内部时钟方式和外部时钟方式。( 1 )内部时钟方式。内部时钟方式即是由单片机内部的高增益反相放大器和外部跨接的晶振、微调电容构成时钟电路产生时钟的方法,其工作原理如图 2.10( a )所示。 外接晶振(陶瓷振荡器)时,C1、C2的值通常选择为30pF(40pF)左右;C1、C2对频率有微调作用,晶振或陶瓷谐振器的频率范围可在1.2MHz 12MHz之间选择。为了减小寄生电容,更好地保证振荡器稳定、可靠地工作,振荡器和电容应尽可能安装得与单片机引脚XTALl 和XTAL2靠近。由于内部时钟方式外部电路接线简单,单片机应用系统中大多采用这种方式。内部时钟方式产生的时钟信号的频率就是晶振的固有频率,常用fsoc来表示。如选择12MHz 晶振,则 fsoc=12106Hz。 ( 2 )外部时钟方式。外部时钟方式即完全用单片机外部电路产生时钟的方法,外部电路产生的时钟信号被直接接到单片机的XTAL1引,此时XTAL2开路,具体电路如图2.10( b )所示。 2.5.2 CPU 工作周期。 CPU在执行指令时,都是按照一定顺序进行的,由于指令的字节数不同,取指所需时间也就不同,即使是字节数相同的指令,执行操作也会有很大差别,不同的指令的执行时间当然也不相同,即CPU在执行各个指令时,所需要的节拍数是不同的。为了便于对CPU时序的理解,人们按指令的执行过程定义了几个名词,即时钟周期、机器周期和指令周期。 ( 1 )时钟周期。时钟周期也称为振荡周期,定义为时钟脉冲频率(fOSC)的倒数,是单片机中最基本的、最小的时间单位。由于时钟脉冲控制着计算机的工作节奏,对同一型号的单片机,时钟频率越高,计算机的工作速度显然就会越快。然而,受硬件电路的限制,时钟频率也不能无限提高,对某一种型号的单片机,时钟频率都有一个范围,如对AT89S51单片机,其时钟频率范围是0 33MHz。为方便描述,振荡周期一般用P(pause)表示。 ( 2 )机器周期。完成一个最基本操作(读或写)所需要的时问称为机器周期。 AT89S51单片机的机器周期是固定的,即一个机器周期由12个时钟周期组成。采用6MHz的时钟频率时,一个机器周期就是2s ,采用12MHz的时钟频率时,一个机器周期就是1s 。 ( 3 )指令周期。指令周期是执行一条指令所需要的时间,一般由若干个机器周期组成,指令不同,后需要的机器周期数也不同。对于一些简单的单字节指令,分指令周期可能和机器周期时间相同;而对于一些比较复杂的指令,如乘除运算则需要多个机器周期才能完成,这时指令周期大于机器周期。 通常,一个机器周期即可完成的指令称为单周期指令,两个机器周期才能完成的指令称为双周期指令。 AT89S51单片机中的大多数指令都是单周期或双周期指令,只有乘、除运算为四周期指令。2.6 AT89S51 的复位电路 大规模集成电路在上电时一般都需要进行一次复位操作,以便使芯片内的一些部件处于一个确定的初始状态,复位是一种很重要的操作。器件本身一般不具有自动上电复位能力,需要借助外部复位电路提供的复位信号才能进行复位操作。 2.6.1 复位电路设计 AT89S51单片机的第9脚(RST)为复位引脚,系统上电后,时钟电路开始工作,只要RST 引脚上出现大于两个机器周期时间的高电平即可引起单片机执行复位操作。有两种方法可以使AT89S51单片机复位,即在RST引脚加上大于两个机器周期时间的高电平或WDT计数溢出。单片机复位后,PC=0000H,CPU从程序存储器的0000H开始取指执行。复位后,单片机内部各SFR 的值如表2.3所示。单片机的外部复位电路有上电自动复位和按键手动复位两种。( 1 )上电复位电路。最简单的上电复位电路由电容和电阻串联构成,如图2.11所示。上电瞬间,由于电容两端电压不能突变,RST引脚电压端为VR为VCC,随着对电容的充电, RST引脚的电压呈指数规律下降,到t1时刻,VR降为3.6V,随着对电容充电的进行,VR最后将接近0V。RST引脚的电压变化如图2.12所示。为了确保单片机复位,t1必须大于两个机器周期的时间,机器周期取决于单片机系统采用的晶振频率,图2.11中,R不能取得太小,典型值 8.2k;t1与RC 电路的时间常数有关,由晶振频率和R可以算出C的取值。( 2 )上电复位和按键复位组合电路 图2.13上电复位和按键复位组合电路,R2的阻值一般很小,只有几十欧
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论