基于89C52单片机和通信接口实现水质无人监测系统的设计

描述

水产科研的不断深入以及环境保护的不断加强对水质各参数的连续实时监测提出了更高的要求,如:在水产养殖研究中,要求对池塘、水库、工厂化养鱼池等多种水体的水质连续监控;在环境保护方面,建立各种水质无人监测站以监测和记录江、河、湖泊、地下水以及海岸沿线各点的水质变化,把数据通过各种通讯方式实时传输到监控中心进行处理等。传统的水质监测方式由于测试周期长、不能实时监测等原因,已不能适应水产科研以及环境保护等方面的需求。

本系统以单片机为主控制器,结合最新的外围器件,可实现同时监测溶解氧、温度、pH值、电导率、氨氮等11路参数的变化,同时显示在液晶显示器上,并按设定的时间间隔记录在EEPROM中;也可通过RS-232串口与远程计算机通信,完成数据传输、远程控制、远程校正等功能;还可以通过控制接口控制报警器、增氧机、循环泵等设备,完成自动控制功能。

1 系统原理

系统硬件结构框图如图1所示。

单片机

主控制芯片选用ATMEL公司的89C52。系统主要组成部分包括:传感器、信号调理部分、单片机、非易失EEPROM、模/数转换器、实时时钟、液晶显示器、电源监控、键盘、8位双向I/O口、8位开关控制输出以及同计算机连接的通信接口等。

传感器信号将各参数的变化转变为相应的微弱的电流或电压信号,经精密放大器调理为标准的0~5V电压后,送到模/数转换器转换成相应的数字电压值,再送入单片机中进行处理。单片机依据不同的传感器进行数值滤波、补偿等运算后送入液晶显示屏实时显示,同时按照设定值,定时存入在非易失EEPROM中。这些数据可以通过本机按键在液晶显示屏上直接读取或清除,还可以通过RS-232接口由计算机直接读取数据。

系统由4个按键完成自动校准、校零、采集数据及存储数据时间间隔设定、数据读取及清除等功能。电源可用交流电或电池供电,由专门的电源监控电路监测供电状况并自动切换。当电池电压低于所定标准电压时,在液晶显示上显示出来,表明需要更换电池。

2 关键器件及关键技术

2.1 传感器

2.1.1 温度传感器

根据水质监测的需要,我们选用了美国Dallas公司的一线数字温度计DS1820,大小如一个三极管,为单总线数字传输。读写温度变换的功率来自于数据线而不需要额外电源,每一个DS1820含有一个唯一的硅串行数,同一总线上可有多个DS1820。这些特点可满足多种需要,如不增加信号线,在探头上按需要可串接多个DS1820,以便同时对上、中、下各层水的温度以及气温等进行监测。在使用中发现,DS1820的测量值与实际值有一定的误差,每个误差都不一样。为了能够互换而不修改程序或进行校准,把误差值经特殊变换存在DS1820中原来作为存储高低温度触发的TH、TL两个字节中,这两个字节为EEPROM,即使掉电也不会丢失,在单片机读取测量温度的同时一并读入,去除误差,得到实际值。这样就可以更换探头或DS1820而不需要重新校准。

2.1.2 溶解氧传感器

溶解氧传感器为自制的极谱型薄膜电极。仪器对电极加上0.7V的直流电压称为极化电压,水或空气中的氧透过薄膜在电极上产生如下反应:

阴极:O2+2H2O+4e----》4OH-

阳极:4Ag+4Cl----->4AgCl+4e

氧在阴极上还原,电极输出电流,在一定温度下其大小与被测样品氧浓度呈线性关系。以输出电流为y轴,氧浓度为x轴作图可得一直线,该直线通过零点。不同的温度其直线的斜率不同,这就是溶氧电极的温度系数。产生温度系数的原因有两个:一是电极薄膜氧的透过速率随温度而变化,温度每升高一度大约变化3%,氧电极的电流也相应增加,即溶解氧浓度不变而温度变化,引起电极灵敏度变化,造成读数误差;二是水中的溶解氧的饱和溶解度随温度的不同而不同,由于此种电极是对氧分压敏感元件,因此不同的温度下相同的氧分压输出相同的电流,但其溶解氧实际浓度值是不同的。为了准确读出溶解氧值,在传统的仪器中把热敏电阻做在电路中进行温度补偿?但需要对电路反复调试?其补偿范围及精度受到限制。在本系统中对温度和溶氧分别采集,用软件进行补偿,不需要对电路进行温度补偿调试。在软件设计中采取三种方法对温度系数进行补偿:第一,根据国标中有关各温度下被空气饱和的水中溶解氧的实际值,做出温度与饱和溶解氧的曲线,得到拟合方程存到单片机中,消除影响温度系数的第二个原因;第二,测出探头在各温度下被空气饱和的水中的模/数转换值,做出温度与转换值的曲线,得到拟合方程存到单片机中,消除影响温度系数的第一个原因;第三,实际使用时把在空气中进行饱和校正时的参数实时加入到拟合方程中,消除了探头在使用中的误差。在软件中还加入了对盐度、气压的补偿。正是利用单片机的运算功能,使得温度变化可以得到补偿,这些功能在传统的仪器中是很难做到的。

