超声波倒车防撞系统报告Word格式文档下载.docx

上传人:b****3 文档编号:7085203 上传时间:2023-05-07 格式:DOCX 页数:29 大小:54.99KB
下载 相关 举报
超声波倒车防撞系统报告Word格式文档下载.docx_第1页
第1页 / 共29页
超声波倒车防撞系统报告Word格式文档下载.docx_第2页
第2页 / 共29页
超声波倒车防撞系统报告Word格式文档下载.docx_第3页
第3页 / 共29页
超声波倒车防撞系统报告Word格式文档下载.docx_第4页
第4页 / 共29页
超声波倒车防撞系统报告Word格式文档下载.docx_第5页
第5页 / 共29页
超声波倒车防撞系统报告Word格式文档下载.docx_第6页
第6页 / 共29页
超声波倒车防撞系统报告Word格式文档下载.docx_第7页
第7页 / 共29页
超声波倒车防撞系统报告Word格式文档下载.docx_第8页
第8页 / 共29页
超声波倒车防撞系统报告Word格式文档下载.docx_第9页
第9页 / 共29页
超声波倒车防撞系统报告Word格式文档下载.docx_第10页
第10页 / 共29页
超声波倒车防撞系统报告Word格式文档下载.docx_第11页
第11页 / 共29页
超声波倒车防撞系统报告Word格式文档下载.docx_第12页
第12页 / 共29页
超声波倒车防撞系统报告Word格式文档下载.docx_第13页
第13页 / 共29页
超声波倒车防撞系统报告Word格式文档下载.docx_第14页
第14页 / 共29页
超声波倒车防撞系统报告Word格式文档下载.docx_第15页
第15页 / 共29页
超声波倒车防撞系统报告Word格式文档下载.docx_第16页
第16页 / 共29页
超声波倒车防撞系统报告Word格式文档下载.docx_第17页
第17页 / 共29页
超声波倒车防撞系统报告Word格式文档下载.docx_第18页
第18页 / 共29页
超声波倒车防撞系统报告Word格式文档下载.docx_第19页
第19页 / 共29页
超声波倒车防撞系统报告Word格式文档下载.docx_第20页
第20页 / 共29页
亲,该文档总共29页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

超声波倒车防撞系统报告Word格式文档下载.docx

《超声波倒车防撞系统报告Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《超声波倒车防撞系统报告Word格式文档下载.docx(29页珍藏版)》请在冰点文库上搜索。

超声波倒车防撞系统报告Word格式文档下载.docx

继续发展采用低频线谱检测的潜艇拖曳线列阵声纳,实现超远程的被动探测和识别;

研制更适合于浅海工作的潜艇声纳,特别是解决浅海水中目标识别问题;

大力降低潜艇自噪声,改善潜艇声纳的工作环境。

无庸置疑,未来的超声波测距仪将与自动化智能化接轨,与其他的测距仪集成和融合,形成多测距仪。

随着测距仪的技术进步,测距仪将从具有单纯判断功能发展到具有学习功能,最终发展到具有创造力。

在新的世纪里,面貌一新的测距仪将发挥更大的作用。

本系统采用C8051F410芯片为核心进行设计,并配合L298D驱动芯片,合理利用了该芯片上丰富的资源,采用压电式超声波传感器收发超声波,采用DALLAS18B20进行温度补偿。

在LCM128645ZK上对测得的距离进行实时显示。

本本系统完成了题目的全部基本要求和发挥部分要求,在整体上保证了设计任务的完成。

一、系统方案

1.1方案论证与实现方法

1.1.1控制器选择

方案一:

采用CPLD/FPGA为控制核心,适合复杂逻辑控制和高速运算系统;

方案二:

使用51核单片机为控制核心,适合系统控制。

综合分析,本系统采用C8051F410单片机,C8051F410单片机是完全集成的低功耗混合信号片上系统型MCU且是与51兼容的微控制器核,可以通过Keil软件编程且配合USB下载线下载程序,方便了程序的调试和运行。

1.1.2电动车车体的选择

购置玩具电动小车,比较方便。

缺点是不可能完全符合使用要求,需要做大量修改。

自制,这种方法能够制作出完全适合自己设计意图的车体,缺点是需要较多时间和高水平的加工工艺。

根据实际情况,采用方案二。

1.1.3电动车的动力方案选择

采用直流电机。

