自动加料系统毕业设计内容摘要:

电路。 同时, AT89C51 可将至 0Hz 的静态逻辑操作,并支持两种软件可选的节电工作模式。 空闲方式停止 CPU 的工作,但允许RAM,定时 /计数器,串行通信口及中断系统继续工作。 掉电方式保存 RAM 中的内容,但振荡器停止工作并禁止其他所有部件工作直到下一个硬件复位。 AT89C51 引脚功能说明 12 .Vcc:电源电压 .GND:地 .P0 口 : P0 口是一组 8 位漏极开路型双向 I/O,也即地址 /数据总线复用口。 作为输出口用时,每位能吸收电流的方式驱 动 8个 TTL 逻辑门电路,对端口写“ 1”可作为高阻抗输入端用 在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低 8 位)和数据总线复用,在访问期间激活内部上拉电阻。 在 Flash 编程时, P0接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻。 .P1 口: P1 口是一个带内部上拉电阻的 8位双向 I/O 口, P1 的输出缓冲级可驱动(吸收或输出电流) 4个 TTL 逻辑门电路。 对端口写“ 1”,通过内部的上拉电阻把端口拉倒高电平,此时可作输入口。 作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信 号拉低时会输出一个电流( IIL)。 Flash 编程和程序校验期间, P1接收低 8位地址。 .P2 口: P2 口是一个带有内部上拉电阻的 8 位双向 I/O 口, P2 的输出缓冲级可驱动(吸收或输出电流) 4个 TTL 逻辑门电路。 对端口写“ 1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口,作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流( IIL)。 在访问外部程序存储器或 16 位地址的外部数据存储器(例如执行 MOVE @DPTR 指令)时。 P2 口送出高 8位地址数据。 在访问 8 位地址的外部数据存储器( 例如执行 MOVX @RI指令)时, P2 口线上的内容(也即特殊功能寄存器( SFR)区总 R2 寄存器的内容),在整个访问期间不改变。 Flash 编程或校验时, P2 亦接收高位地址和其他控制信号。 .P3 口 : P3 口是一组带有内部上拉电阻的 8 位双向 I/O 口, P3 口输出缓冲级可驱动(吸收或输出电流) 4个 TTL 逻辑门电路。 对 P3 口写入“ 1”时,它们被内部上拉电阻拉高并可作为输入端口。 作输入端时,被外部拉低的 P3 口将用上拉电阻输出电流( IIL)。 P3 口除了作为一般的 I/O 口线外,更重要的用途是它的第二功能,如下表所示: 13 P3 口还接收一些用于 Flash 闪速存储器编程和程序校验的控制信号。 .RST: 复位输入。 当振荡器工作时, RST 引脚出现两个机器周期以上高电平将单片机复位。 .ALE/PROG : 当访问外部程序存储器或数据存储器时, ALE(地址锁存允许)输出脉冲用于锁存地址的低 8位字节。 即使不访问外部存储器。 ALE 仍一时钟振荡频率的 1/6输出固定的正脉冲信号,因此它可对外输出时钟或用于定时目的。 但要注意的是:每当访问外部数据存储器时将跳过一个 ALE 脉冲。 对 Flash 存储器编程期间,该引脚还用于输入编程脉冲( PROG )。 如有必要,可通过对特殊功能寄存器( SFR)区中的 8EH 单元的 D0 位置位,可禁止ALE 操作。 该位置位后,只有一条 MOVX 和 MOVC 指令 ALE 才会被激活,此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置 ALE 无效。 .PSEN : 程序存储允许( PSEN )输出是外部程序存储器的读选通信 号,当 AT89C51由外部程序存储器取指令(或数据)时,每个机器周期两次 PSEN 有效,即输出两个脉冲,在此期间,当访问外部数据存储器,这两次有效的 PSEN 信号不出现。 .EA/VPP: 外部访问允许,欲使 CPU 仅访问外部程序存储器(地址为 0000HFFFFH),EA 端必须保持低电平(接地)。 需要注意的是:如果加密位 LB1 被编程,复位时内部会锁存 EA 端状态。 如 EA 端为高电平(接 Vcc 端), CPU 则执行内部会锁存 EA 端状态。 Flash 存储器编程时,该引脚加上 +12V 的编程允许电源 Vpp,当然这必须是该器件是使用 12V 编程电压 Vpp。 端 口 引 脚 第 二 功 能 RXD (串行输入口) TXD (串行输出口) 0INT (外中断 0) P3,3 1INT (外中断 1) T0 (定时 /计数器 0) T1 (定时 /计数器 1) WR (外部数据存储器写选通) RD (外部数据存储器读选通) 14 .XTAL1: 振荡器反相放大器的及内部时钟发生器的输入端。 .XTAL2: 振荡器 3放大器的输出端。 时钟振荡器 AT89C51 中有一个用于构成内部振荡器的高增益反相放大器,引脚 XTAL 和 XTAL2分别是该放大器的输入端和输出端。 这个放大器与作为反馈元件的片外石英晶体或陶瓷谐振器一起构成自激振荡器,振荡电路如图: 外接石英晶体(或陶瓷振荡器)及电容 C C2 接在放大器的反馈回路中 构成并联振荡电路。 对外接电容 C C2 虽然没有十分严格的要求,但电容容量的大小会轻微影响振荡频率的高低,振荡器工作的稳定性,起振的难易程序及温度稳定性,如果使用石英晶体,则推荐电容使用 30pF  10pF,而如使用陶瓷振荡器建议选择40pF10F。 用户也可以采用外部时钟,采用时钟的电路如图。 在这种情况下,外部时钟脉冲接到 XTAL1 端,即内部时钟发生器的输入端, XTAL2 则悬空。 由于外部时钟信号是通过一个 2分钟触发器后 作为内部时钟信号的,所以对外部时钟信号的占空比没有特殊要求,但最小高电平持续时间和最大的低电平持续时间应符合产品技术条件的要求。 空闲节电模式 AT89C51 有两种可用软件编程的省电模式,它们是空闲模式和掉点工作模式。 这两种方式是控制专用寄存器 PCON(即电源控制寄存器)中的 PD( )和 IDL( )位来实现的。 PD是掉电模式,当 PD=1 时,激活掉电工作模式,单片机模式,即 PD 和 IOL 同时为 1,则先激活掉电模式。 15 在空闲工作模式状态, CPU 保持睡眠状态而所有片内的外设保持激活状 态,这种方式由软件产生。 此时,片内 RAM 和所有特殊功能寄存器的内容保持不变。 空闲模式可由任何允许的中断请求或硬件复位终止。 终止空闲工作模式的方法有两种,其一是任何一条被允许中断的事件被激活, IDL( )被硬件清除,即刻终止空闲工作模式。 程序会首先响应中断,进入中断服务程序,执行完中断服务程序并紧随 RETI(中断返回)指令后,下一条要执行的指令就是使单片机进入空闲模式那条指令后面的一条指令。 其二是通过硬件复位也可将空闲工作模式终止。 需要注意的是,当有硬件复位来终止空闲工作模式时, CPU 通常是从激 活空闲模式那条指令的下一条指令开始继续执行程序的,要完成内部复位操作,硬件复位脉冲要保持两个机器周期( 24 个时钟周期)有效,在这种情况下,内部禁止 CPU 访问片内 RAM,而允许访问其它端口。 为了避免可能对端口产生意外写入,激活空闲模式的那条指令后一条指令不应是一条对端口或外部存储器的写入指令。 掉电模式 在掉点模式下,振荡器停止工作,进入掉电模式的指令是最后一条被执行的指令,片内 RAM 和特殊功能寄存器的内容在终止掉电模式前被冻结。 退出掉电模式的唯一方法是硬件复位,复位后将重新定义全部特殊功能寄存器但不改变 RAM 中的内容,在VCC 恢复到正常电平前,复位应无效,且必须保持一定时间以使振荡器重启动并稳定工作。 空闲和掉电模式外部引脚状态 程序存储器的加密 模式 程序存储器 ALE /PSEN P0 P1 P2 P3 空闲模式 内部 1 1 数据 数据 数据 数据 空闲模式 外部 1 1 浮空 数据 地址 数据 掉电模式 内部 0 0 数据 数据 数据 数据 掉电模式 外部 0 0 浮空 数据 数据 数据 16 AT89C51 可使用对芯片 上的 3 个加密位 LB LB LB3 进行编程( P)或不编程( U)来得到下表所示的功能: 加密位保护功能表 当加密位 LB1 被编程时,在复位期间, EA 端的逻辑电平被采样并锁存,如果单片机上 电后一直没有复位,则锁存起的初始值是一个随机数,且这个随机数会一直保存到真正复位为止,为使单片机能正常工作,被锁存的 EA 电平必须与该引脚当前的逻辑电平一致。 此外,加密位只能通过整片擦除的方法清除。 Flash 闪速存储器的编程 AT89C51 单片机内部有 4K 字节的 Flash PEROM,这个 Flash 存储阵列出厂时已处于擦除状态(即所有存储单元的内容均为 FFH),用户随时可对其进行编程。 编程接口可接收高电压( +12V)或低电压( Vcc)的允许编程信号。 低电压编程模式适合于用户在线编程系统,而高电压编程模 式可与通用 EPROM 编程器兼容。 AT89C51 单片机中,有些属于低电压编程方式,而有些则是高电压编程方式。 用户可从芯片上的型号和读取芯片内的签名字节获得该信息。 如图 Vpp=12V Vpp=5V 芯片顶面标识 AT89C51 xxxx yyww AT89C51 xxxx—5 yyww 签名字节 ( 030H) =1EH ( 031H) =51H ( 032H) =FFH ( 030H) =1EH ( 031H) =51H ( 032H) =05H 程序加密位 保护类型 LB1 LB2 LB3 1 U U U 没有程序保护功能 2 P U U 禁止从外部程序存储器中执行 MOVC 指令读取内部程序存储器的内容 3 P P U 除上表功能外,还禁止程序校验 4 P P P 除以上功能外,同时禁止外部执行 17 AT89C51 的程序存储器列阵采用字节写入方式编程的,每次写入一个字节 ,要对整个芯片内的 PEROM 程序存储器写入一个非空字节,必须使用擦除的方式将整个存储器的内容清楚。 编程方法 编程前,先设置好地址,数据及控制信号,编程单元的地址加在 P1 口和 P2 口的— (11 位地址范围为 0000H— 0FFFH),数据从 P0 口输入,引脚 、 和 、 的电平, PSEN 为低电平, RST 保持高电平, EA/Vpp 引脚是编程电源的输入端,按要求加上编程电压, ALE/PROG 引脚输入编程脉冲(负脉冲)。 编程时,可采用 4— 20MHz 的时钟振荡器, AT89C51 编程方法如下: 1. 在地址线上加上要编程单元的地址信号。 2. 在数据线上加上要写入的数据字节。 3. 激活相应的控制信号。 4. 在高电压编程方式时,将 /EA/Vpp 端加上 +12V 编程电压。 5. 每对 Flash 存储阵列写入一个字节或每写入一个程序加密位,加上一个 ALE/PROG编程脉冲。 改变编程单元的地址和写入的数据,重复 1— 5步骤,直到全部文件编程结束。 每个字节写入周期是自身定时的,通常约为 数据查询 AT89C51 单片机用数据查询方式来检测一个写周期是否结束,在一个写周期中,如需读取最后写入的 那个字节,则读出的数据的最高位( )是原来写入字节最高的反码,写周期完成后,有效的数据就会出现在所有输出端上,此时,可进入下一个字节的写周期,写周期开始后,可在任意时刻进行数据查询。 Ready/Busy:字节编程的进度可通过 RDY/BSY 输出信号监测,编程期间, ALE 变成高电平“ H”后 端电平被拉低,表示正在编程状态。 编程完成后。 变为高电平表示准备就绪状态。 程序校验及芯片擦除 如果加密位 LB LB2 没有进行编程,则代码数据可通过地址和数据线读回原编写的数据。 采用下图电路。 程序存储器的地址由 P1和 P2 口的 输入,数据 18 有 P0 口读出, 、 和 、 的控制信号 PSEN 保持低电平, ALE、 EA 和RST 保持高电平。 校验时 P0口须接上 10K左右的上拉电阻。 加密位不可直接校验,加密位的校验可通过对存储器的校验和写入状态来验证。 利用控制信号的正确组合并保持 ALE/PROG 引脚 10ms的低电平脉冲宽度即可将PEROM 阵 列( 4k 字节)和三个加密位整片擦除,代码阵列在片擦除操作中将任何非空单元写入“ 1”,这步骤需再编程之前进行。 读片内签名字节及编程接口 AT89C51 单片机内有 3个签名字节,地址为 030H、 031H 和 032H。 用。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。