基于单片机的高精度水位监控仪的设计

发布者:Yuexiang888最新更新时间:2011-12-24 关键字:单片机  水位监控仪 手机看文章 扫描二维码
随时随地手机看文章
 1 引言

水位监控仪广泛应用于水利、石油、化工、冶金、电力等领域的自动检测和控制系统中。目前有些水位监控仪在运行过程中存在着一些问题,如:系统不稳定、抗干扰能力差、精度低、输出控制或显示信号不满足要求、现场更改程序或程序升级麻烦及通信能力差等。本文设计的智能水位监控仪是吸收了国内外最新智能化仪表的设计经验,采用工业控制单片机,集水位采集、存储、显示及远程联网于一体,适用于各种液位测量及闸门开度的测量。

2 系统硬件总体设计

本系统硬件部分主要考虑的功能有:模拟量的变换;模拟量的采集;高精度16位模数转换器AD7705在系统中的应用;精确时钟芯片DS1302的应用;四路继电器报警,继电器驱动芯片采用ULN2003;4~20mA电流环输出数模转换器AD421的应用以提供系统检测信号;用于与上位微机通讯的接口实现。系统框图如图1。


在本系统中,我们选用的主控芯片是高集成度MCU芯片C8051F021。C8051F单片机是完全集成的混合信号系统级芯片(SOC).具有与8051兼容的高速CIP-51内核和与MCS-51完全兼容的指令集;片内集成了数据采集和控制系统中常用的模拟、数字外设及其他功能部件;内置FLASH程序存储器、内部RAM;大部分器件内部还有位于外部数据存储器空间的RAM,即XRAM;C8051F单片机具有片内调试电路,通过4脚的JTAG接口可以进行非侵入式、全速的在线系统调试。

2.1 SPI 通讯接口设计

在系统设计中,有两个外部芯片应用了SPI接口方式:AD7705和AD421,单片机和这两个外围芯片构成了一个SPI总线系统。其中单片机的NSS端悬空并被片内上拉电阻置为高电平连接,因为AD421是一个4~20mA输出的数模转换器芯片,所以它与单片机的数据线连接只有主设备输出从设备输入,即 MOSI。水位监控仪中SPT系统的连接如图2所示。


2.2 模数转换设计

在本次设计中,我们选用了两种模数转换电路,第一种是利用单片机片内的12位ADC,在可变电阻器通道中用的是该电路:另外一种是片外的高精度模数转换芯片 AD7705,该芯片的精度达16位,应用于压力传感器通道的数据采集中,下面计算得出具体应用中能达到的精度。在水位监控仪的设计中,我们忽略模拟电路的前端误差,那么可精确到的毫米数可由式1计算得出:
计算可得,当测量量程a=10m时,如果采用12位的ADC,测量精度为2.44mm;如采用16位ADC,测量精度可达0.153mm。

我们的设计要求为精确到2mm,所以如采用16位的ADC完全能符合我们的设计要求。在设计中由于可变电阻器法本身测量精度较低所以使其采用了单片机片内的 12位ADC,为尽量提高测量精度,减小测量误差,我们还用单片机的另一通道对可变电阻器的供电电源电压进行了采集,在软件中两者进行了适当融合处理,在此不再详述。压力传感器通道我们选用了片外的ADC转换芯片AD7705, AD7705芯片正好有两路模拟通道,供我们的两路压力传感器通道使用,在软件中进行通道的切换。

2.3 报警电路设计

本系统中四路报警电路的设计是采用单片机的I/O口加达林顿驱动芯片ULN2003实现的,然后将输出接到继电器的控制端。ULN2003由7组达林顿晶体管阵列和相应的电阻网络及钳位二极管网络构成,具有同时驱动7组负载的能力,是单片双极型大功率高速集成电路。继电器选用的是G6B-1174P型号的产品,24V供电电压。电气内部结构连接示意如图3。


