基于AT89C52单片机的智能液体卸料控制器的设计

2018-01-12 21:09:18编辑:什么鱼 关键字:AT89C52  单片机  卸料控制器

0引言

液体物料的运输是日常运输活动中的主要内容之一,例如各种油料,液体酸、硫酸铜溶液等液体化工原料。当前液体物料运输车的装卸料操作主要是通过人工按一定的组合顺序来控制阐门的打开和关闭,这种方式操作复杂、劳动强度大。对于油料运输车,除了装,卸料外,往往还存在给其它车辆进行加油的操作,需要对油量进行计量。在一些易燃、易爆液料运输过程中,安全性差也是一个急需解决的问题。针对以上问题,本设计采用微控制器和智能传感器组成控制系统,从而实现了液体物料运输车卸料过程的白动控制和运输过程中的安全警报。

1系统原理

该卸料系统南嵌入式微控制器及相应的控制软件、油泵、气动阀门F1~F5、阀门状态检测开关、流量计量装置组成,其原理图如图l所示。



图中,s1、s2、s3分别表示油罐中的压力、温度、液位的值(由相应的传感器测得),阀门状态由相应的阀门状态检测开关K1~K5测得,控制装置通过采集到的以上信息发出控制命令或报警信号,其中F1~F5为气动阀门。通过油泵和气动阀门的不同状态组合可实现不同的功能,其功能和执行机构状态组台如表l所列。利用微处理器的程序,可对每一种功能编写一个对应的功能子程序,同时在操作面板上设置对应功能的选择按键。这样,通过选择不同功能按键组合来启动卸料过程,就可以方便的控制对应的操作。



在车辆行进过程中,本控制系统可以自动监测罐体的压力与液体温度。当压力或温度超过某一个限度时,系统便会发出报警信号,提高运输的安全性。本控制器可安装在驾驶室内。操作人员可在运输和装卸易燃、易爆液料过程中,通过气动方式来驱动阀门F1—F5,故可避免电火花启动阀门带来的危险,提高操作过程中的安全性。

2硬件设计

本系统主要由主控制器电路、驱动电路、键盘与显示电路组成。其电气原理如图2所示。



系统中的主控制器电路是整个智能控制器的核心。主控制器电路中包括微控制器、传感器及相关外围电路,井带有8位数据总线和低8位地址总线接口,其中地址译码器用于提供其它接口的地址译码信号。另外,该电路还包括模拟信号放大与滤波电路、A,D转换接口,现场总线接口,以及与驱动板和键盘与显示板的接口。驱动电路接受主控制器电路的控制信号,并经过光电隔离与放大后,作为气动阀门和油泵等(共8个)执行元件的驱动信号。每个驱动信号的输出端都有一个隔离的检测电路。图3所示是其检测电路图。



系统中的输出检测电路可用于监测输出控制命令是否正确发出。此外,5个阀门和油泵也各有一个隔离的状态检测开关,可用于监测控制命令是否被正确执行,以确保控制的可靠性。电路中的一个隔离Dc/Dc变换器用于向主控制电路、键盘与显示电路提供工作电源。键盘与显示电路包括16个操作按键、8个IJED状态显示灯和7个LED数码管。其中8个显示灯用于显示阀门和泵的状态,以及控制器的运行状态和电源状态等;7个数码管平时用于显示油罐温度和压力,同时可在装油、卸油、加油过程中显示剩余油量和加油数量。如果出现故障,该电路还可以显示故障信息。并可通过功能按钮与数字键的组合选择工作流程。

3有限状态自动机原理的软件设计