优点是动力好,速度快,缺点是难于精确控制。

采用步进电机。

优点是控制精度高,灵活,缺点是速度慢。

根据分析,本题要求精度,故本系统采用方案二,

1.1.4电机驱动电路方案选择

由分立元件制作驱动电路。

优点是可根据实际需要制作电路,成本低廉。

缺点是电路体积大,调试困难。

使用L298D做驱动电路简单,性能稳定,调试方便。

根据电路要求分析,本系统采用L298D做驱动电路。

1.1.5显示器的选择方案

选用LED数码管显示小车的各种信息,LED显示信息量小、功耗大,同时还需要制作相应硬件驱动电路。

选用字符点阵LCD模块显示小车的各种信息,LCD信息量大、功耗低,,它提供标准的并行或者串行接口,驱动简单,使用方便。

1.1.6开发软件的选择

汇编语言。

比较直接、简洁,不适合复杂运算。

不易读。

C语言。

比较灵活,适合复杂判断和运算。

由于超声波测距算法比较复杂,所以选择方案二。

1.1.7温度传感器的选择

方案一:

采用DALLAS18B20.

方案二:

采用1151.

由于所以选择方案一。

1.2系统设计与结构框图

C8051F410增强型单片机片内资源丰富使得设计电路简化、可靠性大大提高,因此设计中使用C8051F410增强型单片机作为整机的核心部件,根据题目要求设计了电机驱动电路、超声波发送电路和超声波接收电路等,电源采用双电源供电,由锂电池提供电机电源,电池盒提供单片机电源。

整机总体框图如图1所示。

图1系统结构框图

二、理论分析与计算

声波在其传播介质中被定义为纵波。

当声波受到尺寸大于其波长的目标物体阻挡时就会发生反射;

反射波称为回声。

假如声波在介质中传播的速度是已知的,而且声波从声源到达目标,而返回声源的时间可以测量得到,那么就可以计算出从声波到目标的距离。

超声测距仪是根据超声波遇到障碍物反射回来的特性进行测量的,即:

L=Vt/2

上式中,L为待测距离,V(m/s)为超声波在空气中的速度,t为往返时间。

由于超声波在空气中的传播速度与温度T(单位:

摄氏度)有如下关系:

V=331.45+0.61T

在常温下,温度每变化1摄氏度,超声波速度变化0.6m/s。

所以通过测温电路测量出当前温度,就可以计算出超声波在当前温度下的传输速度。

通常声速随温度的变化比较大,因此产生的测量误差也比较大,所以若是在环境温度变化较大的环境下进行测量时,需要考虑声速补偿的问题。

时间t可以用单片机定时测量。

L=(331.45+0.61T)t/2

超声波波速与温度的关系表

温度(℃)

-30

-20

-10

10

20

30

40

声速(m/s)

313

319

325

323

338

344

349

386

三、功能概述及方案设计

3.1功能概述

我们设计的“超声波倒车防撞系统”系统具有倒车防撞功能,测距范围2cm~300cm,倒车危险距离≤100cm开始产生蜂鸣器报警,距离越小声音越急促,液晶实时显示当前小车距障碍物距离。

倒车危险距离≤10cm,自动刹车。

倒车危险距离可设置。

测量误差在1cm之内。

3.2具体方案设计

我们将系统分为电机驱动模块、超声波发送模块、超声波接收模块,液晶显示模块。

3.2.1.电机驱动电路

如图2所示两只步进电机由两个L298D驱动,为进行控制信号减少干扰及单片机保护,所以使用光电偶合器隔离。

图2电机驱动电路

3.2.2.超声波发送电路

发射电路主要由反相器和超声波发射换能器T构成,由施密特输出的40kHz的方波信号一路经一级反向器后送到超声波换能器的一个电极,另一路经两级反向器后送到超声波换能器的另一个电极,用这种推换形式将方波信号加到超声波换能器的两端,可以提高超声波的发射强度。

输出端采两个反向器并联,用以提高驱动能力。

图3超声波发送电路

3.2.3.超声波接收电路

集成电路CX20106A是一款红外线检波接收的专用芯片,常用于电视机红外遥控接收器。

考虑到红外遥控常用的载波频率38kHz与测距的超声波频率40kHz较为接近,可以利用它制作超声波检测接收电路(如下图4)。

实验证明用CX20106A接收超声波(无信号时输出高电平),具有很好的灵敏度和较强的抗干扰能力。

