ImageVerifierCode 换一换
格式:DOCX , 页数:32 ,大小:1.43MB ,
资源ID:5943045      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/5943045.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于超声波传感器的测距系统设计毕业设计论文.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

基于超声波传感器的测距系统设计毕业设计论文.docx

1、基于超声波传感器的测距系统设计毕业设计论文 JIANGXINORMALUNIVERSITY传感器原理课程设计题目: 基于超声波传感器的测距系统院系名称:物理与通信电子学院学生姓名: 学生学号: 专 业: 电子信息工程 任课老师: 完成时间: 2015年6月 摘要本文主要介绍了基于超声波传感器的测距系统的工作原理、硬件电路的设计和软件设计。该测距系统由单片机最小系统模块、温度采集模块、超声波测距模块,LCD显示模块组成。能够完成距离和温度的测量、显示等功能。关键词:超声波测距,单片机最小系统,温度采集1引言近年来,随着电子测量技术的发展,运用超声波作出精确测量已成可能。由于的经济发展,电子测量技

2、术应用也越来越广泛,而超声波测量精确高,成本低,性能稳定则备受青睐。由于超声测距是一种非接触检测技术,不受光线、被测对象颜色等的影响,较其它仪器更卫生,更耐潮湿、粉尘、高温、腐蚀气体等恶劣环境,具有少维护、不污染、高可靠、长寿命等特点。因此可广泛应用于纸业、矿业、电厂、化工业、水处理厂、污水处理厂、农业用水、环保检测、食品(酒业、饮料业、添加剂、食用油、奶制品)、防汛、水文、明渠、空间定位、公路限高等行业中。可在不同环境中进行距离准确度在线标定,可直接用于水、酒、糖、饮料等液位控制,可进行差值设定,直接显示各种液位罐的液位、料位高度。利用超声波检测往往比较迅速、方便、计算简单、易于实现实时控制

3、,由于超声波测距系统具有以上的这些优点,因此在汽车倒车雷达的研制方面也得到了广泛的应用。2 设计要求设计并制作一个基于超声波传感器的测距系统,基本要求如下:测量范围为0.2-1m;测量精度为2mm;并能实时显示。3 方案论证 根据本题设计要求,确定了本系统的原理框图如图3-1所示。 图3-1 原理框图3.1 方案论证与比较 根据题目的要求,我提出了以下的两种系统设计方案供选择:方案1:由单片机编程产生40kHz的方波,由IO口输出,再经过放大电路,驱动超声波发射探头发射超声波。发射出去的超声波经障碍物反射回来后,由超声波接收头接收到信号,通过接收电路的检波放大、积分整形及一系列处理,送至单片机

4、。单片机利用声波的传播速度和发射脉冲到接收反射脉冲的时间间隔计算出障碍物的距离,并由单片机控制显示出来。方案2:由单片机控制集成超声波测距模块HC-SR04,通过用一IO口发一个10us以上的高电平给集成模块控制口,就可以在接收口等待高电平输出,一有输出就可以开定时器计时,当此口变为低电平时就可以读定时器的值,并由单片机实时检测。单片机利用声波的传播速度和发射脉冲到接收反射脉冲的时间间隔计算出障碍物的距离,并由单片机控制显示出来。由于超声波也是一种声波,其声速c与温度有关,所以温度的影响不能忽略不计,本方案中对声速c还添加了温度补偿。通过上述两种方案的比较,由于集成超声波测距模块HC-SR04

5、提供2cm至400cm的非接触式距离感测功能,测距精度可达3mm,模块自身包括超声波发射器、接收器与控制电路,且编程和制作相比方案一容易许多。因此本超声波测距系统的设计采用方案2。3.2 单片机最小系统模块的方案方案1:采用PIC单片机。PIC单片机的各个型号的兼容性强,功能全,型号多,抗干扰能力强。缺点:PIC单片机价格贵,烧写器较贵,烧写程序比较麻烦。方案2:采用MCS-51单片机。MCS-51系列单片机是8位增强型。51单片机具有功能强,体积小,可靠性好和价格便宜的优点,并且编程较为容易,程序的烧写也较为简单。综合上面两个方案以及本人日常学习到的单片机,选择方案二作为本设计的核心处理模块

6、。3.3温度采集模块的方案采用温度传感器DS18B20。DS18B20具有体积小、质量轻、精密度高、全数字化、性能稳定等优点。它的测量范围在-50至+125,在-10至+85范围内精度为0.5,当电源电压在5-10V之间,稳定度为1时,其各方面特性都满足了本系统的设计要求。此外DS18B20可直接将温度转化成串行数字信号供处理器处理,可以简化硬件电路和提高可靠性。3.4超声波测距模块的方案采用HC-SR04超声波模块。本模块性能稳定,测度距离精确,模块高精度,盲区小的优点。本模块使用方法简单,一个控制口发一个10US以上的高电平,就可以在接收口等待高电平输出.一有输出就可以开定时器计时,当此口

