基于单片机的水位检测报警系统_第1页
基于单片机的水位检测报警系统_第2页
基于单片机的水位检测报警系统_第3页
基于单片机的水位检测报警系统_第4页
基于单片机的水位检测报警系统_第5页
已阅读5页,还剩64页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、目录1 项目设计要求与任务 .32 项目设计正文 .32.1 课题背景及研究意义分析 .32.2 课题现状 .42.3 设计思路及方案 .42.3.1 水位传感方式的选择 .42.3.2 水位传感器的特点及应用 .52.4 系统的组成 .62.4.1 系统工作原理 .62.4.2 稳压电路 .62.4.3 水位显示电路 .72.4.4 振荡电路和复位电路 .82.4.5 自动报警电路 .83水位检测系统的整体电路仿真图.93.1 硬件连接实物图 .94. 各种水位下的仿真图.104.1 高水位状态下仿真图 .104. 2 低水位状态下仿真图.104. 通信单元硬件设计.116上位机显示单元.1

2、16. 1 上位机接受部分窗体控件.126. 项目设计总结.148. 参考文献.15附录 1.16水位检测报警系统1 设计要求与任务设计要求:利用单片机及扬声器、水位传感器等器件设计;将探测到的 水位变化信号转换为电压信号,经调理电路整形处理为 ttl 电平送入单片机; 单片机对送入的信号进行数据处理,在 led 或 lcd 上进行水位显示,超出水位警 戒线时发出报警提示。原始数据:水位传感器;51 单片机;扬声器。主要任务:根据技术要求和现有开发环境,分析设计题目;设计系统实 现的方案;设计并绘制电路原理图;画出功能模块的程序流程图;使用汇 编语言(或 c 语言)编写实现程序;结合硬件调试、

3、修改并完善程序;编写项 目报告。2项目设计正文2.1 课题背景及研究意义分析:在工农业生产中,常常需要测量液体液位。随着国家工业的迅速发展,液位 测量技术被广泛应用到石油、化工、医药、食品等各行各业中。低温液体(液氧、 液氮、液氩、液化天然气及液体二氧化碳等)得到广泛的应用,作为贮存低温液 体的容器要保证能承受其载荷;在发电厂、炼钢厂中,保持正常的锅炉汽包水位、 除氧器水位、汽轮机凝气器水位、高、低压加热器水位等,是设备安全运行的保 证;在教学与科学研究中,也经常碰到需要进行液位控制的实验装置。本设计是利用 stc89c52 单片机设计一种水位控制系统。主要是基于单片机 的硬件设计以及程序设计

4、, 包括测量电路部分、键盘输入控制部分、液位实时数 显输出部分以及液位控制部分,还在此基础上添加报警器。本设计只是概念性设 计了电路部分,并不涉及具体的数值设定,经过了实际应用检测。该系统实现了水位监测,水位控制,水位显示,故障报警功能。在设计中主 要采用了传感技术、单片机技术、弱电控制强电技术、c 语言编程等技术。本文 还讲述了水位控制系统工作的基本原理,介绍了电路接口原理图,给出了相应了 设计流程图和 c 语言程序。本文主要是为了更多得了解单片机,掌握单片机的组成部分和控制原理,最 终达到设计出“单片机水位控制系统的”的目的。实验证明,单片机控制的水位 控制系统的硬件电路简单,软件功能完善

5、,控制系统可靠,充分发挥了单片机的 性能,可以大大的提高单片机的开发效率。2.2课题现状- 1 -水位检测报警系统目前,市面上进行液位测量的仪表种类繁多,但是同时具有测量、监控、数 据记录及处理的液位测量装置并不多。在某些工业控制系统中,数据的测量这一 基本功能已不能满足现代工业的要求,往往需要对大批数据进行记录,对其进行 后期处理分析,实现差错控制、工艺改善、资源优化等一系列工作。为了获得大 批量的数据,得到可靠的分析资料,往往需要长期、多网点的监控记录。在液位 测量这一领域中,如江河湖海、城市用水等方面,大量数据长时间,多网点的采 集记录分析具有普遍的意义。液位的变化分析,有助于人们进一步

6、对自然环境、 天气变化甚至是灾害预警提供可靠的支持。单片机是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理 能力的中央处理器 cpu 随即存储器 ram,只读存储器 rom、多种 i/o 口和中断系 统、定时器、计时器等功能集成到一块硅片上构成的一个小而完善的计算机系统。中央处理器 cpu 是单片微型计算机指挥、执行中心,由它读程序并执行指令。 cpu 功能,是以不同方式来执行各种指令。有的指令涉及到各个寄存器之间的关 系;有的指令涉及到单片机核心电路内部各功能部件的关系;有的则与外部器件 发生关系。总的来说 cpu 是通过复杂的时序电路来完成不同的指令功能的。对于本设计单片机结构

