毕业设(论文)单片机控制的自动加料系统是与料斗式干燥机配套的加料系统.doc
-
资源ID:2955466
资源大小:296KB
全文页数:34页
- 资源格式: DOC
下载积分:8金币
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
|
毕业设(论文)单片机控制的自动加料系统是与料斗式干燥机配套的加料系统.doc
摘 要随着现代科学技术的发展自动控制技术起这愈来愈重要的作用,并且,随着生产和科学技术的发展,自动化水平也越来越高。本设计的自动加料机控制系统就是采用自动控制技术来实现功能的,这样就大大提高了工作的效率,整个过程又快又稳。本设计的由单片机控制的自动加料系统是与料斗式干燥机配套的加料系统。控制系统的控制器有单片机89C51和扩展电路组成,单片机控制继电器,继电器控制交流接触器,又由接触器控制电机等执行机构的运动。本控制系统可以根据送料工艺的需要,设置两条生产线的输送、排料、满料、空料等参数值,也可装载系统前次工艺参数值。关键词:自动加料;控制系统;效率;单片机控制目 录绪 论1一、系统结构2(一)系统结构原理图2(二) 自动加料机的工作原理2二、主机电路核心器件介绍3(一) AT89C51 功能特性概述3(二)空闲节电模式6(三)程序存储器的加密7(四)数据查询9(五)程序校验及芯片擦除9三、显示电路10(一)74LS377芯片介绍10(二)74LS377芯片介绍11(三)LED接口电路12四、继电器控制电路14(一)键盘接口15(二) 8255A芯片介绍17(三) 8255A引脚功能18五、外部存储器扩展电路23六、看门狗MAX813L电路27七、料位开关30八、系统的抗干扰及可靠性31结 论32参考文献33致 谢34绪 论在现代科学技术的许多领域中,自动控制技术起这愈来愈重要的作用,并且,随着生产和科学技术的发展,自动化水平也越来越高。自动控制利用控制装置使被控对象的某个参数自动的按照预定的规律运行。本设计的自动加料机控制系统就是采用自动控制技术来实现功能的,这样就大大提高了工作的效率,整个过程又快又稳。本设计的由单片机控制的自动加料系统是与料斗式干燥机配套的加料系统。根据加料工艺要求,其工作原理是:先将真空管关闭,启动电机,用低真空气流将塑料树脂粒子送入真空管,电机停转,再将粒子排入料斗,如此循环。在设计的控制系统中,可用一个电机控制两个加料生产线,由方向阀切换。两个生产线既可单独运行,也可同时运行。假如两者同时运行,当一生产线输送结束后,判断到另一个生产线排料已经结束,那么,电机不停转而方向阀换向,从而为另一个生产线送料。这样可以发挥控制系统和电机的效率,从而实现供料自动化。一、系统结构 (一)系统结构原理图主电路采用AT89C51,由于AT89C51内含4KB容量,因此在设计中不需要外扩ROM。硬件电路主要有LED显示电路、键盘接受电路、继电器控制电路、EEPROM外部存储器扩展电路,以及看门狗MAX813L等组成。电路原理框图如图1.1所示:图1.1 自动加料机控制系统硬件框图(二)自动加料机的工作原理先将真空管关闭,启动电机,用低真空气流将塑料树脂粒子送入真空管,电机停转,再将粒子排入料斗,如此循环。在设计的控制系统中,可用一个电机控制两个加料生产线,由方向阀切换。两个生产线既可单独运行,也可同时运行。假如两者同时运行,当一生产线输送结束后,判断到另一个生产线排料已经结束,那么,电机不停转而方向阀换向,从而为另一个生产线送料。这样可以发挥控制系统和电机的效率,从而实现供料自动化。二、主机电路核心器件介绍 AT89C51是美国ATMEL公司生产的低电压,高性能CMOS 8位单片机,片内含4K bytes的可反复擦写的只读程序存储器(PEROM)和128bytes的随机存取数据存储器(ROM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器(CPU)和Flash存储单元。功能强大AT89C51单片机可提供许多高性价比的应用场合,可灵活应用于各种控制领域。(一)AT89C51功能特性概述AT89C51提供以下标准功能:4K字节Flash闪速存储器,128字节内部RAM,32个I/0 口线,两个16位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。同时,AT89C51可将至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。掉电方式保存RAM中的内容,但振荡器停止工作并禁止其他所有部件工作直到下一个硬件复位。 图1.2 AT89C51 引脚功能说明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口线外,更重要的用途是它的第二功能,如下表1.1所示:端 口 引 脚 第 二 功 能P3.0 RXD (串行输入口)P3.1 TXD (串行输出口)P3.2 (外中断0)P3,3 (外中断1)P3.4 T0 (定时/计数器0)P3.5 T1 (定时/计数器1)P3.6 (外部数据存储器写选通)P3.7 (外部数据存储器读选通)表1.1 端口引脚的第二功能表 P3口还接收一些用于Flash闪速存储器编程和程序校验的控制信号。RST:复位输入。当振荡器工作时,RST引脚出现两个机器周期以上高电平将单片机复位。ALE/:当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。即使不访问外部存储器。ALE仍一时钟振荡频率的1/6输出固定的正脉冲信号,因此它可对外输出时钟或用于定时目的。但要注意的是:每当访问外部数据存储器时将跳过一个ALE脉冲。对Flash存储器编程期间,该引脚还用于输入编程脉冲()。如有必要,可通过对特殊功能寄存器(SFR)区中的8EH单元的D0位置位,可禁止ALE操作。该位置位后,只有一条MOVX和MOVC指令ALE才会被激活,此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE无效。:程序存储允许()输出是外部程序存储器的读选通信号,当AT89C51由外部程序存储器取指令(或数据)时,每个机器周期两次有效,即输出两个脉冲,在此期间,当访问外部数据存储器,这两次有效的信号不出现。EA/VPP:外部访问允许,欲使CPU仅访问外部程序存储器(地址为0000H-FFFFH),EA端必须保持低电平(接地)。需要注意的是:如果加密位LB1被编程,复位时内部会锁存EA端状态。如EA端为高电平(接Vcc端),CPU则执行内部会锁存EA端状态。Flash存储器编程时,该引脚加上+12V的编程允许电源Vpp,当然这必须是该器件是使用12V编程电压Vpp。.XTAL1:振荡器反相放大器的及内部时钟发生器的输入端。XTAL2:振荡器3放大器的输出端。(二)空闲节电模式 AT89C51有两种可用软件编程的省电模式,它们是空闲模式和掉点工作模式。这两种方式是控制专用寄存器PCON(即电源控制寄存器)中的PD(PCON.1)和IDL(PCON.0)位来实现的。PD是掉电模式,当PD=1时,激活掉电工作模式,单片机模式,即PD和IOL同时为1,则先激活掉电模式。在空闲工作模式状态,CPU保持睡眠状态而所有片内的外设保持激活状态,这种方式由软件产生。此时,片内RAM和所有特殊功能寄存器的内容保持不变。空闲模式可由任何允许的中断请求或硬件复位终止。终止空闲工作模式的方法有两种,其一是任何一条被允许中断的事件被激活,IDL(PCON.0)被硬件清除,即刻终止空闲工作模式。程序会首先响应中断,进入中断服务程序,执行完中断服务程序并紧随RETI(中断返回)指令后,下一条要执行的指令就是使单片机进入空闲模式那条指令后面的一条指令。其二是通过硬件复位也可将空闲工作模式终止。需要注意的是,当有硬件复位来终止空闲工作模式时,CPU通常是从激活空闲模式那条指令的下一条指令开始继续执行程序的,要完成内部复位操作,硬件复位脉冲要保持两个机器周期(24个时钟周期)有效,在这种情况下,内部禁止CPU访问片内RAM,而允许访问其它端口。为了避免可能对端口产生意外写入,激活空闲模式的那条指令后一条指令不应是一条对端口或外部存储器的写入指令。(三)程序存储器的加密AT89C51可使用对芯片上的3个加密位LB1、LB2、LB3进行编程(P)或不编程(U)来得到下表所示的功能:当加密位LB1被编程时,在复位期间,EA端的逻辑电平被采样并锁存,如果单片机上电后一直没有复位,则锁存起的初始值是一个随机数,且这个随机数会一直保存到真正复位为止,为使单片机能正常工作,被锁存的EA电平必须与该引脚当前的逻辑电平一致。此外,加密位只能通过整片擦除的方法清除。AT89C51单片机内部有4K字节的FlashPEROM,这个Flash存储阵列出厂时已处于擦除状态(即所有存储单元的内容均为FFH),用户随时可对其进行编程。编程接口可接收高电压(+12V)或低电压(Vcc)的允许编程信号。低电压编程模式适合于用户在线编程系统,而高电压编程模式可与通用EPROM编程器兼容。AT89C51的程序存储器列阵采用字节写入方式编程的,每次写入一个字节,要对整个芯片内的PEROM程序存储器写入一个非空字节,必须使用擦除的方式将整个存储器的内容清楚。编程前,先设置好地址,数据及控制信号,编程单元的地址加在P1口和P2口的P2.0P2.3(11位地址范围为0000H0FFFH),数据从P0口输入,引脚P2.6、P2.7和P3.6、P3.7的电平,PSEN为低电平,RST保持高电平,EA/Vpp引脚是编程电源的输入端,按要求加上编程电压,ALE/PROG引脚输入编程脉冲(负脉冲)。编程时,可采用420MHz的时钟振荡器,AT89C51编程方法如下:(1)在地址线上加上要编程单元的地址信号。(2)在数据线上加上要写入的数据字节。(3)激活相应的控制信号。(4)在高电压编程方式时,将/EA/Vpp端加上+12V编程电压。每对Flash存储阵列写入一个字节或每写入一个程序加密位,加上一个ALE/PROG编程脉冲。改变编程单元的地址和写入的数据,重复15步骤,直到全部文件编程结束。每个字节写入周期是自身定时的,(四)数据查询 AT89C51单片机用数据查询方式来检测一个写周期是否结束,在一个写周期中,如需读取最后写入的那个字节,则读出的数据的最高位(P0.7)是原来写入字节最高的反码,写周期完成后,有效的数据就会出现在所有输出端上,此时,可进入下一个字节的写周期,写周期开始后,可在任意时刻进行数据查询。Ready/Busy:字节编程的进度可通过RDY/BSY输出信号监测,编程期间,ALE变成高电平“H”后P3.4端电平被拉低,表示正在编程状态。编程完成后。P3.4变为高电平表示准备就绪状态。(五)程序校验及芯片擦除如果加密位LB1、LB2没有进行编程,则代码数据可通过地址和数据线读回原编写的数据。采用下图电路。程序存储器的地址由P1和P2口的P2.0-P2.3输入,数据有P0口读出,P2.6、P2.7和P3.6、P3.7的控制信号保持低电平,ALE、和RST保持高电平。校验时P0口须接上10K左右的上拉电阻。加密位不可直接校验,加密位的校验可通过对存储器的校验和写入状态来验证。利用控制信号的正确组合并保持ALE/引脚10ms的低电平脉冲宽度即可将PEROM阵列(4k字节)和三个加密位整片擦除,代码阵列在片擦除操作中将任何非空单元写入“1”,这步骤需再编程之前进行。三、显示电路在自动加料机控制系统中运行是要显示输送、排料、满料、空料时间,有时间切换键和标志哪条生产线的发光二极管表示,显示的位数少,所以就采用静态显示的方式。LED显示器工作于静态显示方式时,各位的共阴极(或共阳极)连接在一起并接地(或+5V);每位的段选线(adp)分别与一个8位的锁存器输出相连。所以称为静态显示。各个LED的显示字符一经确定,相应锁存器的输出将维持不变,直到显示另一个字符为止。也正因此如此,静态显示器的亮度都较高。这种显示方式接口编程容易。若用I/O接口,则要占用4个8位I/O口,若用锁存器接口,则要用4片74LS373芯片。如果显示器位数增多,则静态显示方式便无法适应。在设计中,LED显示电路采用74LS377驱动器和MC14511B译码器控制LED数码管。(一)74LS377芯片介绍简单易行。LED数码管是由发光二极管作为显示字段的数码型显示器件,其中七只发光二极管分别对应ag笔端构成“日”字形,另一只发光二极管Dp作为小数点。因此这种LED显示器称为七段数码管或八段数码管。LED数码管按电路中的连接方式可分为共阴型和共阳型两大类,共阳型是将各段发光二极管的正极连在一起,作为公共端COM,公共端COM接高电平,ag、Dp各笔段通过限流电阻接控制端。某笔段控制端低电平时,该笔段发光,高电平时不发光。控制某几段笔端发光,就能显示出某个数码或字符。共阴型是将各段发光二极管的负极连在一起,作为公共端COM接地,某笔段通过限流电阻接高电平时发光。在自动加料机控制系统中运行是要显示输送、排料、满料、空料时间,有时间切换键和标志哪条生产线的发光二极管表示,显示的位数少,所以就采用静态显示的方式。LED显示器工作于静态显示方式时,各位的共阴极(或共阳极)连接在一起并接地(或+5V);每位的段选线(adp)分别与一个8位的锁存器输出相连。所以称为静态显示。各个LED的显示字符一经确定,相应锁存器的输出将维持不变,直到显示另一个字符为止。也正因此如此,静态显示器的亮度都较高。这种显示方式接口编程容易。若用I/O接口,则要占用4个8位I/O口,若用锁存器接口,则要用4片74LS373芯片。如果显示器位数增多,则静态显示方式便无法适应。在设计中,LED显示电路采用74LS377驱动器和MC14511B译码器控制LED数码管。(二)74LS377芯片介绍图1.4 芯片外电路接口.D0D7:8个信号输入端。.Q0Q7:8个信号输出端。.CLK:时钟信号输入端。. :锁存允许信号。当=0时,CLK端的上跳变将把8位D输入端的数据打入8位锁存器。表1.3 74LS377真值表CLKDQ1XXQ0011000X0XQ0(三)LED接口电路 LED显示电路采用74LS377驱动器和MC14511B译码器控制LED数码管。两个LED显示一条生产线一个工作过程的秒数。两片MC14511B把P0口的高四位和低四位译码成十进制控制LED显示。LED显示电路图1.6如下:图1.6 LED显示电路图四、继电器控制电路在电气控制领域或产品中,凡是需要逻辑控制的场合,几乎都需要使用继电器,从家用电器到工农业应用,甚至国民经济各个部门,可谓无所不见。继电器是一种利用各种物理量的变化,将电量或非电量信号转化为电磁力(有触头式)或使输出状态发生阶跃变化(无触头式),从而通过其触头或突变量促使在同一电路或另一电路中的其它器件或装置动作的一种控制元件。根据转化的物理量的不同,可以构成各种各样的不同功能的继电器,以用于各种控制电路中进行信号传递、放大、转换、联锁等,从而控制主电路和辅助电路中的器件或设备按预定的动作程序进行工作,实现自动控制和保护的目的。被转化或施加于继电器的电量或非电量称为继电器的激励量,当继电器被激励,从一个起始位置达到预定的工作位置,并完成电路的切换动作,称为继电器的工作特性,包括吸合。不吸合,保持与释放状态。当输入量变化到高于它的吸合值或低于它的释放值时,继电器动作,对于有触头式继电器其触头闭合或断开,对于无触头式继电器起输出发生阶跃变化,以此提供一定的逻辑变量。自动加料机是把塑料粒子送到一个真空管,在输送时真空管关闭合,排料时真空管需要打开,将粒子送到排料漏斗。本设计共需2个继电器控制交流接触器,一个接带动生产的电动机。另一个为控制工作方向的方向阀。经考虑采用4123无极12V直流控制24V的交流继电器,并利用光耦合器件P521和MCU隔开。89C51的P1初始值为0FFH,所以加一个74LS04反相器使得继电器初始不产生闭合,使用MC1413为无源驱动器,IN4007组成继电器的续流二极管。键盘及显示电路图如图1.7所示。图1.7 键盘及显示电路图键盘在单片机应用系统中能实现向单片机输入数据、传送命令等功能,是人工干扰单片机的主要手段。本设计采用8255A为I/O扩展。 (一)键盘接口非编码键盘与单片机的接口单片机系统所用的键盘有编码键盘和非编码键盘两种。编码键盘本身除了按键之外,还包括产生键码的硬件电路,只要按下某一个键,就能产生这个键的代码,一般称为键码,同时,还能产生一个脉冲信号,以通知CPU接收(输入)键码。这种键盘的使用比较方便,亦不需要编写很多程序,但使用的硬件较复杂,在微型计算机控制系统中使用还不多。非编码键盘是由一些按键排列成的一个行列矩阵。按键的作用,只是简单地实现接点的接通和断开,但必须有一套相应的程序与之配合,才能产生出相应的键码。非编码键盘几乎不需要附加什么硬件电路,目前,在微型计算机控制系统中使用比较普遍。使用非编码键需要用软件来解决按键的识别,防止抖动以及键码的产生等工作。设有一个6行×5列的非编码键盘,其中有16个为数字键0F,其余的为控制键,用以发布各种控制命令。键盘的行线接8155C口的六条线PC5PC0,键盘的列线则接8155B口的5条线。在没有任何键按下时,所有键盘列线上的信号都是高电平。当有按键按下时,就会出现键的识别、防止抖动以及确定键码等一系列问题。按键识别有各种方法,此系统只 “行扫描”法:(1)确定是否有按键按下。CPU通过并行口输出000000到键盘的行线,然后检测键盘的列线信号。若没有键按下,则为11111。若有任一个按键按下,则有某一条列线为0,也就是当PB4PB0不为11111时,就表示有键按下。(2)通过“行扫描”确定已按键的行、列位置。所谓行扫描就是依次给每条行线输入0信号,而其余各行都输入1,并检测每次扫描时所对应的列信号。在图2中就是在C口先输出111110(PC5PC0),然后是111101,直到最后是011111,并检测每次所对应的B口输入。只有在某行上有键按下时,在这一行上输入0(其他行为1),在列输出上才能检测到0信号。若是输入为0的这一行上没有按键按下,则收到的列信号仍然全是1。因此,只要记下列信号不全为1时的C口输出及B口输入,就能确定以按键的位置。设图2中处于第3行第1列的键已按下,则必须是行输出信号为110111,检测到的列信号为11101。对应于其他的行信号,列信号都是11111。这样,通过行扫描,就可以确定按键的行、列坐标。(3)确定是否有多键同时按下。有时一次按下的键不止一个,这在一般情况下是由于误操作引起的,是不应该出现的通常称为窜键。出现这种情况时,就可能有不止一次会得到列信号不为全1,这时就不容易判断哪个键是真正需要按下的。为了处理这种情况可采取两种办法:一是行扫描一定是扫到最后一行才结束,而不是检测到列信号不为全1时就结束,以便发现窜键;二是如果出现了窜键,最简单的处理办法就是这次行扫描不算,再来一遍,即以最后放开的那个键为准。实际上,由于扫描的速度很快,真正找到两个键同时按下的情况是很少的。(4)消除键抖动。一般按键在按下的时候有抖动的问题,即键的簧片在按下时会有轻微的弹跳,需经过一个短暂的时间才会可靠地接触。若在簧片抖动时进行扫描就可能得出不正确的结果。因此,在程序中要考虑防抖动的问题。最简单的办法是在检测到有键按下时,等待(延迟)一段时间再进行“行扫描”,延迟时间为1020ms。这可通过调用子程序来解决,当系统中有显示子程序时,调用几次显示子程序也能同时达到消除抖动的目的。(二) 8255A芯片介绍 自动加料系统有8个按键:启动两条生产线的“启动1”键和“启动2”键、分秒选择键、时间设置加/减键、显示生产线状态切换键,时间设置键,时间切换键,由于单片机的并行口有限。本系统采用8255A扩展并行口。(1)8255A的内部结构8255A的内部结构有以下几部分组成:a.并行I/O端口A、B、C 8255A的内部有3个8位并行I/O口:A口、B口、C口。3个I/O口都可以通过编程选择为输入口或输出口,但在结构和功能上有所不同。A口:含有一个8位数据输出锁存/缓冲器和一个8位输入锁存器。B口:含有一个8位数据输出锁存/缓冲器和一个8位输入锁存器(不锁存)。C口:含有一个8位数据输出锁存/缓冲器和一个8位输入锁存器(不锁存)。当数据传送不需要联络信号时,这3个端口都可以用作输入口或输出口。当A口B口需要有联络信号时,C口可以作为A口和B口的联络信号线。b.工作方式控制电路:8255A的三个端口在使用使可分为A、B两组。A组包括A口8位和C口高4位:B组包括B口8位和C口低4位。两组的控制电路中分别有控制寄存器,根据写入的控制字决定两组的工作方式,也可对C口每一位置“1” 或清“0”。c.数据总线缓冲器:数据总线缓冲器是三态双向的8位缓冲器,是8255A与单片机数据总线的接口,8255A的D0D7可以和AT89C51单片机的P0.0P0.7直接相连。数据的输入输出、控制字和状态信息的传递,均可通过数据总线缓冲器进行。d.读/写控制逻辑:8255A读/写控制逻辑的作用是从CPU的地址和控制总线上接受有关信号,转变成各种控制命令送到数据缓冲器及A组和B组的控制电路,控制A、B、C3个端口的操作。(三) 8255A引脚功能图1.8 8255A引脚功能图8255A共有40个引脚,一般为双列直插DIP封装,40个引脚可分为与CPU连接的数据线、地址和控制信号以及与外围设备连接的三个端口线。.D0D7:双向三态数据总线。.RESET:复位信号,输入,高电平有效。复位后,控制寄存器清0,A口、B口、C口被置为输入方式。.:片选信号,输入,低电平有效。.:读信号,输入,低电平有效。有效时,允许CPU通过8255A D0D7读取数据或状态信息。.:写信号,输入,低电平有效。有效时,允许.A1A0:端口控制信号,输入。2位可构成四种状态,分别寻址A口、B口、C口和控制寄存器.PA0PA7:A口数据线,双向。.PB0PB7:B口数据线,双向。.PC0PC7:C口数据/信号线,双向。当8255A工作于方式0时,PC0PC7分为两组(每组4位)并行I/O数据线;当8255A工作于方式1或方式2时,PC0PC7为A口、B口提供联络信号。 A1A0与 、信号一起,可确定8255A的操作状态。表1.4 8255A功能操作表A1A0操 作001010000111000A口数据总线B口数据总线C口数据总线输入操作00110101111100000000数据总线A口数据总线B口数据总线C口数据总线控制口输出操作x1xx1xX01x11100数据总线为高阻态非法状态数据总线为高阻态禁止操作 8255A与AT89C51接口电路。在连接键盘电路采用8255A为扩展I/O口时,要在中间加入一个74LS373,74LS373是一个三态门的8D锁存器,它可以作为AT89C51外部的一个扩展输入口,借口电路的工作原理是当外设把数据准备好后,发出一个控制信号加到373的G端,即锁存端,使输入数据在373中锁存,同时信号加到AT89C51单片机的中断请求端,单片机响应中断,在中断服务程序中执行下面程序:MOV DPTR,#0BFFFHMOVX A,DPTR在执行上面的第二条指令时,P2.6=0,有效,通过或门后加到373的端,即373的三态门控制端,使三态门畅通,锁存的数据读入到累加器A中编程前,先设置好地址,数据及控制信号,编程单元的地址加在P1口和P2口的P2.0P2.3(11位地址范围为0000H0FFFH),数据从P0口输入,引脚P2.6、P2.7和P3.6、P3.7的电平,PSEN为低电平,RST保持高电平,EA/Vpp引脚是编程电源的输入端,按要求加上编程电压,ALE/PROG引脚输入编程脉冲(负脉冲)。编程时,可采用420MHz的时钟振荡器,AT89C51编程方法如下:(1)在地址线上加上要编程单元的地址信号。(2)在数据线上加上要写入的数据字节。(3)激活相应的控制信号。(4)在高电压编程方式时,将/EA/Vpp端加上+12V编程电压。每对Flash存储阵列写入一个字节或每写入一个程序加密位,加上一个ALE/PROG编程脉冲。改变编程单元的地址和写入的数据,重复15步骤,直到全部文件编程结束。每个字节写入周期是自身定时的,通常约为1.5ms。每对Flash存储阵列写入一个字节或每写入一个程序加密位,加上一个ALE/PROG编程脉冲。改变编程单元的地址和写入的数据,重复15步骤,直到全部文件编程结束。每个字节写入周期是自身定时的,通常约为1.5ms。AT89C51单片机用数据查询方式来检测一个写周期是否结束,在一个写周期中,如需读取最后写入的那个字节,则读出的数据的最高位(P0.7)是原来写入字节最高的反码,写周期完成后,有效的数据就会出现在所有输出端上,此时,可进入下一个字节的写周期,写周期开始后,可在任意时刻进行数据查询。五、外部存储器扩展电路自动加料机存在两条生产线的输送、排料、满料、空料,共8个设置的重要数据需要读/写,并且能够提供掉点保护,所以就需要外阔程序存储器。程序存储器一般采用自读存储器,因为这种存储器在电源关断后,仍能保存程序,在系统上电后,CPU可取出这些指令予以重新执行。只读存储器简称ROM。ROM中的信息一旦写入之后,就不能随意更改,特别是不能在程序运行的过程中写入新的内容,故称之为只读存储器。向ROM中写入信息叫做ROM编程。根据编程的方式不同,ROM分为以下几种:(1)掩膜ROM是在制造过程中编程。因编程是以掩膜工艺实现的,因此称为掩膜ROM。这种芯片存储结构简单,集成度高,但由于掩膜工艺由于成本较高,因此只适合于大批量生产。(2)可编程ROM(PROM)PROM芯片出厂是并没有任何程序信息,是由用户用独立的编程器写入的,但PROM只能写入一次,写入内容后,就不能在进行修改。(3)EPROMEPROM是用电信号编程,用紫外线擦除的只读存储器芯片。在芯片外壳上的中间位置有一个圆形窗口,通过这个窗口照射紫外线射就可擦除原有的信息。(4)E2PROM这是一种用电信号编程,也用电信号擦除的ROM芯片,对E2PROM的读写操作与RAM存储器几乎没有什么差别,只是写入的速度慢一些,但断电后能够保存信息。此设计采用外扩E2PROM的扩展方式。E2PROM是电擦除可编程自读存储器,其突出优点是能够在线擦除和改写,无须像ERPOM那样必须用紫外线照射才能擦彻,较新的E2PROM产品在写入时能自动完成擦除,且不再需要专用的编程电源,可以直接使用单片机系统的+5V电源。常用的E2PROM芯片有2816/1816A,2817/2817A,2864A。本设计采用的是用2864A的扩展方式。2864A有四种工作方式:维持方式当为高电平时,2864A进入低耗维持方式。此时,输出线呈高阻态,芯片的电流从140mA降至维持电流60mA。读方式当和均为低电平而为高电平时,内部的数据缓冲器被打开,数据送上总线,此时,可进行读操作。写方式2864A提供了两种数据 方式:字节写入和页写入页写入:2864A片内设置了16字节的“页缓冲器”,并将整个存储器阵列划分成512页,每页16个字节。页的区分可由地址的高9位来确定,地址线的低4位用以选择页缓冲器中的16个地址单元之一。写方式时,为低电平,在下降沿,地址码A0A12被片内锁存器锁存,在上升时数据被锁存。片内还有一个字节装载限时定时器,只要时间未到,数据可以随机地写入页缓冲器。在连续向页缓冲器写入数据的过程中,不用担心限时定时器会益处,因为每当下降沿时,限时定时器自动被复位并重新启动计时。字节写入:字节写入的过程与页写入的过程类似,不同之处是仅写入一个字节,限时定时器就溢出。数据查询方式数据查询是指用软件来检测写操作中的页存储周期是否完成。在页存储期间,如对2864A执行读操作,那么读出的是最后写入的字节,若芯片的转储工作未完成,则读出数据的最高位是原来写入字节最高位的反码。据此,CPU可判断 的编程是否结束。如果读出的数据与写入的数据相同,表示芯片已完成编程,CPU可继续向2864A装载下一页数据。2864A与单片机接口时,2864A的片选端与高地址线P2.7连接,P2.7=0才能选中2864A,这种线选法决定了2864A对应多组地址空间,即:0000H1FFFFH,2000H3FFFH,4000H5FFFH,6000H7FFFH。这8K字节存储器可作为数据存储器使用,但掉电后数据不丢失。2864A与AT89C51接口电路如图:单片机由于受引脚数的限制,数据线和地址线是复用的,由P0口兼用。为了将它们分离出来,以便同单片机片外的扩展芯片正确的连接,需要在单片机外部增加地址锁存器。我们这本设计中使用74LS373。74LS373是一种带有三态门的8D锁存器,其引脚如图1.9所示。图1.9 锁存器74LS373引脚图其引脚的功能如下:D7D0:8位数据输入线Q7Q0:8位数据输出线G:数据输入锁存选通信号,高电平有效。当该信号为高电平的时候,外部数据选通到内部锁存器,负跳变时,数据锁存到锁存器中。:数据输出允许信号,低电平有效。当该信号为低电平的时候,三态门打开,锁存器中数据输出到数据输出线。当该信号为高电平的时候,输出线为高阻态。74LS373的功能表见表GDQ0111010000×不变1××高阻态六、看门狗MAX813L电路几乎所有的单片机都需要复位电路,对复位电路的基本要求是:在单片机上电时能可靠复位,在下电时能防止程序乱飞导致EPROM中的数据被修改;另外,单片机系统在工作时,由于干扰等各种因素的影响,有可能出现死机现象导致单片机系统无法正常工作,为了克服这一现象,除了充分利用单片机本身的看门狗定时器(有些单片机无看门狗定时器)外,还需外加看门狗电路;除此以外,有些单片机系统还要求在掉电瞬间单片机能将重要数据保存下来,因掉电的发生往往是根随机的,因而此类单片机系统需要电源监控电路,在掉电刚发生时能告知单片机。MAXIM公司推出的MAX813L刚好能满足这些要求,下面具体介绍该芯片的性能特点及使用方法。 MAX813L有双列直插和贴片两种封装形式,其双列直插如图所示,引脚功能如下: 第脚为手动复位输入,低电平有效;第、脚分别为电源和地;第脚为电源故障输入;第脚为电源故障输出;第脚为看门狗输入,第脚为复位输出,第脚为看门狗输出。 MAX813L具有以下主要性能特点:由图可知该芯片具有以下主要性能特点:(1)复位输出。系统上电、掉电以及供电电压降低时,第脚产生复位输出,复位脉冲宽度的典型值为200ms,高电平有效,复位门限的典型值为4.65V。(2)看门狗电路输出。如果在1.6s内没有触发该电路(即第脚无脉冲输入),则第脚输出一个低电平信号。 (3)手动复位输入,低电平有效,即第脚输入一个低电平,则第脚产生复位输出。 (4)1.25V门限值检测器,第脚为输入,第脚为输出。当第脚电压低于1.25V时,第脚输出一个低电平信号。 MAX813L的典型应用电路:MAX813L的典型应用电路如图所示。图中单片机以AT89C51为例,MAX813L的第脚与第脚相连。第脚接单片机的复位脚(AT89C51的第脚);第脚与单片机的P1.4相连。在软件设计中,P1.4不断输出脉冲信号,如果因某种原因单片机进入死循环,则P 1.4无脉冲输出。于是1.6s后在MAX813L的第脚输出低电平,该低电平加到第脚,使MAX813L产生复位输出,使单片机有效复位,摆脱死循环的困境。另外,当电源电压低于门限值4.65V时,MAX813L也产生复位输出,使单片机处于复位状态,不执行任何指令,直至电源电压恢复正常,可有效防止因电源电压较低时单片机产生错误的动作。 电源故障输入PFI通过一个电阻分压器监测未稳压的直流电源。当PFI低于125V时,电源故障输出脚第脚PF0变低,可引起AT89C51中断,进行电源故障处理,或将重要数据保存下来。把分压器接到未稳压的直流电源是为了更早地对电源故障告警.MAX813L是一体积小、功