完整版基于51单片机的超声波测距系统设计.docx
- 文档编号:8417757
- 上传时间:2023-01-31
- 格式:DOCX
- 页数:17
- 大小:22.88KB
完整版基于51单片机的超声波测距系统设计.docx
《完整版基于51单片机的超声波测距系统设计.docx》由会员分享,可在线阅读,更多相关《完整版基于51单片机的超声波测距系统设计.docx(17页珍藏版)》请在冰豆网上搜索。
完整版基于51单片机的超声波测距系统设计
完满WORD格式整理
1设计任务
本文采纳超声波传感器,IAP15单片机以及LCD显示模块设计了一种超声波测距显示器,
能够实现丈量物体到仪器距离以及显示等功能。
是一种构造简单、性能稳固、使用方便、
价钱便宜的超声波距离丈量器,拥有必定的适用价值。
2设计思路
超声波测距
超声波
超声波是指频次在20kHz以上的声波,它属于机械波的范围。
最近几年来,跟着电子丈量技术的发展,运用超声波作出精准丈量已成可能。
跟着经济发展,电子丈量技术应用愈来愈宽泛,而超声波丈量精准高,成本低,性能稳固则备受喜爱。
超声波也按照一般机械波在弹性介质中的流传规律,如在介质的分界面处发生反射和折射现象,在进入介质后被介质汲取而发生衰减等。
正是因为拥有这些性质,使得超声波能够用于距离的丈量中。
跟着科技水平的不停提升,超声波测距技术被宽泛应用于人们平时工作和生活之中。
一般的超声波测距仪可用于固定物位或液位的丈量,合用于建筑物内部、液位高度的丈量等。
超声在空气中测距在特别环境下有较宽泛的应用。
利用超声波检测常常比较快速、方便、计算简单、易于实现及时控制,并且在丈量精度方面能达到工业适用的指标要求,所以为了使挪动机器人能够自动闪避阻碍物行走,就一定装备测距系统,以使其及时获得距阻碍物的地点信息(距离和方向)。
所以超声波测距在挪动机器人的研究上获得了宽泛的应用。
同时因为超声波测距系统拥有以上的这些长处,所以在汽车倒车雷达的研制方面也获得了宽泛的应用。
超声波测距原理
最常用的超声测距的方法是回声探测法,超声波发射器向某一方向发射超声波,在发
射时辰的同时计数器开始计时,超声波在空气中流传,途中遇到阻碍物面阻拦就立刻反射
回来,超声波接收器收到反射回的超声波就立刻停止计时。
超声波在空气中的流传速度为
340m/s,依据计时器记录的时间t,就能够计算出发射点距阻碍物面的距离s,即:
s=340t/2。
因为超声波也是一种声波,其声速V与温度有关。
在使用时,假如流传介质温度变化不大,
则可近似以为超声波速度在流传的过程中是基本不变的。
假如对测距精度要求很高,则应
专业资料分享
完满WORD格式整理
经过温度赔偿的方法对丈量结果加以数值校订。
声速确立后,只需测得超声波来回的时间,
即可求得距离。
距离计算公式:
S
×
d=2=
?
?
?
?
(2-1)
2
此中d为被测物与测距器的距离,s为声波的来回行程,c为声波,t为声波来回所用
的时间。
此中声速c与温度有关。
(2-2)
假如要提升测距精准度,则一定考虑温度的影响,也可取室温简化电路设计,将温度
传感器作为扩展电路,在力所能及的状况下达成。
超声波测距模块HC-SR04
HC-SR04超声波测距模块可供应2cm至400cm的非接触式距离感测功能,测距精度可
达3mm;模块自己包含超声波发射器、接收器与控制电路。
实物如图2-1所示:
图2-1HC-SR04模块实物图
HC-SR04工作原理及说明:
1、给Trig触发控制信号IO端口起码10us的高电平信号。
2、模块自动发送8个40khz的方波,并自动检测能否有信号返回。
3、有信号返回时,Echo反响信号输出端口输出一个高电平,高电平连续的时间就是
超声波从发射到返回的时间。
4、两次测距时间间隔最少在60ms以上,以防备发射信号对反响信号的影响。
如图2-2所示:
专业资料分享
完满WORD格式整理
图2-2HC-SR04工作原理
2.2LCD1602显示屏
LCD1602显示屏实物如图2-3所示:
图2-3LCD1602显示屏
专业资料分享
完满WORD格式整理
LCD1602电路原理图如图2-4所示:
图2-4LCD1602电路原理图
2.3IAP单片机
IAP15F2K61S2单片机为加强型8051CPU,拥有1个单时钟/机器周期,其工作电压为
4.2V~5.5V,速度比一般的8051快8~12倍;61K字节片内FLASH程序储存器,片内大容
量2048字节的SRAM,大容量的片内EEPPOM,擦写次数在10万次以上;一共有8道10位高速ADC,速度高达30万次/s,3路PWM还可当3路DA使用;共有3通道比较单元,内
部高靠谱复位,8级可选复位门槛电压,完全免却外面复位电路;内部高精度RC时钟,内
部时钟从5MHz~35MHz可选,相当于一般8051的60MHz~420MHz;两组高速异步串行通讯
端口,能够在5组管脚之间进行切换,分时复用可当5组串口使用;各样接口扩展齐备,
一根USB线实现系统供电、程序下载及通讯功能。
单片机实物图及引脚图如图2-5、图2-6
所示:
专业资料分享
完满WORD格式整理
图2-5IAP单片机实物图
图2-6IAP单片机引脚图
专业资料分享
完满WORD格式整理
单片机最小系统
关于一个单片机系统,能够工作的前提是拥有最小系统模块,最小系一致般包含单片
机、晶振电路、复位电路。
单片机的复位及晶振电路都是常有的接法,电源用一个按键控
制接通与断开,使得程序下载变得方便。
电路如图2-7所示:
图2-7单片机最小系统
电源电路
此最小系统中的电源供电模块的电源能够经过计算机的USB口供应,也可使用外面稳固的5V电源
供电模块供应。
时钟电路
单片机晶振的作用是为系统供应基本的时钟信号。
内部时钟电路的晶振频次一般选择
在4MHZ~12MHZ之间(本设计采纳12MHZ),外接两个谐振电容,该电容的典型值为30pF。
如图2-8所示:
专业资料分享
完满WORD格式整理
图2-8时钟电路
复位电路
按键复位就是在复位电容上并联一个开关,当开关按下时电容被放电、RST也被拉到
高电平,并且因为电容的充电,会保持一段时间的高电平来使单片机复位。
如图2-9:
图2-9复位电路
系统整体设计
系统主要由三部分构成:
单片机,超声波测距模块和LCD1602显示屏构成。
单片机在
控制中作为控制器,用于对超声波模块的控制和计时,显示电路主要及时显示丈量数值。
系统框图如图2-10所示:
超声波接收
单片机
LCD显示
控制器
超声波发送
图2-10系统框图
专业资料分享
完满WORD格式整理
3原理图
依据前方对设计的各个有关模块的分别叙述,再联合单片机的引脚功能,从而获得系统整体电路图,如图3-1所示:
图3-1原理图
在图3-1中,LCD1602的D0到D7连结10K上拉排阻并外接到单片机的
到
端口,用于显示所丈量距离,超声波HC-SR04的trig
端、echo端分别接在单片机的
P0.0、
P3.2这两个端口,利用单片机的计时器将时间计算出来。
最后经过程序设计将计算出的距离显示到LCD1602液晶显示屏上。
专业资料分享
完满WORD格式整理
4PCB图
生成PCB如图4-1、4-2所示:
图4-1PCB原理图
图4-2PCB图
专业资料分享
完满WORD格式整理
5
程序流程图
主程序设计
此次软件设计使用的软件是KeiluVision4
。
Keil4集成开发环境是一个窗口化的软
件开发平台,它集成了功能强盛的编写器、工程管理器以及各样编译工具
Keil4使用简
单、功能强盛,是设计者达成设计任务的重要保证,还可以加快单片机应用程序的开发过程。
主程序第一是对系统环境初始化,设定准时器T0工作模式为6位准时计数器模式,
置位总中止同意位EA并给显示端口P2清0。
而后调用超声波发生子程序送出一个超声波
脉冲,为了防止超声波从发射器直接传递到接收器惹起的直射波触发,需要延时约
(这也就是超声波测距器会有一个最小测距离的原由)后,才翻开外中止0接收返回的超
声波信号。
因为采纳的是12MHz的晶振,计算器每计一个数就是1us,,当主程序检测到接收成功的标记位后,将计数器T0中的数(即超声波来回所用的时间)按计算公式计算,
即可得被测物体与测距器之间的距离,设计时取声速为340m/s。
超声波测距程序见附录。
程序流程图
主程序流程图如图5-1所示:
开始
系统初始化
发射超声波脉冲
等候反射超声波
计算距离
显示结果
图5-1主程序流程图
专业资料分享
完满WORD格式整理
测距程序流程图如图5-2所示:
图5-2测距程序流程图
专业资料分享
完满WORD格式整理
6设计感想
在本次实训中,我们第一第一周进行了FPGA的学习,由老师率领我们学习FPGA的基
本操作以及简单电路的设计,此中我以为最为主要的就是让我们认识到了FPGA的发显现状以及发展远景。
经过认识,我们知道了FPGA的方便,能够用语言来实现我们需要的功能,从而自动实现其电路的设计,帮助我们简化了好多步骤,在这一周的学习中间,我们
第一学会了怎样用语言来实现流水灯的设计,以及其基本的设计思路和方法还有quartus2软件的使用方法,既而学会了怎样捕获上涨沿,这个很重要,关于此后我们工作能够起很
大的作用,最主要的是我们学到了好多电路设计方面的经验,这些是我们平时在书籍上学不到的,能够帮助我们在此后的工作中间节俭好多的时间,创建了好多捷径,能够提升我们的效率。
在第二周的时间里,我设计了超声波测距电路,第一当我拿到这个题目时,关于这个
课题只有一些初步的想法,经过理论课的学习对此有一个初始的印象,而后就是去找资料,认识到了我们要设计的这个电路详细的实现原理、所需模块等方面,以及他的构成部分,鉴于这个单片机,我们第一就要设计它的最小系统,而后我们还需要超声波传感器。
并且
还需要关于测完的距离进行显示,这时就需要显示装置,这里我们用的是LCD1602A显示屏。
拿到这些装置此后,我其实不会连结,所以就需要认识每个器件的引脚功能,工作原理,
引脚的定义以及接法等等,而后我们就要进行绘制原理图,而后生成PCB板,在确认无误以后才能进行焊接,在焊接过程中间我们要注意的是焊点能否焊严,焊锡不可以过多,走线
要切合布局,在开始此次的设计工程中间,没有安排好布局,把LCD1602的数据口和单片机引脚接反,这是一个失误的地方,在老师指导下纠正过来。
我在焊接完板子以后,要进
行测试,第一测试显示装置,因为没有电位器,我们就要计算电阻,使显示器能够正常工作,有适合的对照度,亮度等等,在我们进行测试的时候,换了好几个电阻才调整到了适
当的亮度。
在各模块都工作正常后,我们要进行程序的编写,要考虑好多方面,比如接口,语法,逻辑等有没有错误,这些是很必需的,而后进行调试,改正程序等等。
本次设计的超声波测距电路经过测试,偏差在1CM左右是0-2CM里能够接受的范围。
经过本次实训,使我收获良多,第一我们认识到了FPGA的发显现状,而后我们认识了电路设计制作的基本流程,让我对这方面的工作有了必定的认识,帮助我们规划此后的
工作,这些是我们本次实训的最大收获。
并且,在设计超声波测距电经过程中我查阅了好多的资料,自主的学习了好多从前没有注意可是实质需要的东西,帮助我们完美了知识储
专业资料分享
完满WORD格式整理
备,也在必定程度上加强了了我们实质的工作能力,这些是我们在讲堂学习中间没方法实
践的方面,但是在此后我们走上工作岗位上这些倒是很重要的东西,所以很感谢此次生产
实习让我学到了这么多的东西,做出了实物也使我很有成就感,对这方面的内容有了更大
的兴趣以及认识,能够在我走上工作岗位从前给自己提个醒,防患未然,提前做好工作之
前的准备。
参照文件
[1]张岩,张鑫.单片机原理及应用.机械工业第一版社,2015.6.
[2]范立南.单片机原理及应用教程.北京大学第一版社,2013.
[3]楼然苗,李光飞.单片机课程设计指导.北京航空航天大学第一版社,2012.
[4]俞国亮.MCS-51单片机原理及应用.清华大学第一版社,2008.
[5]瞿金辉,周蓉生.超声波测距系统的设计.中国仪器仪表,2007.8.
[6]谭浩强.C语言程序设计(第四版).清华大学第一版社,2011.11
[7]周凯,赵望达,赵迪.高精度超声波测距系统.测试技术卷,2007
专业资料分享
完满WORD格式整理
附录A器件清单:
器件清单如表
A-1所示:
元件
说明
数目
IAP15F2K61S2
单片机
1
HC-SR04
超声波模块
1
LCD1602
液晶显示屏
1
CH340G
USB转TTL下载器
1
按键开关
四脚
1
自锁开关
六脚
1
瓷片电容
30pF
2
电解电容
10uF
1
滑动变阻器103
10KΩ
1
排阻A102J
10KΩ上拉电阻
1
电阻
10KΩ
1
电阻
300Ω
1
晶振
12MHz
1
导线
若干
表A-1器件清单
专业资料分享
完满WORD格式整理
附录B程序代码:
#include
#include
#defineuintunsignedint
#defineucharunsignedchar
uints,time,a,b,c,d;
sbitRS=P3^6;
sbitRW=P3^5;
sbitEN=P3^7;
sbitTrig=P0^1;
sbitEcoh=P0^0;
ucharcodedis_code1[]="DistanceTest:
";
";
ucharcache[3]={0,0,0};
voiddelay_ms(uinttimer)
{
uchari=0;
while(timer--)
for(i=600;i>0;i--);
}
voidDelay15us(unsignedchari)
{
_nop_();
_nop_();
i=42;
while(--i);
}
voidwait()
{
专业资料分享
完满WORD格式整理
RS=0;
RW=1;
EN=0;
_nop_();
_nop_();
_nop_();
EN=1;
P2=0XFF;
while(P2&0X80);
EN=0;
}
voidwrite_lcd_com(ucharcom)
{
wait();
RS=0;
RW=0;
EN=0;
_nop_();
EN=1;
P2=com;
delay_ms(5);
EN=0;
}
voidwrite_lcd_data(uchardat)
{
wait();
RS=1;
RW=0;
EN=0;
_nop_();
专业资料分享
完满WORD格式整理
EN=1;
delay_ms(5);
P2=dat;
EN=0;
}
voidlcd_init()
{
EN=0;
write_lcd_com(0x38);
delay_ms
(1);
write_lcd_com(0x06);
delay_ms
(1);
write_lcd_com(0x0C);
delay_ms
(1);
write_lcd_com(0x01);
delay_ms
(1);
}
voidchaoshengbo(void)
{
time=TH0*256+TL0;
TH0=0;
TL0=0;
s=time*0.17;//?
?
?
?
CM
cache[0]=s/1000;
cache[1]=s/100%10;
cache[2]=s/10%10;
dis_code2[0]=cache[0]+'0';
dis_code2[2]=cache[1]+'0';
dis_code2[3]=cache[2]+'0';
write_lcd_com(0x80+0x40);
专业资料分享
完满WORD格式整理
write_lcd_data(dis_code2[0]);
write_lcd_data(dis_code2[2]);
write_lcd_data(dis_code2[3]);
}
voidmain()
{
uchari=0;
lcd_init();
AUXR&=0x7F;//准时器时钟12T模式
TMOD&=0x00;//设置准时器模式
TMOD|=0x11;//准时器工作方式1
ET0=1;//准时器0中止同意
EA=1;//开总中止
write_lcd_com(0x80);
for(i=0;i<15;i++)
{
write_lcd_data(dis_code1[i]);
delay_ms
(1);
}
write_lcd_com(0x80+0x40);
for(i=0;i<16;i++)
{
write_lcd_data(dis_code2[i]);
delay_ms
(1);
}
delay_ms(2000);
i=0;
while
(1)
while
(1)
{
专业资料分享
完满WORD格式整理
Trig=1;
Delay15us();
Trig=0;
while(!
Ecoh);
TR0=1;
while(Ecoh);
TR0=0;
chaoshengbo();
delay_ms(1000);
}
}
voidtimer0()interrupt1//外面中止1函数
{
time=TH0*256+TL0;
TH0=0;
TL0=0;
}
专业资料分享
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 完整版 基于 51 单片机 超声波 测距 系统 设计
![提示](https://static.bdocx.com/images/bang_tan.gif)