用AT89单片机构建的水文缆道测验系统

发布者:csydtc最新更新时间:2006-08-28 来源: 现代电子技术关键字:缆道  偏角  单片机 手机看文章 扫描二维码
随时随地手机看文章

  早期的中小河道水文测验一般是采用人工操作的水文缆道测验系统,操作时间长、劳动强度大、主观误差大。为此我们对原有的人工测验系统进行了改造,采用单片机控制替代人工进行自动水文测验。本文介绍了基于ATMEL89单片机的水文缆道自动测验系统,系统的设计是构建在原有设施基础上,而且尽量不改变系统结构并能兼容手动操作方法,自动地完成流量的测验计算和打印,适用于中小河道的悬索和悬杆两种类型的水文缆道。

  根据水利部颁发的《水文缆道测验规范》及人工控制水文缆道的结构和测验要求,单片机控制系统的主要功能有:自动进行河道断面的面积、平均流速、流量测验和计算打印;河道断面任一垂线上水深、水面偏角、河底偏角、垂线平均流速的自动测验;干绳、湿绳和位移修正;测验期间水位自动监测等。系统的硬件以单片机为核心以及输入/输出接口,存储器系统和打印显示电路等部分组成;软件部分由系统控制、数据采集存储、误差修正、流量计算4个主要软件模块组成。

  下面介绍本系统的原理和设计要点。

1
 系统构成
  系统框图如图1所示。

  采用AT89S8252单片机。由于河道测验的数据量大且运算比较复杂,而单片机内部的存储器容量有限。故增加外部存储器RAM6116和ROM6264。外部信号的输入采集接口是以多路A/D片ADC0809为核心,将缆道信号和水位信号送到单片机P1口和P3口承担其他输入、输出信号的接口。下面根据水文测验的特点,介绍主要的接口电路和工作过程。

1.1 ADC0809接口电路
  以ADC0809为中心的接口电路如图2所示。

  他将电传水位计的水位变化信号和缆道送来的流速、偏角、水面水底信号经变换后传送到单片机。该接口具有电路简单、稳定可靠、抗干扰强等特点。

1.1.1 水位信号的获取
  电传水位计是用来监测水位的变化,为了获取水位信号对电传水位计的传感器部分进行了改造。在传感器内部增加了干簧继电器J3,J4,J5,取消内部电池而直接由系统供电。电阻R5~R8组成分压器,分压器输出到ADCIN2口电路如图2所示。当水位变化时浮子随之升降,浮子升降3 cm,传感器内部的磁钢旋转一周,即每变化1 cm有一个干簧继电器会通断一次。J3,J4,J5分别吸合时IN2口的电压分别为1.6 V,2.5 V,3.2 V左右,无继电器吸合时IN2口电压为+5 V。根据ADCIN2口的电压数值可以判断是哪个干簧继电器通断,由IN2端电压变化规律可以知道水位的上升或下降如图3所示,图3中(a)为上升,(b)为下降。

1.1.2 水面水底信号的获取
  进行垂线水深测量时,铅鱼运行到河道断面的指定垂线位置后开始下降,一旦铅鱼接触水面则启动水深计数器开始水深计数,当铅鱼继续下降接触水底时,水底开关闭合停止计数,该计数值即为本条垂线的水深初值。工作过程如下:在铅鱼下降过程中单片机不断地读取ADCIN1口电压,铅鱼入水前继电器J1,J2处于常闭位置,ADC0809输入端IN1的电压是由R3,R4分压决定为2.5 V,一旦铅鱼接触水面+5 V电压通过水下极板→河水→铅鱼→副索1→ADC0809使IN1端电压上升到3 V以上。单片机根据IN1口的电压判断铅鱼已接触水面启动水深计数,同时令P3.4输出高电平继电器J1接通常开触点,由电路图可知河水电阻与R4并联使IN1口的电压为1.5 V左右。当铅鱼继续下降直到接触河底,河底开关K2被压通,铅鱼内部4.5 V电池E1接入电路中ADCIN1口电压下降到0 V以下,单片机判断已达到河底停止水深计数并通过P1口输出信号使水深电动机停止运行。