本系统设计中采用四路继电器信号输出报警,包括高水位一、高水位二、低水位一、低水位二,这四个报警水位高度可通过下位机按键或上位机界面中人为设定和修改。以高水位一为例进行说明,当水位值在高水位一和高水位二之间时,单片机发出开关量控制信号,使其对应的继电器常开触点接触导通,具体报警方式可灵活选择,可在外电路中串接报警灯或报警铃,当该继电器动作时,相应报警开始(表现为灯亮或者铃响)。

2.4 4-20mA 电流环输出数模转换电路与时钟电路的设计

在微机工业测控现场中,经常会出现待测模拟电压信号与测量设备之间有较远的距离的情况,把该待测模拟电压信号直接通过很长的线路送入测量设备显然是不合理的。通常采用的方法是:在测量现场对待测模拟信号进行放大、滤波等预处理,再经过变换后进行远距离传送,在测量设备附近再反变换成电压信号进行测量。适合工业测控系统远距离传送的信号一般有电流源或频率信号。为了把待测模拟电压信号变换成电流源信号传送,常常使用电压/电流变换电路。本系统采用一种高性能数字模拟变换器AD421,变换器输出信号为4~20mA电流环。

单片机应用系统中,为了使系统具有实时性,需由一时钟电路给系统提供时钟信号(年、月、日、时、分、秒)。我们选用了DALLAS公司的DS1302芯片。水位监控仪中用的主控芯片C8051F021共有两个串行口,该我们的设计中,一个用于与上位微机的通讯,另一个用于与编码器通讯,因此,在时钟模块与单片机的接口设计中只能采用第二种接口方式,即用普通I/O口模拟工作时序。该时钟芯片对时序要求非常严格,时序的确定是跟硬件紧密相连的,芯片内部的寄存器、锁存器等都对时序有严格的要求,所以充分体现了在研制过程中软硬件相结合的重要性。在程序设计过程中也遇到了因时序问题引起的数据传输错误,但最终都顺利解决。

2.5 串行通讯部分电路的设计

在本次设计中,下位机与上位微机通信的串行口部分我们采用了两种通信方式:第一种采用RS-232通信方式;第二种采用了RS-485通信方式。

本次设计中RS-232通信电平是用转换芯片MAX202来实现的。MAX202适用于噪声严重环境下的RS-232通信,每个发送器输出和接收器输入勿需封闭均可抗±15kV静电放电(ESD,Electro-Static Discharge)冲击,MAX202有两个驱动器和两个接收器,MAX202芯片是为在缺少±12V电源的情况下进行RS-232C与 TTL/COMS电平转换而设计的双向转换芯片,MAX202的供电电源是+5V,电平转换速度的最大值不小于120kbps。MAX202芯片的外围器件很少,只需用4个0.1μF的电容,因而进一步降低了成本和减小了占用的空间。 [page]

在我们的设计中,采用了SN65LBC184电平转换芯片,SN65LBC184是SN5176行业标准范围内的差分数据线收发器,它带有内置高能量瞬变噪声保护装置,这种设计特点显著提高了抵抗数据同步传输电缆上的瞬变噪声的可靠性。差分驱动器设计集成了由转换率控制(slew-rate- controlled)的输出端,足可以250kbps的速率传送数据,转换率控制比之不受控制可允许更长的无终止电缆运转和来自主干线的更长的短截线长度以及更快的电压转变速度。独有的接收器设计可在输入端处于漂浮(开路)时提供高电平输出失效保护,SN65LBC184接收器包括一个高输入电阻,该电阻等效于1/4单位的负载,允许在总线上挂接最多128个类似器件。SN65LBC184的工作温度为-40℃至+85℃,因此足可以满足工作温度环境要求。

为了防止上位机和下位机的之间互相的干扰,采用光电隔离器件是一种简单而有效的方法。在RS-485的接口电路中我们选用的也是高速光电耦合器6N136。连接电路如图4所示,其中图中电源标号+5(2)表示从DC-DC模块输出的+5V电源。



 
3 水位监控仪系统的软件设计

