收藏 分销(赏)

基于单片机的超声波测距专业系统设计.docx

上传人:二*** 文档编号:4520010 上传时间:2024-09-26 格式:DOCX 页数:21 大小:3.12MB
下载 相关 举报
基于单片机的超声波测距专业系统设计.docx_第1页
第1页 / 共21页
亲,该文档总共21页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

1、1 设计任务本文采取超声波传感器,IAP15单片机和LCD显示模块设计了一个超声波测距显示器,能够实现测量物体到仪器距离和显示等功效。是一个结构简单、性能稳定、使用方便、价格低廉超声波距离测量器,含有一定实用价值。2 设计思绪2.1 超声波测距2.1.1 超声波超声波是指频率在20kHz以上声波,它属于机械波范围。多年来,伴随电子测量技术发展,利用超声波作出正确测量已成可能。伴随经济发展,电子测量技术应用越来越广泛,而超声波测量正确高,成本低,性能稳定则备受青睐。超声波也遵照通常机械波在弹性介质中传输规律,如在介质分界面处发生反射和折射现象,在进入介质后被介质吸收而发生衰减等。正是因为含有这些

2、性质,使得超声波能够用于距离测量中。伴随科技水平不停提升,超声波测距技术被广泛应用于大家日常工作和生活之中。通常超声波测距仪可用于固定物位或液位测量,适适用于建筑物内部、液位高度测量等。超声在空气中测距在特殊环境下有较广泛应用。利用超声波检测往往比较快速、方便、计算简单、易于实现实时控制,而且在测量精度方面能达成工业实用指标要求,所以为了使移动机器人能够自动躲避障碍物行走,就必需装备测距系统,以使其立即获取距障碍物位置信息(距离和方向)。所以超声波测距在移动机器人研究上得到了广泛应用。同时因为超声波测距系统含有以上这些优点,所以在汽车倒车雷达研制方面也得到了广泛应用。2.1.2 超声波测距原理

3、最常见超声测距方法是回声探测法,超声波发射器向某一方向发射超声波,在发射时刻同时计数器开始计时,超声波在空气中传输,途中碰到障碍物面阻挡就立即反射回来,超声波接收器收到反射回超声波就立即停止计时。超声波在空气中传输速度为340m/s,依据计时器统计时间t,就能够计算出发射点距障碍物面距离s,即:s=340t/2。 因为超声波也是一个声波,其声速V和温度相关。在使用时,假如传输介质温度改变不大,则可近似认为超声波速度在传输过程中是基础不变。假如对测距精度要求很高,则应经过温度赔偿方法对测量结果加以数值校正。声速确定后,只要测得超声波往返时间,即可求得距离。距离计算公式:d=S2=CT2(2-1)

4、其中d为被测物和测距器距离,s为声波往返旅程,c为声波,t为声波往返所用时间。其中声速c和温度相关。C=331.5+0.607T (2-2)假如要提升测距正确度,则必需考虑温度影响,也可取室温简化电路设计,将温度传感器作为扩展电路,在力所能及情况下完成。2.1.3 超声波测距模块HC-SR04HC-SR04超声波测距模块可提供2cm至400cm非接触式距离感测功效,测距精度可达3mm;模块本身包含超声波发射器、接收器和控制电路。实物图2-1所表示:图2-1 HC-SR04模块实物图HC-SR04工作原理及说明:1、给Trig触发控制信号IO端口最少10us高电平信号。2、模块自动发送8个40k

5、hz方波,并自动检测是否有信号返回。3、有信号返回时,Echo回响信号输出端口输出一个高电平,高电平连续时间就是超声波从发射到返回时间。4、两次测距时间间隔最少在60ms以上,以预防发射信号对回响信号影响。图2-2所表示:图2-2 HC-SR04工作原理2.2 LCD1602显示器LCD1602显示器实物图2-3所表示:图2-3 LCD1602显示器LCD1602电路原理图图2-4所表示:图2-4 LCD1602电路原理图2.3 IAP单片机IAP15F2K61S2单片机为增强型8051CPU,含有1个单时钟/机器周期,其工作电压为4.2V5.5V,速度比一般8051快812倍;61K字节片内

6、FLASH程序存放器,片内大容量2048字节SRAM,大容量片内EEPPOM,擦写次数在10万次以上;一共有8道10位高速ADC,速度高达30万次/s,3路PWM还可当3路DA使用;共有3通道比较单元,内部高可靠复位,8级可选复位门槛电压,根本省掉外部复位电路;内部高精度RC时钟,内部时钟从5MHz35MHz可选,相当于一般805160MHz420MHz;两组高速异步串行通信端口,能够在5组管脚之间进行切换,分时复用可当5组串口使用;多种接口扩展齐全,一根USB线实现系统供电、程序下载及通信功效。单片机实物图及引脚图图2-5、图2-6所表示:图2-5 IAP单片机实物图图2-6 IAP单片机引