适当更改电容C7的大小,可以改变接收电路的灵敏度和抗干扰能力。

图4超声波接收电路

3.2.4.液晶显示电路

题中要求显示小车倒车距离,由于本单片机引脚有限,为了节省单片机资源,液晶选用带串口功能的LCM128645ZK进行显示,中文液晶显示模块LCM128645ZK内含8192个16*16点中文字型和128个16*8半宽的字母符号字型。

如图5所示。

图5LCM128645ZK液晶

四、测试结果分析

实际值

测量值

300

305

80

77

290

293

75

72

280

282

70

69

270

272

65

66

260

262

60

250

253

55

54

240

50

51

230

232

45

220

224

210

211

35

205

206

30

31

200

25

24

195

194

190

189

15

170

13

160

11

150

149

9

140

138

8

130

129

7

120

118

6

105

103

5

100

97

4

95

93

3

90

87

2

85

83

1

跳变

经以上数据分析可知:

300cm~220cm测量值偏大2cm左右。

220cm~150cm在允许误差之内。

150cm~70cm测量值偏小2cm左右,70cm~2cm在允许误差之内,经多次调整后,整体测量误差在1cm之内。

结论

经过设计和一段时间的反复调试,完成了题目的基本要求和发挥部分的要求。

超声波倒车防撞系统均采用自制方法做成,电路板也是手工焊接完成,其中考虑了很多布线问题,尽量使其归整跳线少、整体布局美观,不易出现接触不良等问题。

完成后的电路易于调试和修改,各个部件达到了协调工作。

通过这段时间的设计竞赛,我们不但增强了实践能力和协作精神,而且懂得了联系实际的重要性,这对我们以后的学习和工作不无裨益。

当然,我们的设计还存在着一些缺陷,有待于在将来设计中进一步提高,在此恳请各位评委专家批评指正。

参考文献

[1]张洪润,蓝清华.单片机应用技术教程[M].北京:

清华大学出版社,1997.

[2]秦曾煌.电工学[M].北京:

高等教育出版社,1999.

[3]常斗南,等.可编程序控制器原理、应用、实验[M].北京:

机械工业出版社,1998.

[4]于海生,等.微型计算机控制技术[M].北京:

清华大学出版社,1999.

[5]王福瑞,等.单片机微机测控系统设计大全[M].北京:

北京航空航天大学出版社,1998.

[6]陈理壁.步进电机及其应用[M].上海:

上海科学技术出版社,1989.

[7]刘保延,等.步进电机及其驱动控制系统[M].哈尔滨:

哈尔滨工业大学出版社,1997.

[8]郭敬枢,庄继东,孔峰.微机控制技术[M].重庆:

重庆大学出版社,1994.

[9]刘国荣.单片微型计算机技术[M].北京:

机械工业出版社,1996.

[10]王福瑞.单片微机测控系统设计大全[M].北京:

北京航空航天大学出版社,1998

[11]潘新民等:

单片微型计算机实用系统设计1北京:

人民邮电出版社,1992.

[12]何立民.单片机应用技术选编[M].北京:

北京航空航天大学出版社,1993.

[13]潘新民等:

[14]翟玉文梁伟艾学忠施云贵编著,电子设计与实践,中国电力出版社,2005

附录

程序

#include<

reg51.h>

intrins.h>

math.h>

#defineucharunsignedchar

#defineuintunsignedint

unsignedlongs=300,s1,t=0,p;

//定义全局变量

uintcc=250,mm,nn,dd=10;

sbitDQ=P1^0;

//18B20

sbitP1_3=P1^3;

//蜂鸣器

sbitBlock=P3^2;

//外部中断端口

sbitControl=P1^4;

//超声波控制端口

voiddelay_fengming(uchars)

{

uinti;

while(s--)

{

for(i=0;

i<

240;

i++);

}

}

//===============================液晶开始==========================================

//---------------------------------定义端口开始--------------------------------

sbitCLK=P1^1;

sbitIO=P1^2;

sbitACC0=ACC^0;

//定义累加器最低位用来存放所读出忙信号

//---------------------------------定义端口结束--------------------------------

//-------------------------------n毫秒延时程序(12M晶震)-------------------------------

lcd_delay(unsignedintn)

unsignedchari;

while(n--)

