欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    基于51单片机超声波测距仪设计(13页).docx

    • 资源ID:37051267       资源大小:212.94KB        全文页数:12页
    • 资源格式: DOCX        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    基于51单片机超声波测距仪设计(13页).docx

    -基于51单片机超声波测距仪设计-第 12 页个性化实验基于51单片机超声波测距器设计摘要传统的测距方法存在不可克服的缺陷。例如,液面测量就是一种距离测量,传统的电极法是采用差位分布电极,通过给电或脉冲来检测液面,电极由于长期浸泡于水中或其他液体中,利用超声波测量距离就可以解决这些问题,因此超声波测量距离技术在工业控制、勘探测量、机器人定位和安全防范等领域得到了广泛的应用。本设计以STC89C52单片机为核心控制定时器产生超声波脉冲并计时,计算超声波自发射至接收的往返时间,从而得到实测距离。并且在数据处理中采用了温度补偿对声速进行调整,用1602液晶显示速度和测量距离。整个硬件电路有超声波电路、电源电路、显示电路等组成。个探头的信号经单片机综合分析处理,实现超声波测距器的功能。在此基础上设计了系统的总体方案,最后通过硬件和软件实现了测距功能。此系统具有易控制、工作可靠、测距准确度高、可读性强和流程清晰等优点,即过系统扩展和升级,可以有效的解决汽车倒车,建筑施工工地以及一些工业现场的位置监控。关键词:STC89C52;超声波;温度补偿;测距目录绪论4设计目的和意义4设计任务和要求4系统方案设计5设计原理5设计框图5主要元器件介绍6STC89C526LCD1602液晶显示器7HC-SR04超声波模块8DS18B20温度传感器10系统硬件结构设计11单片机电路11LCD显示电路11温度补偿电路12电源电路12系统软件设计13主程序流程13测距流程图14测试15测试结果15误差分析15总结16附录17整体电路图17PCB布线图18实物图19部分程序19主程序19测量距离20读取温度数值21绪论设计目的和意义在现实生活中,一些传统的距离测量方式在某些特殊场合存在不可克服的缺陷,例如,液面测量就是一个距离测量,传统的电极法是采用差位分布电极,通过给电或脉冲检测液面,电极长期浸泡在水中或其它液体中,极易被腐蚀、电解,从而失去灵敏性。而利用超声波测量距离可以很好地解决这一问题。目前市面上常见的超声波测距系统不仅价格昂贵,体积过大而且精度也不高等种种因素,使得在一些中小规模的应用领域中难以得到广泛的应用。为解决这一系列难题,本文设计了一款基于STC89C52单片机的低成本、高精度、微型化的超声波测距器。设计任务和要求设计一个超声波测距器,可以应用于汽车倒车、建筑施工工地以及工业现场的位置监控,也可以用于液位、井深、管道长度的测量等场合。要求测量范围在0.13.00m,测量精度1cm,测量时与被测物体无直接接触,能够清晰稳定地显示测量结果。系统方案设计设计原理发射端发出的超声波以速度v在空气中传播,在到达被测物体时被反射返回,由接收端接收,往返时间为t,由s=vt/2即可算出被测物体的距离。由于超声波也是一种声波,其声速v与温度有关,下表列出了几种不同温度下的声速。在使用时,如果温度变化不大,则可认为声速是基本不变的,如果测距精度要求很高,则应通过温度补偿的方法加以校正。本设计中使用公式v=331.4+T*0.61对声速进行校正。表一 超声波波速与温度的关系表温度()-30-20-100102030100声速(m/s)313319325332338344349386设计框图图一 超声波测距器设计框图温度补偿单片机控制超声波接收LCD显示超声波发送声光显示主要元器件介绍STC89C52STC89C52是一种带8K字节闪烁课编程可擦除制度存储器的低电压、高性能COMS8位微处理器,俗称单片机。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,STC的STC89C52是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且廉价的方案,STC89C52芯片引脚图如图所示。图二 STC89C52芯片引脚图LCD1602液晶显示器LCD液晶显示器具有体积小、功耗低、界面美观大方等优点。 1602显示模块用点阵图形显示字符,显示模式分为2行16个字符。它具有16个引脚,其正面左起为第一脚,如下图所示:图三 LCD引脚示意图第一脚GND:接地。第二脚VCC:+5V电源。第三脚VO:对比度调整端。使用时通过接一个10K的电阻来调节。第四脚RS:寄存器选择信号线。第五脚RW:读写信号线。第六脚E:使能端,当E由高电平跳变为低电平时执行命令。第714脚:8位数据线D0D7。第十五脚BLA:背光电源正极输入端。第十六脚BLK:背光电源负极输入端。表二 LCD1602操作指令操作控制表操作读状态写指令读数据写数据输入RS=0,RW=1,E=1RS=0,RW=0,D07=指令码,E=H脉冲RS=1,RW=1,E=1RS=1,RW=0,D07=数据, E=H脉冲1602液晶模块内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是01000001B(41H),显示时模块把地址41H中的点阵字符图形显示出来,我们就能看到字母“A”。因为1602识别的是ASCII码,实验可以用ASCII码直接赋值,在单片机编程中还可以用字符型常量或变量赋值,如A。1602通过D0D7的8位数据端传输数据和指令。HC-SR04超声波模块HC-SR04超声波传感器模块性能稳定,测度距离精确,模块高精度,盲区小。可提供2cm至400cm的非接触式距离感测功能,测距精度可达3mm。模块自身包括超声波发射器、接收器与控制电路。图三 实物正反两面图表三 HC-SR04电气参数HC-SR04工作原理及说明:1、 给Trig触发控制信号IO端口至少10us的高电平信号;2、 模块自动发送8个40khz的方波,并自动检测是否有信号返回;3、 有信号返回时,Echo回响信号输出端口输出一个高电平,高电平持续的时间就是超声波从发射到返回的时间;4、 两次测距时间间隔最少在60ms以上,以防止发射信号对回响信号的影响;图四 超声波时序图DS18B20温度传感器温度传感器主要由热敏元件组成。热敏元件品种教多,市场上销售的有双金属片、铜热电阻、铂热电阻、热电偶及半导体热敏电阻等。以半导体热敏电阻为探测元件的温度传感器应用广泛,这是因为在元件允许工作条件范围内,半导体热敏电阻器具有体积小、灵敏度高、精度高的特点,而且制造工艺简单、价格低廉。半导体热敏电阻按温度特性热敏电阻可分为正温度系数热敏电阻(电阻随温度上升而增加)和负温度系数热敏电阻(电阻随温度上升而下降)。本设计采用的是美国Dallas 半导体公司的不锈钢封装的DS18B20数字温度传感器。DS18B20是采用专门设计的不锈钢外壳,仅有0.2mm的壁厚,具有很小的蓄热量,采用导热性高的密封胶,保证了温度传感器的高灵敏性,极小的温度延迟。DS18B20支持“一线总线”接口(1-Wire),测量温度范围为 -55°C+125°C,在-10+85°C范围内,精度为±0.5°C。现场温度直接以“一线总线”的数字方式传输,大大提高了系统的抗干扰性。 DS18B20数字化温度传感器的主要性能如下:1) 适用电压为3V5V;2) 912位分辨率可调,对应的可编程温度分别为0.5、0.25、0.125、0.0625;3) TO-92、SOIC及CSP封装可选;4) 测温范围:-55125;5) 精度:-1085范围内±0.5;6) 无需外部元件,独特的一线接口,电源和信号复合在一起;7) 每个芯片唯一编码,支持联网寻址,零功耗等待。系统硬件结构设计单片机电路以STC89C52单片机为主控芯片,CPU电路十分简单,加上晶振和复位电路即可构成最小系统。图五 单片机最小系统电路图LCD显示电路本设计采用LCD1602液晶显示屏进行显示,清晰稳定地显示当前温度下的声速以及测量结果。图六 LCD显示电路温度补偿电路温度补偿使用温度传感器DS18B20对当前温度进行采集,电路结构简单。图七 温度补偿电路电源电路整个系统采用12伏直流供电,而系统工作电压为5伏,因此需要对12伏电压进行稳压滤波。图八 电源电路系统软件设计主程序流程图九 主程序流程图开始LCD初始化显示提示信息DS18B20读取当前温度HC-SR04初始化检测按键是否按下 否 是DS18B20读取当前温度HC-SR04测距LCD显示测量结果返回定时器装入初值测距流程图生成大于10us的高电平Trig信号等待Echo信号变 为高电平 否 是启动定时器等待Echo信号变为低电平 否 是关闭定时器计算计数值THO*256+HLO延时60ms以上开始下一次测距测试测试结果本次设计的超声波测距器测距范围为3cm400cm,超出测量范围时LCD会有提示,同时蜂鸣器报警;按下测距按键后,测距显示等亮,测量结束时,显示灯灭,液晶显示测量结果。下表是我们测试时的测量结果。表四 测试结果实际距离10.0cm50.0cm120.0cm200.0cm330.0cm第一次测量9.6cm49.4cm120.0cm199.8cm330.5cm第二次测量9.8cm50.4cm120.0cm199.5cm199.7cm第三次测量10.3cm49.9cm120.3cm199.7cm330.0cm误差分析由表四的测量数据可以看出,误差在误差允许范围1cm以内,因此本设计是满足要求的。测距时,被测物体必须垂直于超声波测距仪,被测物体表面平坦,且测距仪周围必须没有其他可以反射超声波的物体。本次设计的超声波测距仪也存在一些问题,由于上电一段时间后,一些元器件会发热,使得电路板温度升高,导致测得的温度比实际温度偏高,从而产生误差;由于51单片机本身的一些原因,会使得系统有时会不稳定,蜂鸣器蜂鸣声很小。总结 总的来说,通过这次个性化实验,我们都收获颇多。接收这个项目之前,我么都不懂什么是单片机,什么是AD。接了这个项目后,我们自学了单片机,学习使用了AD等各种软件,了解了温度补偿、LED显示屏、声光显示,以及学会怎样在一个团队中担任自己的角色。在整个过程中,我们大家一起学习,分工合作。在技术上,基础好的带动基础差的,基础好的也不断提升自己的能力,大家集思广益,让作品更加完美;在团队中,我们每个人都有自己的任务,大家都很好地完成自己的责任,最终的作品实现了预期的功能。当然,过程中也有不完美的地方,由于知识不到位,最开始我们的进度不快,但随着了解的越来越多,我们的进度也就慢慢地上来了。非常感谢这次的经历,让我们学习到了这么多,有了这次经历,相信我们会在这条路上走得越来越远。附录整体电路图PCB布线图部分程序主程序void main() TMOD=0x01; /计数器的工作方式 EA=1; /开总中断 ET0=1; /开定时器中断 LCD_Initialize(); /调用LCD初始化函数 delay(10); /延时10ms,给硬件一点反应时间 HCSR04_Initialize(); /HC-SR04初始化 LCD_Display_String(Prompts4,0x00); /在第二行显示 while(1) /程序循环PressK();ReadTemperatureFromDS18B20(); SPEEDSOUND=331.1+CurTempInteger*0.61; /计算当前温度下的声速DisplayTemperature(SPEEDSOUND); /显示温度DistanceValue=DistanceStatistics(); /测距并返回距离值DisplayDistanceValue(DistanceValue); /显示距离值测量距离float MeasuringDistance()/最大定时时间约65msTH0=0;TL0=0;/生成20us的脉冲宽度的触发信号Tx=1;Delay20us();Tx=0;/等待回响信号变高电平while(!Rx);TR0=1;/启动定时器0/等待回响信号变低电平while(Rx);TR0=0;/关闭定时器0/返回距离值(mm)return (SPEEDSOUND*(float)TH0*256+(float)TL0)/2000;读取温度数值void ReadTemperatureFromDS18B20()uchar flag=0;/正负符号标志/存储当前采集的温度值uchar TempValue=0,0; if(Reset_DS18B20()CurTempInteger=255;CurTempDecimal=0;elseWriteByteToDS18B20(0xCC);/跳过ROM命令WriteByteToDS18B20(0x44);/温度转换命令Reset_DS18B20();/复位WriteByteToDS18B20(0xCC);/跳过ROM命令WriteByteToDS18B20(0xBE);/读取温度暂存器命令TempValue0=ReadByteFromDS18B20();/先读低字节温度值TempValue1=ReadByteFromDS18B20();/后读高字节温度值Reset_DS18B20();/复位/计算温度值/先进行正温度与负温度判断,高5位全为1(0xF8)则为负数if(TempValue1&0xF8)=0xF8)/负温度计算:取反加1,低字节为0时,高字节取反加1,否则不需要。TempValue1=TempValue1;TempValue0=TempValue0+1;if(TempValue0=0x00) TempValue1+;flag=1;/负数标志/将温度值分为整数和小数两部分存储(默认为12位精度)CurTempInteger=(TempValue1&0x07)<<4)|(TempValue0&0xF0)>>4);if(flag) CurTempInteger=-CurTempInteger;CurTempDecimal=(TempValue0&0x0F)*625;

    注意事项

    本文(基于51单片机超声波测距仪设计(13页).docx)为本站会员(1595****071)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开