版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 题目名称:超声波测距的设计 姓 名: 戴芳洁 班 级: 电信101班 学 号: 201033285104 日 期: 2013.7.5 一、设计题目 基于单片机超声波测距二、设计目的及意义 日常生活应用发面:人们生活水平的提高,城市发展建设加快,城市车辆逐渐增多,因为停车不当而造成的交通事故也越来越多。为了避免此类事故的发生一个能够直观地测出汽车与障碍物之间的距离的装置就变得十分必要。它可以及时将车辆与障碍物之间的距离反映出来,给司机以更准确的信息和更多的反应时间,减少事故的发生;军事应用方面:超声波声纳已广泛应用于侦查探测等方面,如何提高其测量精度已是正在着重研究的课题之一,相信在不久的将来
2、,超声波测距一定会在侦查反侦察方面起到更大的作用;工业应用方面:超声波测距仪的设计方便了管道的距离探测,消除了一些空间方面的限制,在其测量精度得到提升后,对一些精密设备的测量也将起到良好的效果。三、设计要求及主要技术指标 1、方案论证,确定总体电路原理方框图。 2、单元电路设计,元器件选择。 3、仿真调试及测量结果。 主要技术指标: 设计一超声波测距仪,任务: 1、了解超声波测距原理。 2、根据超声波测距原理,设计超声波测距器的硬件结构电路。 设计一超声波测距仪,要求: 1、设计出超声波测距仪的硬件结构电路。 2、对设计的电路进行分析能够产生超声波,实现超声波的发送与接收,从而实现 利用超声波
3、方法测量物体间的距离。 3、对设计的电路进行分析。 4、以数字的形式显示测量距离。一、方案论证与比较1.1 方案提出方案一:采用CPLD来控制的超声波测距仪 采用CPLD来控制的超声波测距仪,主要是在软件上运用VHDL编写程序使用MAX+plus II软件进行软硬件设计的仿真和调试,最终实现测距功能。使用本方案的优点在于在超声波测距仪设计中采用的是MAX7000s系列中的EPM7128SLC84-15的CPLD器件,其最高频率可达175.4MHz,可用于组合逻辑电路、时序逻辑电路、算法、双端口RAM等的设计。充分利用了其多达128个宏单元、68pin可编程I/O口,使该器
4、件可以将分频功能、计数功能、显示编码功能、振荡功能全部集于一体。又因其延时平均的特点,保证了测距结果精度高、响应速度快。缺点是方案中需要一块FPGA,一块双口RAM,还需要一块用来存储波形数据的EEPROM,那么设计的成本较高。同时在FPGA中还要用硬件描述语言(VHDL语言)编写程序来实现硬件电路功能。由于EPM7128SLC84-15的算法复杂,所以在软件实现起来编程也复杂。方案二:采用51单片机控制的超声波测距系统 采用单片机来控制的超声波测距仪是先由单片机产生一个信号,经过信号线,把信号引入到与超声波发射器相连的信号引脚上,再由超声波发射器向某一方向发射超声波,在发射时刻的同时开始计时
5、,超声波在空气中传播,途中碰到障碍物就立即返回来,超声波接收器收到反射波就立即停止计时。超声波在空气中的传播速度为340m/s,根据计时器记录的时间t,就可以计算出发射点距障碍物的距离(s)。1.2设计方案的论证和选择超声波测距的原理是利用超声波的发射和接受, 由于超声波指向性强,能量消耗缓慢,在介质中传播的距离较远,因而超声波经常用于距离的测量。利用超声波检测距离,设计比较方便,计算处理也较简单。实用的测距方法有两种,一种是在被测距离的两端,一端发射,另一端接收的直接波方式,适用于身高计;一种是发射波被物体反射回来后接收的反射波方式,适用于测距仪。此次设计采用方案二的方式。 原理框图: 图1
6、-1 超声波的测距原理二、系统的功能及设计框图2.1 系统的全部功能1、本系统实现要求测量距离范围为0.13米,精度误差在1厘米以内,并且使用 LCD1602显示所测距离。 2、该系统硬件部分由发送模块、接收模块、显示模块组成。发送模块部分主要由超声波发射器组成;接收模块主要由超声波接收探头组成;显示模块则有液晶显示器LCD1602及其辅助电路组成。3、以数字的形式显示测量距离。(1)超声波测距的方法有多种:如往返时间检测法、相位检测法、声波幅值检测法。 (2)本设计采用往返时间检测法测距。其原理是超声波传感器发射一定频率的超声波,借助空气媒质传播,到达测量目标或障碍物后反射回来,经反射后由超
7、声波接收器接收脉冲,其所经历的时间即往返时间,往返时间与超声波传播的路程的远近有关。 (3)假定s为被测物体到测距仪之间的距离,测得的时间为t,超声波传播速度为 v表示,则有关系式 s=vt2 2.2确定设计框图(系统包含的单元电路及结构)和总体设计方案 本系统的超声波发射和接收电路采用HC-SR04系列超声波测距模块,此模块的特点是可提供1cm-300cm的非接触式距离感测功能,测距精度可高达3mm。模块包括超声波发射器、接收器与控制电路。 系统的性能指标依据HC-SR04系列超声波测距模块的电气参数,系统可提供1cm-300cm的非接触式距离感测
8、功能,超出测量范围液晶1602显示out of range,测距精度可高达3mm,但是本系统最小的显示单位是1cm,所以测量的最小精度是1cm。 超声波测距系统的一般结构如下图1-1所示。(本系统要求不是很精确,所以舍去了温度补偿电路)。障 碍 物发射探头接收探头发射电路接收电路单 片 机显示电路 图2-2 系统一般结构框图2.3软件流程图:外 部 中 断 入 口定 时 中 断 入 口 开 始关 外 部 中 断定 时 器 初 始 化单 片 机 初 始 化读 取 时 间 值放 射 超 声 波定 时 中 断 程 序 NN计 算 距 离发射是否完成有回波吗Y结 果 输 出Y外部中断子程序开 外 部
9、中 断 停 止 发 射返 回返 回(c)外部中断服务子程序(a) 主程序流程图(b)定时中断服务子程序 图2-3 主程序流程图三、 系统调试分析3.1设计原理图图3-1 超声波测距原理图四、结束语 在本次设计中,我们充分考虑了整个设计中的各个环节。包括产生40KHz的方波,在接收电路中,对所接收方波进行滤波、放大、整形等步骤。但由于条件和技术所限,对于很多以上所分析的在发射和接收过程中所产生的误差没有得到有效的校正。比如温度误差、硬件电路误差等。 在我们为期五天的设计中,我们用到了以前学到的很多知识,比如电路、单片机、和汇编语言等。这使我们意识到,任何一件产品的产生,都不是单一知识
10、所能实现的。而且在电路的设计和程序的编制过程中,出现了很多意想不到的错误,让我们措手不及,有些甚至是一些非常低级的错误,但是这些错误也同样让我们获益非浅,它使我们意识到,研究是一个非常严肃的过程,来不得半点马虎。必须有一个严谨的态度,加上100的努力才有可能获得成功的喜悦。 总之,在本课题的设计过程中尽管走了很多的弯路,但是还是学到了不少知识,从中受益匪浅。了解了超声波传感器的原理、设计,也掌握了单片机的开发过程中所用到的开发方法和工具。动手能力与自学能力得到了锻炼与提高,对待事物的态度也发生了变化。理论总是离不开实践的,设计制作过程中,盲目地追寻理论知识根本不足以解决任何问题,一
11、味的死研究课本是不会真正掌握单片机的。只有真正动手去做才能发现问题,解决问题,提高能力。五、参考文献1 吴金戌沈庆阳郭庭8051单片机实践与应用,清华大学出版社, 2003年4月版。2 李建忠 单片机原理及应用,西安电子科技大学出版社, 2005年版。3 张金铎 传感器用其应用,西安电子科技大学出版社, 2002年版。4 求是科技 单片机典型外围器件及应用实例,人民邮电出版社, 2006年版。5 应崇福 超
12、声学,北京科学出版社1990年。6 瓮嘉民单片机应用开发技术基于PROTEUS仿真和C语言编程,中国电力出版社,2009年版。附录1:设计中用到的元器件、芯片的外引脚图及引脚功能说明。1、 51系列单片机的功能特点 5l系列单片机中典型芯片(STC89C52)采用40引脚双列直插封装(DIP)形式,内部由CPU,8kB的ROM,256 B的RAM,2个16b的定时计数器TO和T1,4个8 b的工O端I:IP0,P1,P2,P3,一个全双功串行通信口等组成。特别是该系列单片
13、机片内的Flash可编程、可擦除只读存储器(EPROM),使其在实际中有着十分广泛的用途,在便携式、省电及特殊信息保存的仪器和系统中更为有用。该系列单片机引脚与封装如图4-1所示。 图4-12、超声波发生器 如有图所示,如右图接线,VCC供5V电源,GND为地线,TRIG触发控制信号输入,ECHO回响信号输出等四个接口端。基本工作原理: (1) 采用IO口TRIG触发测距,给至少10us的高电平信号。 (2) 模块自动发射8个40khz的方波,并检测信号是否有返回。 (3)有信号返回,通过IO端口ECHO输出一个高电平,高电平持续的时间就是超声波从发射到接收所用的
14、时间。测量距离=高电平持续时间*声速/2。 实物图如图4-2所示: 图4-23、LCD1602显示器 LCD1602可以显示2行16个字符,有8位数据总线D0D7和RS,R/W,EN三个控制端口,工作电压为5V,并且具有字符对比度调节和背光功能。 (1)引脚参数如下: LCD1602可以显示2行16个字符,有8位数据总线D0D7和RS,R/W,EN三 个控制端口,工作电压为5V,并且具有字符对比度调节和背光功能。 u SMC1602A液晶显示模块的接口信号说明:编号符号引脚说明编号符号引脚说明1VSS电源地9D2Data I/O2VDD电源正极10D3Data I/O3VL
15、液晶显示偏压信号11D4Data I/O4RS数据/命令选择端(H/L)12D5Data I/O5R/W读写选择端(H/L)13D6Data I/O6E使能信号14D7Data I/O7D0Data I/O15BLA背光源正极8D1Data I/O16BLK背光源负极(2)1602型LCD的主要技术参数如下:显示容量16X2个字符芯片工作电压4.55.5V工作电流2.0mA(5.0V)模块最佳工作电压5.0V字符尺寸2.95X4.35(WXH)mm(3) 基本操作程序:读状态:输入:RS=L,RW=H,E=H 输出:D0D7=状态字读数据:输入:RS=H,RW=H,E=H 输出:无写指令:输入
16、:RS=L,RW=L,D0D7=指令码,E=高脉冲 输出:D0D7=数据写数据:输入:RS=H,RW=L,D0D7=数据,E=高脉冲 输出:无读操作时序:写操作时序:附录3:源程序#include <reg52.h>/器件配置文件#include <intrins.h>#include <stdio.h>sbit Echo=P36;sbit Trig=P37;sbit LCM_RW=P25 ;/定义LCD引脚sbit LCM_RS=P24;sbit LCM_E=P26;#define LCM_Data P0#define Busy 0x80 /用于检测LCM
17、状态字中的Busy标识void LCMInit(void);/LCD初始化函数void DisplayOneChar(unsigned char X, unsigned char Y, unsigned char DData);/LCD显示一个字符函数void DisplayListChar(unsigned char X, unsigned char Y, unsigned char code *DData);/LCD显示一个字符串函数void Delay5Ms(void);/延时5毫秒函数void Delay400Ms(void);/延时400毫秒函数void Decode(unsigne
18、d char ScanCode);void WriteDataLCM(unsigned char WDLCM);/LCD1602写数据函数void WriteCommandLCM(unsigned char WCLCM,BuysC);/LCD写命令函数unsigned char ReadStatusLCM(void);unsigned char code ASCII13 = "0123456789.-M"unsigned char code table="Distance:000.0cm"unsigned char code table1="O
19、ut of range !"/static unsigned char DisNum = 0; /显示用指针 unsigned int time=0;unsigned long S=0;bit flag =0;unsigned char disbuff4= 0,0,0,0,;/写数据void WriteDataLCM(unsigned char WDLCM) ReadStatusLCM(); /检测忙LCM_Data = WDLCM;LCM_RS = 1;LCM_RW = 0;LCM_E = 0; /若晶振速度太高可以在这后加小的延时LCM_E = 0; /延时LCM_E = 1;/
20、写指令void WriteCommandLCM(unsigned char WCLCM,BuysC) /BuysC为0时忽略忙检测if (BuysC) ReadStatusLCM(); /根据需要检测忙LCM_Data = WCLCM;LCM_RS = 0;LCM_RW = 0;LCM_E = 0;LCM_E = 0;LCM_E = 1;/读状态unsigned char ReadStatusLCM(void)LCM_Data = 0xFF; LCM_RS = 0;LCM_RW = 1;LCM_E = 0;LCM_E = 0;LCM_E = 1;while (LCM_Data & Bu
21、sy); /检测忙信号return(LCM_Data);void LCMInit(void) /LCM初始化LCM_Data = 0;WriteCommandLCM(0x38,0); /三次显示模式设置,不检测忙信号Delay5Ms(); WriteCommandLCM(0x38,0);Delay5Ms(); WriteCommandLCM(0x38,0);Delay5Ms(); WriteCommandLCM(0x38,1); /显示模式设置,开始要求每次检测忙信号WriteCommandLCM(0x08,1); /关闭显示WriteCommandLCM(0x01,1); /显示清屏Writ
22、eCommandLCM(0x06,1); / 显示光标移动设置WriteCommandLCM(0x0c,1); / 显示开及光标设置/按指定位置显示一个字符void DisplayOneChar(unsigned char X, unsigned char Y, unsigned char DData)Y &= 0x1;X &= 0xF; /限制X不能大于15,Y不能大于1if (Y) X |= 0x40; /当要显示第二行时地址码+0x40; X |= 0x80; /算出指令码WriteCommandLCM(X, 1); /发命令字WriteDataLCM(DData); /
23、发数据/按指定位置显示一串字符void DisplayListChar(unsigned char X, unsigned char Y, unsigned char code *DData)unsigned char ListLength; ListLength = 0;Y &= 0x1;X &= 0xF; /限制X不能大于15,Y不能大于1while (DDataListLength>0x19) /若到达字串尾则退出if (X <= 0xF) /X坐标应小于0xFDisplayOneChar(X, Y, DDataListLength); /显示单个字符List
24、Length+;X+;/5ms延时void Delay5Ms(void)unsigned int TempCyc = 5552;while(TempCyc-);/400ms延时void Delay400Ms(void)unsigned char TempCycA = 5;unsigned int TempCycB;while(TempCycA-)TempCycB=7269;while(TempCycB-);/*/void Conut(void) time=TH0*256+TL0; TH0=0; TL0=0; S=(time*1.7)/10; /算出来是MM if(S>=7000)|flag=1) /超出测量范围 flag=0; DisplayListChar(0, 0, table1); else disbuff0=S%10; disbuff1=S/10%10; disbuff2=S/100%10; disbuff3=S/1000; DisplayListChar(0, 0, table); DisplayOneChar(9, 0
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 35922-2025不透性石墨浸渍耐蚀作业技术规范
- 2026春招:学习成长企划顾问题目及答案
- 2026年桥梁设计中的地震动参数研究
- 2026年桥梁设计中的非线性分析与优化
- 2026年未来电气传动控制的研究方向
- 2026春招:维修技术员笔试题及答案
- 贩毒与吸毒的法律问题
- 住院部病患护理质量评估
- 2026年邯郸科技职业学院单招综合素质考试备考试题带答案解析
- 2026年黑龙江旅游职业技术学院单招职业技能考试参考题库带答案解析
- 2025年青岛卫生局事业单位考试及答案
- 纪委档案规范制度
- 杭州钱塘新区建设投资集团有限公司2025年度第三次公开招聘工作人员备考题库及完整答案详解
- 眼科质控课件
- 安徽信息会考题库及答案
- 2025年中级消防监控题库及答案
- 隧道施工废水处理人员培训方案
- 2025年射频识别技术面试题库及答案
- 拣货主管年终总结
- 糖尿病重症患者肠内营养血糖调控方案
- CSR社会责任管理手册
评论
0/150
提交评论