1.1.3 偏角信号的获取
  悬索缆道配有专门的偏角仪,用来修正水流导致铅鱼不能垂直下降到水底而产生的水深测量误差。偏角仪可以测量出铅鱼受水流影响偏离正常位置的角度,再根据偏角的大小通过查表或公式计算来修正水深误差。人工测量是用眼睛根据偏角仪的刻度估测偏角的大小,误差较大。我们对偏角仪稍做改动增加一个电位器W1和相应的电路如图1所示,通过机械联动装置将偏角的位移转换成电位器的转动从而改变W1的阻值,利用副索2将因偏角变化导致的电压变化送到ADCIN0口。考虑到野外工作的特殊性,采用性能稳定密封性好的线绕电位器,由于IN0口的电压变化与偏角之间不是线性关系用软件查表方式确定偏角值。为了减少机械位移、缆索电阻等因素的影响,实际操作时当铅鱼未入水时测一次偏角作基准,达到水面和水底时分别测一次水面偏角和水底偏角,经修正后即得到较精确的偏角值。

1.1.4 流速信号的获取
  流速的测量是由流速仪完成,测量流速时继电器J1,J2均接通常开触点-5 V电压加于水下极板,K1为流速仪内部开关,流速仪每转动一圈K1通断一次。K1断开时ADCIN0口的电压为1.5 V左右,K1接通后ADCIN0口的电压变化大于0.5 V,只要监测IN0口的电压差就可以判断流速仪的转动情况。实际测量中IN0口的电压差大小与测点垂线的距离和水质有关,距离越大电压差越小,在150 m的河道中流速信号的电压差大于0.5 V。用ADC0809监测流速信号,当VREF=5V时分辨率为0.02 V足以区别流速仪的转动,考虑到某些不确定的干扰因素将电压差的分辨率定在0.1 V,可以满足一般中、小河道的测验要求。对于较宽的河道可以通过改进电路或提高工作电压的方法来增加电压差。与PC机通信接口等部分组成的接口信息如:
??? (1)行程信号如水深、水平距离;
  (2)水位信号;
  (3)输出控制信号用来控制电动机进行正转、反转、停止,使铅鱼按要求运动做定点测量。

  接口电路如图1所示,电路充分利用ADC0809多路模数变换器将复杂的接口信息转换成数字信号。同时还利用光电门将工作索行程(水深和水平距离的移动)转换成电脉冲信号,送到ATMEL89单片机进行处理、显示、控制完成自动测验。

1.2 行程信号的获取接口电路
  铅鱼的行程信号包括铅鱼水平往返移动的行程信号,和铅鱼测量水深时垂直移动的水深信号。位移信号的获取如图4所示。他是由加装在机械传动装置上的切光板和光电门获得。设计为缆索每移动1 cm切光板遮光一次,光电门产生一个脉冲。水深和往返信号分别从光敏二极管D3,D4上取出,经过异或门后加到单片机P3.2外部中断0输入端,每移动1 cm产生一个中断,中断服务程序可以区别铅鱼此时作水平往返移动还是垂直移动,两者只取其一。

1.3 其他电路部分
  P1口的输入功能是从控制面板读入操作命令和初始化数值,输出功能是输出控制信号。一是控制行程电动机正、反转和停机,使铅鱼按测验要求进行垂直和水平运动;二是在水深测量过程中控制继电器J1、J2的闭合与断开获取水面水底信号。显示打印电路部分用6个LED管显示和微型打印机进行简单打印。用 P3.1串口与PC机相连可以进行数据的转存和进一步处理,显示和打印。

2
 系统软件流程图

  本系统的软件约占7 kB,系统程序流程图如图5所示。

  程序分为系统管理、运算处理、测验控制3大模块。系统管理模块包括:初始化、系统监控、操作切换、紧急处理等程序。运算处理模块包括:数据运算、误差修正、显示打印等程序。测验控制模块是由包括:测垂线到起始点距离、测垂线水深、测垂线流速、测垂线水位、接口数据采集等诸多子程序组成。

  为了尽量减少测量误差保证测量精度严格符合水文规范要求,在测垂线水深子程序中采用了二次入水操作,程序流程如图6所示。

  实际水深测量中由于铅鱼的运动会引起缆索的起伏跳动而造成测量误差,我们在程序中设定的操作是:当铅鱼入水后暂停在水面10 s不进行水深计数,待其稳定后升出水面20 cm,再第二次进入水面。铅鱼第二次到达水面后启动水深计数暂停下降,测量水面偏角θA,铅鱼继续下降直到河底停止水深计数,测量水底偏角θB。最后根据干绳长度(缆索到水面的高度)、湿绳长度(水深初值)、θA,θB计算出实际的该条垂线水深值。

