基于单片机的超生波测距系统课程设计.docx

上传人:b****3 文档编号:10459515 上传时间:2023-05-25 格式:DOCX 页数:47 大小:900.92KB
下载 相关 举报
基于单片机的超生波测距系统课程设计.docx_第1页
第1页 / 共47页
基于单片机的超生波测距系统课程设计.docx_第2页
第2页 / 共47页
基于单片机的超生波测距系统课程设计.docx_第3页
第3页 / 共47页
基于单片机的超生波测距系统课程设计.docx_第4页
第4页 / 共47页
基于单片机的超生波测距系统课程设计.docx_第5页
第5页 / 共47页
基于单片机的超生波测距系统课程设计.docx_第6页
第6页 / 共47页
基于单片机的超生波测距系统课程设计.docx_第7页
第7页 / 共47页
基于单片机的超生波测距系统课程设计.docx_第8页
第8页 / 共47页
基于单片机的超生波测距系统课程设计.docx_第9页
第9页 / 共47页
基于单片机的超生波测距系统课程设计.docx_第10页
第10页 / 共47页
基于单片机的超生波测距系统课程设计.docx_第11页
第11页 / 共47页
基于单片机的超生波测距系统课程设计.docx_第12页
第12页 / 共47页
基于单片机的超生波测距系统课程设计.docx_第13页
第13页 / 共47页
基于单片机的超生波测距系统课程设计.docx_第14页
第14页 / 共47页
基于单片机的超生波测距系统课程设计.docx_第15页
第15页 / 共47页
基于单片机的超生波测距系统课程设计.docx_第16页
第16页 / 共47页
基于单片机的超生波测距系统课程设计.docx_第17页
第17页 / 共47页
基于单片机的超生波测距系统课程设计.docx_第18页
第18页 / 共47页
基于单片机的超生波测距系统课程设计.docx_第19页
第19页 / 共47页
基于单片机的超生波测距系统课程设计.docx_第20页
第20页 / 共47页
亲,该文档总共47页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

基于单片机的超生波测距系统课程设计.docx

《基于单片机的超生波测距系统课程设计.docx》由会员分享,可在线阅读,更多相关《基于单片机的超生波测距系统课程设计.docx(47页珍藏版)》请在冰点文库上搜索。

基于单片机的超生波测距系统课程设计.docx

基于单片机的超生波测距系统课程设计

 

传感器原理课程设计

 

题目:

基于超声波传感器的测距系统

 

毕业设计(论文)原创性声明和使用授权说明

原创性声明

本人郑重承诺:

所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。

尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得及其它教育机构的学位或学历而使用过的材料。

对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。

作者签名:

     日 期:

     

指导教师签名:

     日  期:

     

使用授权说明

本人完全了解大学关于收集、保存、使用毕业设计(论文)的规定,即:

按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。

作者签名:

     日 期:

     

学位论文原创性声明

本人郑重声明:

所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。

除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。

对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。

本人完全意识到本声明的法律后果由本人承担。

作者签名:

日期:

年月日

学位论文版权使用授权书

本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。

本人授权    大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。

涉密论文按学校规定处理。

作者签名:

日期:

年月日

导师签名:

日期:

年月日

注意事项

1.设计(论文)的内容包括:

1)封面(按教务处制定的标准封面格式制作)

2)原创性声明

3)中文摘要(300字左右)、关键词

4)外文摘要、关键词

5)目次页(附件不统一编入)

6)论文主体部分:

引言(或绪论)、正文、结论

7)参考文献

8)致谢

9)附录(对论文支持必要时)

2.论文字数要求:

理工类设计(论文)正文字数不少于1万字(不包括图纸、程序清单等),文科类论文正文字数不少于1.2万字。

3.附件包括:

任务书、开题报告、外文译文、译文原文(复印件)。

4.文字、图表要求:

1)文字通顺,语言流畅,书写字迹工整,打印字体及大小符合要求,无错别字,不准请他人代写

2)工程设计类题目的图纸,要求部分用尺规绘制,部分用计算机绘制,所有图纸应符合国家技术标准规范。

图表整洁,布局合理,文字注释必须使用工程字书写,不准用徒手画