7、简单实用性强,功能齐全,技术先进,使实现这设计 不难实现。同时,c 语言是单片机的重要“组成”,如果能掌握好 c 语言编程, 这将很大程度上提高了开发效率。在设计过程中我们采用了软硬件双结合的方式,软件设计的方法简化了硬件 的要求,为设计创造了条件。单片机采用的 stc89c52 的单片机。2.3 设计思路及方案2.3.1 水位传感方式的选择简单的控制方式有浮标式、电极式等,这些控制方式的优点是结构简单,成 本低廉。但有很多问题存在,比如是精度不高,不能进行数值显示,另外很容易 引起误查,且只能单独控制,与计算机进行通信连接比较难实现,很难快速准确 传输信号,所以不利于水位信号的传送。2.3.

8、2 水位传感器的特点及应用水位浮球开关特点:1 小型浮球液位开关是一种结构简单,使用方便的液位 控制零件,它设有复杂的电路,不会受到干扰,只要材质选择正确,任何性质液 体、压力、温度皆可使用。液体介质性质与浮球关系:2 液体比重不同时,浮球 的动作位置将会有所变动,一般 sg 比水小时,浮球浸在液体中部分将相对增多。- 2 -水位检测报警系统3 浮球开关产品参考比重以水( sg1)所以使用时在选用浮球时须考虑液位的 比重 sg,一定大于浮球规格所标示,否则,浮球开关无法浮动。4 粘度高不会干 涸的液体,一般应选用外径较大的不锈钢浮球。5 浮球开关是使用磁铁来感应磁 簧开关,因此被测液位应无铁屑

9、,否则铁屑粘在浮球上面浮球浮不起来会影响浮 球队开关的动作。用途:不锈钢浮球液位开关专门用于各种中小型常压和受压储 液罐的液位检测、信号远传、开关报警,可适用于各种卫生、环保、有毒、带浓 酸碱腐蚀性强介液体使用。图 1 水位浮球式传感器及工作原理浮子开关是利用开关上面磁性浮子随液位升或降,使开关检测管内设定位置 的干簧管芯片动作,发出接点开(关)转换信号。动作原理:在密闭的非导磁性管内安装有一个或多个干簧管,然后将此管穿 过一个或多个中空且内部有环形磁铁的浮球,液体的上升或下降将带动浮球一起 上下移动,从而使该非导磁性管内的干簧管产生吸合或断开的动作,从而输出一 个开关信号,也叫做无源触点信号

10、。应用范围:我们常见的浮子开关一般水箱里面控制水位,用水箱高液位或者低液位报警 作用。还可以用在饮水机、空调、加湿器、雾化器、空压机、净水器、水箱、热 水炉、水池、油箱、油罐、压力罐、一些有酸碱液体的大小型设备。适用范围广、安装形式多样侧装、直装、顶部和底部安装、螺纹法兰安装达 到多点液位报警效果。无源器件,性能稳定可靠,安全方便,抗干扰能力强,结构简单,安装方便, 维护费用低。2.4 系统的组成- 3 -水位检测报警系统水位控制系统由电源电路、水位探测传感电路、稳压电路、继电器控制电机 加水电路、水位显示电路、单片机 stc89c52 组成。系统组成的方框图如下:电源电路稳压电路水位传感器单

11、片机stc89c52水位显示水位报警电路图 2 系统组成方框图2.4.1 系统工作原理当水箱里的水位在低水位的时候传感器传给稳压电路一个低电平,低电平通 过稳压电路里的 npn 三极管、电容、电阻转换成高电平。单片机收到高电平,表 示水箱里没有水了需要系统开始运作,给水箱加水,这时单片机通知红灯缓慢闪 烁,蜂鸣器报警。水位达到高水位时传感器同时传送给单片机一个低电平,红灯 闪烁频率加快,蜂鸣器报警频率加快。同理,水位从高水位下降时,水位离开高水位线时,高水位传感器探头与电 源断开,传感器输出高电平给单片机。当水位下降到蓄水位时,红灯闪烁变慢。 2.4.2 稳压电路图 3 稳压电路图 - 4 -