7、变为低电平时就可以读定时器的值,此时就为此次测距的时间,这样就可算出距离。3.5 显示模块的方案方案一:选用数码管显示,用普通的数码管显示简单的数字、字母,数码管分时显示距离和温度。方案二:选用液晶显示,显示的内容更加的丰富。根据所学知识与方案显示内容的设定,我选择了方案二。4 工作原理 测距原理如图4-1所示: s h d 测量目标 图4-1被测距离。式中:s为超声波传播距离的一半,h为发射探头和接受探头之间的距离。由于s远大于h,因此可近似认为d=s,则d=s=ct2,t为发射超声波与接收超声波的时间间隔,c为超声波在空气中的传播速度。在空气中,常温下超声波的传播速度是334ms,但其传播

8、速度c易受空气中温度的影响,声速与温度关系如表4-1所示,由此可修正超声波传播速度为 表4-1 声速与温度关系表温度()-30-20-10 0 10 20 30 40声速(m/s)313319325 332 338 344 350 356可见,只要测得超声波发射和接收回波的时间差t以及环境温度T,就能得到较为精确的距离。测温是通过DS18B20来实现,通过程序将温度读出并送到LCD显示,并将此温度作为测距的温度补偿。5 系统设计 本系统选用的模块包括:单片机最小系统模块、温度采集模块、超声波测距模块、LCD1602显示模块。5.1单片机最小系统模块的设计 此次的课程设计的核心部分是单片机的控制

9、,本次选用的是ATMEL公司生产的芯片STC89C52,主要是它的价格便宜,而且在学习中接触较多比较熟悉,容易获得。 5.1.1复位电路的设计复位使单片机处于起始状态,并从该起始状态开始运行。STC89C52的RST引脚为复位端,该引脚连续保持2个机器周期(24个时钟振动周期)以上高电平,就可以使单片机复位。单片机的外部复位有上电复位和按键电平复位。由于单片机运行过程中,其本身的干扰或外界干扰会导致出错,此时我们可按复位键重新开始运行。考虑到本系统的运行和调试,复位电路采用按键复位方式,如图5-1所示。 图5-1 复位电路5.1.2 时钟电路设计时钟电路是单片机的心脏,它控制着单片机的工作节奏

10、。STC89C52内部有一个反相振荡放大器,XTAL1和XTAL2分别是该反向振荡放大器的输入端和输出端。本设计采用的晶振频率为12MHZ。51系列单片机还可使用外部时钟,在使用外部时钟时,外部时钟必须从XTAL1输入,而XTAL2悬空。图5-2为晶振电路图5-2 晶振电路5.1.3单片机的I/O口的分配首先对LCD和单片机的连接分配I/O口,LCD的E,RW,RS端分别为P0.0-P0.2,然后再对HC-SR04进行I/O口分配,HC-SR04的触发控制信号输入口Trig为P1.4,回响信号输出口Echo为P3.2;DS18B20温度传感器是单总线的结构,和单片机的通讯只需要一个I/O口,可

11、以设置P1.3为DS18B20温度传感器的总线和单片机的通讯接口。5.2 LCD1602显示模块的设计在本设计中采用LCD 1602来充当显示的作用,对LCD模块的电路的设计得先了解LCD的各个引脚然后再设置其各个引脚和单片机连接的的I/O口。LCD1602液晶显示模块的读写操作,屏幕和光标的操作都是通过指令编程来实现的。1602液晶模块内部的控制器共有11条控制指令,如表5-1所示:表5-1 LCD1602液晶模块内部的控制器共有11条控制指令序号指令RSR/WD7D6D5D4D3D2D1D01清显示00000000012光标返回000000001*3置输入模式00000001I/DS4显示

12、开/关控制0000001DCB5光标或字符移位000001S/CR/L*6置功能00001DLNF*7置字符发生存贮器地址0001字符发生存贮器地址8置数据存贮器地址001显示数据存贮器地址9读忙标志或地址01BF计数器地址10写数到CGRAM或DDRAM)10要写的数据内容11从CGRAM或DDRAM读数11读出的数据内容 根据LCD1602的引脚定义和资料设计了测距系统的显示模块,电路图如下图5-3图5-35.2.1 1602接口信号说明1602接口信号说明如表5-2所示表5-2 1602接口说明编号符号引脚说明编号符号引脚说明1VSS电源地9D2数据口2VDD电源正极10D3数据口3VO

