AT89C51单片机毕业论文外文翻译

上传人:1888****888 文档编号:37798275 上传时间:2021-11-04 格式:DOC 页数:34 大小:268.52KB
返回 下载 相关 举报
AT89C51单片机毕业论文外文翻译_第1页
第1页 / 共34页
AT89C51单片机毕业论文外文翻译_第2页
第2页 / 共34页
AT89C51单片机毕业论文外文翻译_第3页
第3页 / 共34页
点击查看更多>>
资源描述
附录A功能概述AT89C51单片机是美国ATMEL公司生产的低电压,高性能CMOS8位单片机,片内含4k bytes的可反复擦写的Flash只读程序存储器和128 bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS51指令系统,片内置通用8位中央处理器(CPU)和Flash存储单元,功能强大AT89C51单片机可提供许多高性价比的应用场合,可灵活应用于各种控制领域。主要性能参数与MCS51产品指令系统完全兼容4k字节可重擦写Flash闪速存储器1000次擦写周期全静态操作:0Hz24MHz三级加密程序存储器1288字节内部RAM32个可编程I/O口线2个16位定时/计数器6个中断源可编程串行UART通道低功耗空闲和掉电模式引脚功能说明VCC:电源电压GND:地P0口:P0口是一级8位漏极开路型双向I/O口,也即地址/数据总线复用口。作为输出口用时,每位能吸收电流的方式驱动8个TTL逻辑门电路,对端口写“1” 可作为高阻搞输入端用。在访问外部数据存储器或程序存储器时,这级口线分时转换地址(低8位)和数据总线复用,在访问期间激活内部上拉电阻。在Flash编程时,P0口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外妆上拉电阻。P1口:P1口是一个带内部上拉电阻的8位双向I/O口,P1口的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口,作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流。Flash编程和程序校验期间,P1接收低8位地址。P2口:P2口是一个带有内部上拉电阻的8位双向I/O口,P2的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口,作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流。在访问外部程序存储器或16位地址的外部数据存储器(例如执行MOVX DPTR指令)时,P2口送出高8位地址数据。在访问8位地址的外部数据存储器(如执行MOVX RI指令)时,P2口线上的内容(也即特殊功能寄存器(SFR)区中R2寄存器的内容),在整个访问期间不改变。Flash编程或校验时,P2口亦接收高位地址和其它控制信号。P3口:P3口是一组带有内部上拉电阻的8位双向I/O口。P3口输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对P3口写入“1”,时,它们被内部上拉电阻拉高并可作为输入端口。作输入端时,被外部拉低的P3口将用上拉电阻输出电流。P3口除了作为一般的I/O口线外,更重要的用途是它的第二功能。如表1所示。表1 P3口的第二功能端口引脚第二功能P3.0RXD(串行输入口)P3.1TXD(串行输出口)P3.2(外中断0)P3.3(外中断1)P3.4T0(定时/计数器0)P3.5T1(定时/计数器1)P3.6(外部数据存储器写选能)P3.7(外部数据存储器读选能) P3口还接收一些用于Flash闪速存储器编程和程序校验的控制信号RST:复位输入。当振荡器工作时,RST引脚出现两个机器周期以上高电平将使单片机复位。ALE/PROG:当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。即使不访问外部存储器,ALE仍以时钟振荡频率的1/16输出固定的正脉冲信号,因此它可对输出时钟或用于定时目的。要注意的是:每当访问外部数据存储器时将跳过一个ALE脉冲。PSEN:程序储存允许输出是外部程序存储器的读选通信号,当AT89C51由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲。在此期间,当访问外部数据存储器,这两次有效的PSEN信号不出现。EA/VPP:外部访问允许。欲使CPU仅访问外部程序存储器(0000HFFFFH),EA端必须保持低电平(接地)。需注意的是:如果加密位LB1被编程,复位时内部会锁存EA端状态。如EA端为高电平(接VCC端),CPU则执行内部程序存储器中的指令。Flash存储器编程时,该引脚加上+12V的编程允许电源VPP,当然这必须是该器件是使用12V编程电压VPP。XTAL1:振荡器反相放大器及内部时钟发生器的输入端。XTAL2:振荡器反相放大器的输出端时钟振荡器AT89C51中有一个用于构成内部振荡器的高增益反相放大器,引脚XTAL1T XTAL2分别是该放大器的输入端和输出端。这个放大器与作为反馈元件的片外石英晶体或陶瓷谐振器一起构成自激振荡器,振荡电路如图1、图2所示。 石英晶体时:C1,C2=30pF10 pF陶瓷谐振器:C1,C2=40pF10pF图1 内部振荡电路 图2 外部振荡电路外接石英晶体(或陶瓷谐振器)及电容C1、C2接在放大器的反馈回路构成并联振荡电路。对外接电容C1、C2虽然没有十分严格的要求,但电容容量的大小会轻微影响振荡频率的高低、振荡器工作的稳定性、起振的难易程度及温度稳定性,如果使用石英晶体,我们推荐电容使用30pF10pF,而如使用陶瓷谐振器建议选择40pF10pF。用户也可采用外部时钟.采用外部时钟的电路如图5所示。这种情况下,外部时钟脉冲接到XTAL1端,即内部时钟发生器的输入端,XTAL2则悬空。由于外部时钟信号是通过一个2分频触发器后作为内部时钟信号的,所以对外部时钟信号的占空比没有特殊的要求,但最小高电平持续时间和最大的低电平持续时间应符合产品技术条件的要求。空闲节电模式AT89C51有两种可用软件编程的省电模式,它们是空闲模式和掉电模式。这两种方式是控制专用寄存器PCON(即电源控制寄存器)中的PD(PCON.0)位来实现的。PD是掉电模式,当PD=1时,激活掉电工作模式,单片机进入掉电工作状态。IDL是空闲等待方式,当IDL=1,激活空闲工作模式,单片机进入睡眠状态。如需同时进入两种工作模式,即PD和IDL同时为1,则先激活掉电模式。在空闲工作模式状态,CPU保持睡眠状态而所有片内的外设仍保持激活状态,这种方式由软件产生。此时,片内RAM和所有特殊功能寄存器的内容保持不变。空闲模式可由任何允许的中断请求或硬件复位终止。终止空闲工作模式的方法有两种,其一是任何一条被允许中断的事件被激活,IDL(PCON.0)被硬件清除,即刻终止空闲工作模式。程序会首先响应中断,进入中断服务程序,执行完中断服务程序并紧随RETI(中断返回)指令后,下一条要执行的指令就是使单片机进入空闲模式那条指令后面的一条指令。其二是通过硬件复位也可将空闲工作模式终止。需要注意的是:当帅硬件复位来终止空闲工作模式时,CPU通常是从激活空闲模式那条指令的下一条指令开始继续执行程序的,要完成内部复位操作,硬件复位脉冲要保持两个机器周期(24个时钟周期)有效,在这种情况下,内部禁止CPU访问片内RAM,而允许访问其它端口。为了避免可能对端口产生意外写入,激活空闲模式的那条指令后条指令不应是一条对端口或外部存储器的写入指令。掉电模式在掉电模式下,振荡器停止工作,进入掉电模式的指令是最后一条被执行的指令,片内RAM和特殊功能寄存器的内容在终止掉电模式前被冻结。退出掉电模式的唯一方法是硬件复位,复位后将重新定义全部特殊功能寄存器但不改变RAM中的内容,在VCC恢复到正常工作电平前,复位应无效,且必须保持一定时间以使振荡器重启动并稳定工作。空闲和掉电模式外部引脚状态如表2所示。表2 空闲和掉电模式外部引脚状态模式程序存储器ALEP0P1P2P3空闲模式内部11数据数据数据数据空闲模式外部11浮空数据地址数据掉电模式内部00数据数据数据数据掉电模式处部00浮空数据数据数据程序存储器的加密AT89C51可使用对芯片上的3个加密位LB1、LB2、LB3进行编程(P)或不编程(U)来得到如表3所示的功能。表3 加密位保护功能表程序加密位保护类型LB1LB2LB31UUU没有程序保护功能2PUU禁止从外部程序存储器中执行MOVC指令读取内部程序存储器的内容3PPU除上表功能外,还禁止程序校验4PPP除以上功能外,同时禁止外部执行注:表中的U表示未编程,P表示编程当加密位LB1被编程时,在复位期间,EA端的逻辑电平采样并锁存,如果单片机上电后一直没有复位,则锁存起的初始值是一个随机数,且这个随机数会一直保存到真正复位为止。为使单元片机能正常工作,被锁存的EA电平值必须与该引脚当前的逻辑电平一致。此外,加密位只能通过整片擦除的方法清除。Flash 闪速存储器的编程AT89C51单片机内部有4k字节的Flash PEROM,这个Flash存储阵列出厂时已处于擦除状态(即所有存储单元的内容均为FFH),用户随时可对其进行编程。编程接口可接收高电压(+12V)或低电压(VCC)的允许编程信号。低电压编程模式适合于用户在线编程系统,而高电压编程模式可与通用EPROM编程器兼容。AT89C51单片机中,有些属于低电压编程方式,而有些则是高电压编程方式,用户可从芯片上的型号和读取芯片内的签名字节获得该信息,如表4所示。 表4 签名字节获得信息VPP=12VVPP=5V芯片顶面标识AT89C51xxxxyywwAT89C51xxxx-5yyww签名字节(030H)=1EH(031H)=51H(032H)=FFH(030H)=1EH(031H)=51H(032H)=05HAT89C51的程序存储器阵列是采用字节写入方式编程的,每次写入一个字节,要对整个芯片内的PEROM程序存储器写入一个非空字节,必须使用片擦除的方式将整个存储器的内容清除。 编程方法编程前,须按图3和表5所示设置好地址、数据及控制信号,编程单元的地址加在P1口和P2口的P2.0P2.3(11位地址范围为0000H0FFFH),数据从P0口输入,引脚P2.6、P2.7和P3.6、P3.7的电平设置如表6,PSEN为低电平,RST保持高电平,EA/VPP引脚是编程电源的输入端,按要求加上编程电压,LAE/PROG引脚输入编程脉冲(负脉冲)。编程时,可采用420MHz的时钟振荡器,AT89C51编程方法如下:1,在地址线上加上要编程单元的地址信号。2,在数据线上加上要写入的数据字节。3,激活相应的控制信号。4,在高电压编程方式时,将EA/VPP端加上+12V编程电压。5,每对Flash存储阵列写入一个字节或每写入一个程序加密位,加上一个ALE/PROG编程脉冲。改变编程单元的地址和写入的数据,重复15步骤,直到全部文件编程结束。图3 编程电路表5 Flash存储器编程真值表方式RSTPSENALE/PROGEA/VPPP2.6P2.7P3.6P3.7写代码数据HLH/12VLHHH读代码数据HLHHLLHH写加密位Bit-1HLH/12VHHHHBit-2HLH/12VHHLLBit-3HLH/12VHLHL片擦除HLH/12VHLLL读签名字节HLHHLLLL注:片擦除操作时要求PROG脉冲宽度为10ms数据查询AT89C51单片机用数据查询方式来检测一个写周期是否结束,在一个写周期中,如需读取最后写入的那个字节,则读出的数据的最高位(P0.7)是原来写入字节最高位的反码。写周期完成后,有效的数据就会出现在所有输出端上,此时,可进入下一个字节的写周期,写周期开始后,可在任意时刻进行数据查询。Ready/busy:字节编程的进度可通过“RDY/BSY”输出信号监测,编程期间,ALE变为高电平“H”后P3.4(RDY/BSY)端电平被拉低,表示正在编程状态(忙状态)。编程完成后,P3.4变为高电平表示准备就绪状态。程序校验 如果加密位LB1、LB2没有进行编程,则代码数据可通过地址和数据线读回原编写的数据,采用下图的电路,程序存储器的地址由P1和P2的P.0P2.3输入,数据由P0口读出,P2.6、P2.7和P3.6、P3.7的控制信号见表6,PSEN保持低电平,ALE、EA和RST保持高电平。校验时,P0口须接上10k左右的上拉电阻。 加密位不可直接校验,加密位的校验可通过对存储器的校验和写入状态来验证。图4为校验电路。图4 校验电路芯片擦除 利用控制信号的正确组合,并保持ALE/PROG引脚10ms的低电平脉冲宽度即可将PEROM阵列(4k字节)和三个加密位整片擦除,代码阵列在片擦除操作中将任何非空单元写入“1”,这步骤需再编程之前进行。读片内签名字节AT89C51单片机内有3个签名字节,地址为030H、031H和032H。用于声明该器件的厂商、型号和编程电压。读签名字节的过程和单元030H、031H和032H的正常校验相仿,只需将P3.6和P3.7保持低电平,返回值意义如下: (030H) = 1EH 声明产品由ATMEL公司制造(031H) = 51H 声明产品为AT89C51单片机(032H) = FFH 声明为12V编程电压(032H) = 05H 声明为5V编程电压编程接口采用控制信号的正确组合可对Flash闪速存储阵列中的每一代码字节进行定写入和存储器的整片擦除,写操作周期是自身定时的,初始化后它将自动定时到操作完成。FLASH EPROM 存储器概述89C51X2/52X2/54X2/58X210000次擦除和编程之后仍能可靠保存FLASH 存储器的内容。存储单元的设计使得擦除和编程结构最优化。此外,先进的沟道氧化工艺和低内部电场的结合使擦除和编程操作更加可靠。特性带片擦除的FLASH EPROM 内部程序存储器内部程序存储器禁止时(EA=0)外部程序存储器最多可达64K可编程加密位每字节最少10000 次擦除/编程周期数据最少可保存10 年从一般销售商处可获得编程支持振荡器特性XTAL1 和XTAL2 为输入和输出,可分别作为一个反相放大器的输入和输出。此管脚可配置为使用内部振荡器。要使用外部时钟源驱动器件时,XTAL2 可以不连接而由XTAL1 驱动。外部时钟信号无占空比的要求,因为时钟通过触发器二分频输入到内部时钟电路。但高低电平的最长和最短时间必须符合手册的规定。复位在振荡器工作时,将RST 脚保持至少两个机器周期高电平(12 时钟模式为24 个振荡器周期6 时钟模式为12 振荡器周期)可实现复位。为了保证上电复位的可靠,RST 保持高电平的时间至少为振荡器启动时间(通常为几个毫秒)再加上两个机器周期。复位后,振荡器以12 时钟模式运行(当已通过并行编程器设置为6 时钟模式时除外)。低功耗模式时钟停止模式静态设计使时钟频率可以降至0MHz(停止)。当振荡器停振时,RAM 和SFR 的值保持不变。该模式允许逐步应用并可将时钟频率降至任意值以实现系统功耗的降低。如要实现最低功耗则建议使用掉电模式。空闲模式空闲模式CPU 进入睡眠状态,但片内的外围电路仍然保持工作状态。正常操作模式的最后一条指令执行进入空闲模式。空闲模式下,CPU 内容,片内RAM和所有SFR 保持原来的值。任何被使能的中断(此时,程序从中断服务程序处恢复并继续执行)或硬件复位(与上电复位使用相同的方式启动处理器)均可终止空闲模式。掉电模式为了进一步降低功耗,通过软件可实现掉电模式。该模式中,振荡器停振并且在最后一条指令执行进入掉电模式。降到2.0V 时,片内RAM和SFR保持原值,在退出掉电模式之前Vcc 必须升至规定的最低操作电压。硬件复位或外部中断均可结束掉电模式,硬件复位使所有的SFR重新设置,但不改变片内RAM 的值。外部中断允许SFR和片内RAM都保持原值。WUPD (AUXR1.3 从掉电唤醒)使能或禁止通过外部中断唤醒掉电WUPD=0 禁止 WUPD=1 使能要正确退出掉电模式,在Vcc 恢复到正常操作电压范围之后,复位或外部中断开始执行并且要保持足够长的时间( 通常小于10ms )以使振荡器重新启动并稳定下来。使用外部中断退出掉电模式时,INT0 和INT1 必须使能且配置为电平触发。将管脚电平拉低使振荡器重新启动,退出掉电模式后将管脚恢复为高电平。一旦中断被响应,RETI 之后所执行的是进入掉电模式指令的后一条指令。设计中的注意事项当空闲模式被硬件复位所中止时,器件在内部复位之前从停止处恢复程序正常运行,时间为2 个机器周期。这段时间内片内硬件禁止对内部RAM的访问,但对I/O 口的访问未被禁止。当Idle模式被复位所中止时,为了消除可能产生的误写操作,应用Idle模式指令后的指令不应执行写I/O口或写外部存储器操作。ONCETM模式ONCE(在线仿真)模式实现了对系统的测试和调试而不需要将器件从电路中移去。进入ONCE 模式的条件: 1) 当器件复位且PSEN为高电平时,将ALE 置低电平; 2) 在RST撤除时,ALE 保持低电平。当器件处于ONCE模式时,P0口处于悬浮状态,其它I/O口、ALE和PSEN为弱上拉。振荡电路保持工作状态,器件处于该模式时,可用仿真器或测试CPU 驱动电路。执行正常复位时恢复正常操作。可编程时钟输出可从P1.0编程输出50%占空比的时钟信号。P1.0除了作为常规I/O口外,还有两个可选功能它可编程为: 1 ) 用于定时/计数器2的外部时钟输入; 2 ) 使用16MHz操作频率时,12时钟模式下输出50%占空比的61Hz4MHz 时钟信号(6 时钟模式时为122Hz8MHz)。要将定时/计数器2 配置为时钟发生器,C/T2(T2CON.1)必须清零,而T2MOD中的T20E 位必须置位。要启动定时器2还必须将TR2(T2CON.2)置位。时钟输出频率由振荡器频率和定时器2 捕获寄存器的重新装入值确定,公式如下:此处:(RCAP2H,RCAP2L)=RCAP2H和RCAP2L的内容作为一个16 位无符号整数在时钟输出模式中,定时器2的翻转将不会产生中断。这和它作为波特率发生器时相似。定时器2可同时作为波特率发生器和时钟发生器。但需要注意的是,波特率和时钟输出频率相同。定时器2 的操作定时器2是一个16位定时/计数器。通过设置特殊功能寄存器T2CON中的C/T2 位,可将其作为定时器或计数器。定时器2有三种操作模式:捕获、自动重新装载(递增或递减计数)和波特率发生器,这三种模式由T2CON中的位进行选择。捕获模式在捕获模式中,通过T2CON中的EXEN2设置两个选项。如果EXEN20,定时器2作为一个16位定时器或计数器(由T2CON中C/T2位选择),溢出时置位TF2(定时器2溢出标志位)。该位可用于产生中断(通过使能IE 寄存器中的定时器2中断使能位)。如果EXEN2=1,与以上描述相同,但增加了一个特性,即外部输入T2EX由1变0时将定时器2中TL2和TH2的当前值各自捕获到RCAP2L和RCAP2H。另外,T2EX的负跳变使T2CON中的EXF2置位,EXF2也象TF2一样能够产生中断(其向量与定时器2溢出中断地址相同,定时器2中断服务程序通过查询TF2和EXF2来确定引起中断的事件)。在该模式中,TL2和TH2无重新装载值。甚至当T2EX产生捕获事件时,计数器仍以T2EX的负跳变或振荡频率的1/12(12时钟模式)或1/6(6时钟模式)计数。自动重装模式递增/递减计数器16位自动重装模式中,定时器2可通过C/T2配置为定时器/计数器,编程控制递增/递减计数。计数的方向是由DCEN(递减计数使能位)确定的,DCEN位于T2MOD寄存器中。当DCEN0时,定时器2默认为向上计数;当DCEN1时,定时器2可通过T2EX确定递增或递减计数。在该模式中通过设置EXEN2位进行选择。如果EXEN2=0,定时器2递增计数到0FFFFH并在溢出后将TF2置位,然后将RCAP2L和RCAP2H中的16位值作为重新装载值装入定时器2。RCAP2L和RCAP2H的值是通过软件预设的。如果EXEN2=1,(16位重新装载可通过溢出或T2EX从10的负跳变实现。此负跳变同时将EXF2置位。如果定时器2中断被使能,则当TF2或EXF2置1时产生中断。此模式允许T2EX控制计数的方向。当T2EX置1时,定时器2递增计数,计数到0FFFFH后溢出并置位器TF2。还将产生中断(如果中断被使能),定时器2的溢出将使RCAP2L和RCAP2H中的16位值作为重新装载值放入TL2和TH2。当T2EX置零时,将使定时器2递减计数。当TL2和TH2计数到等于RCAP2L和RCAP2H时,定时器产生溢出。定时器2溢出置位TF2,并将0FFFFH重新装入TL2和TH2。当定时器2递增/递减产生溢出时,外部标志位EXF2翻转。如果需要,可将EXF2位为第17位。在此模式中EXF2标志不会产生中断TF2还将产生中断如果中断。波特率发生器模式寄存器T2CON的位TCLK和(或)RCLK允许从定时器1或定时器2获得串行口发送和接收的波特率当TCLK=0时,定时器1作为串行口发送波特率发生器;当TCLK=1时,定时器2作为串行口发送波特率发生器。RCLK对串行口接收波特率有同样的作用。通过这两位,串行口能得到不同的接收和发送波特率一个通过定时器1产生,另一个通过定时器2产生。与自动重装模式相似,当TH2溢出时,波特率发生器模式使定时器2寄存器重新装载来自寄存器RCAP2H和RCAP2L的16位的值,寄存器RCAP2H和RCAP2LR的值由软件预置。当工作于模式1和模式3时,波特率由下面给出的定时器2 溢出率所决定:定时器可配置成“定时”或“计数”方式,在许多应用上定时器被设置在“定时”方式(C/T2*=0)。当定时器2作为定时器时,它的操作不同于波特率发生器。通常,定时器2作为定时器,它会在每个机器周期递增(1/6或1/12振荡频率)。当定时器2作为波特率发生器时,它会在每个状态周期递增(例如1/2 振荡频率)。这样,波特率公式如下:此处:(RCAP2H,RCAP2L)=RCAP2H和RCAP2L的内容为16位无符号整数。定时器2作为波特率发生器,仅当寄存器T2CON中的RCLK和(或)TCLK=1时,定时器2作为波特率发生器才有效。注意TH2溢出并不置位TF2,也不产生中断。这样,当定时器2作为波特率发生器时,定时器2中断不必被禁止。如果EXEN2(T2外部使能标志)被置位,在T2EX中由1到0的转换会置位EXF2(T2外部标志位),但并不导致(TH2、TL2)重装载(RCAP2H,RCAP2L)。因此,当定时器2用作波特率发生器时,如果需要,T2EX可用作附加的外部中断。当计时器工作在波特率发生器模式下,则不要对TH2和TL2进行读写,每隔一个状态时间(0sc/2)或由T2进入的异步信号,定时器2将加1;在此情况下对TH2和TH1进行读写是不准确的。可对RCAP2寄存器进行读,但不要进行写,否则将导致自动重装错误。当对定时器2或寄存器RCAP进行访问时,应关闭定时器(清零TR2)。波特率公式汇总定时器2工作在波特率发生器模式,外部时钟信号由T2脚进入波特率为:如果定时器2采用内部时钟信号,则波特率为:此处:fOSC =振荡器频率自动重装值可由下式得到:增强型UART 操作除了标准操作模式外UART可实现自动地址识别和通过查询丢失的停止位进行帧错误检测,UART还支持多机通信。当使用帧错误检测时,丢失的位将会置位SCON中的FE位。FE与SM0共用SCON.7,通过PCON.6(SMOD0)选择。如果SMOD0置位,SCON.7作为FE, SMOD0为0时,SCON.7作为SM0。作为FE时SCON.7只能由软件清零。自动地址识别自动地址识别是这样一种特性,它使UART可以通过硬件比较从串行数据流中识别出特定的地址。这样就不必花费大量软件资源去检查每一个从串口输入的串行地址。将SCON内SM2置位可使能该特性。在9位UART模式(模式2和模式3)下,如果接收的字节中包含“给定”地址或“广播”地址,接收中断标志(RI)将自动置位。在9位模式下要求第9个信息位为1以表明该信息内容是地址而非数据。使用自动地址识别特性时,主机通过调用特定从机地址选择与一个(或多个)从机通信。使用广播地址时,所有从机都被联系。在此使用了两个特殊功能寄存器:SADDR表示从机地址,SADEN表示地址屏蔽。SADEN用于定义SADDR内哪几位需使用而哪几位不予考虑。SADEN可以与SADDR逻辑“与”得出给定的地址,用于对每一从机进行寻址示例如下:从机0 SADDR=1100 0000SADEN=1111 1101特定地址=1100 00X0从机1 SADDR=1100 0000SADEN=1111 1110特定地址=1100 000X上例中SADDR相同,而SADEN不同以区分两个从机。从机0要求0位为0而忽略1位。从机1则要求1位为0而忽略0位。由于从机1的1位必须为0,从机0只能取独有的地址1100 0010 以区别。由于从机0的0位必须为1,从机1只能取独有的地址1100 0001 以区别。而取地址1100 0000 时两从机都可被寻址。下例所示为选择从机1、2而不选从机0:从机0 SADDR=1100 0000SADEN=1111 1001特定地址=1100 0XX0从机1 SADDR=1110 0000SADEN=1111 1010特定地址=1100 0X0X从机2 SADDR=1110 0000SADEN=1111 1100特定地址=1110 00XX上述三个从地址只有低3位不同。从机0要求位0=0,它可通过1110 0110单独寻址;从机1要求位1=0,可通过1110 0101单独寻址;从机2要求位2为0,可通过1110 0011单独寻址。由于必须使地址字节的第2位为“1”以屏蔽从机2,因此使用地址1110 0100可选通从机0和1同时屏蔽从机2。将SADDR和SADEN相“或”后产生每个从机的“广播”地址,结果为零的位视为无关位。大多数情况下,无关位被认为是1,这样“广播”地址为FFH,复位时SADDR和SADEN均为00H,此时产生了一个所有位都是无关位的给定地址,也即“广播”地址,这样有效地禁止了自动寻址模式,并允许微控制器使用不带有上述特性的标准UART驱动器。附录BAT89C51DescriptionThe AT89C51 is a low-power, high-performance CMOS 8-bit microcomputer with 4K bytes of Flash Programmable and Erasable Read Only Memory (PEROM). The device is manufactured using Atmels high density nonvolatile memory technology and is compatible with the industry standard MCS-51 instruction set and pinout. The on-chip Flash allows the program memory to be reprogrammed in-system or by a conventional nonvolatile memory programmer. By combining a versatile 8-bit CPU with Flash on a monolithic chip, the Atmel AT89C51 is a powerful microcomputer which provides a highly flexible and cost effective solution to many embedded control applications.FeaturesCompatible with MCS-51 Products 4K Bytes of In-System Reprogrammable Flash Memory Endurance: 1,000 Write/Erase Cycles Fully Static Operation: 0 Hz to 24 MHz Three-Level Program Memory Lock 128 x 8-Bit Internal RAM 32 Programmable I/O Lines Two 16-Bit Timer/Counters Six Interrupt Sources Programmable Serial Channel Low Power Idle and Power Down ModesPin DescriptionVCCSupply voltage.GNDGround.Port 0Port 0 is an 8-bit open drain bidirectional I/O port. As an output port each pin can sink eight TTL inputs. When 1s are written to port 0 pins, the pins can be used as highimpedance inputs.Port 0 may also be configured to be the multiplexed loworder address/data bus during accesses to external program and data memory. In this mode P0 has internal pullups.Port 0 also receives the code bytes during Flash programming, and outputs the code bytes during program verification.External pullups are required during program verification.Port 1Port 1 is an 8-bit bidirectional I/O port with internal pullups.The Port 1 output buffers can sink/source four TTL inputs.When 1s are written to Port 1 pins they are pulled high by the internal pullups and can be used as inputs. As inputs,Port 1 pins that are externally being pulled low will source current (IIL) because of the internal pullups.Port 1 also receives the low-order address bytes during Flash programming and verification.Port 2Port 2 is an 8-bit bidirectional I/O port with internal pullups.The Port 2 output buffers can sink/source four TTL inputs.When 1s are written to Port 2 pins they are pulled high by the internal pullups and can be used as inputs. As inputs, Port 2 pins that are externally being pulled low will source current (IIL) because of the internal pullups.Port 2 emits the high-order address byte during fetches from external program memory and during accesses to external data memory that use 16-bit addresses (MOVX DPTR). In this application it uses strong internal pull-ups when emitting 1s. During accesses to external data memory that use 8-bit addresses (MOVX RI), Port 2 emits the contents of the P2 Special Function Register.Port 2 also receives the high-order address bits and some control signals during Flash programming and verification.Port 3Port 3 is an 8-bit bidirectional I/O port with internal pullups.The Port 3 output buffers can sink/source four TTL inputs. When 1s are written to Port 3 pins they are pulled high by the internal pullups and can be used as inputs. As inputs, Port 3 pins that are externally being pulled low will source current (IIL) because of the pullups.Port 3 also serves the functions of various special features of the AT89C51 as listed below:Port Pin Alternate FunctionsP3.0 RXD (serial input port)P3.1 TXD (serial output port)P3.2 INT0 (external interrupt 0)P3.3 INT1 (external interrupt 1)P3.4 T0 (timer 0 external input)P3.5 T1 (timer 1 external input)P3.6 WR (external data memory write strobe)P3.7 RD (external data memory read strobe)Port 3 also receives some control signals for Flash programming and verification.RSTReset input. A high on this pin for two machine cycles while the oscillator is running resets the device.ALE/PROGAddress Latch Enable output pulse for latching the low byte of the address during accesses to external memory. This pin is also the program pulse input (PROG) during Flashprogramming. In normal operation ALE is emitted at a constant rate of 1/6 the oscillator frequency, and may be used for external timing or clocking purposes. Note, however, that one ALEpulse is skipped during each access to external Data Memory.If desired, ALE operation can be disabled by setting bit 0 of SFR location 8EH. With the bit set, ALE is active only during a MOVX or MOVC instruction. Otherwise, the pin is weakly pulled high. Setting the ALE-disable bit has no effect if the microcontroller is in external execution mode.PSENProgram Store Enable is the read strobe to external program memory.When the AT89C51 is executing code from external program memory, PSEN is activated twice each machine cycle, except that two PSEN activations are skipped during each access to external data memory.EA/VPPExternal Access Enable. EA must be strapped to GND in order to enable the device to fetch code from external program memory locations starting at 0000H up to FFFFH.Note, however, that if lock bit 1 is programmed, EA will be internally latched on reset.EA should be strapped to VCC for internal program executions.This pin also receives the 12-volt programming enable voltage (VPP) during Flash programming, for parts that require12-volt VPP.XTAL1Input to the inverting oscillator amplifier and input to the internal clock operating circuit.XTAL2Output from the inverting oscillator amplifier.Oscillator CharacteristicsXTAL1 and XTAL2 are the input and output, respectively,of an inverting amplifier which can be configured for use as an on-chip oscillator, as shown in Figure 1. Either a quartz crystal or ceramic resonator may be used. To drive the device from an external clock source, XTAL2 should be leftunconnected while XTAL1 is driven as shown in Figure 2.There are no requirements on the duty cycle of the external clock signal, since the input to the internal clocking circuitry is through a divide-by-two flip-flop, but minimum and maximum voltage high and low time specifications must be observed.Idle ModeIn idle mode, the CPU puts itself to sleep while all the on-chip peripherals remain active. The mode is invoked by software. The content of the on-chip RAM and all the special functions registers remain unchanged during this mode. The idle mode can be terminated by any enabled interrupt or by a hardware reset.It should be noted that when idle is terminated by a hard ware reset, the device normally resumes program execution, from where it left off, up to two machine cycles before the internal reset algorithm takes control. On-chip hardware inhibits access to internal RAM in this event, but access to the port pins is not inhibited. To eliminate the possibility of an unexpected write to a port pin when Idle is terminated by reset, the instruction following the one that invokes Idle should not be one that writes to a port pin or to external memory.Figure 1. Oscillator Connections Figure 2. External Clock Drive Configuration Status of External Pins During Idle and Power Down ModesMode Program Memory ALE PSEN PORT0 PORT1 PORT2 PORT3 Power Down ModeIn the power down mode the oscillator is stopped, and the instruction that invokes power down is the last instruction executed. The on-chip RAM and Special Function Registers retain their values until the power down mode is terminated.The only exit from power down is a hardware reset.Reset redefines the SFRs but does not change the on-chip RAM. The reset should not be activated before VCC is restored to its normal operating level and must be held active long enough to allow the oscillator to restart and stabilize.Lock Bit Protection Modes Program Lock Bits Protection Type LB1 LB2 LB3 Programming the FlashThe AT89C51 is normally shipped with the on-chip Flash memory array in the erased state (that is, contents = FFH) and ready to be programmed. The programming interface accepts either a high-voltage (12-volt) or a low-voltage (VCC) program enable signal. The low voltage programming mode provides a convenient way to program the AT89C51 inside the users system, while the high-voltage pr
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸下载 > CAD图纸下载


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!