水箱水位遥测装置(含完整代码)课程设计

上传人:油条 文档编号:39921943 上传时间:2018-05-21 格式:DOC 页数:19 大小:16.48MB
返回 下载 相关 举报
水箱水位遥测装置(含完整代码)课程设计_第1页
第1页 / 共19页
水箱水位遥测装置(含完整代码)课程设计_第2页
第2页 / 共19页
水箱水位遥测装置(含完整代码)课程设计_第3页
第3页 / 共19页
水箱水位遥测装置(含完整代码)课程设计_第4页
第4页 / 共19页
水箱水位遥测装置(含完整代码)课程设计_第5页
第5页 / 共19页
点击查看更多>>
资源描述

《水箱水位遥测装置(含完整代码)课程设计》由会员分享,可在线阅读,更多相关《水箱水位遥测装置(含完整代码)课程设计(19页珍藏版)》请在金锄头文库上搜索。

1、课课程程设设计计报报告告设计题目: 水箱水位遥测装置的设计方案水箱水位遥测装置的设计方案 学 院: 专 业: 电子信息科学与技术 班 级: 2011 级 1 班 学 号: 姓 名: 电子邮件: 时 间: 2014 年 11 月 4 日 成 绩: 指导教师: 华华 南南 农农 业业 大大 学学理理 学学 院院 应应 用用 物物 理理 系系课课 程程 设设 计(报告)任计(报告)任 务务 书书学生姓名 指导教师 职称 副教授副教授 学生学号 专业 电子信息科学与技术 题目 水箱水位遥测装置的设计方案水箱水位遥测装置的设计方案 任务与要求任务与要求1 利用水位探针和超声波测距检测水位。2 检测水位信

2、号并通过红外信号发送并显示。3 掌握一些应用电子和光电等知识,懂得水位探针、超声波测距和红外传输的工作原理。4 掌握单片机的中断系统及红外编码解码的编写方法及程序调试的方法。5 掌握硬件设计及焊接工艺。开始日期 2014 年 10 月 18 日 完成日期 2014 年 11 月 09 日水箱水位遥测装置的设计设计方案水箱水位遥测装置的设计设计方案一、概述与应用背景一、概述与应用背景本课程设计是利用水位探针、超声波测距和红外传输功能实现水箱水位遥测的功能。水位探针采用阴阳极导通产生触发性的水位信号;超声波测距用于实时检测水位的高低;红外传输可以进行远距离的信号显示。二、工作进度、组内分工与合作情

3、况二、工作进度、组内分工与合作情况10-18 至 10-23:完成设计方案、实验器材购买;10-24 至 11-05:完成电路设计与仿真、实验装置制作;11-05 至 11-09:完成实验装置的调试并完成课程设计报告和实物展示准备。三、使用主要电子元件及个数三、使用主要电子元件及个数STC89C52 单片机 2 个、红绿黄 LED 各 2 只、万能实验板 2 块、水位探针、3 位共阴数码管 1 个、超声波测距模块 1 个、蜂鸣器 1 只、红外发射二极管 1 只、红外接收器1 个、5V 电源、电容、电阻、导线插座若干。四、电路图以及仿真测试四、电路图以及仿真测试1、电路总设计图2、发射端:水位探

4、针模块、超声波测距模块、红外发射模块3、接收端:红外接收模块、显示报警模块4、仿真测试本实验采用 proteus 模拟仿真电路是否工作正常,然后利用单片机开发板进行实物仿真。开发板实物仿真各个模块显示正常。低水位和高水位探针导通是 D1、D3 分别亮起,同时蜂鸣器报警,否则 D2 亮。超声波测量水位数据通过红外编码解码后在数码管上正常显示,单位为 CM。五、程序流程图五、程序流程图1、检测水位发射端程序流程图:version_final_transmit2、接收端显示程序流程图:version_final_receive六、作品演示六、作品演示1、演示效果图6.1 水箱水位遥测装置6.2 水箱

5、以及检测发射端 6.3 接收显示报警端6.4 接收端背面 6.5 发射端背面6.6 低水位工作状态图6.7 正常水位工作状态图6.8 高水位工作状态图2、电路使用说明打开电源,将接收端放置与发射端垂直面,距离在 10-100cm 内能够正常工作。向水箱中放入浮块后即可加水进行测试。当水位低于低水位探针,红灯亮,蜂鸣器报警,表明此时水位过低;当水位高于低水位探针且低于高水位探针,绿灯亮,蜂鸣器关闭,表明此时水位正常;当水位高于高水位探针,黄灯亮,蜂鸣器报警表明此时水位过高。3、水位测量结果及误差分析接通电源,调试发射接收板工作正常,向水箱中缓慢注水,观测接收板数码管的显示,记录如下表 1。表 1

6、 测试结果记录表显示高度(显示高度(CMCM)实际高度实际高度 1 1(CMCM)实际高度实际高度 2(CM)2(CM)平均高度平均高度(CM)(CM)3 32.93.134 44445 55.14.956 66.25.867 777.178 88.18.38.29 99.299.1101010.110.210.15111111.21111.112121212.212.1131312.9131314141414.214.1151515.115.315.2表 2 线性分析表通过表 1 取平均数进行线性分析得表 2。由于传感器和其他器件本身并非理想线性,程序中对实测数据进行了线性补偿。误差分析:经

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

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

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

10、e 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) /是

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

12、125); for(num1=8;num10;num1-) khz(40); if(S /延时 1.5ms else delayms(65); /延时 1ms S=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_(

13、); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); TX=0; void init() X = 0; TMOD=0x11; /设 T0 为方式 1 TH0=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(); /计算 transmit(); /发射 version_final_receive.c #include #include #define uchar unsigned char #define uint unsigned intsbit in=P32; sbit hsled = P12;

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号