水箱水位遥测装置(含完整代码)_第1页
水箱水位遥测装置(含完整代码)_第2页
水箱水位遥测装置(含完整代码)_第3页
水箱水位遥测装置(含完整代码)_第4页
水箱水位遥测装置(含完整代码)_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

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

文档简介

1、课程设计报告设计题目: 水箱水位遥测装置的设计方案 学 院: 专 业: 电子信息科学与技术 班 级: 2011级 1班 学 号: 姓 名: 电子邮件: 时 间: 2014年11月4日 成 绩: 指导教师: 华 南 农 业 大 学理 学 院 应 用 物 理 系课 程 设 计(报告)任 务 书学生姓名 指导教师 职称 副教授 学生学号 专业 电子信息科学与技术 题目 水箱水位遥测装置的设计方案 任务与要求1 利用水位探针和超声波测距检测水位。2 检测水位信号并通过红外信号发送并显示。3 掌握一些应用电子和光电等知识,懂得水位探针、超声波测距和红外传输的工作原理。4 掌握单片机的中断系统及红外编码解

2、码的编写方法及程序调试的方法。5 掌握硬件设计及焊接工艺。开始日期 2014年10月18日 完成日期 2014年11月 09日水箱水位遥测装置的设计设计方案一、概述与应用背景本课程设计是利用水位探针、超声波测距和红外传输功能实现水箱水位遥测的功能。水位探针采用阴阳极导通产生触发性的水位信号;超声波测距用于实时检测水位的高低;红外传输可以进行远距离的信号显示。二、工作进度、组内分工与合作情况10-18至10-23:完成设计方案、实验器材购买;10-24至11-05:完成电路设计与仿真、实验装置制作;11-05至11-09:完成实验装置的调试并完成课程设计报告和实物展示准备。三、使用主要电子元件及

3、个数STC89C52单片机2个、红绿黄LED各2只、万能实验板2块、水位探针、3位共阴数码管1个、超声波测距模块1个、蜂鸣器1只、红外发射二极管1只、红外接收器1个、5V电源、电容、电阻、导线插座若干。四、电路图以及仿真测试1、电路总设计图2、发射端:水位探针模块、超声波测距模块、红外发射模块3、接收端:红外接收模块、显示报警模块4、仿真测试本实验采用proteus模拟仿真电路是否工作正常,然后利用单片机开发板进行实物仿真。开发板实物仿真各个模块显示正常。低水位和高水位探针导通是D1、D3分别亮起,同时蜂鸣器报警,否则D2亮。超声波测量水位数据通过红外编码解码后在数码管上正常显示,单位为CM。

4、五、程序流程图1、检测水位发射端程序流程图:version_final_transmit 2、接收端显示程序流程图:version_final_receive 六、作品演示1、演示效果图6.1 水箱水位遥测装置 6.2 水箱以及检测发射端 6.3 接收显示报警端 6.4接收端背面 6.5发射端背面6.6 低水位工作状态图6.7 正常水位工作状态图6.8 高水位工作状态图2、电路使用说明打开电源,将接收端放置与发射端垂直面,距离在10-100cm内能够正常工作。向水箱中放入浮块后即可加水进行测试。当水位低于低水位探针,红灯亮,蜂鸣器报警,表明此时水位过低;当水位高于低水位探针且低于高水位探针,绿

5、灯亮,蜂鸣器关闭,表明此时水位正常;当水位高于高水位探针,黄灯亮,蜂鸣器报警表明此时水位过高。3、水位测量结果及误差分析接通电源,调试发射接收板工作正常,向水箱中缓慢注水,观测接收板数码管的显示,记录如下表1。表1 测试结果记录表显示高度(CM)实际高度1(CM)实际高度2(CM)平均高度(CM)32.93.13444455.14.9566.25.86777.1788.18.38.299.299.11010.110.210.151111.21111.1121212.212.11312.91313141414.214.11515.115.315.2表2 线性分析表通过表1取平均数进行线性分析得表

6、2。由于传感器和其他器件本身并非理想线性,程序中对实测数据进行了线性补偿。误差分析:经校准,非线性补偿后,误差已基本达到要求。七、设计方案中的不足及改进1、此次设计方案中虽采用了水位探针和超声波液位测量互补的方式,克服了一定的缺点但是还存在测量精度的不佳的问题。改进:经费允许的情况下,可以采用电容式的水位探针可以进一步的改善水位的测量的精度。2、限于工艺问题,加水与倒水需要通过人工控制。改进:这可以通过设置继电器控制水的进出。3、由于浮块在加水的时候容易出现摇摆,导致超声波测距出现不稳定的跳动显示。改进:可以采用两点式垂直固定浮块以减轻浮块的波动。八、实验总结经过为期三周的光电子技术课程设计,