3)毕业论文须用A4单面打印,论文50页以上的双面打印

4)图表应绘制于无格子的页面上

5)软件工程类课题应有程序清单,并提供电子文档

5.装订顺序

1)设计(论文)

2)附件:

按照任务书、开题报告、外文译文、译文原文(复印件)次序装订

3)其它

摘要

本文主要介绍了基于超声波传感器的测距系统的工作原理、硬件电路的设计和软件设计。

该测距系统由单片机最小系统模块、温度采集模块、超声波测距模块,LCD显示模块组成。

能够完成距离和温度的测量、显示等功能。

关键词:

超声波测距,单片机最小系统,温度采集

 

1引言

近年来,随着电子测量技术的发展,运用超声波作出精确测量已成可能。

由于的经济发展,电子测量技术应用也越来越广泛,而超声波测量精确高,成本低,性能稳定则备受青睐。

由于超声测距是一种非接触检测技术,不受光线、被测对象颜色等的影响,较其它仪器更卫生,更耐潮湿、粉尘、高温、腐蚀气体等恶劣环境,具有少维护、不污染、高可靠、长寿命等特点。

因此可广泛应用于纸业、矿业、电厂、化工业、水处理厂、污水处理厂、农业用水、环保检测、食品(酒业、饮料业、添加剂、食用油、奶制品)、防汛、水文、明渠、空间定位、公路限高等行业中。

可在不同环境中进行距离准确度在线标定,可直接用于水、酒、糖、饮料等液位控制,可进行差值设定,直接显示各种液位罐的液位、料位高度。

利用超声波检测往往比较迅速、方便、计算简单、易于实现实时控制,由于超声波测距系统具有以上的这些优点,因此在汽车倒车雷达的研制方面也得到了广泛的应用。

2设计要求

设计并制作一个基于超声波传感器的测距系统,基本要求如下:

测量范围为0.2-1m;测量精度为±2mm;并能实时显示。

3方案论证

根据本题设计要求,确定了本系统的原理框图如图3-1所示。

图3-1原理框图

3.1方案论证与比较

根据题目的要求,我提出了以下的两种系统设计方案供选择:

方案1:

由单片机编程产生40kHz的方波,由IO口输出,再经过放大电路,驱动超声波发射探头发射超声波。

发射出去的超声波经障碍物反射回来后,由超声波接收头接收到信号,通过接收电路的检波放大、积分整形及一系列处理,送至单片机。

单片机利用声波的传播速度和发射脉冲到接收反射脉冲的时间间隔计算出障碍物的距离,并由单片机控制显示出来。

 

方案2:

由单片机控制集成超声波测距模块HC-SR04,通过用一IO口发一个10us以上的高电平给集成模块控制口,就可以在接收口等待高电平输出,一

有输出就可以开定时器计时,当此口变为低电平时就可以读定时器的值,并由单片机实时检测。

单片机利用声波的传播速度和发射脉冲到接收反射脉冲的时间间隔计算出障碍物的距离,并由单片机控制显示出来。

由于超声波也是一种声波,其声速c与温度有关,所以温度的影响不能忽略不计,本方案中对声速c还添加了温度补偿。

通过上述两种方案的比较,由于集成超声波测距模块HC-SR04提供2cm至400cm的非接触式距离感测功能,测距精度可达3mm,模块自身包括超声波发射器、接收器与控制电路,且编程和制作相比方案一容易许多。

因此本超声波测距系统的设计采用方案2。

3.2单片机最小系统模块的方案

方案1:

采用PIC单片机。

PIC单片机的各个型号的兼容性强,功能全,型号多,抗干扰能力强。

缺点:

PIC单片机价格贵,烧写器较贵,烧写程序比较麻烦。

方案2:

采用MCS-51单片机。

MCS-51系列单片机是8位增强型。

51单片机具有功能强,体积小,可靠性好和价格便宜的优点,并且编程较为容易,程序的烧写也较为简单。

综合上面两个方案以及本人日常学习到的单片机,选择方案二作为本设计的核心处理模块。

3.3温度采集模块的方案

采用温度传感器DS18B20。

DS18B20具有体积小、质量轻、精密度高、全数字化、性能稳定等优点。

