基于AT89C51单片机的船舶柴油机冷却水温控制系统

2018-07-25 09:28高淑芝
沈阳化工大学学报 2018年2期
关键词:蜂鸣器冷却水按键

高淑芝, 郎 丹

(沈阳化工大学 信息工程学院, 辽宁 沈阳 110142)

当今社会对水温的控制已经渗透到方方面面,对生活生产中各个环节都造成不同程度的影响,所以对温度进行实时监控具有很重要的意义[1-3].在工业生产中,对温度控制系统的要求主要是保证温度在一定范围内变化,稳定性较好,震荡幅度较小[4].例如石油开采、运输以及污水的排放;化工生产中反应釜内液体温度;对高层建筑水温度压力的动态响应[5];养殖业实时监控水温[6]等,这些都要求水温控制在一定范围之内.通过精确的温度控制,可以满足工艺要求、生产安全、提高工艺水平、产品质量,并且能够降低劳动成本.文献[7]针对船舶柴油机冷却水温度大惯性、易超调等问题,在船舶柴油机高温冷却水温度控制系统模型的基础上,通过PLC S7-200来设计控制系统,利用仿真软件对控制效果进行了仿真对比试验.文献[8]在单片机中加入PID来对锅炉水温中的测量数据和设定数据进行处理,使水温稳定在设定值.李昌禄等人采用STC89C52单片机与温度传感器DS18B20构成采集电路,结合PID算法进行加热系统的水温控制,使系统稳定运行[9].Alfa Laval公司开发的控制系统不仅能够对淡水温度进行调节,而且具有根据热负荷的变化对海水泵进行流量模式转换的功能,同时系统还能够定时对海水系统进行清洗[7].

本文针对船舶柴油机运行时冷却水温度控制不稳定问题,采用基于AT89C51单片机进行冷却水温控制.船舶柴油机是船舶内重要组成部分,其冷却水可带走这些热量,从而保障受热部件处于正常温度进行工作.柴油机冷却水温度低于30 ℃以下,会使气缸的磨损增加;冷却水温度过高,柴油机燃烧不正常,容易引起敲缸、爆燃,同时机油变质和烧损严重,柴油机功率降低,燃油耗、机油耗增加.精确控制冷却水的温度,对于提高柴油机的动力性、减少废气的产生、降低燃料消耗量等方面有着重要的意义[7].本系统以AT89C51为核心、DS18B20为温度采集模块、液晶屏LM016L为温度显示模块、独立按键为信息输入模块、Keil为C程序编译器、Proteus为仿真软件设计整个模块功能[10],从而实现系统软硬件的交互仿真.系统启动后,可通过独立按键调整标准温度值.高于标准温度蜂鸣器报警、加热装置停止加热,低于标准温度值时,蜂鸣器停止报警,加热装置开始加热,从而实现系统对温度的自动控制.此系统不仅可用于远程环境的监测与控制,还可用于有着恶劣环境的作业现场.

1 系统的总体设计

1.1 总体结构

本设计使用单片机作为控制核心,采用单个温度传感器对温度进行检测,以LM016L显示温度,继电器间接控制加热装置.系统总体控制框图如图1所示.

图1 系统总体框图Fig.1 Block diagram of system

1.2 模块划分

根据系统的结构,将其分成5个子模块:单片机核心控制模块、蜂鸣器报警模块、温度处理模块、温度显示模块和温度采集模块.通过Keil编辑程序,在Proteus仿真软件上仿真出来.

2 硬件设计

2.1 硬件总体设计

温度高于设定的标准温度,则蜂鸣器发出警报,继电器动作;温度低于设定的标准温度,蜂鸣器停止报警,继电器复位,系统启动设置默认为24 ℃,如图2所示.

图2 总体设计图Fig.2 General layout scheme

2.2 模块功能简介

2.2.1 单片机核心控制模块

AT89C51是一种低电压、高性能CMOS 8位微处理器,俗称单片机,其内部的只读存储器擦写寿命可达1 000次.AT89C51包含4 K字节FLASH存储器和128 B的片内RAM,2个定时/计数器,5个中断源,4个并行I/O端口.P0口根据使用情况,可以工作在普通漏极开路的8位准双向I/O端口,每一位可带8个LSTTL类型的负载.它的驱动灌电流为1.6 mA,拉负载能力为几十微安.需要输出高电平时,要连接上拉电阻.P1口能且仅能作为I/O端口使用,它是准双向I/O并且自带上拉电阻,每一位最多可以驱动LSTTL负载数为4个.P3口是8位准双向I/O端口,且自带上拉电阻.P2有两种工作方式:一是可以作为普通带上拉电阻的I/O端口,二是可以作为访问片外存储器时的8位地址线.如果构建单片机核心模块的最小系统时,需要1个11.059 2 MHz的晶振,2个33 pF的电容[11].

2.2.2 温度采集模块

DS18B20具有体积小巧,性能可靠,有着极强的抗干扰能力,还具有与微处理器无缝配合等特点.它的测温范围是-55~125 ℃,误差仅为0.5 ℃.采用单总线控制方式,与主机通信时,仅凭单总线即可完成双向通讯.抗干扰能力强,可适应环境恶劣的现场.并且可通过控制一条单线来测量多点的温度.将AT89C51的P3.7端口分配给DS18B20的DQ端口作为数据线使用.温度可使用面板上的两个按钮控制,如图3所示.

图3 DS18B20显示面板Fig.3 DS18B20 display board

2.2.3 温度显示模块与独立按键模块