7、脚图2.4 单片机最小系统对于一个单片机系统,能够工作前提是含有最小系统模块,最小系统通常包含单片机、晶振电路、复位电路。单片机复位及晶振电路全部是常见接法,电源用一个按键控制接通和断开,使得程序下载变得方便。电路图2-7所表示:图2-7单片机最小系统2.4.2 电源电路此最小系统中电源供电模块电源能够经过计算机USB口供给,也可使用外部稳定5V电源供电模块供给。2.4.1 时钟电路单片机晶振作用是为系统提供基础时钟信号。内部时钟电路晶振频率通常选择在4MHZ12MHZ之间(本设计选择12MHZ),外接两个谐振电容,该电容经典值为30pF。图2-8所表示:图2-8 时钟电路2.4.3 复位电路

8、按键复位就是在复位电容上并联一个开关,当开关按下时电容被放电、RST也被拉到高电平,而且因为电容充电,会保持一段时间高电平来使单片机复位。图2-9:图2-9 复位电路2.4 系统整体设计系统关键由三部分组成:单片机,超声波测距模块和LCD1602显示器组成。单片机在控制中作为控制器,用于对超声波模块控制和计时,显示电路关键实时显示测量数值。系统框图图2-10所表示:超声波接收单片机控制器超声波发送LCD显示图2-10 系统框图3 原理图依据前面对设计各个相关模块分别讲述,再结合单片机引脚功效,从而得到系统整体电路图,图3-1所表示: 图3-1 原理图在图3-1中,LCD1602D0到D7连接1

9、0K上拉排阻并外接到单片机P2.0到P2.7端口,用于显示所测量距离,超声波HC-SR04trig端、echo端分别接在单片机P0.0、P3.2这两个端口,利用单片机计时器将时间计算出来。最终经过程序设计将计算出距离显示到LCD1602液晶显示器上。4 PCB图生成PCB图4-1、4-2所表示:图4-1 PCB原理图图4-2 PCB图5 程序步骤图5.1 主程序设计这次软件设计使用软件是Keil uVision4。Keil 4集成开发环境是一个窗口化软件开发平台,它集成了功效强大编辑器、工程管理器和多种编译工具Keil 4使用简单、功效强大,是设计者完成设计任务关键确保,还能加速单片机应用程序

10、开发过程。主程序首先是对系统环境初始化,设定定时器T0工作模式为6位定时计数器模式,置位总中止许可位EA并给显示端口P2清0。然后调用超声波发生子程序送出一个超声波脉冲,为了避免超声波从发射器直接传送到接收器引发直射波触发,需要延时约0.1ms(这也就是超声波测距器会有一个最小测距离原因)后,才打开外中止0接收返回超声波信号。因为采取是12MHz晶振,计算器每计一个数就是1us,,当主程序检测到接收成功标志位后,将计数器T0中数(即超声波往返所用时间)按计算公式计算,即可得被测物体和测距器之间距离,设计时取声速为340m/s。超声波测距程序见附录。5.2 程序步骤图主程序步骤图图5-1所表示:

11、开始系统初始化显示结果0.5s发射超声波脉冲计算距离等候反射超声波图5-1 主程序步骤图测距程序步骤图图5-2所表示:图5-2 测距程序步骤图6 设计感想在此次实训中,我们首先第一周进行了FPGA学习,由老师率领我们学习FPGA基础操作和简单电路设计,其中我认为最为关键就是让我们认识到了FPGA发展现实状况和发展前景。经过了解,我们知道了FPGA方便,能够用语言来实现我们需要功效,进而自动实现其电路设计,帮助我们简化了很多步骤,在这一周学习当中,我们首先学会了怎样用语言来实现流水灯设计,和其基础设计思绪和方法还有quartus2软件使用方法,继而学会了怎样捕捉上升沿,这个很关键,对于以后我们工

12、作能够起很大作用,最关键是我们学到了很多电路设计方面经验,这些是我们日常在书本上学不到,能够帮助我们在以后工作当中节省很多时间,发明了很多捷径,能够提升我们效率。在第二周时间里,我设计了超声波测距电路,首先当我拿到这个题目时,对于这个课题只有部分初步想法,经过理论课学习对此有一个初始印象,然后就是去找资料,了解到了我们要设计这个电路具体实现原理、所需模块等方面,和她组成部分,基于这个单片机,我们首先就要设计它最小系统,然后我们还需要超声波传感器。而且还需要对于测完距离进行显示,这时就需要显示装置,这里我们用是LCD 1602A显示器。拿到这些装置以后,我并不会连接,所以就需要认识每个器件引脚功