它的测量范围在-50℃至+125℃,在-10℃至+85℃范围内精度为±0.5℃,当电源电压在5-10V之间,稳定度为1﹪时,其各方面特性都满足了本系统的设计要求。

此外DS18B20可直接将温度转化成串行数字信号供处理器处理,可以简化硬件电路和提高可靠性。

3.4超声波测距模块的方案

采用HC-SR04超声波模块。

本模块性能稳定,测度距离精确,模块高精度,盲区小的优点。

本模块使用方法简单,一个控制口发一个10US以上的高电平,就可以在接收口等待高电平输出.一有输出就可以开定时器计时,当此口变为低电平时就可以读定时器的值,此时就为此次测距的时间,这样就可算出距离。

3.5显示模块的方案

方案一:

选用数码管显示,用普通的数码管显示简单的数字、字母,数码管分时显示距离和温度。

方案二:

选用液晶显示,显示的内容更加的丰富。

根据所学知识与方案显示内容的设定,我选择了方案二。

4工作原理

测距原理如图4-1所示:

 

s

hd测量目标

图4-1

被测距离

式中:

s为超声波传播距离的一半,h为发射探头和接受探头之间的距离。

由于s远大于h,因此可近似认为d=s,则d=s=ct/2,t为发射超声波与接收超声波的时间间隔,c为超声波在空气中的传播速度。

在空气中,常温下超声波的传播速度是334m/s,但其传播速度c易受空气中温度的影响,声速与温度关系如表4-1所示,由此可修正超声波传播速度为

表4-1声速与温度关系表

温度(℃)

-30

-20

-10

0

10

20

30

40

声速(m/s)

313

319

325

332

338

344

350

356

可见,只要测得超声波发射和接收回波的时间差t以及环境温度T,就能得到较为精确的距离。

测温是通过DS18B20来实现,通过程序将温度读出并送到LCD显示,并将此温度作为测距的温度补偿。

5系统设计

本系统选用的模块包括:

单片机最小系统模块、温度采集模块、超声波测距模块、LCD1602显示模块。

5.1单片机最小系统模块的设计

此次的课程设计的核心部分是单片机的控制,本次选用的是ATMEL公司生产的芯片STC89C52,主要是它的价格便宜,而且在学习中接触较多比较熟悉,容易获得。

5.1.1复位电路的设计

复位使单片机处于起始状态,并从该起始状态开始运行。

STC89C52的RST引脚为复位端,该引脚连续保持2个机器周期(24个时钟振动周期)以上高电平,就可以使单片机复位。

单片机的外部复位有上电复位和按键电平复位。

由于单片机运行过程中,其本身的干扰或外界干扰会导致出错,此时我们可按复位键重新开始运行。

考虑到本系统的运行和调试,复位电路采用按键复位方式,如图5-1所示。

图5-1复位电路

5.1.2时钟电路设计

时钟电路是单片机的心脏,它控制着单片机的工作节奏。

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口,可以设置P1.3为DS18B20温度传感器的总线和单片机的通讯接口。

5.2LCD1602显示模块的设计

在本设计中采用LCD1602来充当显示的作用,对LCD模块的电路的设计得先了解LCD的各个引脚然后再设置其各个引脚和单片机连接的的I/O口。

LCD1602液晶显示模块的读写操作,屏幕和光标的操作都是通过指令编程来实现的。

1602液晶模块内部的控制器共有11条控制指令,如表5-1所示:

表5-1LCD1602液晶模块内部的控制器共有11条控制指令

序号

指令

RS

R/W

D7

D6

D5

D4

D3

D2

D1

D0

1

清显示

0

0

0

0

0

0

0

0

0

1

2

光标返回

0

0

0

0

0

0

0

0

1

*

3

置输入模式

0

0

0

0

0

0

0

1

I/D

S

4

显示开/关控制

0

0

0

0

0

0

1

D

C

B

5

光标或字符移位

0

0

0

0

0

1

S/C

R/L

*

*

6

置功能

0

0

0

0

1

DL

N

F

*

*

7

置字符发生存贮器地址

0

0

0

1

字符发生存贮器地址

8

置数据存贮器地址

0

0

1

显示数据存贮器地址

9