pH值、电导等选用成品探头,根据不同探头的特点,设计不同的信号调理电路,变换为0~5V的标准输入电压,接入系统的A/D转换器中。

2.2 主要芯片

2.2.1 主控芯片

主控芯片选用ATMEL公司的AT89C52,内部有8K字节的Flash程序存储器?免去了扩展外部存储器的麻烦,在系统开发过程中可以十分容易地进行程序的修改,缩短了系统开发的周期,而且还可以随用户的需要和发展对程序进行修改或升级,使系统不断地满足用户的最新要求。

2.2.2 实时时钟芯片

实时时钟芯片选用的是美国Dallas公司的DS12C887,内部包含晶体振荡器、振荡电路、充电电路和可充锂电池等。其内有非易失时钟、百年历、警报器、可编程中断、方波发生器以及114字节非易失静态RAM供用户使用。

2.2.3 A/D转换

A/D转换选用美国TI公司的TLC2543。片内含有一个14通道多路器,可从11个外部模拟输入或三个内部自测电压中选择一路进行转换输出,片内设有采样保持电路,主处理器只需发出读某一通道命令即可。

2.2.4 显示器

显示器选用香港精电公司的液晶显示模块MDLS-16165?它可同时显示16个ASCII码或自定义的特殊字符和图形符号。它把LCD控制器、点阵驱动器、字符存储器全部做在一块线路板上,构成了便于应用的液晶显示模块,在应用上已经规范化。

2.2.5 数据记录芯片

数据记录芯片选用美国Xicor公司推出的新型结构的节省接口的串行EEPROM器件X84641。它不需要微处理器的连接逻辑或系统总线接口?直接利用一般的微处理器的控制信号?OE、WE、CE 以及简单的读写时序与大多数微处理器接口。本系统设定每批测量数据为32字节,包括测量的日期、时间以及所测的各项参数。其中日期、时间占4字节?每个参数为浮点数,占4字节?可以存放7个测量值?基本满足需要?在8K EEPROM中可存储240组数据。在剩余256字节中存储设置信息、状态和软件运行时的中间状态值等,还可存储24次控制设备开关的时间,包括设备名及其开、关的日期和时间等。

2.2.6 串行通信

为了对所采集数据实时传送或连接远距离计算机?利用89C52的串行通信接口的标准异步通信方式,通过接口芯片MAX232转换为标准RS-232接口。

3 软件设计

软件所要实现的功能是将通过精密放大器的各路传感器信号进行A/D转换?把转换后的数字量进行补偿转换处理,最后送液晶显示器显示、存储或送通信口远距离传输。其主控程序流程图及键盘分析模块流程图分别如图2和图3所示。

单片机

单片机

本监控仪的软件采用C语言与汇编语言混合编程。对时序要求较严的部分如DS1820、TLC2543、X84641等用汇编语言编写成相应的独立模块供主程序调用,主控程序、显示控制、键盘程序、各路数据的补偿运算等用C语言编写。由于C51支持浮点运算,在对各路数据进行补偿处理时,其精度得到保证。

在程序的编写过程中,考虑到可移植性和以后的功能升级以及调试的方便,采用模块化设计。

4 系统测试及结果

我们在研制过程中首先对溶解氧探头进行测试,研制出温度、溶解氧及pH模块并进行应用试验。测定溶解氧时需要水有一定的流速,而在池塘中一般为静止水,所以在探头上附加一只小型鱼缸用水循环泵,并用软件控制其开关,同时把增氧机开关信号送入本监控仪,能够同时监测记录增氧机开停时间以便于研究增氧机对溶氧及其它各参数的影响,设定采集数据间隔为15分钟,可连续监测记录60个小时,其使用效果良好。

责任编辑:gt

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分