文库宝百度文库原版文档免费下载站,无需登陆,无需财富值,一键下载。第1讲认识89S52单片机学习要点:单片机的基本概念AT89S52引脚功能及封装形式程序存储器和数据存储器的地址空间特殊功能寄存的地址分配及其复位值1.1单片机概述单片机的全称为单片微型计算机(Single-ChipMicrocomputer)或微型控制器(Micro-controller)。它在一块芯片上集成了中央处理单元CPU、随机存储器RAM、只读存储器ROM、定时器/计数器和多种输入/输出(I/O),如并行I/O、串行I/O和A/D转换器等。就其组成而言一块单片机就是一台计算机。典型的结构如图1-1所示。由于它具有许多适用于控制的指令和硬件支持而广泛应用于工业控制、仪器仪表、外设控制、顺序控制器中,所以又称为微控制单元(MCU)。图1-1单片机结构框图MCS-51系列单片机,是Intel公司继MCS-48系列单片机之后,在1980年推出的高档8位单片机。当时MCS-51系列产品有8051、8031、8751、80C51、80C31等型号。它们的结构基本相同,其主要差别反映在寄存器的配置上有所不同。8051内部没有4K字节的掩膜ROM程序存储器,8031片内没有程序存储器,而8751是将8051片内的ROM换成EPROM。ATMEL89系列单片机是ATMEL公司的以8031核构成的8位Flash单片机系列。这个系列单片机的最大特点就是在片内含有Flash存储器,AT89S52单片机是一种低功耗高性能的CMOS8位微控制器,内置8KB可在线编程闪存。该器件采用Atmel公司的高密度非易失性存储技术生产,其指令与工业标准的80C51指令集兼容。片内程序存储器允许重复在线编程,允许程序存储器在系统内通过SPI串行口改写或用同用的非易失性存储器改写。通过把通用的8位CPU与可在线下载的Flash集成在一个芯片上,AT89S52便成为一文库宝百度文库原版文档免费下载站,无需登陆,无需财富值,一键下载。个高效的微型计算机。它的应用范围广,可用于解决复杂的控制问题,且成本较低。其结构框图如图1-2所示。图1-2AT89S52结构框图1.2AT89S52单片机特性AT89S52的主要特性如下:兼容MCS51产品8K字节可擦写1000次的在线可编程ISP闪存4.0V到5.5V的工作电源范围全静态工作:0Hz~24MHz3级程序存储器加密256字节内部RAM文库宝百度文库原版文档免费下载站,无需登陆,无需财富值,一键下载。32条可编程I/O线3个16位定时器/计数器8个中断源UART串行通道低功耗空闲方式和掉电方式通过中断终止掉电方式看门狗定时器双数据指针灵活的在线编程(字节和页模式)1.3AT89S52引脚功能与封装图1-3是AT89S52封装结构图。图1-3AT89S52封装引脚图文库宝百度文库原版文档免费下载站,无需登陆,无需财富值,一键下载。按照功能,AT89S52的引脚可分为主电源、外接晶体振荡或振荡器、多功能I/O口、控制和复位等。1.多功能I/O口AT89S52共有四个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线。每根线可以单独用作输入或输出。①P0端口,该口是一个8位漏极开路的双向I/O口。在作为输出口时,每根引脚可以带动8个TTL输入负载。当把“1”写入P0时,则它的引脚可用作高阻抗输入。当对外部程序或数据存储器进行存取时,P0可用作多路复用的低字节地址/数据总线,在该模式,P0口拥有内部上拉电阻。在对Flash存储器进行编程时,P0用于接收代码字节;在校验时,则输出代码字节;此时需要外加上拉电阻。②P1端口,该口是带有内部上拉电阻的8位双向I/O端口,P1口的输出缓冲器可驱动(吸收或输出电流方式)4个TTL输入。对端口写“1”时,通过内部的上拉电阻把端口拉到高电位,此时可用作输入口。P1口作输入口使用时,因为有内部的上拉电阻,那些被外部信号拉低的引脚会输出一个电流。在对Flash编程和程序校验时,P1口接收低8位地址。另外,P1.0与P1.1可以配置成定时/计数器2的外部计数输入端(P1.0/T2)与定时/计数器2的触发输入端(P1.0/T2EX),如表1-1所示。表1-1P1口管脚复用功能端口引脚复用功能P1.0T2(定时器/计算器2的外部输入端)P1.1T2EX(定时器/计算器2的外部触发端和双向控制)P1.5MOSI(用于在线编程)P1.6MISO(用于在线编程)P1.7SCK(用于在线编程)③P2端口,该口是带有内部上拉电阻的8位双向I/O端口,P2口的输出缓冲器可驱动(吸收或输出电流方式)4个TTL输入。对端口写“1”时,通过内部的上拉电阻把端口拉到高电位,此时可用作输入口。P2口作输入口使用时,因为有内部的上拉电阻,那些被外部信号拉低的引脚会输出一个电流。在访问外部程序存储器或16位的外部数据存储器(如执行MOVX@DPTR指令)时,P2口送出高8位地址,在访问8位地址的外部数据存储器(如执行MOVX@RI指令)时,P2口引脚上的内容(就是专用寄存器(SFR)区中P2寄存器的内容),在整个访问期间不会改变。在对Flash编程和程序校验期间,P2口也接收高位地址或一些控制信号。④P3端口,该口是带有内部上拉电阻的8位双向I/O端口,P3口的输出缓冲器可驱动(吸收文库宝百度文库原版文档免费下载站,无需登陆,无需财富值,一键下载。或输出电流方式)4个TTL输入。对端口写“1”时,通过内部的上拉电阻把端口拉到高电位,此时可用作输入口。P3口作输入口使用时,因为有内部的上拉电阻,那些被外部信号拉低的引脚会输出一个电流。在AT89S52中,同样P3口还用于一些复用功能,如表1-2所列。在对Flash编程和程序校验期间,P3口还接收一些控制信号。表1-2P3端口引脚与复用功能表端口引脚复用功能P3.0RXD(串行输入口)P3.1TXD(串行输出口)P3.2INT0(外部中断0)P3.3INT1(外部中断1)P3.4T0(定时器0的外部输入)P3.5T1(定时器1的外部输入)P3.6WR(外部数据存储器写选通)P3.7RD(外部数据存储器读选通)2.RST复位输入端。在振荡器运行时,在此脚上出现两个机器周期的高电平将使其单片机复位。看门狗定时器(Watchdog)溢出后,该引脚会保持98个振荡周期的高电平。在SFRAUXR(地址8EH)寄存器中的DISRTO位可以用于屏蔽这种功能。DISRTO位的默认状态,是复位高电平输出功能使能。3.ALE/PROG地址锁存允许信号。在存取外部存储器时,这个输出信号用于锁存低字节地址。在对Flash存储器编程时,这条引脚用于输入编程脉冲PROG。一般情况下,ALE是振荡器频率的6分频信号,可用于外部定时或时钟。但是,在对外部数据存储器每次存取中,会跳过一个ALE脉冲。在需要时,可以把地址8EH中的SFR寄存器的0位置为“1”,从而屏蔽ALE的工作;而只有在MOVX或MOVC指令执行时ALE才被激活。在单片机处于外部执行方式时,对ALE屏蔽位置“1”并不起作用。4.PSEN程序存储器允许信号。它用于读外部程序存储器。当AT89S52在执行来自外部存储器的指令时,每一个机器周期PSEN被激活2次。在对外部数据存储器的每次存取中,PSEN的2次激活会被跳过。5.EA/Vpp外部存取允许信号。为了确保单片机从地址为0000H~FFFFH的外部程序存储器中读取代码,故要把EA接到GND端,即地端。但是,如果锁定位1被编程,则EA在复位时被锁存。当执行内部程序时,EA应接到Vcc。在对Flash存储器编程时,这条引脚接收12V编程电压Vpp。6.XTAL1振荡器的反相放大器输入,内部时钟工作电路的输入。文库宝百度文库原版文档免费下载站,无需登陆,无需财富值,一键下载。7.XTAL2振荡器的反相放大器输出。1.4存储器组织所有的ATMELFlash单片机都将程序存储器和数据存储器分为不同的存储空间。89系列单片机的典型存储器的结构如图1-4所示。图1-4存储器结构程序和数据存储器分为不同的逻辑空间,使得可用8位地址来访问数据存储器。这样可提高8位CPU的存储和处理速度。尽管如此,也可通过数据指针(DPTR)寄存器来产生16位的数据存储器地址。程序存储器只可读不可写,用于存放编好的程序和表格常数。89系列单片机可寻址的程序存储器总空间为64KB。外部程序存储器的读选通脉冲为PSEN(程序存储允许信号)。数据存储器在物理上和逻辑上都分为两个地址空间:一个内部和一个外部数据存储器空间。外部数据存储器的寻址空间可达64KB。访问外部数据存储器时,CPU发出读和写的信号——RD和WR。将RD和PSEN两个信号加到一个与门的输入端,然后用与门的输出作为外部程序/数据存储器的读选通脉冲。这样就可将外部程序存储器空间和外部数据存储器空间合并在一起。1.4.1程序存储器89系列单片机可寻址的内部和外部程序存储器总空间为64KB。每个外部程序和数据存储器的文库宝百度文库原版文档免费下载站,无需登陆,无需财富值,一键下载。可寻址范围高达64KB。它没有采用程序存储器分区的方法,64KB的地址空间是统一的。EA引脚接低电平时,单片机就从外部程序存储器中取指。对于AT89S52,EA引脚接高电平时,程序直接从单片机内部存储器中的0000H到1FFFH单元执行,2000H到FFFFH单元到外部存储器中执行。程序存储器中有几个单元专门用来存放特定的程序。这几个单元的配置情况如图1-5所示。图1-5程序存储器的中断入口配置由图1-5可知,0000H~0002H单元用于初始化程序。单片机复位后,CPU总是从0000H单元开始执行程序。另外,每个中断在程序存储器中都分配有一个固定的入口地址。中断响应后,CPU便跳到该单元,在这里开始执行中断服务子程序。例如,外部中断0的入口地址被放在0003H单元,如果使用外部中断0,则它的中断服务子程序必须从0003H单元开始。如果中断没有使用,那么它的服务单元也可作一般用途的程序存储器用。每个中断入口地址的间隔为8个单元;外部中断0的入口地址为0003H;定时器0的入口地址为000BH;外部中断1的入口地址为0013H;定时器1的入口地址为001BH;以此类推。如果一个中断服务子程序足够短的话,则可全部存放在这8个单元中。对较长的服务子程序,则可利用一条跳转指令跳过后续的中断入口地址。程序存储器最低端的地址可以在片内Flash中,或在外部存储器中。将外部存取(EA)引脚接Vcc或接地,就可进行这种选择。例如,在带有4KB片内Flash的AT89C51中,如果把EA引脚连到Vcc,当地址为0000H~0FFFH时,则访问内部Flash;当地址为1000H~FFFFH时,则访问外部程序存储器。在AT89C52(8KBFlash)中,当EA端保持高电平时,如果地址不超过1FFFH,则访问内部Flash;地址超过1FFFH(即为2000H~FFFFH)时,将自动转向外部程序存储器。如果EA端文库宝百度文库原版文档免费下载站,无需登陆,无需财富值,一键下载。接地,则只访问外部程序存储器,不管是否有内部Flash存储器。外部程序存储器读选通信号PSEN用于读取所以的外部程序;读取内部程序时,不产生PSEN信号。执行外部程序是的硬件连接方法如图1-6所示。图1-6访问外部程序存储器的连接注意,在访问外部程序存储器时,16条I/O线(P0和P2)作为总线使用。P0端口作为地址/数据总线使用。它先输出16位地址的低8位PCL,然后进入悬浮状态,等待程序存储器送出的指令字节