有限状态自动机是一种具有离散输入、输出状态的系统数学描述模型,它可用一个五元组(M=_x,s.Y,8,λ])来描述系统的状态转移关系,而状态的转移关系则可以用状态转移图来描述。本系统的控制过程由有限个功能子程序构成,这些功能子程序之间的转移条件是有限的,而且系统在任一时刻总是处于某一确定的状态上。所以,本系统具有状态机的特征,可以用有限状态机理论来描述。控制软件可使用汇编语言编写,包括初始化于程序、自检子程序、出错处理子程序、AID转换子程序、键盘中断服务子程序、回收子程序、装油子程序、自流卸油子程序、油泵卸油子程序、泵站卸油子程序和显示子程序等多种功能子程序,可分别用状态q1_m(m=0…10)表示;转移条件x1_n (n=0…6)由l位当前程序的执行结果状态编码和8位操作按键编码两部分构成,其中程序执行结果正确时,代码为1,错误时则为0;同时操作按键按下为1,否则为0(如x1_0应为010000000,xl_1为110000000)。D8~DO分别代表程序执行状态、启动、停止、装油、卸油、泵站、0按键、1按键、2按键。其主程序的状态转移图如图4所示。



依据状态转移关系和转移条件可以把一个非常复杂的程序,就变成一个依据条件编码内容进行转移的多分支的结构,并很容易的用汇编语言或C语言来实现,实现时可分别采用JMP@A+DP-TR指令和switch-case语句来具体完成。其汇编程序的主要代码如下:



下面对部分功能子程序进行简要说明:

(1)自流卸油子程序

通过“卸油”和“0”两按钮可选择该功能。按下启动按钮,再按F3、F4顺序开启阀门,油罐中的油就可利用自身压力流出。按下停止按钮时,可按相反顺序关闭F4、F3,此时系统会同时给出提示信号。

(2)油泵卸油子程序

通过“卸油”和按钮“l”可选择油泵卸油子程序。操作时可先用数字键输入卸油量,然后按启动按钮,再按照开启F1、F5、启动油泵的顺序开始卸油。达到设定的卸油量或按下停止按钮时,可按相反的顺序关闭油泵、F5和F1,并给出提示信号。如输入错误,可按停止键,然后重新输入。

(3)泵站卸油子程序

通过“泵站”和按钮“l”可选择该功能。可先用数字键输入卸油量,然后按启动按钮,再按开启F2、F5、启动油泵的顺序启动泵站工作。达到设定的卸油量或按下停止按钮时,再按相反的顺序关闭油泵、F5和F2,同时给出提示信号。如输人错误,可按停止键并重新输人。

4结束语

通过本控制系统,可将当前液体物料运输车卸料过程按特定的顺序开启卸料泵和卸料阀门的复杂手动操作转变为利用控制器自动按预定程序启动卸料泵和阀门的自动操作。这种控制器不仅可以降低卸料操作的复杂性和劳动强度、提高效率,而且可以提高卸料和运输过程的安全性。目前,本控制系统已成功申请专利

关键字:AT89C52  单片机  卸料控制器

来源: eefocus 引用地址:http://www.eeworld.com.cn/mcu/article_2018011237336.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

上一篇:集约型51系统板输出通道的改进设计
下一篇:单片机步进电机的驱动程序

关注eeworld公众号 快捷获取更多信息
关注eeworld公众号
快捷获取更多信息
关注eeworld服务号 享受更多官方福利
关注eeworld服务号
享受更多官方福利

推荐阅读

C51IO口模拟I2C总线驱动AT24C16 (I2C协议部分)

/* 名称:C51IO口模拟I2C总线驱动EEPROM(AT24C16)说明:I2C总线是由Philips公司开发的一种简单、半双工同步串行总线。它只需要两根线(SCL、SDA)即可在连接于总线上的器件之间传送信息。其中SCL时钟总线用于同步数据,SDA数据总线用来发送数据(或地址)。和SPI总线不同的是,I2C总线通过在SDL上发送存储器的地址用来选中总线上对应的设备。关于具体的通信协议这里就不说了,无非是通过IO口模拟产生所需信号 (如通信开始信号是SCL为高时,SDA产生一个下降沿信号。) 驱动程序中有 具体的说明。 *///定义I2C相关变量sbit     SCL=P2
发表于 2018-07-21 13:01:29