在我们本次水位监控仪设计中,所选用的软件调试环境是Cygnal IDE,它是为C8051系列微控制器量身定制的集成开发环境,我们将Kei18051编译环境的工具集成到Cygnal IDE中,从而形成了一个集成了编辑、编译、下载代码、在线调试等一系列功能的开发环境,很方便单片机程序的开发。

在我们的系统中将整体程序设计分为两个大的模块:初始化模块和循环执行模块。相应的子程序为:系统初始化子程序和循环子程序,在主程序调用了这两个子程序。系统初始化子程序?中断系统都做了初始化的工作。循环子程序是一个死循环,它包括了对显示部分的初始化和循环体内容,在循环体中我们不但完成显示部分的功能,还做了一些系统应该一直查询的信号量,比如按键、通道对应的中断使能切换、继电器输出信号的控制处理等。 本水位监控仪在精度上能够满足1mm的设计要求;在可靠性上基本上能够克服外界的干扰,实现稳定运行;在功能上具有多功能的设计,符合多种使用方式,可根据具体要求对功能进行选择;能够方便的实现人机操作,进行各种参数的设定和修改,在一定程度上满足了智能化的要求。

关键字:单片机  水位监控仪 引用地址:基于单片机的高精度水位监控仪的设计

上一篇:基于89C52单片机的实用八路物位测量仪
下一篇:51单片机控制的数字触发器

推荐阅读最新更新时间:2024-03-16 12:49

用PIC16F877单片机实现的IC卡读写器
引言 本设计的主要目的是介绍IC卡的数据存储技术和IC卡的数据通信,因而使用存储器卡。由于本设计中既可与IC卡进行串行同步通信,又要与上位机进行中行异步通信,因而需要选择一种同时具有这两种通信方式的单片机。因为PIC16F877不仅具有本设计所需要的两种通信方式,而且还具有运行速度快、低功耗、价格低等优点,所以选择PIC16F877单片机作为本设计的单片机。 图1是本设计的电路图,图中电源变换电路和发光二极管等指示电路没有画出。图中的二极管电路是单片机与IC卡通信数据线的保护电路。当数据线上的电压为负电压时,与地相连的二极管导通;当数据线上的电压大于+5V时,与+5V相连的二极管导通,从而保证数据线上的电压在0V~+5V之间,
[单片机]
用PIC16F877<font color='red'>单片机</font>实现的IC卡读写器
PIC单片机的基本编程汇总,初学者必看
适合3e PI C试验板,爱晶产品销售服务做的不好,好多C程序都是自己写的,不过汇编程序参考一下不错。 ;------------------------------------------------------------------------------------------ ;单双位变换显示实验参考程序注意:此程序请用单步执行(实验1-1.asm) ;------------------------------------------------------------------------------------------ STATUS EQU03H;特殊功能寄存器定义 TRISD EQU88H;特殊功能寄
[单片机]
PIC<font color='red'>单片机</font>的基本编程汇总,初学者必看
51单片机并行I/O口工作原理
51单片机并行I/O口工作原理 在51单片机之外部引脚及总线接口篇 中已经介绍了4组由8各个为一组的通用寄存器 P1: 仅作为双向I/O口 该电路图的功能就是当内部总线输入0或者1时,P1.x可以输出相对应的高电平或者低电平 1、当进行写操作时,以内部总线输入0为例,即D为0,Q为0,Q反为1,则此时V1为高电平,导通,所以VCC与GND相连,无压降,P1.x输出低电平。同理可知内部总线输入1时,P1.x输出高电平,如下图: 2、当进行读操作时,前提是要V1断开,所以要在读操作之前先输出1,然后才能进行读操作 P3: 做为双向I/O口,同时还有第二功能 做为I/O口使用同P1原理相同,不在赘述 当做为第二功能使用时
[单片机]
51<font color='red'>单片机</font>并行I/O口工作原理
基于单片机+CPLD的多路精确延时控制系统设计
   1 引言   现代控制系统中控制对象可能是复杂、分散的,而且往往是并行、独立工作的,但整体上它们是相互关联的有机组合。因此,控制信号的时序逻辑则要求更加精确。CPLD单片机为控制系统提供了技术支持,由CPLD和单片机组成的多机系统具有逻辑控制方便,时序精确,并行工作,人机接口友好等优点。因此,本文提出了一种基于CPLD与单片机控制的多路精确延时控制系统的设计方案。    2 设计指标与系统原理    2.1 设计指标   输出多路脉宽为10 ms正脉冲信号;   脉冲输出时间独立调节、显示;   时间调整范围与精度为微秒级的调整范围为l~199μs,调节精度为lμs;毫秒级的调整范围为1~199 ms,调整精度为