读忙标志或地址

0

1

BF

计数器地址

10

写数到CGRAM或DDRAM)

1

0

要写的数据内容

11

从CGRAM或DDRAM读数

1

1

读出的数据内容

根据LCD1602的引脚定义和资料设计了测距系统的显示模块,电路图如下图5-3

图5-3

5.2.11602接口信号说明

1602接口信号说明如表5-2所示

表5-21602接口说明

编号

符号

引脚说明

编号

符号

引脚说明

1

VSS

电源地

9

D2

数据口

2

VDD

电源正极

10

D3

数据口

3

VO

液晶显示对比度调节端

11

D4

数据口

4

RS

数据/命令选择端

12

D5

数据口

5

R/W

读写选择端

13

D6

数据口

6

E

使能端

14

D7

数据口

7

D0

数据口

8

D1

数据口

5.2.21602操作时序

1602的操作时序图(见图5-4)

图5-41602操作时序

分析时序图可知1602液晶的流程如下

(1)通过RS确定是写数据还是写命令。

写命令包括液晶的光标显示/不显示、光标闪烁/不闪烁、需不需要移动屏幕、在液晶什么位置显示等。

写数据是指要显示什么内容。

(2)读/写控制端设置为写模式,即低电平。

(3)将数据或命令送至数据线。

(4)给E一个高脉冲将数据送入液晶控制器,完成写操作。

5.3DS18B20温度采集模块的设计

DS18B20的管脚排列如图5-5所示,DQ为数字信号输入/输出端;GND为电源地;VDD为外接供电电源输人端。

本温度控制系统采用外接供电方式,电路图如下图5-6所示

图5-5DS18B20管脚图

图5-6DS18B20电路图

5.3.1DS18B20的分辨率

DS18B20温度传感器可完成对温度的测量,温度分辨率的设定能够影响到温度传感器的转换时间和转换的精确度。

温度的分辨率设置如表5-3所示。

表5-3:

温度分辨率设置表

R1

R0

分辨率

温度最大转换时间

0

0

9位

93.75ms

0

1

10位

187.5ms

1

0

11位

375ms

1

1

12位

750ms

由于本系统的主要误差是温度影响声速,故对温度采集的精度要求较高,所以选择DS18B20的分辨率位12位,在12位分辨率的时候的温度采集精度是0.0625度,满足系统精度的要求,所以R1和R0的设置分别为R1=1,R0=1。

5.3.2DS18B20工作时序图

(1)初始化(时序图见5-7)

 

图5-7初始化时序

(2)写数据(时序图见图5-8)

图5-8写数据时序

(3)读数据(时序图见图5-9)

 

图5-9读数据时序

5.4超声波测距模块的设计

超声波测距测距模块采用HC-SR04模块,其芯片如图5-10所示:

图5-10

HR-SR04超声波集成模块工作原理采用的是I/O触发测距,给至少10 us的高电平信号。

另外,此模块可以自动发送8个40 kHz的方波脉冲,并能够自动检测是否有信号返回,如果检测到有信号返回则通过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的相关资料编写了温度采集程序

voiddsreset(void)//DS18B20初始化

{

uinti;

DS=0;

i=103;

while(i>0)i--;

DS=1;

i=4;

while(i>0)i--;

}

bittmpreadbit(void)//读一位

{

uinti;

bitdat;

DS=0;

i++;//小延时一下

DS=1;

i++;i++;

dat=DS;

i=8;

while(i>0)i--;

return(dat);

}

uchartmpread(void)//读一个字节

{

uchari,j,dat;

dat=0;

for(i=1;i<=8;i++)

{

j=tmpreadbit();

dat=(j<<7)|(dat>>1);//读出的数据最低位在最前面,这样刚好一个字节在DAT里

}

return(dat);//将一个字节数据返回

}

voidtmpwritebyte(uchardat)//写一个字节

{

uinti;

ucharj;

bittestb;

for(j=1;j<=8;j++)

{

testb=dat&0x01;

dat=dat>>1;

if(testb)//写1部分

{

DS=0;

i++;i++;

DS=1;

i=8;

while(i>0)i--;

}

else

{

DS=0;//写0部分

i=8;

while(i>0)i--;

DS=1;

i++;i++;

}

}

}