12、水位检测报警系统本电路的主要作用是使从传感器输入的电平能够稳定的输入到单片机中, 是由三极管 9013、两个电阻、和一个无极性电容组成。如果我们不使用此稳压电路也能实现我们的设计目的,但有时会产生水位误 判和不稳定现象,所以我认为此电路是不可缺少的。2.4.3 水位显示电路图 4 水位显示电路图本电路采用不不同颜色的 led 作为显示装置,有单片机 p2.0、p2.3 口控制 进行水位显示。红灯闪烁缓慢代表水位在低水位。红灯闪烁急促表示在高水位以 上。此电路采用的是共阳极的,所以只有单片机给发光二极管为低电平的时候才 能是发光二极管点亮。r1, r4,为上拉电阻起限压控流作用。led(ligh

13、t emitting diode),发光二极管,是一种固态的半导体器件,它 可以直接把电转化为光。led 的心脏是一个半导体的晶片,晶片的一端附着 led 灯株在一个支架上,一端是负极,另一端连接电源的正极,使整个晶片被环氧树 脂封装起来。半导体晶片由两部分组成,一部分是 p 型半导体,在它里面空穴占 主导地位,另一端是 n 型半导体,在这边主要是电子。但这两种半导体连接起来 的时候,它们之间就形成一个“ p-n 结”。当电流通过导线作用于这个晶片的时 候,电子就会被推向 p 区,在 p 区里电子跟空穴复合,然后就会以光子的形式发 出能量,这就是 led 发光的原理。而光的波长决定光的颜色,是

14、由形成 p-n 结材- 5 -水位检测报警系统料决定的。2.4.4 振荡电路和复位电路4d图 5 振荡电路和复位电路图振荡电路和复位电路是单片机不可缺少的部分,是单片机的重要组成,它们 集成在单片机里,对于单片机稳定工作有至关重要的作用。并且可以延长它的使 用寿命。c2.4.5 自动报警电路下列二种情况发生系统报警:1 当水位达到上限极限水位时报警,水位到达上限极限水位时系统发出报警; 2 当水位达到下限极限水位时报警,水位到达下限极限水位时系统发出报警;ua21 1ua3237 4l s33 q+12br1 kl sspe ake r图 6 自动报警电路的接线图 - 6 -t i t l e

15、a水位检测报警系统3 水位检测系统的整体电路仿真图图 7 水位控制系统仿真图3.1 实物图图 8 实物图4 各种水位情况下的仿真图 4.1 高水位状态- 7 -水位检测报警系统加水水到达在蓄水位时:高水位警示灯红灯闪烁急促,蜂鸣器快频率鸣叫。 仿真图如下所示:图 9 高水位仿真图4.2 低水位状态水位减少到低水位时:低水位警示红灯闪烁,蜂鸣器低频率鸣叫。仿真图如 下所示:图 10 低水位仿真图 - 8 -水位检测报警系统5 通信单元硬件设计max485 仅有 8 个管脚,电路设计比较简单。图 11 max485 引脚图ro 引脚接到单片机串口接收引脚 rxd(p3.0),di 引脚接到单片机串

16、口发送 引脚 txd(p3.1)。由于 max485 为半双工通信方式,不能同时发送和接收数据, 只能通过控制 re 和 de 引脚的状态来进行发送数据和接收数据的转换。为了节省 单片机 i/o 口资源,将 re 和 de 引脚连在一起,输入低电平时,max485 处于接 收状态;输入高电平时,其处于发送数据状态。定义 re 和 de 连接在一起的网络 标号为 e,接入单片机 p1 口,用于发送与接收的转换。a,b 端为发送接收差分 信号端,一般需在 a,b 端之间加匹配电阻,匹配电阻为 120。硬件电路如图3-13:图 12 串行通信模块电路图6 上位机显示单元上位机编程与下位机结合对应,下

17、位机发“ 0”代表当前水位为高水位,下 位机发“1” 代表当前水位为低水位。水位变化当高水位发“0”时上位机接受到对应 ascii 码为 48,此时上位机 显示“警戒!当前水位为高水位!”。- 9 -水位检测报警系统水位变化当高水位发“1”时上位机接受到对应 ascii 码为 49,此时上位机 显示“警戒!当前水位太低!”。图 13 上位机程序代码6.1 上位机接受部分控件窗体图 14 水位检测报警系统窗体- 10 -水位检测报警系统7 设计总结通过这次项目设计,上位机和下位机的编程中我对软件开发有了进步的了 解,把理论知识应用于实验中。也让我重新熟悉了 c 语言和 c#语言的相关内容, 加深

18、了对 c 语言、c#语言知识的深化和用途的理解。在这次的项目设计过程中, 我发现自己的基础知识和应用能力都很差。刚接过项目,按照设计步骤走的时候, 在很多都卡住了,原理的知识忘记了很多,以至于在设计开始时必须得先复习一 下相关的基础知识。在老师和同学的帮助下我顺利的完成了这次项目设计,对于我来说,收获最 大的是方法和能力;那些分析和解决问题的能力。在整个项目设计的过程中,我 发现我们学生在经验方面十分缺乏,空有理论知识,没有理性的知识;有些东西 可能与实际脱节。总体来说,我觉得像课程设计这种类型的作业对我们的帮助还 是很大的,它需要我们将学过的相关知识系统地联系起来,从中暴露出自身的不 足,以