{for(i=0;

//-------------------------------延时程序结束-------------------------------

//-------------------------------读忙信号时序开始-------------------------------

read_a_busy_signal()

{unsignedchari,temp;

5;

i++)

CLK=1;

IO=1;

//时序特别重要首先写5个1

CLK=0;

}//必须严格遵守时序,否则一定不好使

//此位为lcd_RW,处于读状态

IO=0;

//数据指令位,通过一个函数可进行写指令和读数据复用现为指令寄存器

//第8位按手册写1个0

8;

ACC0=IO;

//从最高位开始读,严格按照时序一次读一位

ACC<

<

=1;

//左移一位,根据手册(后四位就应该为0)

temp=ACC;

temp|=(ACC>

>

4);

//最后两个字节的高位取出合成一个字节表示忙状态位送回

//最后结束标志位必需加一个下降沿,否则最后写的一个字符出不来

//这最后两位为一组

returntemp;

//-------------------------------读忙信时序结束--------------------------

//-------------------------------读忙信号--------------------------------------

busy_signal()

do

{CLK=0;

//固宝格式,参考并口读忙信号

while(read_a_busy_signal()>

0x7f);

//最高位为1则忙,再读,如为最高位为0则退出

//-------------------------------LCM空闲完成-----------------------------------

//---------------------------计算行位置开始------------------------------

count_row(unsignedcharlcd_row)//显示一串时用

switch(lcd_row)

case0:

lcd_row=0;

break;

//第一行起使位

case1:

lcd_row=8;

//第二行起使位

case2:

lcd_row=16;

//第三行起使位

case3:

lcd_row=24;

//第四行起使位

returnlcd_row;

//返回所在行

//-----------------------------计算行位置返回-----------------------------

//-----------------------------计算字符位置开始----------------------------

count_position(unsignedcharposition)//显示一个时用

switch(position/8)//判断所在位置

position+=0x80;

//判断第一行所在位置

position+=0x88;

//判断第二行所在位置

position+=0x78;

//判断第三行所在位置

//判断第四行所在位置

returnposition;

//返回所在位置

//------------------------------计算字符位置返回-----------------------------

//-------------------------------写指令函数-------------------------------

write_a_command_data_com(unsignedcharRS,unsignedcharcommand,unsignedcharlcd_busy)

if(lcd_busy)

busy_signal();

//判断是否忙

//此位为lcd_RW读写状态位由于为写,所以直接送0

//lcd_delay(5);

//每次可以加延时但是速度慢,可以做为效果使用一般我们不加

IO=RS;

//数据指令位,通过一个函数可进行写指令和读数据复用1为数据寄存器0为指令寄存器

//对于并行是上边说的那样,串行做片选,0禁止,1允许

temp=command&

0xf0;

//取一个指令或数据的高4位送临时变量根据手册一个指令或数据位分两次写

IO=temp&

0x80;

//从最高位开始写,严格按照时序一次写一位高低位分开

temp<

temp=(command&

0x0f)<

4;

//取上个指令或数据的低4位送临时变量根据手册

//从最高位开始写,严格按照时序一次写一位

//-------------------------------写指令函数结束--------------------------

//---------------------------显示一个字符开始----------------------------

display_a_char(unsignedcharposition,unsignedcharlcd_data)//可显示变量

//如果液晶忙,则在此循环

position=count_position(position);

//判断输入字符所在位置

write_a_command_data_com(0,position,1);

write_a_command_data_com(1,lcd_data,1);

//写字符

//---------------------------显示一个字符结束----------------------------

//-------------------------------按字串显示一个汉字开始------------------------------

display_a_word(unsignedcharposition,unsignedchar*lcd_word1)//显示一个汉字或显示两个字符

{

//读忙

//判断汉字所写的位置

//写地址

write_a_command_data_com(1,*lcd_word1,1);

//一个汉字分为两个字节分两次写,一个又写2次

write_a_command_data_com(1,*(lcd_word1+1),1);

//共计写了4次

}

//-------------------------------按字串显示一个汉字结束-------------------------------

//-------------------------------按字串显示一串汉字开始------------------------------

display_string_word_byte(unsignedcharlcd_row,unsignedchar*str)

unsignedchari=0;

lcd_row=count_row(lcd_row);

//判断所在的行

while(*(str+i)!

='

\0'

)//如果汉字串不结束

{

display_a_word(lcd_row++,str+i);

//一个字节一次性写入为

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 初中教育 > 初中作文

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2