voidtmpchange(void)//发送温度转换命令

{

dsreset();//初始化DS18B20

delayb

(1);//延时

tmpwritebyte(0xcc);//跳过序列号命令

tmpwritebyte(0x44);//发送温度转换命令

}

inttmp()//获得温度

{

inttemp;

uchara,b;

dsreset();

delayb

(1);

tmpwritebyte(0xcc);

tmpwritebyte(0xbe);//发送读取数据命令

a=tmpread();//连续读两个字节数据

b=tmpread();

temp=b;

temp<<=8;

temp=temp|a;//两字节合成一个整型变量。

returntemp;//返回温度值

}

6.2.2LCD显示子程序

根据1602的资料编写了距离、温度显示模块的程序

voidwrite_com(ucharcommon)//1602写指令函数

{

RS=0;

P0=common;

delay

(1);

EN=1;

delay

(1);

EN=0;

}

voidwrite_data(ucharData)//1602写数据函数

{

RS=1;

P0=Data;

delay

(1);

EN=1;

delay

(1);

EN=0;

}

voidinit_1602()//初始化1602

{

RW=0;//只写不读

EN=0;

write_com(0x38);//7*52*16;八位数据接口

write_com(0x0c);//开显示,无光标

write_com(0x06);//地址自动加一

write_com

(1);//清屏

}

voiddisplay(uinttemp)//显示函数

{

ucharge,shi,bai,qian,i;//分别为距离的千、百、十、个位

qian=temp/1000;

bai=temp%1000/100;

shi=temp%100/10;

ge=temp%10;

write_com(0x80);//光标在第一行第一列

for(i=0;i<7;i++)

write_data(table1[i]);//显示“juli:

”字样

write_data(qian+0x30);//显示距离数值

write_data(bai+0x30);

write_data(shi+0x30);

write_data(ge+0x30);

write_com(0x80+11);//光标在第一行第12列

for(i=0;i<2;i++)

write_data(table2[i]);//显示“MM”字母

write_com(0x80+0x40);//光标在第二行第一列

for(i=0;i<8;i++)

write_data(table3[i]);//显示“wendu:

”字样

write_data(ly_dis[0]+0x30);//显示温度数值

write_data(ly_dis[1]+0x30);

write_com(0x80+0x40+11);//光标第二行第12列

for(i=0;i<1;i++)

write_data(table4[i]);//显示“C”字母

}

7误差分析

7.1温度

环境温度影响声速是本设计中存在误差最主要的原因。

当温差较大时,前后两次测距的误差肯定前后相差较大,故本设计采用了温度补偿的方法来减少温度的影响。

7.2障碍物表面材料

因为障碍物的发射面比较粗糙会引起发射信号散射开那么回波信号就会减弱,这样就会导致测量结果的误差增大,这是本设计不可避免的误差。

7.3超声波模块探头距离

两个超声波探头即发射探头和接收探头和障碍物之间存在一个几何角度,当两个探头的距离很近并远小于与被测物距离时这个几何角度被忽略不计,这样测得的距离才约等于实际距离,这也是本设计不可避免的误差。

8总结

此测距系统的硬件电路比较简单,都是使用现成模块搭建。

在实际测量中,性能指标也达到了设计要求。

本次设计的步骤如下:

1、根据任务要求选择合理方案

2、元件的选择

3、硬件设计(本设计选用的是51开发板和超声波测距集成模块)

4、软件设计

5、对整个系统进行调试,使其达到要求

参考文献

郭天祥.51单片机C语言教程[M].北京:

电子工业出版社

郁有文.常健.程继红.传感器原理及工程应用(第四版).西安电子科技大学出版社

 

附录一:

源程序

#include

#defineucharunsignedchar

#defineuintunsignedint

sbitDS=P1^3;//定义DS18B20接口

sbitRS=P2^2;//1602管脚

sbitRW=P2^1;

sbitEN=P2^0;

sbitTrig=P1^4;//超声波模块接口

sbitEcho=P3^2;//回波信号接口在外部中断0

inttime;

intsucceed_flag;

intSpe

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

当前位置:首页 > 党团工作 > 入党转正申请

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

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