7、我们完成了水箱水位遥测装置的设计,圆满完成了实验的基础要求和扩展要求。实验开展之前,我们小组先通过查询关键元件的资料来确定一套可行性比较高的方案。经过多次的讨论、斟酌以及修改后开始着手设计硬件电路和购买元器件。我们先通过在计算机上进行元件仿真和程序的编写完成最基础基本电路的运行以确认方案可行。同时利用单片机开发板进行实物确认各个模块设计的功能能够实现。接着我们对元器件进行焊接。在焊接过程中,我们采用先焊接最小电路已经把需要用到的引脚引出来,布线尽量做到不飞线,同时元器件放置尽量紧凑。而在编写程序的过程中,我们也遇到了一些问题,例如数据码位数弄错、数码管显示不稳定等问题。但是经过小组内讨论修改和

8、其他小组交流经验的过程中,我们修正了我们程序中的错误,使之可以完成工作。同时软件编写过程中我们采用了版本更新的方式进行编写,对于一个功能的改动和新增都会保存成一个版本,方便我们在设计中的分析找错和还原。在整个过程中,我们不但巩固了红外传输系统、超声波测距原理和单片机等专业知识,同时也培养了小组合作精神以及个人吃苦耐劳的优良作风,获益良多。九、参考文献(1)江文杰、曾学文、施建华,光电技术,科学出版社,2009。(2)李朝青,单片机原理及接口技术,北京航空航天大学出版社,2006,p112-226。附录:程序清单version_final_transmit.c#include #include

9、#define uchar unsigned char#define uint unsigned intsbit out= P10;sbit RX = P00;sbit TX = P01; sbit ls = P02;sbit hs = P03;uchar S,X,C,i,a,num1,posit;uint time,timer;void delayms(uchar aa) /延时程序for(a=aa;a0;a-)_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();void khz(uchar time) /是发射38

10、KHZ的程序for(a=time;a0;a-) out=0; /低17usi=7; while(i0)i-; out=1; /高9us void Count() time = TH0 * 256 + TL0;TH0 = 0;TL0 = 0;C = (time*1.7) / 100; /C单位是CMif(ls=0)if(hs=0)X = 0xc0; /高水位11else X = 0x40; /正常水位01elseX = 0x80; /低水位10S = (C&0x3f)|X;void transmit()/用38KHz载波发送数据khz(116); delayms(125);for(num1=8;

11、num10;num1-) khz(40);if(S&0x01)delayms(93); /延时1.5mselsedelayms(65); /延时1msS=S1;khz(20);void zd3() interrupt 3 /800MS启动模块TH1 = 0xf8;TL1 = 0x30;timer+;if(timer=400) timer=0;TX=1; /800MS 启动一次模块_nop_();_nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _n

12、op_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); TX=0; void init()X = 0;TMOD=0x11; /设T0为方式1TH0=0;TL0=0; TH1=0xf8; /2MS定时TL1=0x30;ET0=1; /允许T0中断TR1=1; /开启定时器EA=1; /开启总中断void main() init();while(1) while(!RX); /当RX为零时等待TR0=1; /开启计数while(RX); /当RX为1计数并等待TR0=0; /关闭计数Count()

13、; /计算transmit(); /发射version_final_receive.c#include#include#define uchar unsigned char#define uint unsigned intsbit in=P32;sbit hsled = P12;sbit msled = P11;sbit lsled = P10;bit flag;uchar S,C,X,num,i,a,posit;unsigned char const discode =0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f;uns

14、igned char const positon3=0xfe,0xfd,0xfb; /百位 十位 个位unsigned char disbuff3 = 0,0,0;void init()flag=1;in=1;EA=1;EX0=1;IT0=1;S = 0;void delayms(uchar aa)for(i=aa;i0;i-)_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();void Display() /数码管扫描 P0=discodedisbuffposit;P2=positonposit;if(+posit=3)posit=0;void C

15、ount() C = (S&0x3f);disbuff0 = C % 1000 / 100;disbuff1 = C % 1000 % 100 / 10;disbuff2 = C % 1000 % 10 % 10;X = (S&0xc0);if(X=0x80) /10 低水位lsled = 0;msled = 1;hsled = 1;else if(X=0x40) /01 正常水位lsled = 1;msled = 0;hsled = 1;else if(X=0xc0) /11 高水位lsled = 1;msled = 1;hsled = 0;void main()init();while(1)Display();delayms(50);void receive() interrupt 0EX0=0;for(a=5;a0;a-)delayms(35); /延时0.5ms 判断5次 5*0.52.5msif(in)flag=0;if(flag) delayms(72); /延时

温馨提示

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

评论

0/150

提交评论