13、液晶显示对比度调节端11D4数据口4RS数据/命令选择端12D5数据口5R/W读写选择端13D6数据口6E使能端14D7数据口7D0数据口8D1数据口5.2.2 1602操作时序1602的操作时序图(见图5-4)图5-4 1602操作时序分析时序图可知1602液晶的流程如下(1)通过RS确定是写数据还是写命令。写命令包括液晶的光标显示/不显示、光标闪烁/不闪烁、需不需要移动屏幕、在液晶什么位置显示等。写数据是指要显示什么内容。(2)读/写控制端设置为写模式,即低电平。(3)将数据或命令送至数据线。(4)给E一个高脉冲将数据送入液晶控制器,完成写操作。5.3 DS18B20温度采集模块的设计DS

14、18B20的管脚排列如图5-5所示,DQ为数字信号输入/输出端;GND 为电源地;VDD为外接供电电源输人端。本温度控制系统采用外接供电方式,电路图如下图5-6所示图5-5 DS18B20管脚图图5-6 DS18B20电路图5.3.1 DS18B20的分辨率DS18B20温度传感器可完成对温度的测量,温度分辨率的设定能够影响到温度传感器的转换时间和转换的精确度。温度的分辨率设置如表5-3所示。表5-3:温度分辨率设置表R1R0分辨率温度最大转换时间009位93.75ms0110位187.5ms1011位375ms1112位750ms由于本系统的主要误差是温度影响声速,故对温度采集的精度要求较高

15、,所以选择DS18B20的分辨率位12位,在12位分辨率的时候的温度采集精度是0.0625度,满足系统精度的要求,所以R1和R0的设置分别为R1=1,R0=1。5.3.2 DS18B20工作时序图(1)初始化(时序图见5-7)图5-7初始化时序(2)写数据(时序图见图5-8)图5-8写数据时序(3)读数据(时序图见图5-9)图5-9读数据时序5.4超声波测距模块的设计超声波测距测距模块采用HC-SR04模块,其芯片如图5-10所示:图5-10HR-SR04超声波集成模块工作原理采用的是I/O触发测距,给至少10us的高电平信号。另外,此模块可以自动发送8个40kHz的方波脉冲,并能够自动检测是

16、否有信号返回,如果检测到有信号返回则通过I/O口输出低电平,高电平的持续时间就是超声波从发射到返回所用的时间,则所测量的距离=(高电平时间声速)/2,时序图如图5-11。图5-11此模块不宜带电连接,如果要带电连接,则先让模块的 Gnd 端先连接。测距时,被测物体的面积不少于 0.5 平方米且要尽量平整。否则会影响测试结果。6 软件设计6.1 程序流程图6.1.1 主程序流程图 否 是6.1.2 外部中断0流程图6.2子程序设计子程序包括了LCD显示模块程序,DS18B20温度采集模块程序。6.2.1温度采集模块子程序根据DS18B20的相关资料编写了温度采集程序void dsreset(vo

17、id) /DS18B20初始化 uint i; DS=0; i=103; while(i0)i-; DS=1; i=4; while(i0)i-;bit tmpreadbit(void) /读一位 uint i; bit dat; DS=0; i+; /小延时一下 DS=1; i+;i+; dat=DS; i=8; while(i0)i-; return (dat);uchar tmpread(void) /读一个字节 uchar i,j,dat; dat=0; for(i=1;i=8;i+) j=tmpreadbit(); dat=(j1); /读出的数据最低位在最前面,这样刚好一个字节在D

