单片机的水位检测与控制系统论文
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1引言
随着社会的发展,科技的进步以及人们生活水平的逐步提高,各种方便与生活的自动控制系统开始进入了我们的生活,单片机作为微型计算机发展的一个重要分支,具有高可靠性、高性能价格比、低电压、低功耗等优势,以其为核心的自动控制系统赢得了广泛的应用。
该课程设计的题目是基于单片机的水塔水位控制,在此水塔水位控制系统中,检测信号来自插入水中的4个金属棒,以感知水位变化情况。
工作正常情况下,应保持水位在某一范围内,当水位变化发生故障的时候,及时关断电机电源,发出声、光报警信号。
其目的在于对单片机技术的应用,由单片机实现自动运行,使水塔内水位始终保持在一定范围,以保证连续正常地供水。
该课程设计给出以AT89C51单片机为核心器件的水塔水位检测控制系统仿真设计,实现水位的检测控制、处理和报警等功能,并在Proteus软件环境下模拟仿真。
实验结果表明,该系统具有良好的检测控制功能,可移植性和扩展性好。
1 整体方案设计
1.1整机工作原理
通过水的导电性,在水位到与未到的差别形成鲜明的高低电平并利用单片机强大的数据处理能力对收到的数据进行解码、判断,做出相应的显示处理、驱动继电器打开或关闭相应的电子阀门。
1设计要求与任务
设计要求:⑴利用单片机及扬声器、水位传感器等器件设计;⑵将探测到的水位变化信号转换为电压信号,经调理电路整形处理为TTL电平送入单片机;⑶单片机对送入的信号进行数据处理,在LED上进行水位显示,超出水位警戒线时发出报警提示。
原始数据:水位传感器;51单片机;蜂鸣器。
主要任务:⑴根据技术要求和现有开发环境,分析设计题目;⑵设计系统实现的方案;⑶设计并绘制电路原理图;⑷画出功能模块的程序流程图;⑸使用C语言编写实现程序;⑹结合硬件调试、修改并完善程序;⑺编写项目报告。
1.1 课题背景及研究意义分析:
在工农业生产中,常常需要测量液体液位。
随着国家工业的迅速发展,液位测量技术被广泛应用到石油、化工、医药、食品等各行各业中。
低温液体(液氧、液氮、液氩、液化天然气及液体二氧化碳等)得到广泛的应用,作为贮存低温液体的容器要保证能承受其载荷;在发电厂、炼钢厂中,保持正常的锅炉汽包水位、除氧器水位、汽轮机凝气器水位、高、低压加热器水位等,是设备安全运行的保证;在教学与科学研究中,也经常碰到需要进行液位控制的实验装置。
本设计是利用STC89C52单片机设计一种水位控制系统。
主要是基于单片机的硬件设计以及程序设计, 包括测量电路部分、液位实时数显输出部分以及液位控制部分,还在此基础上添加蜂鸣器。
本设计只是概念性设计了电路部分,并不涉及具体的数值设定,经过了实际应用检测。
该系统实现了水位监测,水位控制,水位显示,故障报警功能。
在设计中主要采用了传感技术、单片机技术、弱电控制强电技术、C语言编程等技术。
本文还讲述了水位控制系统工作的基本原理,介绍了电路接口原理图,给出了相应了设计流程图和C语言程序。
本文主要是为了更多得了解单片机,掌握单片机的组成部分和控制原理,最终达到设计出“单片机水位控制系统的”的目的。
实验证明,单片机控制的水位控制系统的硬件电路简单,软件功能完善,控制系统可靠,充分发挥了单片机的性能,可以大大的提高单片机的开发效率。
1.2 课题现状
目前,市面上进行液位测量的仪表种类繁多,但是同时具有测量、监控、数据记录及处理的液位测量装置并不多。
在某些工业控制系统中,数据的测量这一基本功能已不能满足现代工业的要求,往往需要对大批数据进行记录,对其进行后期处理分析,实现差错控制、工艺改善、资源优化等一系列工作。
为了获得大批量的数据,得到可靠的分析资料,往往需要长期、多网点的监控记录。
在液位测量这一领域中,如江河湖海、城市用水等方面,大量数据长时间,多网点的采集记录分析具有普遍的意义。
液位的变化分析,有助于人们进一步对自然环境、天气变化甚至是灾害预警提供可靠的支持。
单片机是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU随即存储器RAM,只读存储器ROM、多种I/O口和中断系统、定时
器、计时器等功能集成到一块硅片上构成的一个小而完善的计算机系统。
中央处理器CPU 是单片微型计算机指挥、执行中心,由它读程序并执行指令。
CPU 功能,是以不同方式来执行各种指令。
有的指令涉及到各个寄存器之间的关系;有的指令涉及到单片机核心电路内部各功能部件的关系;有的则与外部器件发生关系。
总的来说CPU 是通过复杂的时序电路来完成不同的指令功能的。
对于本设计单片机结构简单实用性强,功能齐全,技术先进,使实现这设计不难实现。
同时,C 语言是单片机的重要“组成”,如果能掌握好C 语言编程,这将很大程度上提高了开发效率。
在设计过程中我们采用了软硬件双结合的方式,软件设计的方法简化了硬件的要求,为设计创造了条件。
单片机采用的STC89C51的单片机。
(图 1-1 系统整体方案)
STC89C51
单 片 机
模 块 复位电路
蜂鸣器
继电器控制端 单位数码管显示
状态指示灯 晶振电路
水位传感器模块
2各模块的设计与论证
2.1 设计原理
单片机水塔水位控制原理如图1所示,图中虚线表示容许水位变化的上下线,在正常情况下,应保持水位在虚线范围之内。
其中A棒处于下限水位,C棒处于上限水位,B棒在上下水位之间。
A棒接+5V电源,B棒、C棒各通过一个电阻与地相连。
图1 水塔水位控制原理图
水塔由电机带动水泵供水,单片机控制电机转动以达到对水位控制之目的。
供水时,水位上升,当达到上限时,由于水的导电作用,B、C棒连通+5V。
因此,b,c两端均为1状态,这时应停止电机和水泵的工作,不再给水塔供水。
当水位处于上下限之间时,B棒与A棒导通。
因C棒不能与A棒导通,b端为1状态,c端为0状态。
这时,无论是电机已在带动水泵给水塔加水,水位在不断上升;或者是电机没有工作,用水使水位在不断下降。
都应继续维持原有的作状态。
当水位降到下限时,B,C棒都不能与A棒导电,因此,b,c两端均为0状态。
这时应启动电机,带动水泵工作,给水塔供水。
2.2 设计方案
本设计为一个实际应用系统的水塔水位控制部分。
在此水塔水位控制系统中,检测信号来自插入水中的4个金属棒,以感知水位变化情况。
工作正常情况下,应保持水位在1水位和4水位内,当水位变化发生故障的时候,及时关断电机电源,发出声、光报警信号。
水塔水位的硬件原理图如图2所示。
4
2.3 传感器模块
2.3.1 传感器的选择
此设计最重要的模块之一就是水位传感器了,因为这个模块的准确性直接决定了水位控制的准确性.如果传感器选择得不可靠,可能造成数码管所显示值非水池中的真实水位值;可能造成错误报警;错误加水或错误放水等可能.
水位的高度检测也可有多种选择,如①超声波;②电容传感器;③红外传感器;
④利用水的导电性直接感应电流的"通"或"断"来判断水位是否到达了相应的水位线
方案一、使用超声波传感器。
超声波具有不受被测的深度和导电性影响的特殊性,
但精度不高,价格昂贵;这种产品不具有市场竞争力。
再者,这种传感器与单片机的
接口较复杂,需要模/数之间的转换。
方案二、使用电容式传感器。
容易实现,但要求水位的变化较为缓慢,距离不能太远。
方案三、使用红外传感器,利用水面和容器的反射构成薄膜干涉,当有水时,由于水面反射光的干涉,使得红外线传感器接收不到相应的信号,由此可以探测到水位高度。
但是,同样地这种传感器价格也很昂贵,而其安装起来也不太容易。
方案四、利用水的导电性,直接感应电流的"通"或"断"来判断水位是否到达了相应的水位线。
这种方式不用额外的开销,而操作安装简单,其安装高度较为灵活。
如下示意图
(图 2-2-1-1 水位传感器示意图)
2.4
2.4.1系统工作原理
当水箱里的水位在低水位的时候传感器传给稳压电路一个低电平,低电平通过稳压电路里的PNP 三极管、电容、电阻转换成低电平。
单片机收到低电平,表示水箱里
VCC
P23 P22 P20 P21
没有水了需要系统开始运作,给水箱加水,蜂鸣器报警。
水位达到高水位时传感器同时传送给单片机一个低电平,红灯闪烁频率加快,蜂鸣器报警频率加快。
同理,水位从高水位下降时,水位离开高水位线时,高水位传感器探头与电源断开,传感器输出低电平给单片机。
图3 稳压电路图
本电路的主要作用是使从传感器输入的电平能够稳定的输入到单片机中,,是由三极管8550、两个电阻组成。
2.5 水位显示电路
本电路采用数码管显示不同的水位等级,其段数码管是常用的显示器件,具有造价低廉,驱动方便等特点,其由7 个发光二极管和一个小数点组成,行成一个日字形,它们可以共阴极,也可以共阳极.但其使用方法基本相同。
通过解码电路得到的数码接通相应的发光二极而形成相应的数字显示。
由于,单片机复位后的各个引脚呈高电平,一般情况下,复位后数码管不亮且考虑到显示的“够用”要求,所以选择一位共阳数码管做为水位高度的显示。
如下所示为一位共阳的示意图:
(图2-4-1数码管模型示意图)
(图2-4-3共阳数码管接法)
2.6振荡电路和复位电路
2.7 复位电路设计
STC89C51的复位输入引脚RST为单片机提供了初始化的手段,可以使程序从指定处开始执行,在STC89C51的时钟电路工作后,只要RST引脚上出现超过两个机器周期以上的高电平时,即可产生复位的操作,只要RST保持高电平,则STC89C51循环复位,只有当RET由高电平变成低电平以后,STC89C51才从0000H地址开始执行程序,本系统采用按键复位方式的复位电路。
图3-3 复位电路
2.8 外部晶振时钟电路设计
STC89C51的时钟可以由两种方式产生,一种是内部方式,利用芯片内部的振荡电路;另外一种为外部方式,本论文根据实际需要和简便,采用内部振荡方式,MCS-51内部有一个用于构成振荡器的高增益反相放大器,引脚XTAL1和XTAL2分别是此放大器的输入端和输出端,这个放大器与作为反馈元件的片外晶体或陶瓷谐振器一起构成了一个自激振荡器。
STC89C51虽然有内部振荡电路,但要形成时钟,必须外接元件,所以实际构成的振荡时钟电路,外接晶振以及电容C1和C2构成了并联谐振电路接在放大器的反馈回路中,对接电容的值虽然没有严格的要求,但电容的大小会影响振荡频率的高低,振荡器的稳定性,起振的快速性和温度的稳定性。
晶振的频率可在1.2MHZ~12MHZ之间任选,电容C1和C2的典型值在20pf~100pf之间选择,由于本系统用到定时器,为了方便计算,采用了12MHZ的晶振,采用电容选择30pf。
图3-4 晶振电路的设计
2.9自动报警电路
下列二种情况发生系统报警:
1当水位达到上限极限水位时报警,水位到达上限极限水位时系统发出报警;
2当水位达到下限极限水位时报警,水位到达下限极限水位时系统发出报警;
蜂鸣器发声原理是电流通过电磁线圈,使电磁线圈产生磁场来驱动振动膜发声的,因此需要一定的电流才能驱动它,单片机IO引脚输出的电流较小,单片机输出的TTL 电平基本上驱动不了蜂鸣器,因此需要增加一个三极管的电路。
通过一个三极管C8550来放大驱动蜂鸣器,当8550的基极是一个低电平时,三极管处于饱和状态,蜂鸣器通电报警,当基极为高电平,三极管处于截止状态,蜂鸣器停止报警。
原理图见下面图3:
图6 自动报警电路的接线图2.10水位检测系统的整体电路仿真图
图7 水位控制系统仿真图
2.11 中央处理器模块
中央处理器是整个设计的数据处理中心,担负着数据接收与处理、数据显示与报警及继电器的驱动并开启电子阀门。
这个中央处理器的选择应考虑价格、稳定性、易用性等因素。
这里我们选择STC89C51。
2.11.1 STC89C51 主要性能:
与MCS-51 单片机产品兼容
8K字节在系统可编程Flash存储器
1000次擦写周期
全静态操作:0Hz~33Hz
32个可编程I/O口线
三个16位定时器/计数器
八个中断源
全双工UART串行通道
低功耗空闲和掉电模式
掉电后中断可唤醒
看门狗定时器
双数据指针
掉电标识符
2.11.2 功能特性描述:
STC89C51是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash 存储器。
使用Atmel公司高密度非易性存储器技术制造,与工业80C51产品指令和引脚完全兼容。
片上Flash允许程序存储器在系统可编程,亦适于常规编程器。
在单片机上,拥有灵巧的8位CPU和在系统可编程Flash,使得STC89C51为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。
2.11.3 引脚:
P0口:P0口是一个8位漏极开路的双向I/O口。
作为输出口,每位能驱动8个TTL 逻辑电平。
对P0端口写"1"时,引脚用作高阻抗输入。
当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。
在这种模式下,P0具有内部上拉电阻。
在flash编程时,P0口也用来接收指令字节;在程序校验时,输出指令字节。
程序校验时,需要外部上拉电阻。
P1口:P1口是一个具有内部上拉电阻的8位双向I/O口,p1输出缓冲器能驱动4个TTL逻辑电平。
对P1端口写"1"时,内部上拉电阻把端口拉高,此时可以作为输入口使用。
作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。
此外,P1.0和P1.2分别作定时器/计数器2的外部计数输入(P1.0/T2)和时器/计数器 2 的触发输入(P1.1/T2EX),具体如下。
在flash编程和校验时,P1口接收低8位地址字节
引脚号第二功能:
P1.0T2(定时器/计数器T2的外部计数输入),时钟输出
P1.1T2EX(定时器/计数器T2的捕捉/重载触发信号和方向控制)
P1.5MOSI(在系统编程用)
P1.6MISO(在系统编程用)
P1.7SCK(在系统编程用)
P2口:P2口是一个具有内部上拉电阻的8位双向I/O口,P2输出缓冲器能驱动4个TTL逻辑电平。
对P2端口写"1"时,内部上拉电阻把端口拉高,此时可以作为输入口使用。
作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。
在访问外部程序存储器或用16位地址读取外部数据存储器(例如执行MOVX@DPTR)时,P2口送出高八位地址。
在这种用中,P2口使用很强的内部上拉发送1。
在使用8位地址(如MOVX@RI)访问外部数据存储器时,P2口输出P2锁存器的内容。
在flash 编程和校验时,P2口也接收高8位地址字节和一些控制信号。
P3口:P3口是一个具有内部上拉电阻的8位双向I/O口,p2输出缓冲器能驱动4个TTL逻辑电平。
对P3端口写"1"时,内部上拉电阻把端口拉高,此时可以作为输入口使用。
作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。
P3口亦作为STC89C51特殊功能(第二功能)使用,如下所示。
在flash编程和校验时,P3口也接收一些控制信号。
P3.0RXD(串行输入)
P3.1TXD(串行输出)
P3.2INT0(外部中断0)
P3.3INT0(外部中断0)
P3.4T0(定时器0 外部输入)
P3.5T1(定时器1 外部输入)
P3.WR(外部数据存储器写选通)
P3.7RD(外部数据存储器写选通)
框图:
(图 2-3-4-1 中央处理器引脚图)
2.12 继电器控制阀门模块
用一个较小的电流去控制较大的电流(如驱动阀门、高功率加热器件、机床等),可以使用诸如继电器,晶体管和晶闸管几种类型。
在线路结构上都采用了隔离措施。
但各有其特点:继电器输出:开关速度低,负载能力大,适用于低频场合。
晶体管输出:开关速度高,负载能力小,适用于高频场合。
晶闸管输出:开关速度高,负载能力小,适用于高频场合。
在这个设计中,只是用于驱动阀门而已,所以选择使用继电器,要求速度不用太高,负载也无需太大。
继电器是一种当输入量(电、磁、声、光、热)达到一定值时,输出量将发生跳跃式变化的自动控制器件,是一种电子控制器件,通常应用于自动控制电路中,它实际上是用较小的电流去控制较大电流。
2.12.1 继电器工作原理
一般机械继电器有一组触点,4根引线,两个是常开的,两个是常闭的,中间一个共用。
当控制端加电之后,线圈产生磁场,常开的闭合,常闭的断开,这样可以用小电压和电流控制大功率的设备,比较方便和安全。
下图为直流无极继电器,当电流
通过线圈时,铁芯吸动衔铁,使推杆向上移动,带动中簧片断开后接点,而与前接点闭合;当电源切断后,铁芯失磁,衔铁自行释放,使推杆下降,中簧片断开前接点,而与后接点闭合。
继电器线圈没电时,铁芯失磁,簧片与后接触点闭合,使信号灯电路接通红灯,则红灯亮。
如下图:
(图 2-5-1-1 继电器断开时工作原理示意图)
继电器线圈有电时,铁芯吸动衔铁,簧片与前接触点闭合,使信号灯电路接通绿灯,则绿灯亮。
如下图:
(图2-5-1-2 继电器接时工作原理示意图)
综合考虑,电子阀门工作时电流不大,形状闭合速度也要求不高,所以继电器的选择要求不高,只要市面上较易买到,价格合适,电流2A~10A右就可以了.这里我们选择的是HRS4H-S-DC5V就可以
第三章系统软件设计
3.1软件功能概述
在系统的硬件确定以后,功能完善的软件能够很好的指导和协调硬件的工作,可使系统发挥其最大的作用,并且便利以后的更新换代升级。
一个完整的系统都离不开对系统状态的监控,为了更好的协调软件,硬件各个部分正常工作就必须对整个系统进行严密监控。
3.2 主程序设计
主程序如图3-1所示。
系统开始工作时,由传感器检测出水位深度,送入单片机与设定值相比较。
如果测量值高于上限值则发出警报并关闭水泵;如果测量值低于下限值则发出警报并启动水泵供水;如果测量值等于设定值则关闭水泵停止供水,并由显示水位值,否则启动水泵继续供水且显示水位值。
图3-1主程序设计
传感器测量 测量值高于上限值
测量值低于下限值
测量值等于设定值
启动水泵继续供水
显示液位高度高度
结束 开始
报警提示
关闭水泵 关闭水泵 停止供水
报警提示
启动水泵
Y
Y
N
N
Y
N
3.3LED显示子程序
LED显示子程序主要完成液位值的显示,本系统采用数码管用于液位值的显示,只需要送数码管的显示数据就可以了。
参考文献
[1] 童诗白,华成英。
模拟电子技术基础(第三版)。
北京高等教育出版社,2001
[2] 谢嘉奎,宣月清,冯军。
电子线路线性部分(第四版)。
北京高等教育出版社,2004
[3] 郁有文.传感器原理及工程应用,西安电子科技大学出版社,2001.
[4] 严钟豪.非电量电测技术.北京,机械工业出版社,2001.
[5] 周乐挺.著传感器与检测技术.北京,机械工业出版社,2005.
[6] 范晶彦.传感器与检测技术应用.北京,机械工业出版社,2005.
[7] 张正伟.传感器原理与应用.北京,中央广播电视大学出版社,1991.
[8] 李军.检测技术及仪表.北京,轻工业出版社,1989.
[9] 宋文绪.自动检测技术.北京,高等教育出版社,2000.
[10] 贾伯年.传感器技术.南京,东南大学出版社,1990.
[11] 杜维.过程检测技术及仪表.北京,化学工业出版社,1999.
[12] 高晓蓉.传感器技术.成都,西南交通大学出版社,2003.
[13] 吴桂秀.传感器应用制作入门.杭州,浙江科学技术出版社,2003.
[14] 徐洁.电子测量与仪器.北京,机械工业出版社,2004.
[15] 武昌俊.自动检测技术及应用.北京,机械工业出版社,2005.
致谢
本论文是在段学习老师的认真指导下完成的。
指导老师渊博的知识、严谨的治学态度、敏锐的思考力、善于发现并解决问题的能力以及平易近人的作风令学生终生受益。
老师对我论文工作中遇到的困难提出了行之有效的解决办法,使我对项目设计的重要环节有了较好的理解与把握,尤其是在方案设计方面有了较大提高。
值此成文之
际,谨向老师表示衷心的感谢!
历时一个多月毕业设计终于圆满完成了。
心里兴奋难以用言语表达。
首先要感谢我的毕业设计导师段学习老师。
这次毕业设计在选课题及设计过程中都是您的悉心指导,每个设计细节和每个数据,都离不开您的细心指导。
窦伟山老师多次询问研究进程,窦伟山并为我指点迷津,帮助我开拓研究思路,精心点拨、热忱鼓励。
对窦伟山老师的感激之情是无法用言语表达的。
感谢在此毕业设计过程中所有帮助过我的同学,感谢和我一起研究、探讨的同学、朋友。
感谢他们的帮助,让我坚持并完成毕业论文设计。
在老师和同学的帮助下我顺利的完成了这次项目设计,对于我来说,收获最大的是方法和能力;那些分析和解决问题的能力。
在整个项目设计的过程中,我发现我们学生在经验方面十分缺乏,空有理论知识,没有理性的知识;有些东西可能与实际脱节。
总体来说,我觉得像课程设计这种类型的作业对我们的帮助还是很大的,它需要我们将学过的相关知识系统地联系起来,从中暴露出自身的不足,以待改进!
本次的项目设计,培养了我们综合应用设计项目及其他项目的理论知识和理论联系实际,应用生产实际知识解决工程实际问题的能力;在设计的过程中还培养出了我们的团队精神,同学们共同协作,解决了许多个人无法解决的问题;在今后的学习过程中我们会更加努力和团结。
我决定认真总结这次项目设计的经验,以及学习到的知识,来更加的充实自己的头脑和完善自己的知识结构。
另外,我也在这次设计中看到了自己的许多不足之处,通过项目设计,发现自己在理论研究和实际工作能力等方面都得到了提高,同时在老师的指导和课题组同学的共同帮助下,及时总结研究成果,这些无疑会对我今后的工作和学习带来很大的帮助。
总之,这次的课程设计的顺利完成使我受益匪浅。
要做好一个项目的设计,就必须做到:在设计程序之前,对所用单片机的内部结构有一个系统的了解,知道该单片机有哪些资源;要有一个清晰的思路和一个完整的软件流程图;在设计程序时,不能妄想一次将整个程序设计好,反复修改、不断改进是程序设计的必经之路;要养成注释程序的好习惯,这样为资料的保留和交流提供了方便;在设计中遇到的问题要记录,以免下次遇到同样的问题。
在这次的项目设计中,我真正的意识到,在以后的学习中,要理论联系实际,把我们所学的理论知识用到实际当中,学习单片机更是如此,程序只有在经常写与读的过程中才能提高,这就是这次项目设计的最大收获。