C51IO口模拟I2C总线驱动AT24C16 (EEPROM部分)

/* 名称:C51IO口模拟I2C总线驱动AT24C16 说明:关于EEPROM,即这里的AT24C16是一个特殊形式的FLASH存储器,不过其容量一般较少。比较适合于存储少量的数据。AT24C16的通信接口是标准的I2C通信,即我们需要根据I2C通信协议来操纵EEPROM设备。 关于AT24C16的的各种操作,这里就不细讲了,简单介绍一下。(1)、主机向AT24C16写一个字节:首先需要发送设备地址,然后发送需要访问的存储器地址。然后在发送要写入的数据。这里省略了开始、结束和确认等信号的产生。(2)、指定页写入n个字节:和(1)的基本操作很类似。不同的是可以连续写入n个数据。这里要小注意一点的就是,写入的数据
发表于 2018-07-21 12:23:27

i2c子系统之at24c02简介

AT24C02存储规格总共32个page,每个page为8byte。总共256KB(2Kb),地址的长度需要使用8bit(刚好可以用来表示256个字节的地址)来表示。AT24CC02的地址设备的地址由8bit组成,前4 bit是固定的(1010);接着的3 bit是和A2 A1 A0的硬件连接相关,通过指定这3 bit可以在统一个I2C系统里面最多连接8个AT24C02设备;第8bit用来表示读/写选择,1表示读/0表示写。AT24C02会和总线上的设备地址进行比较,假如一直则AT24C02输出一个0,不一致则返回的是standby状态。TQ2440开发板的A2 A1 A0地址线全接地,所以此处AT24C02的读写地址格式为:读
发表于 2018-07-15 22:12:17
i2c子系统之at24c02简介

I2C子系统之at24c02读写测试

结合ioctl和at24c02的介绍,写了个at24c02的测试程序测试硬件平台:TQ2440、at24c02内核版本:linux-2.6.37.1读写单独分开成两个小程序。源码如下:写测试程序:#include <stdio.h>#include <fcntl.h>#include <stdlib.h>#include <string.h>#include <linux/i2c-dev.h>#include <errno.h> int main(int argc, char *argv[]){ int num, err, i, j; int fd
发表于 2018-07-15 22:11:32

单片机 I2C操作笔记——以 AT24C04为例

1.前言    对于大多数工程师而言,I2C永远是一个头疼的问题。相比UART和SPI而言,I2C的时序要复杂一些,I2C组合变化也丰富一些。在这里以AT24C04为例说明I2C使用过程中的一些注意点。2.AT24C04操作示意图图 AT24C04操作示意图示意图说明:示意图分阐述了4种不同的操作方式,例如写单个存储单元,写多个存储单元,读单个存储单元和写单个存储单元。对于单个操作而言,上部为MCU通过I2C输出的相关指令,下部为I2C设备的响应。例如写单个存储单元操作时,MCU发出I2C启动,设备地址,写标志位等,而I2C设备输出多个ACK。3.若干说明3.1 基本操作方式I2C设备的操作可分为写单个存储字节
发表于 2018-07-15 22:10:55

I2C器件的从设备地址的设置(以AT24C02为例)

1 AT24C02的硬件连接电路图2 从设备地址  在进行I2C通信时,主机发送启动信号后,再发送寻址信号。器件的地址有7位和10位,以7为地址寻址为例,寻址信号由一个字节构成,高7位为地址位,最低位为方向位,用来表示主机与从器件的数据传输方向,方向位0代表主机接下来对从器件进行写操作,方向位为1,表明主机接下来对器件进行读操作。   AT24C02的高4位是固定的,为1010b,低3位则由A0/A1/A2信号线的电平决定。按照我们此处的连接, A0/A1/A2 均为 0,所以 EEPROM 的 7 位设备地址是: 1010 000b ,即 0x50。由于 I2C 通讯
发表于 2018-07-15 22:09:33

小广播

何立民专栏

单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2018 EEWORLD.com.cn, Inc. All rights reserved