13、效,工作原理,引脚定义和接法等等,然后我们就要进行绘制原理图,然后生成PCB板,在确定无误以后才能进行焊接,在焊接过程当中我们要注意是焊点是否焊严,焊锡不能过多,走线要符合布局,在开始这次设计工程当中,没有安排好布局,把LCD1602数据口和单片机引脚接反,这是一个失误地方,在老师指导下纠正过来。我在焊接完板子以后,要进行测试,首先测试显示装置,因为没有电位器,我们就要计算电阻,使显示器能够正常工作,有合适对比度,亮度等等,在我们进行测试时候,换了好多个电阻才调整到了合适亮度。在各模块全部工作正常后,我们要进行程序编写,要考虑很多方面,比如接口,语法,逻辑等有没有错误,这些是很必需,然后进行调

14、试,更改程序等等。此次设计超声波测距电路经过测试,误差在1CM左右是0-2CM里能够接收范围。经过此次实训,使我收获良多,首先我们认识到了FPGA发展现实状况,然后我们了解了电路设计制作基础步骤,让我对这方面工作有了一定认识,帮助我们计划以后工作,这些是我们此次实训最大收获。而且,在设计超声波测距电途经程中我查阅了很多资料,自主学习了很多以前没有注意不过实际需要东西,帮助我们完善了知识贮备,也在一定程度上增强了了我们实际工作能力,这些是我们在课堂学习当中没措施实践方面,然而在以后我们走上工作岗位上这些却是很关键东西,所以很感谢这次生产实习让我学到了这么多东西,做出了实物也使我很有成就感,对这方

15、面内容有了更大爱好和了解,能够在我走上工作岗位之前给自己提个醒,未雨绸缪,提早做好工作之前准备。参考文件1 张岩,张鑫.单片机原理及应用.机械工业出版社,.6.2 范立南.单片机原理及应用教程.北京大学出版社,.3 楼然苗,李光飞.单片机课程设计指导.北京航空航天大学出版社,.4 俞国亮.MCS-51单片机原理及应用.清华大学出版社,.5 瞿金辉,周蓉生.超声波测距系统设计.中国仪器仪表,. 8.6 谭浩强.C语言程序设计(第四版).清华大学出版社,. 117 周凯,赵望达,赵迪. 高精度超声波测距系统. 测试技术卷,附录A器件清单:器件清单如表A-1所表示:元件说明数量IAP15F2K61S

16、2单片机1HC-SR04超声波模块1LCD1602液晶显示器1CH340GUSB转TTL下载器1按键开关四脚1自锁开关六脚1瓷片电容30pF2电解电容10uF1滑动变阻器10310K1排阻A102J10K上拉电阻1电阻10K1电阻3001晶振12MHz1导线若干表A-1 器件清单附录B程序代码:#include #include#define uint unsigned int #define uchar unsigned char uint s,time,a,b,c,d;sbit RS=P36;sbit RW=P35;sbit EN=P37;sbit Trig=P01;sbit Ecoh=P

17、00;uchar code dis_code1=Distance Test: ;uchar dis_code2=0.00M ;uchar cache3=0,0,0;void delay_ms(uint timer)uchar i=0;while (timer-)for(i=600;i0;i-);void Delay15us(unsigned char i)/12.000MHz_nop_();_nop_();i = 42;while (-i);void wait()RS=0;RW=1;EN=0;_nop_();_nop_();_nop_();EN=1;P2=0XFF;while(P2&0X80)

18、 ;EN=0;void write_lcd_com(uchar com)wait();RS=0;RW=0;EN=0;_nop_();EN=1;P2=com;delay_ms(5);EN=0;void write_lcd_data(uchar dat) wait();RS=1;RW=0;EN=0;_nop_();EN=1;delay_ms(5);P2=dat;EN=0;void lcd_init()EN=0;write_lcd_com(0x38); delay_ms(1);write_lcd_com(0x06);delay_ms(1);write_lcd_com(0x0C);delay_ms(1

19、);write_lcd_com(0x01);delay_ms(1);void chaoshengbo(void) time=TH0*256+TL0; TH0=0; TL0=0; s=time*0.17; /?CM cache0=s/1000; cache1=s/100%10; cache2=s/10%10; dis_code20=cache0+0; dis_code22=cache1+0; dis_code23=cache2+0; write_lcd_com(0x80+0x40); write_lcd_data(dis_code20); write_lcd_data(dis_code22);

20、write_lcd_data(dis_code23); void main()uchar i=0;lcd_init();AUXR &= 0x7F;/ 定时器时钟12T模式 TMOD &= 0x00;/设置定时器模式TMOD |= 0x11;/定时器工作方法1ET0=1; /定时器0中止许可EA=1; /开总中止write_lcd_com(0x80);for(i=0;i15;i+)write_lcd_data(dis_code1i) ;delay_ms(1);write_lcd_com(0x80+0x40);for(i=0;i16;i+)write_lcd_data(dis_code2i);delay_ms(1);delay_ms();i=0; while(1) while(1)Trig=1;Delay15us();Trig=0;while(!Ecoh);TR0=1;while(Ecoh);TR0=0;chaoshengbo();delay_ms(1000);void timer0() interrupt 1 /外部中止1函数time=TH0*256+TL0;TH0=0;TL0=0;

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 学术论文 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服