LM016L是液晶显示屏幕的核心,其中控制器HD44780有着强大功能的指令集,可以轻松使字符闪烁、移动等.LM016L与单片机的通讯可采用两种方式:4位传输方式或者8位传输方式.独立按键一端接地,另一端接在端口作为输入量.如果不进行延时消抖操作,会使系统产生很大误差:实际按键1次,而系统却检测到按键被多次按下.消抖分为2种:软件消抖和硬件消抖,基于成本的考虑,采用软件消抖.

2.2.4 温度控制和温度报警模块

蜂鸣器报警模块由继电器和有源蜂鸣器组成.继电器输入信号由单片机给定:当输入信号为1时,线圈通电,常开触点闭合,蜂鸣器通电报警;当信号为0时,线圈断电,常开触点复位,蜂鸣器断电.

3 软件设计

3.1 Proteus功能简介

Proteus主要是针对单片机类的仿真,可以仿真51系列、AVR、PIC、ARM等常用主流单片机.Proteus是常用的单片机仿真软件之一,也是唯一一款同时支持软件及硬件仿真的软件.Proteus有丰富的器件库,并且提供仿真仪表资源,除此之外Proteus还具有显示功能.通过Proteus来建立虚拟实验电路,然后进行调试与仿真.AT89C51使用Keil编辑器,使用C语言来编写DS18B2、LM016L、独立按键等程序的设计.其功能强大的元件库和内置Keil C编程为基础,可以实现互动的电路仿真与仿真处理器及其外围电路,集编辑、编译和程序仿真等于一体.Proteus可以直接与Keil编程软件进行调试,从而实现设计电路的验证[12].

3.2 Proteus与各模块的创建

3.2.1 Proteus 工程文件的创建

打开软件创建新的工程项目,设置项目保存路径,在“Firmware”选项中,“Family”下拉菜单选择“8051”,“Controller”选择“AT89C51”,“Compiler”选择“Keil for 8051”,如图4所示.

图4 创建设置界面Fig.4 Create setting interface

3.2.2 AT89C51最小系统的构建

Proteus不提供最小系统,所以要自己构建一个最小系统.最小系统需要2个33 pF的电容,1个11.059 2 MHz的晶振,对于单片机来说,晶振尤为重要.选择相应原件,并添加到图层中,电容设置如图5所示.

图5 电容设置界面Fig.5 Capacitance setting interface

选择“Terminals Mode”,选择“POWER”5V电压输入端.在Keil C51中使用项目进行管理完成一个应用系统,需要进行建立源程序文件、项目文件、编译项目及调试程序和固化程序.

3.2.3 各模块的构建

将AT89C51的P3.7端口分配给DS18B20的DQ端口作为数据线使用,温度可使用面板上的两个按钮控制.单片机的P0~P7对应显示屏的LM016L的DB0~DB7,RS对应P2.6,E对应P2.7,RW对应P2.5.P0需要上拉电阻才能输出高电平.独立按键共有4个:K1为单片机复位按键,K2为增加标准温度,K3为减少标准温度,K4为确定按键.K2分配 P1.1端口;K3分配 P1.2端口;K4分配 P1.3端口.

双触点继电器常闭触点控制加热装置,常开触点控制蜂鸣器.继电器用三极管间接控制通断,信号由P1.0发出.若实际温度高于标准温度则P1.0输出1,反之则输出0信号.当P1.0输出1信号时,三极管导通,此时线圈通电,继电器所有触点均动作,蜂鸣器报警、加热装置停止加热.当P1.0输出信号为0时,三极管截止,此时线圈断电.继电器所有触点均复位.此时蜂鸣器关闭报警,加热装开始加热.

4 仿真研究

4.1 系统流程

整个系统的核心是基于AT89C51的单片机核心控制模块,其工作原理是通过执行AT89C51只读存储器中预先写入的程序来控制外围的4个I/O端口,从而达到对各个模块控制的目的.温度信号采集模块是由温度传感器DS18B20组成,主要采集温度并将数据上传至核心模块.DS18B20将采集的温度数据传给单片机核心控制模块AT89C51进行处理,同时使液晶屏LM016L显示当前温度.温度处理模块由继电器控制,通过继电器的通断控制加热系统.蜂鸣器报警模块对当前温度超过给定温度时报警.系统基本流程如图6所示.

图6 系统基本流程Fig.6 System flow chart

4.2 仿真结果

回到工程主界面,单击左下角的仿真按钮,开始仿真.开机后系统等待确认标准温度,默认为24 ℃.单击增加标准温度按钮后,可见标准温度增高了1 ℃.若单击减少标准温度按钮,可见标准温度减少了1 ℃.首先把DS18B20的模拟检测温度调节到20 ℃,标准温度使用25 ℃.此时液晶屏的显示结果为OFF.仿真过程以5 V灯泡代替加热装置,可见加热装置通电,蜂鸣器未报警.如果标准温度为25 ℃,实际温度为30 ℃时,可观察到加热装置断电,蜂鸣器已开始报警.

5 结束语

采用AT89C51单片机来实现对船舶柴油机冷却水温度的控制.系统以单片机核心控制模块、蜂鸣器报警模块、温度显示模块、温度采集模块对温度进行控制,通过Proteus仿真软件对水温控制系统进行仿真,将采集的冷却水温度值与标准温度值进行对比,实现智能加热、报警等功能,进而达到了对温度系统的远程环境监测与控制.

猜你喜欢
蜂鸣器冷却水按键
电动自行车产品车速提示音检测现状和整改技术研究(2)
基于有限状态机的按键检测程序设计
油田主机排气阀冷却水泄漏故障分析及修复
掌控板制作简易钢琴
单片机驱动蜂鸣器的程序设计
按键消抖在单片机和FPGA实验教学中的应用
中国核电站冷却水“热污染”调查
一种多方向导光按键结构设计
丰田凯美瑞240V车间隙警告蜂鸣器异常鸣响
中央空调冷却水系统节能研究