18、AT里 return(dat); /将一个字节数据返回void tmpwritebyte(uchar dat) /写一个字节 uint i; uchar j; bit testb; for(j=1;j1; if(testb) / 写1部分 DS=0; i+;i+; DS=1; i=8; while(i0)i-; else DS=0; /写0部分 i=8; while(i0)i-; DS=1; i+;i+; void tmpchange(void) /发送温度转换命令 dsreset(); /初始化DS18B20 delayb(1); /延时 tmpwritebyte(0xcc); / 跳过序列

19、号命令 tmpwritebyte(0x44); /发送温度转换命令int tmp() /获得温度 int temp; uchar a,b; dsreset(); delayb(1); tmpwritebyte(0xcc); tmpwritebyte(0xbe); /发送读取数据命令 a=tmpread(); /连续读两个字节数据 b=tmpread(); temp=b; temp=8; temp=temp|a; /两字节合成一个整型变量。 return temp; /返回温度值6.2.2 LCD显示子程序根据1602的资料编写了距离、温度显示模块的程序void write_com(uchar

20、common) /1602写指令函数 RS=0; P0=common; delay(1); EN=1; delay(1); EN=0;void write_data(uchar Data) /1602写数据函数 RS=1; P0=Data; delay(1); EN=1; delay(1); EN=0;void init_1602() /初始化1602 RW=0;/只写不读 EN=0; write_com(0x38);/7*5 2*16; 八位数据接口 write_com(0x0c); /开显示,无光标 write_com(0x06);/地址自动加一 write_com(1);/清屏 void

21、 display(uint temp) /显示函数 uchar ge,shi,bai,qian,i;/分别为距离的千、百、十、个位 qian=temp/1000; bai=temp%1000/100; shi=temp%100/10; ge=temp%10; write_com(0x80); /光标在第一行第一列 for(i=0;i7;i+) write_data(table1i);/显示“juli:”字样 write_data(qian+0x30); /显示距离数值 write_data(bai+0x30); write_data(shi+0x30); write_data(ge+0x30)

22、; write_com(0x80+11); /光标在第一行第12列 for(i=0;i2;i+) write_data(table2i);/显示“MM”字母 write_com(0x80+0x40); /光标在第二行第一列 for(i=0;i8;i+) write_data(table3i); /显示“wendu:”字样 write_data(ly_dis0+0x30); /显示温度数值 write_data(ly_dis1+0x30); write_com(0x80+0x40+11); /光标第二行第12列 for(i=0;i1;i+) write_data(table4i); /显示“C”

23、字母 7 误差分析7.1 温度环境温度影响声速是本设计中存在误差最主要的原因。当温差较大时,前后两次测距的误差肯定前后相差较大,故本设计采用了温度补偿的方法来减少温度的影响。7.2 障碍物表面材料因为障碍物的发射面比较粗糙会引起发射信号散射开那么回波信号就会减弱,这样就会导致测量结果的误差增大,这是本设计不可避免的误差。7.3 超声波模块探头距离两个超声波探头即发射探头和接收探头和障碍物之间存在一个几何角度,当两个探头的距离很近并远小于与被测物距离时这个几何角度被忽略不计,这样测得的距离才约等于实际距离,这也是本设计不可避免的误差。8总结此测距系统的硬件电路比较简单,都是使用现成模块搭建。在实

24、际测量中,性能指标也达到了设计要求。 本次设计的步骤如下: 1、根据任务要求选择合理方案 2、元件的选择 3、硬件设计(本设计选用的是51开发板和超声波测距集成模块) 4、软件设计 5、对整个系统进行调试,使其达到要求参考文献郭天祥.51单片机C语言教程M.北京:电子工业出版社郁有文.常健.程继红.传感器原理及工程应用(第四版).西安电子科技大学出版社 附录一:源程序 #include #define uchar unsigned char#define uint unsigned intsbit DS=P13; /定义DS18B20接口 sbit RS=P22; /1602管脚sbit RW

25、=P21;sbit EN=P20;sbit Trig=P14; /超声波模块接口sbit Echo=P32; /回波信号接口在外部中断0int time;int succeed_flag;int Speed;char ltemp;uchar ly_dis2;uchar timeL;uchar timeH;uchar code table1= juli:;uchar code table3= wendu:;uchar code table2=MM;uchar code table4=C;void delay(uint z) /毫秒延时 uint x,y; for(x=z;x0;x-) for(y

26、=110;y0;y-);void delayb(uint count) /温度延时 uint i; while(count) i=200; while(i0) i-; count-; void delay_20us()/微秒延时 uchar a ; for(a=0;a100;a+); void write_com(uchar common) /1602写指令函数 RS=0; P0=common; delay(1); EN=1; delay(1); EN=0;void write_data(uchar Data) /1602写数据函数 RS=1; P0=Data; delay(1); EN=1;

27、 delay(1); EN=0;void init_1602() RW=0;/只写不读 EN=0; write_com(0x38);/7*5 2*16; 八位数据接口 write_com(0x0c); /开显示,无光标 write_com(0x06);/地址自动加一 write_com(1);/清屏 /显示数据void display(uint temp) uchar ge,shi,bai,qian,i; qian=temp/1000; bai=temp%1000/100; shi=temp%100/10; ge=temp%10; write_com(0x80); for(i=0;i7;i+) write_data(table1i); write_data(qian+0x30); write_data(bai+0x30); write_data(shi+0x30); write_data(ge+0x30); write_com(0x80+11); for(i=0;i2;i+) write_data(table2i); write_com(0x80+0x40); for(i=0;i8;i+) write_data(table3i); wr

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1