[工业控制]
基于<font color='red'>单片机</font>+CPLD的多路精确延时控制系统设计
基于AT89C51单片机低成本温度控制实验系统
  笔者在电子市场购买了一块3.6V450mAh的锂离子充电本文介绍一种以AT89C51单片机为核心的低成本温度控制实验系统。该系统采用温度传感器DS18820实现一线数字式测温,经过PID算法输出PWM波,再由PWM信号控制固态继电器,调节热阻丝发热功率,最终达到控制被控对象温度的目的,该系统还扩展了人机接口和串口通信,实现温度设定、控制及图像显示。   硬件设计   1.总体设计   系统结构框图如图1所示,以AT89C51单片机为控制核心,DS18820电池,外型尺寸完全符合原机的内部空间要求。按照正确的正负极性焊连到 电路 中即可完成电池的更换工作。实际使用效果极佳,连续播放时间超过了7个小时(图4)。测量被控温度
[单片机]
基于AT89C51<font color='red'>单片机</font>低成本温度控制实验系统
实现单片机计算器与LCD1602字幕滚动
当你按计算器部分时,自动切换到计算器,按字幕滚动方式时,自动切换到字幕滚动 仿真原理图如下 单片机源程序如下: /* 接盘按键说明: -------------------------------------------------- | 7 | 8 | 9 | / | - - - - - - - - - - - - - | 4 | 5 | 6 | * | - - - - - - - - - - - - - | 1 | 2 | 3 | - | - - - - - - - - - - - - - | C | 0 | = |
[单片机]
实现<font color='red'>单片机</font>计算器与LCD1602字幕滚动
51单片机实现的485通讯程序
#ifndef __485_C__ #define __485_C__ #include reg51.h #include string.h #define unsigned char uchar #define unsigned int uint /* 通信命令 */ #define __ACTIVE_ 0x01 // 主机询问从机是否存在 #define __GETDATA_ 0x02 // 主机发送读设备请求 #define __OK_ 0x03 // 从机应答 #define __STATUS_ 0x04 // 从机发送设备状态信息 #define __MAXSIZE 0x08 // 缓冲
[单片机]
AD574与8031单片机及前置电路的一种实用接口电路
  AD574是美国核拟器件公司Analog Devices) 生产的12 位逐次逼近型快速A/D 转换器。其转换35us,转换误差为土0.05%,是前我国应用广泛,价格适中的A/D转换器。其内部含三态电路,可直接与各种微处理器连接,且无须附加逻辑接口电路,便能与CMOS 及TTL 电平兼容。内部配置的高精度参考电压源和时钟电路,使它不需要任何外部电路和时钟信号,就能实现A/D转换功能,应用非常方便。   许多文献有关于AD574与8031单片机接口技术的介绍, 但其控制功能引线基本局限于单一的AD574与8031的连接。由于8031无内部程序存贮器, 其内部数据存贮器也有限, 因而8031构成的测控系统, 往往都需外扩存贮器
[单片机]
AD574与8031<font color='red'>单片机</font>及前置电路的一种实用接口电路
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

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

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved