单片机AT89C51应用及结构功能_第1页
单片机AT89C51应用及结构功能_第2页
单片机AT89C51应用及结构功能_第3页
单片机AT89C51应用及结构功能_第4页
单片机AT89C51应用及结构功能_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

AT89C51单片机的功能、应用及参考源主要性能参数:与MCS-51产品说明系统完全兼容4K字节可重写闪存1,000个写周期全静态运行:0HZ-24HZ三级加密程序存储器128*8字节的内部内存32个可编程输入/输出端口2个16位定时/计数器6个中断源可编程串行UART通道低功耗空闲和省电模式功能特性概述:AT89C51提供以下标准功能:4K字节闪存、128字节内部RAM、32个I/O端口、两个16位定时/计数器、5矢量两级中断结构、全双工串行通信端口、片内振荡器和时钟电路。同时,AT89C51可以降低到0HZ静态逻辑操作,并支持两种软件可选的省电模式。空闲模式停止中央处理器,但允许随机存取存储器、定时器/计数器、串行通信端口和中断系统继续工作。掉电模式保存内存内容,但振荡器停止工作,直到下一次硬件复位。AT89C51是美国ATMEL公司生产的一款低电压、高性能的CMOS8位单片机。该芯片包含4k字节的可重写只读程序存储器和128字节的随机存取数据存储器。该设备由ATMEL公司的高密度、非易失性存储技术生产,并与标准的MCS-51指令系统兼容。强大的AT89C51单片机内置通用8位中央处理器和闪存单元,可为您提供多种性价比高的应用场合,并可灵活应用于各种控制领域。AT89C51框图Pin功能描述Vcc:电源电压GND:地面P0端口:P0端口是一组8位开漏双向输入/输出端口,即地址/数据总线多路复用端口。当用作输出端口时,每个位可以吸收电流来驱动8个TTL逻辑门,向端口写入“1”可以用作高阻抗输入端。当访问外部数据存储器或程序存储器时,这组端口线路时分转换地址(低8位)并多路复用数据总线,在访问期间激活内部上拉电阻。在FIash编程期间,端口P0接收指令字节,而在程序验证期间,输出指令字节,并且在验证期间,需要拉出电阻。P1端口:P1是一个8位双向输入/输出端口,内置上拉电阻。P1的输出缓冲级可以驱动(吸收或输出电流)4个TTL逻辑门。将“1”写入端口,并通过内部上拉电阻将端口拉至高电平,此时该电阻可用作输入端口。当用作输入端口时,当引脚因内部上拉电阻而被外部信号拉低时,输出电流(IIL)。在FIash编程和程序验证期间,P1接收较低的8位地址。P2端口:P2是一个8位双向输入/输出端口,内置上拉电阻。P2的输出缓冲级可以驱动(吸收或输出电流)4个TTL逻辑门。将“1”写入端口,并通过内部上拉电阻将端口拉至高电平。此时,该端口可以用作输入端口。当端口用作输入端口时,由于内部上拉电阻,当外部信号将引脚拉低时,将输出电流(IIL)。当访问外部程序存储器或具有16位地址的外部数据存储器时(例如,执行MOVXDPTR指令),P2端口发出高8位地址数据。当访问具有8位地址的外部数据存储器时(如执行MOVXRI指令),P2端口线路上的内容(即SFR区中R2寄存器的内容)在整个访问期间不会改变。当闪存被编程或验证时,P2还接收高阶地址和其他控制信号。P3端口:P3端口是一组带有内部上拉电阻的8位双向输入/输出端口。P3输出缓冲级可以驱动(吸收或输出电流)4个TTL逻辑门。将“1”写入P3端口时,它们被内部上拉电阻拉高,可用作输入端口。当用作输入端时,被外部下拉的P3端口将输出带有上拉电阻的电流(IIL)。除了作为一般的输入/输出端口线路,P3端口的第二个功能更重要,如下表所示:P3端口还接收一些用于闪存编程和程序验证的控制信号。RST:重置输入。振荡器工作时,如果RST引脚处于高电平超过两个机器周期,则该引脚将复位。ALE/PROG:当访问外部程序存储器或数据存储器时,ALE(数据锁存允许)输出脉冲用于锁存地址的低8位字节。即使不访问外部存储器,ALE仍以时钟振荡频率的1/6输出固定的正脉冲信号,因此它可以从外部输出时钟或用于计时目的。应当注意,每次访问外部数据存储器时,ALE脉冲将被跳过。该引脚还用于在闪存编程期间输入编程脉冲(PROG)。如有必要,可通过设置特殊功能寄存器(SFR)区域中8EH单元的“执行”位来禁止ALE操作。当该位被置位时,只有一个MOVX和MOVC指令ALE将被激活。此外,该引脚将被略微拉高,当微控制器执行外部程序时,ALE应设置为无效。PSEN:PSEN的输出是外部程序存储器的读选通信号。当AT89C51从外部程序存储器获取指令(或数据)时,PSEN在每个机器周期内有效两次,即输出两个脉冲。在此期间,当访问外部数据存储器时,出现这两个有效的PSEN信号。Ea/vpp:允许外部访问。为了使中央处理器只访问外部程序存储器(地址:0000小时-ffffh),必须将电子分析终端保持在低电平(接地)。注意,如果加密位LB1被编程,在复位期间,EA端子状态将被内部锁存。如果EA终端为高电平(连接到VCC终端),中央处理器执行内部程序存储器中的指令。对闪存编程时,引脚加12V编程允许电源Vpp。当然,这一定是因为该器件使用12V编程电压Vpp。XTAL1:振荡器反相放大器和内部时钟发生器的输入。XTAL2:振荡器反相放大器的输出。时钟振荡器:AT89C5l具有一个高增益反相放大器,用于构成内部振荡器。引脚XTAL1和XTAL2分别是放大器的输入和输出端。该放大器与作为反馈元件的片外应时晶体或陶瓷谐振器一起形成自激振荡器,振荡电路如图5所示。外部应时晶体(或陶瓷谐振器)和电容器C1和C2连接在放大器的反馈回路中,形成并联振荡电路。虽然对外部电容C1和C2没有非常严格的要求,但电容的大小会稍微影响振荡频率、振荡器工作的稳定性、启动振荡的难度和温度稳定性。如果使用应时晶体,建议电容为30pF10pF,如果使用陶瓷谐振器,建议电容为40pF 10pF。用户也可以使用外部时钟。图5的右图显示了使用外部时钟的电路。在这种情况下,外部时钟脉冲连接到XTAL1,即内部时钟发生器的输入,而XTAL2被挂起。图1当应时水晶:C1,C2=30pF10pf陶瓷滤波器:C1,c2=40 pf10 pf内部振荡电路图2外部时钟驱动电路由于外部时钟信号通过二分频触发器后用作内部时钟信号,因此对外部时钟信号的占空比没有特殊要求,但最小高电平持续时间和最大低电平持续时间应满足产品技术条件的要求。空闲省电模式:AT89C51有两种省电模式,可由软件编程。它们是空闲模式和掉电模式。这两种方法通过控制专用寄存器PCON(即功率控制寄存器)中的PD (PCON.1)和IDL(PCON.0)位来实现。局部放电是一种断电模式。当PD=1时,掉电模式被激活,微控制器进入掉电模式。IDL是一种空闲等待模式。当IDL=1时,空闲工作模式被激活,单片机进入睡眠状态。如果您需要同时进入两种工作模式,即PD和IDL均为1,则首先激活掉电模式。在空闲操作模式下,当所有片上外设保持活动时,中央处理器保持睡眠状态。该模式由软件生成。此时,片内随机存取存储器和所有特殊功能寄存器的内容保持不变。空闲模式可以通过任何允许的中断请求或硬件复位来终止。有两种方法可以终止空闲操作模式。一是任何允许中断的事件都被激活,IDL(PCON.0)被硬件清除,空闲操作模式立即终止。程序将首先响应中断并进入中断服务程序。在执行中断服务程序并遵循RETI(中断返回)指令之后,下一个要执行的指令是导致微控制器进入空闲模式的指令之后的指令。第二,空闲操作模式也可以通过硬件复位来终止。应当注意,当空闲操作模式由于硬件复位而终止时,中央处理器通常从激活空闲模式的指令的下一条指令开始执行程序。为了完成内部复位操作,硬件复位脉冲必须保持两个机器周期(24个时钟周期)有效。在这种情况下,内部禁止中央处理器访问片上随机存储器,同时允许访问其他端口。为了避免对端口的意外写入,激活空闲模式的指令之后的指令不应是对端口或外部存储器的写入指令。掉电模式:在掉电模式下,振荡器停止工作。进入掉电模式的指令是最后执行的指令。片内随机存取存储器和特殊功能寄存器的内容在掉电模式终止之前被冻结。退出掉电模式的唯一方法是硬件复位。复位后,所有特殊功能寄存器将被重新定义,而不改变随机存取存储器的内容。在Vcc恢复正常工作水平之前,复位无效,必须保持一段时间,以重新启动振荡器并稳定工作。程序内存加密:AT89C51可以用编程(P)或不编程(U)芯片上的三个加密位LB1、LB2和LB3,得到下表所示的功能加密位保护功能表:当加密位LB1被编程时,在复位期间,EA端的逻辑电平被采样和锁存。如果微控制器在上电后没有复位,锁存的初始值是一个随机数,这个随机数将被存储,直到它被真正复位。为了使微控制器正常工作,锁存的EA电平值必须与该引脚的当前逻辑电平一致。此外,加密的位只能通过整个擦除方法来擦除。闪存编程;AT89C51单片机有一个4k字节的闪存。该闪存阵列在出厂时已经处于擦除状态(即所有存储单元都是FFH),用户可以随时对其进行编程。编程接口可以接收高电压(12V)或低电压(Vcc)使能编程信号。低电压编程模式适用于用户的在线编程系统,而高电压编程模式与通用EPROM编程器兼容。在AT89C51单片机中,有的属于低压编程模式,有的属于高压编程模式。用户可以从芯片上的型号和芯片上的名称部分获得该信息,如下表所示。AT89C51的程序存储器阵列通过字节写入来编程,一次一个字节。为了将非空字节写入整个芯片的PEROM程序存储器,必须通过芯片擦除来擦除整个存储器。编程方法:编程前,地址、数据和控制信号应按表6和图6所示进行设置。编程单元的地址被添加到P1端口和P2端口的P2.0-P2.3(11位地址范围为0000 h-0ffh)。数据从P0端口输入。引脚P2.6、P2.7和P3.6、P3.7的电平设置如表6所示。PSEN处于低电平,RST处于高电平,EA/VPP引脚是编程电源的输入端,编程脉冲(负脉冲)根据需要输入到ALE/PROG引脚。编程时,可以使用4-20 MHz时钟振荡器。AT89C51的编程方法如下:1.将待编程单元的地址信号添加到地址线。2.添加要写入数据线的数据字节。3.激活相应的控制信号。4.在高压编程模式下,将12V编程电压加到EA/VPP端子上。5.向每对闪存阵列写入一个字节,或写入一个程序加密位,外加一个ALE/PROG编程脉冲。更改编程单元的地址和写入的数据,并重复步骤1-5,直到所有文件都被编程。每个字节写周期都是自定时的,通常约为1.5 ms。数据查询:AT89C51单片机利用数据查询来检测一个写周期是否结束。在写周期中,如果要读取写入的最后一个字节,读取数据的最高位(P0.7)是原始写入字节的最高位的倒数。写周期完成后,有效数据将出现在所有输出端。此时,可以进入下一个字节的写周期。写周期开始后,可以随时执行数据查询。就绪/忙碌:字节编程的进度可以通过RDY/BSY输出信号来监控。在编程期间,当ALE变为高电平“H”时,P3.4 (RDY/BSY)端子的电平被拉低,指示其处于编程状态(忙状态)。编程完成后,P3.4变为高电平,表示就绪状态。程序验证:如果加密位LB1和LB2未被编程,代码数据可以通过地址和数据线读回原始写入的数据。采用下图所示的电路。程序存储器的地址由端口P1和P2的P2.0-p2.3输入,数据由端口P0读出。表中显示了P2.6、P2.7、P3.6和P3.7的控制信号。PSEN保持低水平,而ALE、ea和RST保持高水平。在校准过程中,P0必须连接一个约10k的上拉电阻。闪存编程真值表注意:芯片擦除操作要求PROG脉冲宽度为10ms。编程电路验证电路AT89C51的极限工作参数参考:1孙张进平大鹏丁金斌51系列单片机原理开发与应用实例出版社:中国电力出版社版:2009-01-012田丽,Avaghoa,他,编辑。单片机应用开发实例丛书 51系列单片机开发实例精解出版社:中国电力出版社版:2009-8-13李刚等编。51系列单片机系统设计与应用技巧出版社:北京航空航天大学出版社版:2004-1-14李刚,林玲,何峰,主编.ADuC845单片机原

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论