




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
PAGEPAGE3智能液位传感器摘要摘要:介绍了压力传感器的应用,设计了智能液位传感器。此设计通过压力传感器测出液体的压力,输出0-+5V的模拟电压通过ADC0804采集转换成数字量送入单片机处理,由RS232串口通信送到上位机,并显示出高度。此设计能完成0—1.5m高度的液位测量,能精确到厘米。此设计主要由压力传感器,单片机,ADC0804转换器构成。关键词:智能液位传感器,单片机,AD转换器Abstract:Thisarticleintroducestheapplicationofpressuresensor,anddesignsaintelligentlevelsensor。Thisdesigndetectstheliquidpressurethroughthepressuresensors,anditwillsendthevoltagefrom0to5VwhichisconvertedintodigitalquantitybythesimulationADC0804acquisitiontotheSCMprocessing。ThenthedigitalwillbesenttothePCwhichshowsthehighbyRS232serialinterfacecommunication.Thisdesigncanfinish0to1.5mhighlevelmeasurement,andaccuratetocm。Thisdesignmainhavepressuresensor,asingle-chipmicrocomputer,andADC0804convertertoform。Keywords:Intelligencelevelsensor,Single-chipmicrocomputer,ADconverter目录TOC\o”1-3"\h\z\uHYPERLINK\l”_Toc303009769”1绪论 4_Toc303009771”1。2设计任务与要求 5HYPERLINK\l”_Toc303009772”1。3智能液位传感器的基本原理 5HYPERLINK\l”_Toc303009773"2总体方案设计 6_Toc303009775”2。2方案论证 72。3方案可能的扩展功能 83单元模块电路的设计 93.1.2ADC0804数据采集转化部分 9HYPERLINK\l”_Toc303009781”3.1.3单片机最小系统模块 10HYPERLINK\l”_Toc303009782"3.1。4RS232模块 11HYPERLINK\l”_Toc303009783"3。2电路参数计算及元器件的选择 12_Toc303009785"3.3特殊元器件介绍 133。1.2压力传感器D3B 16HYPERLINK\l”_Toc303009788"3.4个单元模块的联接 17_Toc303009790"4.1软件设计原理及所用的工具 194.1。1单片机部分 194。2软件的设计流程框图 22_Toc303009795”5系统调试 24HYPERLINK\l”_Toc303009796"5。1硬件结构部分 24HYPERLINK\l”_Toc303009797"5.2VB部分 24_Toc303009802"6.2系统各部分的测试参数 26HYPERLINK\l”_Toc303009803"6。2。1AD部分调试参数 26HYPERLINK\l”_Toc303009804"6.2.2系统测量液面高度的数据参数 276。2.3调试总结 28HYPERLINK\l”_Toc303009806”7结论 29HYPERLINK\l”_Toc303009807”8总结与体会及感谢语 30附录 32附录1: 329600,N,8,1"’串口通讯初始化:波特率为9600,没有校验位,八位数据传送,一位停止位MSComm1。RThreshold=1MSComm1。InputMode=comInputModeText'以文本形式接收数据Combo1。AddItem”COM1”Combo1.AddItem"COM2”Combo1。AddItem”COM3"Combo1.AddItem”COM4"Combo1。AddItem"COM5"Combo1.AddItem”COM6"j=0EndSub程序的核心部分:VB的串口通讯控件MSCommPrivateSubMSComm1_OnComm()DimaAsStringSelectCaseMSComm1。CommEventCasecomEvReceive'每接收一个数据就触发一次事件a=MSComm1.Inputb=Asc(a)e(j)=b'收20个数据取平均值再显示出来减小抖动j=j+1Ifj=19ThenMSComm1。PortOpen=FalseFork=0To19summ=summ+e(k)Nextkc=summ/20summ=0i=(c/255)*10Ifi<0。08ThenText2。Text=0Text1。Text=0ElseText2.Text=i*1。04Text1。Text=18。33766*i*1.04EndIfMSComm1.PortOpen=Truej=0EndIfEndSelectEndSub4。2软件的设计流程框图开始开始ADC0804的初始化串口的初始化打开AD,对数据采集转换串口通信将数据传送给上位机结束VB通过MSComm控件接收数据,进行数字滤波,显示电压4.3软件设计总结软件设计中主要运用了所学的单片机课程和VB语言中的知识,单片机中的程序用的是C语言。程序主要包含了ADC0804的初始化;调用串口功能;串口的初始化;延时程序,主代码段实现了打开AD并对数据进行采集转换。上位机利用的是VB的知识,利用串口通信控件MS。COM来实现的。编写出来的显示界面如下图4.1:图4.1显示界面该界面内可以选择串口端口号,达到了本次设计的基本要求,显示了AD的输入电压和测得的液面高度值.5系统调试5。1硬件结构部分硬件部分我们先是通过PROTEL软件画的AD部分;单片机部分和RS232部分的原理图,然后这部分没有画PCB图就直接用万用板和排线进行搭建的。这样在焊接的过程中就会显得比较麻烦,必须很细心才能很好的完成,如果哪个地方焊接错误或者是将要用到的引脚没有焊接上都会导致系统不能工作.比如像我们这次的设计就出现过这样的问题,在焊接完单片机最小系统和RS232串口通信后觉得因该能下载程序到单片机内部了,结果利用直流可调的稳压电源给单片机加了+5V的工作电压结果单片机不能工作。在经过讨论发现应该是单片机没有起振,然后发现是晶振的两个引脚焊接反了,这样小小的失误会导致严重的后果。在焊接好ADC0804部分后我们对其进行了调试,在调试AD时,我们发现通过P0口始终不能将数据写到AD,后来经过查阅资料发现,要想使P0口输出数据必须在P0口接上拉电阻,后来我们换P2口为数据输出口,才成功将AD驱动成功。5.2VB部分上位机部分的调试是结合前面的AD采集系统一起来进行调试的这样下过会更直观.这里的调试用到了直流可调的稳压电源,给单片机加上+5V的工作电压后在AD输入端加上0-5V的输入电压然后利用RS232串口通信将采集并转换的电压值显示在PC上利用VB做的显示界面上.结果发现当AD没有给输入电压时,上位机显示有输入电压,经过查资料发现这是由于由于AD器件本身的原因,当没有给输入时,其输入端呈高阻状态,所以当没有输入时,所测到得电压是错误的,为了解决这个问题我们尝试了几种方法,其中是用运放做电压跟随器来进行阻抗变换,使AD输入端不再悬空,但是由于很多运放都不是轨道轨的运放(即不是满伏输出运放),而且会大大增加硬件的结构,所以不选择这种方法,后来我们想到给输入端加下拉电阻的方法,可以将输入端电压拉至地端,并且当有输入时,其显示的电压也是输入电压.在刚开始设计上位机显示这部分时我们没有想到由于系统整体的原因,所采集到得数据有很大的抖动,讨论过后发现是有多方面的原因的.其一就是我们这次设计采用的AD0804的采集转换时间为100us,这个时间是非常短的所以数据在不断地更新。后来经过老师对数字滤波的详细讲解,我们下来也查阅了于数字滤波相关的资料,然后运用到上位机部分。在程序部分利用取多组数据再取均值的方法,虽然系统的测试速度有所变慢,但数据抖动很小,只在百分位抖动,影响不大。VB加的部分程序如下:Fork=0To19summ=summ+e(k)Nextkc=summ/20summ=0i=(c/255)*105。3压力传感器部分传感器部分主要我们是购买的成品回来,在调试时主要是检验其是否到达要求,输出的线性度如何。在测试时我们把G-接地,I—接+5V另与O—之间加上2K上拉电阻即可通过0-输出,然后给传感器装上水管后先不加水看起输出的电压时多少,再不断的加水看输出的电压是否在给的范围之内,再加水到传感器的极限输出即传感器的最大输出电压是多少。6系统功能及指标参数6。1系统功能本次设计的智能液位传感器主要能实现以下功能:压力传感器采用的测量液体的压强的方式来实现测量液面高度;设计的单片机系统能控制ADC对压力传感器的输出电压信号进行采集并转换;测量范围能基本达到设计的要求在0—1米的范围内误差较小;能在上位机上直观的显示出测量的液面高度;6。2系统各部分的测试参数6.2。1AD部分调试参数在调通AD后我们对AD的数据采集功能进行了测试,测试数据如下图6。1:图6.1AD的采集数据与给定的输入数据这几组数据都是在室内测得的,都是在室温接近30度的情况测得。我们对所测得的数据进行了处理,一共测了5组数据(给定的输入电压是在直流稳压电源上直接读的,而测得的数据则是通过我们所做的上位机显示程序读出来的),求出了每组数据的样本均值和样本方差,通过直观的观察发现和给定的AD输入误差不是很大,我们也通过excel做表发现这几组测得的数据与给定的输入电压误差很小。这说明AD的线性度还是比较高的.6。2.2系统测量液面高度的数据参数这里测的数据是整个系统组在一起进行的测量,测量我们所给的液面高度。测得的数据如下图6。2:图6。2液面高度的测量数据这些数据都是在室内测得的,在室温30度左右测得。一共测了三组数据,电压利用上位机显示程序直接读得,而高度的数据则是用米尺测得,一个电压对应一个液面高度。数据处理则是求斜率的问题,每一个高度对应一个斜率主要为后面的上位机显示液面高度的VB程序找一个理论的依据。这样也可以看压力传感器的工作的线性度如何。6。2.3调试总结通过调试我们发现调试时最费时间的药考虑很多因素,调试过程要将整个系统组合起来看工作是否正常,能否达到基本的要求。我们设计的只能液位传感器能基本满足设计的基本要求,通过压力传感器测量液位的压强方式,ADC0804对压力传感器的输出的模拟电压进行采集和转换送入单片机然后通过RS232串口通信传送到上位机上显示液面的高度。实现了将二进制的量化转换为以厘米为单位的ASCLL标准字符串形式传送到PC机.测量范围在0—1米内时误差能基本满足要求。误差主要就是来至压力传感器的输出与ADC0804的输入有一定的差距,这主要是由于整个系统连接起来过后传感器的内部电阻将其输出电压拉下来了,我们在以后对系统加入电压跟随器来改善.7结论本次设计的智能液位传感器达到了预期的基本要求,主要特色之一就是直接利用压力传感器测液体的压力的方式实现了测液面的高度,这种方式实现起来比较容易;其二就是将测量系统与PC机相结合起来这样对数据的读数比较直观,并且能精确到厘米.不过此设计也有很多不足之处,测量时要在容器的底部开口才能读出压力,还可以加入报警系统,当测量超出范围时,系统自动报警。还有就是还可以加上一定的数据存储能力,这样要对以前的数据进行研究的地方非常有帮助。8总结与体会综合上述各部分的测试结果,本设计完成了课程设计的大多数的要求。基本达到了预期的目标。这次智能综合设计历时接近一个月,在这期间可以说是苦多于甜,但是可以学到很多很多的东西,不仅可以巩固以前所学过的知识,而且学到了很多书本上没有接触过的知识.以前接触的那些程序都是很短很基础的,但是在课程设计中碰到了一些复杂的程序编写,这时画程序方框图就显得很有必要了。通过画程序方框图可以使我们对所要完成的每一步任务都有一个很清楚的思路,让我们明白每一步的任务,同时在程序测试的过程中也有利于查错。另外,以前对于编程工具的使用还处于一知半解的状态上,经过一段上机的实践,对于怎么去排错、查错,怎么去看每一步的运行结果,怎么去了解每个寄存器的内容以确保程序的正确性上都有了很大程度的提高。这次课程设计终于顺利完成了,在设计中遇到了很多编程问题,最后在同学们的帮助下并且查阅了很多相关的资料才得以解决。通过本次课程设计,我进一步温习和巩固了课本的理论知识,增强了理论联系实际的能力,同时也增强了我通过检索资料来获取相关专业信息以及利用检索到的信息来解决面临问题的能力.本次设计使我深刻认识到自己软件编程方面的知识薄弱,同时也使我体会到软件编程在实际硬件电路连接中的重要作用,软件编程的使用使硬件开销大大减少,同时也使设计更加的简洁易于控制,在今后的学习中我们会加强软件编程方面知识的积累和运用,会更加注重理论与实际的结合.在这次作品制作过程中,我们知道了要真正的做出作品需要考虑非常多的因素,有些看似不起眼的细节都可能对电路产生巨大的影响,如连线是否可等。通过这次课程设计自己看到了许多工程和一些产品中的要求,让自己明白了自己现在缺乏很多工程意识和思考问题的全面性。在此我要特别感谢我们的课程设计指导老师郑海春老师.在设计过程中他为我们提供了很多的帮助和指导。在老师的身上我们学也到很多实用的知识,在此我们表示感谢!同时,对给过我们组帮助的所有同学和各位指导老师再次表示忠心的感谢!9参考文献[1]汪德彪。MCS—51单片机原理及接口技术[M].北京电子工业出版社。2004.[2]胡文金,钟秉翔.单片机应用技术实训教程[M]。重庆大学出版社.2005.[3]张毅刚,彭喜元,董继成.单片机原理及应用[M].重庆大学出版社。2003.[4]谢自美.电子线路设计•实验•测试[M]。武汉:华中科技出版社,2000.5[5]谭浩强。C程序设计(第三版)[M].北京:清华大学出版社,2008。1[6]王华奎。数字信号处理及应用[M].北京:高等教育出版社,2006。12[7]姚燕南.微型计算机原理与接口技术[M].北京:高等教育出版社,2006.4[8]古天祥。电子测量原理[M]。北京:机械工业出版社,2009。1[9]徐科军。传感器与检测技术[M].北京:电子工业出版社,2010.11附录附录1:总电路图如下图1:图1总电路图实物图如下图:实物图1实物图2实物图3附录2:程序单片机程序如下:#include<reg52.h〉#defineucharunsignedchar#defineuintunsignedintucharflag,i,j;sbitwr=P3^6;sbitrd=P3^7;voiddelay(uintz){ uintx,y; for(x=z;x>0;x—-) for(y=110;y>0;y-—);}voidadopen()//adc0804初始化{ wr=1; wr=0; wr=1; delay(1); rd=0; i=i; i=i;//延时 j=P1;rd=1; }voidinitial()//串口初始化{ TMOD=0x20;//设置定时器1为工作方式2 TH1=0xfd; TL1=0xfd; TR1=1; REN=1;//串口始能REN=1时允许串行口接收数据 SM0=0;//模式1,8位数据,波特率由软件设置 SM1=1; EA=1;//总通断ES=1;//串口通断}voidmain(){initial();while(1){adopen(); if(flag==1){ES=0;flag=0;SBUF=j/2;while(!TI); TI=0;ES=1;}}}voidser()interrupt4//串口中断{while(TI);flag=1;}上位机VB部分程序如下:DimiAsSingleDimjAsIntegerDimkAsIntegerDimd(1)AsByteDimbAsLongDimcAsDoubleDimsummAsDoubleDime(20)AsDoublePrivateSubCombo1_click()MSComm1.CommPort=Combo1。ListIndex+1'选择通讯口EndSubPrivateSubCommand1_Click()MSComm1。PortOpen=True’打开串口EndSubPrivateSubCommand10_Click()EndEndSubPrivateSubForm_Load()’设置串口MSComm1.Settings="9600,N,8,1”’串口通讯初始化:波特率为9600,没有校验位,八位数据传送,一位停止位MSComm1.RThreshold=1MSComm1。InputMode=comInputModeText’以文本形式接收数据Combo1。AddItem”COM1"C
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 初级审计师学习资料分享试题及答案
- 消防设备新技术动态试题及答案
- 中级会计考试前景分析试题及答案解读
- 2025年二级消防工程师应试案例试题及答案
- 2025年护师围手术期护理试题及答案
- 四年级数学(小数加减运算)计算题专项练习与答案汇编
- 安全生产管理实践试题及答案
- 深入挖掘2024年审计师试题及答案价值
- 电能计量装置的竣工验收及运行维护
- 医疗器械企业的质量管理与商业伦理
- 2024年宝鸡市城投资产管理有限公司招聘笔试真题
- 2025企业主要负责人安全培训考试试题及答案典型题
- 机械样机摆放协议书
- 地毯维修工程合同协议
- 2025年嘉兴市九年级中考语文一模试卷附答案解析
- 2025年安徽数学中考第2题:科学计数法【含答案】
- 荒料购销合同协议
- 2024年榆林市社区专职工作人员招聘考试真题
- MOOC 创业基础-暨南大学 中国大学慕课答案
- (完整版)高中化学必修2有机化合物试题.doc
- 可填充颜色的中国地图,世界地图,各省市地图填色
评论
0/150
提交评论