19、待改进!本次的项目设计,培养了我们综合应用设计项目及其他项目的理论知识和理 论联系实际,应用生产实际知识解决工程实际问题的能力;在设计的过程中还培 养出了我们的团队精神,同学们共同协作,解决了许多个人无法解决的问题;在 今后的学习过程中我们会更加努力和团结。我决定认真总结这次项目设计的经验,以及学习到的知识,来更加的充实自 己的头脑和完善自己的知识结构。另外,我也在这次设计中看到了自己的许多不 足之处,通过项目设计,发现自己在理论研究和实际工作能力等方面都得到了提 高,同时在老师的指导和课题组同学的共同帮助下,及时总结研究成果,这些无 疑会对我今后的工作和学习带来很大的帮助。总之,这次的课程设

20、计的顺利完成 使我受益匪浅。要做好一个项目的设计,就必须做到:在设计程序之前,对所用单片机的内 部结构有一个系统的了解,知道该单片机有哪些资源;要有一个清晰的思路和一 个完整的软件流程图;在设计程序时,不能妄想一次将整个程序设计好,反复修 改、不断改进是程序设计的必经之路;要养成注释程序的好习惯,这样为资料的 保留和交流提供了方便;在设计中遇到的问题要记录,以免下次遇到同样的问题。在这次的项目设计中,我真正的意识到,在以后的学习中,要理论联系实际, 把我们所学的理论知识用到实际当中,学习单片机更是如此,程序只有在经常写- 11 -水位检测报警系统与读的过程中才能提高,这就是这次项目设计的最大收

21、获。8 参考文献1王祁. 智能仪器设计基础m. 北京:机械工业出版社,2009.2张毅刚,彭喜元,董继成.单片机原理及应用m.北京:高等教育出版社,2003. 3 蔡 黎 . 一 种 基 于 单 片 机 的 水 位 控 制 系 统 设 计 j. 仪 器 仪 表 用 户,2007,14(4):44-45.4 李书旗 , 沈金荣 . 液位测量传感器系统的设计与实现 j. 计算机测量与控 制,2009,17(11):2131-2133.5王洪君.单片机原理及应用m. 济南:山东大学出版社,20096阎石. 数字电子技术基础m. 北京:高等教育出版社,2006.7 刘得 营, 张志 霞 等 . 单 片

22、机 原理 及接 口技术 m. 中 国水 利 水电出 版社 2006.3-48刘刚 单片机原理及应用 中国林业出版社评语指导教师成绩(签字)年月日- 12 -水位检测报警系统附录 1上位机程序设计水位检测报警系统 c#语言程序如下:using system;using system.collections.generic;using system.componentmodel;using system.data;using system.drawing;using system.linq;using system.text;using system.windows.forms;using sys

23、tem.io.ports;using system.threading;namespace 水位检测报警系统上位机控制public partial class form1 : formserialport port;public form1()initializecomponent();private void form1_load(object sender, eventargs e) string portnames = serialport.getportnames(); comboboxport.items.clear();if (portnames.length 0)for (int

24、32 i = 0; i portnames.length; i+) comboboxport.items.add(portnamesi);- 13 -水位检测报警系统comboboxport.selectedindex = 0;comboboxbaudrate.selectedindex = 1;comboboxdata.selectedindex = 0;comboboxstop.selectedindex = 1;elsecomboboxport.text = 无串口; btncloseport.enabled = false;public delegate void showinfo(s

25、tring str);byte cmd = new byte2;thread t;private void btnopenport_click(object sender, eventargs e)port = new serialport ();port.portname = comboboxport.selecteditem.tostring();port.baudrate = convert.toint32(comboboxbaudrate.selecteditem);port.parity = parity.none;port.databits = convert.toint16(co

26、mboboxdata.selecteditem);port.stopbits = stopbits.one;if (port.isopen = false)tryport.open();t = new thread(new threadstart(recievedata); t.start();listbox1.items.add( 串口打开成功!); btncloseport.enabled = true;btnopenport.enabled = false;- 14 -水位检测报警系统comboboxbaudrate.enabled = false;comboboxdata.enable

27、d = false;comboboxport.enabled = false;comboboxstop.enabled = false;catch listbox1.items.add( 串口打开失败);private void recievedata()while (true)int str;float st;string info;str = port.readbyte();switch (str)case 48:info = 警戒!当前水位为高水位!;break;case 49:info = 警戒!当前水位太低!;break;default:info = 接收数据失败,无法知道当前水位!; break;showinfo(info);- 15 -水位检测报警系统public void showinfo(string str)if (listbox1.invokerequired)showinfo d = new showinfo(showinfo); listb

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论