基于单片机的超声波倒车雷达系统设计论文毕设论文.docx
《基于单片机的超声波倒车雷达系统设计论文毕设论文.docx》由会员分享,可在线阅读,更多相关《基于单片机的超声波倒车雷达系统设计论文毕设论文.docx(39页珍藏版)》请在冰豆网上搜索。
基于单片机的超声波倒车雷达系统设计论文毕设论文
毕业设计说明书
基于单片机的超声波倒车
雷达系统设计
专业
自动化
学生姓名
班级
自动化113
学号
指导教师
完成日期
2015年6月5日
毕业设计说明书(毕业论文)
独创性声明
本人声明所呈交的毕业设计说明书(毕业论文)是本人在导师指导下进行的研究、设计工作后独立完成的。
除了文中特别加以标注和致谢的地方外,说明书中不包含其他人己经发表或撰写过的研究成果。
对本文的研究所做贡献集体和个人,均己在说明书中作了明确的说明并表示谢意。
本人完全意识到本声明的法律后果由本人承担。
毕业设计说明书(毕业论文)作者签名(手写):
日期:
年月日
指导教师签名(手写):
日期:
年月
基于单片机的超声波倒车雷达系统设计
摘要:
以STC89C52单片机为控制核心的超声波倒车雷达系统进行设计。
该系统实现的功能有超声波发射器发射出一系列的连续脉冲,当脉冲遇到障碍物后返回,超声波接收器接收到脉冲后,送到单片机里,单片机计算出距离,在显示器上显示出距离,并通过语音播报告知驾驶员,当达到危险距离时,发出危险警报。
根据超声波倒车雷达系统的主要功能,提出了设计方案并进行了论证。
设计包括硬件设计和软件设计两大部分。
硬件部分包括单片机最小系统、超声波模块、显示模块、语音模块和按键模块五个部分。
单片机选用宏晶STC公司的STC89C52;用HC-SR04模块进行发射和接收脉冲;用LCD1602显示距离,并与报警值比较;语音模块由喇叭和YF017语音芯片组成,用喇叭播报距离,并当距离达到报警值时发出报警;用按键模块设定报警值。
软件采用了模块化的设计方法,主要分为主程序、超声波发射子程序、超声波接收子程序、LCD1602显示子程序、语音播报子程序和按键子程序六部分。
系统进行软硬件联调。
软硬件联调成功后,实现了超声波模块发射和接收脉冲,将计算出的距离显示在显示器上,喇叭播报距离。
当距离小于设定值时,喇叭发出报警声。
关键词:
倒车雷达;超声波;单片机;语音播报;显示器
ThedesignofUltrasonicreversingradarsystembasedonSinglechip
Abstract:
STC89C52microcontrollercorewithanultrasonicreversingradarsystemdesign.Thefunctionsofthesystemhasanultrasonictransmitteremitsaseriesofsuccessivepulses,whentheyhitanobstructionreturn,theultrasonicpulsereceivedbythereceiver,thesuppliedsinglechipmicrocomputer,thesinglechipmicrocomputercalculatesthedistance,showingdistanceonthedisplayandinformsthedriverviavoicebroadcast,whenitreachesthedangerfromissuehazardwarnings.
Accordingtothemainfunctionoftheultrasonicreversingradarsystemdesignschemeisproposedanddemonstrated.Design,includinghardwaredesignandsoftwaredesigntwoparts.Minimumsystemhardwareconsistsofamicrocontroller,ultrasonicmodule,displaymodule,voicemodule,akeymoduleoffiveparts.TheSTC89C52singlechipchoosemacrocrystallineonSTCcompany;transmitandreceivepulseswithHC-SR04module;LCD1602displaywithdistance,andcomparedwithalarm;soundmodulebythehornsandYF017voicechips,broadcastbyloudspeakerdistance,andwhenthedistanceisreachedalarmwhenthealarmvalue;setalarmvaluesbuttonmodule.Softwareusesamodulardesign,dividedintothemainprogram,subprogramultrasonictransmitter,ultrasonicreceptionsubroutine,LCD1602displayroutines,voicebroadcastsubroutineandbuttonsubroutinesixparts.
Jointdebugsystem’ssoftwareandhardware.Afterthesuccessofthesoftwareandhardware’sdebuggingrealizedtransmitandreceivepulsesofultrasonicmodule,thecalculateddistanceisdisplayedonadisplay,speakersbroadcastdistance.Whenthedistanceislessthanthesetvalue,thehornalarm.
Keywords:
reversingradar;Ultrasound;Singlechipmicrocomputer;Voicebroadcast;monitor
附录1基于单片机的超声波倒车雷达系统原理图...........................................23
附录2基于单片机的超声波倒车雷达系统元器件清单...................................24
附录3基于单片机的超声波倒车雷达系统程序清单.......................................25
基于单片机的超声波倒车雷达系统设计
1概述
1.1课题研究背景与意义
现在使用汽车的人越来越多了,但是车子一多,也会造成交通拥挤,随之带来的安全隐患也就越来越多了。
当人们在街道、停车场或者车库要倒车的时候,驾驶员要不停的看着车子周围的情况,不然的话,一不小心就会造成碰撞,给自己造成财产损失,更严重的话会给自己或他人的生命安全造成危险。
因此,倒车雷达系统就出现了。
倒车雷达是泊车和倒车的安全辅助装置,当驾驶员倒车时,启动倒车雷达系统,它能通过发射和接收超声波来探测周围的情况,并以声音或者影像告诉驾驶员,既解除了驾驶员倒车时要左顾右盼、前看后视的麻烦,又帮助驾驶员看清了整个车子周围的情况,大大降低了发生事故的机率。
1.2课题设计内容
超声波倒车雷达系统的控制器为STC89C52单片机。
该系统能够实现超声波模块发射和接收脉冲,在显示器上显示距离,并语音告知驾驶员,在达到危险距离时,发出报警声。
系统需要用到以下四种技术:
a、单片机:
STC89C52单片机体积小、结构简单、功能强大,在生活中得到了广泛的应用,符合倒车雷达系统的要求;
b、超声波测距:
超声波指向性强、能够测量较远的距离、能够适应较为复杂的环境、应用级别较高;
c、显示:
用LCD1602来显示测得的距离;
d、语音播报:
用YF017语音芯片和喇叭组成来播报距离,并在达到危险距离时,发出报警声。
2设计方案论证
2.1总体设计
超声波倒车雷达系统总体设计框图如图2-1所示。
其中包括单片机最小系统、超声波模块、显示模块、语音模块和按键模块五个部分。
图2-1超声波倒车雷达系统总体设计框图
以STC89C52单片机为微处理器的最小系统驱动超声波模块发射出脉冲,遇到障碍物后,再接受返回的脉冲,单片机计算出脉冲从发射到接受之间的时间,接着计算出距离,将数据送至显示模块和语音模块。
在显示器上显示距离,通过喇叭播报距离,并当距离达到危险值时,发出报警声。
按键模块可以重新设定报警值。
2.2超声波测距方法选择
超声波测距用的较多的方法有相位检测法、声波幅值检测法、往返时间检测法。
相位检测法的精度虽高,但是测量的距离较小。
声波幅值检测法对环境的要求较高,使用起来难度较大。
往返时间检测法简单易懂、计算方便,在硬件和软件设计上容易实现。
所以选用往返时间检测法来测量距离。
往返时间检测法的原理是计算出从超声波发射器发射出脉冲到接收器接收到脉冲之间的时间t,这个时间称为渡越时间,再根据公式S=ct/2计算出距离。
c为超声波在空气中的传播速度,因为测试实验在实验室进行,可以考虑超声波在常温下传播,c取340m/s。
2.3器件选择
单片机选用宏晶公司的STC89C52单片机。
该单片机使用起来简单方便,而且功能强大,能够满足系统的计算和控制要求。
超声波模块选用HC-SR04模块。
该模块的测量距离较远,测量的精度高,其结构简单、价格低廉、小巧、容易装卸,符合系统设计的要求。
显示模块使用的是LCD1602。
该模块体积小、质量轻、消耗少,可以显示2*16个字符,而且不需要驱动电路,可以直接通过单片机驱动,简单方便。
由于这次显示不需要字符和图案,LCD1602价格便宜,容易购买,所以选用LCD1602模块。
语音模块由一个喇叭、一个YF017语音芯片和2个104电容组成。
喇叭用来发出声音,104电容将电源中的高频杂波对地短路,用来降低电源输入对芯片的影响,维持电路的稳定。
YF017芯片可以直接驱动喇叭,能够控制多段地址的组合,使用起来,简单方便,功能强大。
按键模块由4个按键组成。
K1、K2、K3、K分别是“设置报警值”、“增大报警值”、“减小报警值”、“播报距离”。
3.系统硬件设计
根据第2节的总体设计方案,设计基于单片机的超声波倒车雷达系统的硬件电路,总电路原理图如附录1所示。
3.1单片机最小系统
选用的单片机为STC89C52单片机,其引脚图如图3-1所示。
图3-1STC89C52引脚图
STC89C52单片机是STC公司生产的一种消耗低、功能强大的COMS8位微型控制器。
STC89C52单片机在传统的51单片机的基础上,做了许多的改动,拥有8位的CPU和系统可编程Flash,为众多的嵌入式控制应用系统提供了高效的解决方案。
要使单片机最小系统正常工作,就必须还要有复位电路和晶振电路。
复位电路由电阻和电容串联组成。
当单片机系统在运行时,受到环境的影响,会出现程序跑偏,这时,按下复位按钮,内部的程序就会从头开始运行。
要想出现复位信号,就要给RST引脚提供一个2us以上的高电平,而要想超声波模块发射出脉冲,就要提供一个10us以上的高电平。
所以,选择一个10uF的电容和10K的电阻就能满足要求。
晶振电路由2个22pF的电容C2和C3,以及12MHz的晶振Y1组成。
振荡器的工作状态决定整个最小系统的运行。
STC89C52单片机的最小系统如图3-2所示。
图3-2STC89C52单片机最小系统图
将单片机的RST引脚接在复位电路的电容C1和电阻R2之间,C2连接XTAL2引脚,C3连接XTAL1引脚,并在C2和C3之间并连一个12MHz的晶振,就构成了STC89C52单片机的最小系统。
3.2超声波模块
3.2.1超声波模块介绍
超声波模块选用的是HC-SR04模块。
其实物图如图3-3所示。
图3-3HC-SR04模块实物图
(1)HC-SR04模块参数如表3-1所示
表3-1模块参数
电气参数
HC-SR04超声波模块
工作电压
DC5V
工作电流
15mA
工作频率
40khz
最远射程
4m
最近射程
2cm
测量角度
15°
输入触发信号
10us的TTL脉冲
输入回响信号
输出TTL电平信号,与射程成比例
规格尺寸
45*20*15cm
(2)HC-SR04工作原理
HC-SR04的模块时序图如图3-4所示。
图3-4HC-SR04模块时序图
根据以上的时序图可以看出,只要P2.3向Trig提供一个10uS以上的高电平信号,模块就会启动,自动循环地发出8个40KHz的脉冲并且检测是否有回波。
当检测到回波信号后,ECHO会输出一个回响电平到P2.4,回响电平的持续时间和检测距离成正比。
根据时间间隔就能够计算出距离。
3.2.2超声波发射和接收电路
超声波内部的发射和接收电路图如图3-5所示。
图3-5超声波发射和接收电路图
3.2.3超声波模块电路
超声波模块电路图如图3-6所示。
超声波模块的VCC接电源,VDD接地,Trig接单片机的P2.3,用来接收触发电平,Echo接P2.4输出回响电平。
图3-6超声波模块电路图
3.3显示模块
3.3.1显示模块介绍
显示模块为LCD1602显示器。
它是一种用来显示字母、数字、符号等的点阵型液晶模块。
它是由若干个5*7或者5*11等点阵字符位组成,每个点阵字符位都可以显示一个字符。
因为每位之间有间隔,所以它不能显示图形和汉字。
其通过5V电压驱动,带背光,可以显示两行,每行显示16个字符,只有并行接口,没有串行接口。
其实物图如图3-7所示。
图3-7LCD1602实物图
(1)LCD1602引脚说明如表3-2所示
表3-21602引脚说明
编号
符号
引脚说明
编号
符号
引脚说明
1
VSS
电源地
9
D2
数据
2
VCC
电源正极
10
D3
数据
3
VO
液晶显示偏压
11
D4
数据
4
RS
数据/命令选择
12
D5
数据
5
R/W
读/写选择
13
D6
数据
6
EN
使能信号
14
D7
数据
7
D0
数据
15
BLA
背光源正极
8
D1
数据
16
BLK
背光源负极
第一脚:
接地电源VSS。
第二脚:
5V正电源为VCC。
第三脚:
VO为液晶显示器对比度调整的端口,对比度的强弱由接电源的不同决定,对比度的调整可以通过一个10k的电位器。
第四脚:
RS是寄存器选择,当接收到高电平时,接数据寄存器,低电平时,接指令寄存器。
第五脚:
R/W的读和写信号线,当接收到高电平时,进行读操作,低电平时,进行写操作。
其中RS与R/W的关系决定了当时状态。
第六脚:
使能端EN,当EN端由1至0时,液晶模块中的命令开始被运行。
第七至十四脚:
D0-D7为8位双向数据线。
第十五脚:
背光源正极。
第十六脚:
背光源负极。
(2)LCD1602写操作时序图如图3-8所示
图3-8写操作时序图
从这个时序图可以看出,写命令字节时,RS变为低电平,R/W变为低电平。
然后LCD1602的DB0~DB7口接收数据,E引脚从低电平变为高电平,脉冲宽度要维持最小400ns,然后E引脚负跳变,RS电平变低,R/W电平变高。
3.3.2LCD1602电路
LCD1602电路图如图3-9所示。
其中D0~D7与单片机的P0.0~P0.7相连接,EN与单片机的P2.6相连,RS与单片机的P2.7相连接,V0和一个2.2K的电阻相连接地。
GND、R/W和K接地,VCC和A接电源正极。
图3-9LCD1602电路图
3.4语音模块
语音模块分为三个部分,分别是一个喇叭、一个YF017语音芯片和2个104电容。
喇叭负责发出声音,104电容负责去耦,维持电路的稳定,而YF017语音芯片负责驱动喇叭发出声音。
3.4.1YF017语音芯片介绍
YF017语音芯片有8个引脚,采用DIP或者SOP方式封装,工作电压为1.8-5.5V,采用PWM直接驱动小喇叭发出声音。
YF017语音芯片是固定标准模块,可以只通过一个IO口来控制多达32段地址。
通常用3个IO口来控制芯片,其引脚图如图3-10所示。
图3-10YF017引脚图
模拟串行工作时各IO的作用:
BUSY:
芯片工作时,输出低电平,停止工作或者待机时,保持高电平;
DATA:
接收单片机的脉冲信号;
RST:
芯片的复位脚,当收到高电平时,芯片停止工作。
3.4.2语音模块电路
语音芯片的Busy连接单片机的P2.2,用来识别语音芯片的工作状态。
Data连接P2.1,识别单片机的脉冲信号,受到几个脉冲,就播放第几个地址的内容。
Rest连接P2.0,收到高电平后,语音芯片停止运行。
2个104电容降低电源输入对芯片的影响,维持电路的稳定。
喇叭用来发出声音。
语音模块电路图如图3-11所示。
图3-11语音模块电路图
3.5按键模块
设计中有4个按键K1、K2、K3和K,作用分别是设置报警值、增大报警值、减小报警值和播报距离,因为按键较少,故采用了独立键盘的方式,K1、K2、K3、K分别连到了单片机的P1.0、P1.1、P1.2、P3.7,当按下K时,喇叭播报当前距离。
按键模块电路图如图3-12所示。
图3-12按键模块电路图
4系统软件设计
系统软件设计分为主程序、超声波发射子程序、超声波接收子程序、LCD1602显示子程序、语音播报子程序和按键子程序六部分。
4.1主程序
主程序流程图如图4-1所示。
主程序是单片机程序的主体,单片机系统软件的功能都是在其中完成的。
首先对液晶初始化,读取原报警值,定时器0初始化,再按键扫描,接着重新设定报警值并按键扫描,然后启动超声波模块,超声波发射器发射出脉冲后,超声波接收器检测回波。
当接收到回波后,通过单片机计算出距离,并在显示器上显示出来。
如果距离小于报警值,喇叭就会发出“注意危险”的报警声,如果距离大于报警值,则没有声音。
按下K键,喇叭播报距离。
图4-1主程序流程图
4.2超声波发射子程序
超声波发射子程序流程图如图4-2所示。
超声波发射子程序的过程是模块接收到来自单片机的触发信号后,发射出连续脉冲,同时定时器0开启。
图4-2超声波发射子程序流程图
4.3超声波接收子程序
超声波接收子程序流程图如图4-3所示。
超声波接收子程序的过程是超声波接收器检测是否有回波,如果没有回波,则继续检测,如果检测到回波,模块会输出回响信号,那么定时器0中断,单片机算出脉冲从发出到接收的时间差。
图4-3超声波接收子程序流程图
4.4LCD1602显示子程序
LCD1602显示子程序流程图如图4-4所示。
LCD1602显示子程序主要是对液晶内部的控制指令进行指定如液晶初始化,显示空白,读,写,判断液晶的工作状态及指定字符的位置。
LCD1602显示子程序流程图如图4-4所示。
首先对液晶初始化,然后将地址命令写到LCD,然后向LCD发送字符串,最终在液晶上显示距离。
图4-4LCD1602显示子程序流程图
4.5语音播报子程序
语音播报子程序流程图如图4-5所示。
语音播报的过程是首先对语音芯片进行复位,在接受脉冲信号,接收到几个脉冲信号,就调用第几个地址的内容,最后通过喇叭发出声音。
图4-5语音播报子程序流程图
4.6按键子程序
按键子程序流程图如图4-6所示。
按下K1键,对液晶进行初始化,重新设定报警值,按下K2键,增大报警值,按下K3键,减少报警值。
图4-6按键子程序流程图
5系统调试
单片机应用系统的调试分为硬件和软件两部分,但是它们是紧密相连的。
首先对硬件进行故障排除,然后调试软件,最后在软硬件联调。
硬件电路是基础,软件是支撑硬件能够运行的关键。
总之,调试过程是在硬件电路的基础上进行软件调试的过程,软硬件缺一不可。
5.1硬件调试
首先观察看器件的焊接布局是否和原理图上的一致,再看器件的引脚有没有焊在一起,有没有没焊好,同时检查器件是否有损坏,接着用万用表检测各个引脚的线是否有短路或者断路。
5.2软件调试
软件调试使用的是Keil软件。
首先对编写的程序进行调试,看是否有错误,再进行编译,将程序下载到单片机里。
5.3软硬件联调
在硬件和软件调试成功后,给万用表通上电,观察给个模块的工作状态。
分析各个模块是否达到了要求的工作性能。
a、LCD1602能够显示距离;
b、当距离小于报警值时,喇叭发出“注意危险”的报警声,按下K键,喇叭播报距离;
c、按下K1键,报警值重新设定,按下K2键,增大报警值,按下K3键,减小报警值。
5.4实验结果
万用板未通电,其界面如图5-1所示。
按下K1键,重新设定报警值,其工作界面如图5-2所示。
按下K2键,将报警值增大到0.30m,其工作界面如图5-3所示。
按下K3键,将报警值减少到0.10m,其工作界面如图5-4所示。
在超声波模块前0.10m处放置一个挡板,液晶上显示0.10m,其工作界面如图5-5所示。
图5-1万用板未通电界面
图5-2设定报警值工作界面
图5-3增大报警值工作界面
图5-4减小报警值工作界面
图5-5测距工作界面
6结束语
经过一学期的努力后,终于完成了毕业设计。
此次设计与单片机有关,需要做实物,发现自己对单片机还不够了解,动手能力还不够强,以后需要多多努力。
这次设计课题是基于单片机的超声波倒车雷达系统设计。
因为自己的单片机基础较薄弱,应老师的建议,在寒假买了单片机的书籍和学习板进行了初步的研究,对如何做这个设计有了一个大致的了解,也巩固了自己的单片机知识。
开学后,根据设计的要求,去图书馆查阅相关的书籍,找到了需要用到的资料,再用一个多星期的时间确定了设计方案,接着开始画原理图和购买要用的元器件。
在焊接器件时,因为不熟练,总是焊不上去,最后在同学的帮助下,终于完成了,所以很谢谢他。
焊好器件后,用Keil软件编写程序,进行调试、编译,最后将修改好的程序下载到单片机里。
通过软硬件联调,能够使实物正常工作。
这次毕业设计既有辛苦也有收获。
因为以前的基础不是很好,所以做起来不是那么顺利,但是得到的也很多。
既学到了单片机知识,也提高了自己的动手能力,为自己以后的学习和工作提供了宝贵的经验。
致谢
此次毕业设计的完成既有自己的努力,也和指导老师的帮助分不开。
从确定设计课题到设计结束,每一个阶段指导老师都会提供很大的帮助。
老师严谨的教学态度、渊博的知识、无私的奉献精神令人感动。
从指导老师身上,不仅学到了专业知识,也学到了做人的道理。
在以后的学习工作中,将牢记指导老师的教诲和鼓励,努力奋斗。
在此向指导老师致以最衷心的感谢和深深的敬意!
除了指导老师,在四年的大学四年期间,每位老师都给予了很大的帮助,自己的水平