3  
  ATMEL89单片机水文缆道测验系统具有较强的兼容性,适合中、小河道的自动或半自动测验,操作方便性能稳定,测验精度达到部颁《规范》要求,有效地减少了操作者的劳动强度和工作时间。

参考文献
[1] 余永权.ATMEL89系列单片机应用技术[M].北京:航空航天大学出版社,2002.
[2] 胡汉才.单片机原理与接口技术[M].北京:清华大学出版社,1996.
[3] 李广第.单片机基础[M].北京:航空航天大 学出版社,1998.
[4] 何立民.单片机应用技术选编[M].北京:航空航天大学出版社,1998.

关键字:缆道  偏角  单片机 引用地址:用AT89单片机构建的水文缆道测验系统

上一篇:用AT89单片机构建的水文缆道测验系统
下一篇:基于CH375的LPT-USB打印机驱动器的设计

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

基于AT89S51的单片机无线双显示抢答器C代码
#include REG51.h #include STRING.H /****************************************************************** * 自定义Macro *******************************************************************/ //编码的均为反向编码 #define CLEAR 0x7f //定义清空的反码 #define LED_BEGIN 0x01 // 定义开始时数码管的显示 #define LED_FOUL 0x38 // 犯规后显示
[单片机]
基于51单片机的呼出异味气体检测仪设计方案
本设计由STC89C52单片机电路+LCD1602液晶显示电路+MQ-2甲烷传感器模块电路+MQ-3酒精传感器模块电路+MQ-9 CO传感器电路+A/D采样PCF8591电路+蜂鸣器报警电路+LED指示灯电路+按键电路+蓝牙模块电路+电源电路组成。 1、LCD1602液晶实时显示当前的甲烷浓度、酒精浓度和CO浓度。 2、如果甲烷浓度或酒精浓度或CO浓度超过设定的阈值,则蜂鸣器报警,否则蜂鸣器不报警。 3、如果甲烷浓度超过设定的阈值,则红灯亮,否则红灯灭。 4、如果酒精浓度超过设定的阈值,则绿灯亮,否则绿灯灭。 5、如果甲CO浓度超过设定的阈值,则黄灯亮,否则黄灯灭。 6、可以通过按键设置煤气浓度、酒精浓度和CO浓度的阈值。
[单片机]
基于51<font color='red'>单片机</font>的呼出异味气体检测仪设计方案
PIC中档单片机汇编指令详解(6)
立即数与控制操作指令 SLEEP 单片机进入低功耗休眠模式 语法形式:SLEEP 操作数:无 执行时间:一个指令周期 执行过程: 看门狗计数器清0 看门狗计数器的预分频器清0 STATUS寄存器的 TO 标志位置1 STATUS寄存器的 PD 标志位清0 状态标志影响:TO PD 说明:SLEEP指令可以让单片机停止所有的工作进入低功耗休眠模式,在休眠模式下芯片的功耗降至最低。在休眠状态下,单片机的主时钟振荡器将停止,所有内部寄存器的内容保持不变,直到出现某一条件将单片机从休眠状态下唤醒。 指令范例: CALL PrepSleep ;关闭所有不需要的负载,准备进入休眠模式 SLEEP ;现在进入休眠模式
[单片机]
PIC中档<font color='red'>单片机</font>汇编指令详解(6)
单片机全自动洗衣机控制系统
本实践以单片机为基础,实现了全自动洗衣机控制系统设计。系统包含单片机、LCD显示屏、水位传感器、温度传感器等。全自动洗衣机包含的功能有:标准洗衣、经济洗衣、单独洗衣以及排水四种洗衣方式,有强洗、弱洗及运行/暂停、显示及报警功能,有自动烘干功能等。 仿真原理图如下 单片机源程序如下: #include reg51.h //定义头文件 #define uint unsigned int //定义字符uint #define uchar unsigned char //定义字符uchar #define TIME0H 0xff /
[单片机]
<font color='red'>单片机</font>全自动洗衣机控制系统
单片机按键长短按源程序(不需要通过等待来判定)
从做项目编写的程序里拆解出来 单片机源程序如下: uint m; static uchar flag_key=1; //按键松开标志 static uchar pass=0; //长按动作标志,为1时,长按已动作,为0时长按未动作 if(KEY==0) { flag_key=0; //按键按下标志 m++; } else flag_key=1; //按键松开标志 if((flag_key==1)&&(m 10)&&(m 500)) //按键松开,
[单片机]
单片机常用芯片
常用单片机芯片简介 :  STC单片机 : STC公司的单片机主要是基于8051内核,是新一代增强型单片机,指令代码完全兼容传统8051,速度快8~12倍,带ADC,4路PWM,双串口,有全球唯一ID号,加密性好,抗干扰强.    PIC单片机: 是MICROCHIP公司的产品,其突出的特点是体积小,功耗低,精简指令集,抗干扰性好,可靠性高,有较强的模拟接口,代码保密性好,大部分芯片有其兼容的FLASH程序存储器的芯片.   EMC单片机: 是台湾义隆公司的产品,有很大一部分与PIC 8位单片机兼容,且相兼容产品的资源相对比PIC的多,价格便宜,有很多系列可选,但抗干扰较差.    ATMEL单片机(
[单片机]
51单片机 printf函数 调试程序
主要分三个部分(1)51单片机程序部分;(2)keil工具部分;(3)为何printf输出为串口。 (1)51单片机程序部分 #include stdio.h #include reg51.h void InitUART(void)//使用定时器1作为串口波特率发生器 { TH1 = 0xF3; //晶振12mhz 波特率串口上设为2400才不显示乱码代码是4800 TL1 = TH1; TMOD |= 0x20; //定时器1方式2 SCON = 0x50; //串口接收使能 ES = 1; //串口中断使能 TR1 = 1; //定时器1使能 TI = 1; //发送中断
[单片机]
基于MCS-51单片机的流水灯功能设计与实现
今天,小编带大家一起来继续从基础做起,轻松玩转MCS-51单片机。这次主要实现的功能是:基于STC89C51单片机的流水灯功能设计与实现。如下图所示:下图为跑马灯电路(与单片机接口设置)。电路:1个LED光管点亮的电流值约为3~10mA,电阻值为1K。   电路通过编程后,可实现可以LED灯单个点亮或者实现流水灯功能、跑马灯功能等;(具体程序的话,可以自己是写一下)这里小编就写了一个实现流水灯的C源代码。大家也可以自己发散思维,让灯想怎么亮就怎么亮...有过自己动手的童鞋,肯定有过这样的感受:自己买的板板,用过一遍又一遍,但是每次都会变出点新花样出来,每次都是乐此不疲的写这代码,完全沉浸其中不可自拔....下图是具体功能实现时板
[单片机]
基于MCS-51<font color='red'>单片机</font>的流水灯功能设计与实现
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
  • ARM裸机篇--按键中断
    先看看GPOI的输入实验:按键电路图:GPF1管教的功能:EINT1要使用GPF1作为EINT1的功能时,只要将GPFCON的3:2位配置成10就可以了!GPF1先配 ...
  • 网上下的--ARM入门笔记
    简单的介绍打今天起菜鸟的ARM笔记算是开张了,也算给我的这些笔记找个存的地方。为什么要发布出来?也许是大家感兴趣的,其实这些笔记之所 ...
  • 学习ARM开发(23)
    三个任务准备与运行结果下来看看创建任务和任运的栈空间怎么样的,以及运行输出。Made in china by UCSDN(caijunsheng)Lichee 1 0 0 ...
  • 学习ARM开发(22)
    关闭中断与打开中断中断是一种高效的对话机制,但有时并不想程序运行的过程中中断运行,比如正在打印东西,但程序突然中断了,又让另外一个 ...
  • 学习ARM开发(21)
    先要声明任务指针,因为后面需要使用。 任务指针 volatile TASK_TCB* volatile g_pCurrentTask = NULL;volatile TASK_TCB* vol ...
  • 学习ARM开发(20)
  • 学习ARM开发(19)
  • 学习ARM开发(14)
  • 学习ARM开发(15)
何立民专栏 单片机及嵌入式宝典

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

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