超声波测距离报告.docx
- 文档编号:26678956
- 上传时间:2023-06-21
- 格式:DOCX
- 页数:17
- 大小:148.17KB
超声波测距离报告.docx
《超声波测距离报告.docx》由会员分享,可在线阅读,更多相关《超声波测距离报告.docx(17页珍藏版)》请在冰豆网上搜索。
超声波测距离报告
传感器与检测技术大作业
报
告
项目:
基于AT89C51的超声波测距传感器
班级:
08交通设备信息工程2班
日期:
2011年5月24日
目录
一系统实现原理及功能3
实现功能3
二、系统设计方案3
硬件设计3
主要芯片功能介绍5
系统软件设计6
二、误差分析11
三、实验心得11
四、参考文献12
一系统实现原理及功能
当单片机控制超声波传感器向某一方向发射波束的同时,单片机内部开始计时。
在传播过程中,超声波遇障碍物后反射回波。
传感器接收到第一个反射波后,停止计时。
由于超声波在空气中的传播速度是340m/s,根据计时时间及公式S=340t/2,即可得到发射点距障碍物的距离S。
实现功能
本系统实现要求测量距离范围为0.1~3米,精度误差在1厘米以内,并用LCD1602显示所测距离。
二、系统设计方案
硬件设计
该系统硬件部分由发送模块、接收模块、显示模块、时间处理模块及电源模块组成。
发送模块主要由74LS04和超声波发射器组成;接收模块主要由超声波接收探头和CX20106A组成;显示模块则有液晶显示器LCD1602及其辅助电路组成;时间处理模块是整个系统的中枢神经由AT89C51及其辅助电路组成。
1、发射部分
采用反向器74HC04和超声波换能器T构成震荡器、放大驱动电路。
电路简单,噪声小,稳定性高。
电路简单稳定,噪声小。
图1超声波发射模块图2接收模块电路
2、接收部分
采用集成电路CX20106A。
它是一款红外线检波接收的专用芯片,载波频率38KHZ与测距的超声波40KHZ较为接近,可以利用它制作超声波检测接受电路,且电路简单。
可满足项目中关于距离和精度的要求,电路简洁实用,易于调试,且价格低。
3、计时部分
采用单片机芯片STC89C51内部定时器,无需额外器件花销,且计时准确,受干扰小。
图三主控及几计时模块
4、显示部分
显示部分使用LCD1602液晶显示板来完成显示的功能。
它可以显示两行,每行16个字符,采用单+5V电源供电,外围电路配置简单。
价格相对数码管高,但是它解决了数码管存在的各种问题,如功耗低、显示内容丰富,影像稳定不闪烁、抗干扰能力强,不但能节省电能,而且能实现普通数码管无法实现的字符串显示功能。
图4显示模块电路
主要芯片功能介绍
该实验所用主要器件:
反向器74HC04、超声波发生器、CX20106A、单片机芯片STC89C51、LCD显示器。
1、反向器74HC04
40KHZ方波信号一路经一级反向器后送到超声波换能器的一个电极,另一路经两级反向器后送到超声波换能器的另一个电极。
用这种推挽形式将方波信号加到超声波换能器两端,可以提高超声波的发射强度。
输出端采用两个反向器并联,用以提高驱动能力。
上拉电阻R10、R11一方面可以提高反向器74HC04输出高电平的驱动能力,另一方面可以增加超声波换能器的阻尼效果,缩短其自由振荡的时间。
2、超声波发生器
超声波发生器可以分为两大类:
一类是用电气方式产生超声波,一类是用机械方式产生超声波。
电气方式包括压电型、磁致伸缩型和电动型等;机械方式有加尔统笛、液哨和气流旋笛等。
压电式超声波发生器实际上是利用压电晶体的谐振来工作的。
超声波发生器内部有两个压电晶片和一个共振板。
当它的两极外加脉冲信号,其频率等于压电晶片的固有振荡频率时,压电晶片将会发生共振,并带动共振板振动,便产生超声波。
反之,如果两电极间未外加电压,当共振板接收到超声波时,将压迫压电晶片作振动,将机械能转换为电信号,这时它就成为超声波接收器了。
图5超声波发生器外形及尺寸
3、CX20106A
电路采用集成电路CX20106A。
这是一款红外线检波接收的专用芯片,常用于电视机红外遥控接收器。
考虑到红外遥控常用的载波频率38kHz与测距超声波频率40kHz较为接近,可以利用它作为超声波检测电路。
实验证明,其具有很高的灵敏度和较强的抗干扰能力。
适当改变C1的大小,可改变接收电路的灵敏度和抗干扰能力。
R1和C1控制CX20106A内部的放大增益,R2控制带通滤波器的中心频率。
一般取R1=4.7Ω,C1=1μF。
其余元件按图4取值。
US_R1为超声波接收头,当收到超声波时产生一个下降沿,接到单片机的外部中断INT0上。
当超声波接收头接收到40kHz方波信号时,将会将此信号通过CX20106A驱动放大送入单片机的外部中断0口。
单片机在得到外部中断0的中断请求后,会转入外部中断0的中断服务程序进行处理,在移动机器人的避障工作中,可以在中断服务程序设定需要单片机处理的最短距离。
图6CX20106A内部方框图
3、单片机STC89C51
STC89C51内含4kBytesFlash片内程序存储器,128bytes的随机存取数据存储器(RAM),4个中断源,2个16位可编程定时计数器,1个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器。
4、LCD显示器
LCD1602可以显示2行16个字符,有8位数据总线D0~D7和RS,R/W,EN三个控制端口,工作电压为5V,并且具有字符对比度调节和背光功能。
(1)引脚参数如下:
编号
符号
引脚说明
编号
符号
引脚说明
1
VSS
电源地
9
D2
DataI/O
2
VDD
电源正极
10
D3
DataI/O
3
VL
液晶显示偏压信号
11
D4
DataI/O
4
RS
数据/命令选择端(H/L)
12
D5
DataI/O
5
R/W
读写选择端(H/L)
13
D6
DataI/O
6
E
使能信号
14
D7
DataI/O
7
D0
DataI/O
15
BLA
背光源正极
8
D1
DataI/O
16
BLK
背光源负极
(2)1602型LCD的主要技术参数如下:
显示容量
16X2个字符
芯片工作电压
4.5~5.5V
工作电流
2.0mA(5.0V)
模块最佳工作电压
5.0V
字符尺寸
2.95X4.35(WXH)mm
(3)基本操作程序:
读状态:
输入:
RS=L,RW=H,E=H输出:
D0~D7=状态字
读数据:
输入:
RS=H,RW=H,E=H输出:
无
写指令:
输入:
RS=L,RW=L,D0~D7=指令码,E=高脉冲输出:
D0~D7=数据
写数据:
输入:
RS=H,RW=L,D0~D7=数据,E=高脉冲输出:
无
(注;各种芯片的具体说明见手册)
系统软件设计
其程序如下:
//调用库函数
#include
#include
#include
#include
//定义所使用的数据类型
typedefunsignedcharuchar;
typedefunsignedintuint;
typedefunsignedlongulong;
//定义变量
uinttimer1_count=0;
uinttiemr0_count=0;
ulongdistance=0;
uinti,length1,length2;
uchartab[3];
bitok=0;
//定义引脚
sbitrs=P0^0;
sbitrw=P0^1;
sbite=P0^2;
sbitP27=P2^7;
sbitP12=P1^2;
sbitP13=P1^3;
sbitsend=P1^0;
//函数声明
voidlcdinit();//lcd初始化程序的声明
voidlcdsendc(ucharcommand);//发送lcd指令的声明
voidlcdsendd(uchardat);//发送lcd数据的声明
voidsend_wave(uchark);//发送k个波
voidex0_init(void);
voidtimer0_init(void);//定时器0初始化
voidtimer1_init(void);//定时器1初始化
voiddelay(uchart);
voidlcdbusy();
//主函数
voidmain()
{
codeucharlineone[25]={"Distanceis"};//第一行显示缓存
codeucharlinetwo[25]={"cm"};//第二行显示缓存
lcdinit();
lcdsendc(0x80);//送第一行地址
length1=strlen(lineone);//取数组字符数
for(i=0;i { lcdsendd(lineone[i]); } lcdsendc(0xc8);//送第二行地址 length2=strlen(linetwo);//送第二行数据 for(i=0;i { lcdsendd(linetwo[i]); } ex0_init(); timer0_init(); timer1_init(); EA=1; while (1) { if(ok==1) { lcdsendc(0xc2); lcdsendd(tab[2]+'0'); lcdsendd(tab[1]+'0'); lcdsendd(tab[0]+'0'); ok=0; } } } voidex0_init(void)//外部中断0初始化 {EX0=0; PX0=1; IT0=0;} voidex0_inte(void)interrupt0 { distance=(12/11.0592)*(tiemr0_count*65536+TH0*256+TL0)*173/10000;//计算测量距离 tab[0]=distance%10;//个位 tab[1]=(distance/10)%10;//十位 tab[2]=(distance/100)%10;//百位 ok=1;//有接收到,标志位置1 TR0=0; EX0=0; if(distance<=10)//测量值小于等于10cm时报警 {P12=0; P13=0; delay(30); P12=1; P13=1;}} voidsend_wave(uchark)//发送超声波 { while(k--) { send=! send; _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); send=! send; _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); } } voidtimer0_init(void)//定时器0初始化 { TMOD=0X01; TH0=TL0=0X00; ET0=1; TR0=0; } voidtimer0_inte(void)interrupt1//定时器0用来计溢出的次数 { tiemr0_count++; } voidtimer1_init(void)//定时器1初始化 { TMOD|=0X20; TH0=TL0=0X00; ET1=1; TR1=1; } voidtimer1_inte(void)interrupt3//定时器1用来定时发送超声波 { timer1_count++; if(timer1_count==60) {timer1_count=0; send_wave(4);//一次发4个波,延时一段进间,再发4个波,再延时再发送4个波.. delay (1); tiemr0_count=0; EX0=1; TH0=TL0=0; TR0=1; } } //lcd初始化程序 voidlcdinit() {delay(150);//延时约15ms lcdsendc(0x38);//设置模式为8线传输,5*7阵列,二行显示 delay(50);//延时约5ms lcdsendc(0x38); delay(50);//延时约5ms lcdsendc(0x38); lcdsendc(0x38); lcdsendc(0x08);//关闭显示光标 lcdsendc(0x01);//清屏 lcdsendc(0x06);//设置光标的移动方式 lcdsendc(0x0c);//开显示,不显示光标,光标不闪 } //延时子程序 voiddelay(uchart) { uinti,j; for(i=0;i for(j=0;j<20;j++); } //发送lcd命令 voidlcdsendc(ucharcommand) { rw=0; rs=0; P2=command; e=0; lcdbusy(); e=1; } //发送数据 voidlcdsendd(uchardat) { rw=0; rs=1; P2=dat; e=0; lcdbusy(); e=1; } //判断忙状态 voidlcdbusy() { P2=0xff; do{ e=0; rs=0; rw=1; e=1; }while(P27==1); e=0; } 三、误差分析 温度/ -30 -20 -10 0 10 20 30 100 声速c(m/s) 313 319 325 323 338 344 349 386 温度与声速的关系图 本实验测量范围为5cm~275cm.。 小于5cm测量的值不符合实际值,5~260cm测量值几乎与实际值吻合,总体的误差能保持在1cm以内。 5~10cm测量时会有警报响起。 产生误差的原因主要来自温度,以及超声波发射器和接收器间小距离间隔,导致信号直接传递或多次反射,部分器件用其他参数接近的器件代替,电路板布局器件的焊接技术也会影响到测量的稳定度,还有测量较远距离时信号有所减弱,也会导致一定测量误差,由于是简易的测控系统再次就不在对温度进行校正。 四、实验心得 通过本次大作业,我们从中学会了很多东西,包括从对一个课题的立项目到设计再到最终的设计每一个环节应该做些什么,又有了一次实践,使得这些程序清晰的呈现在我的记忆中,也对传感器的知识有了深刻的认识和了解。 从参考相关资料到每个模块的调试与仿真,再到电路板的焊接,每一个过程都参与,每一个过程都付出了汗水,当然也的到回报。 特别是在编程上,虽然学习了单片机但时个一学期我已经基本上忘记的差不多了,但通过本次的大作业又使我对单片机进行了一个复习,特别是对于定时器和中断这一部分的知识有了一个很好的回顾。 当然谈到最有趣的还是要数制作实物,一做就是一个天,可还是没出来,最后还是用示波器一点一点的测出原来是一个电阻的的参数不对。 成功的那一刻那种心情无以表达。 总之对于这样的课程确实希望有更多的这样平台,要比出几道题考一下强的多。 总之一句话收益匪浅。 四、参考文献 1、李光飞,楼然苗单片机课程设计实例指导北京航空航天大学出版社 2、秦实红,徐春辉MCSG—51单片机原理及运用华中科技大学出版社 3、胡向东,刘京诚传感器与检测技术机械工业出版社
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 超声波 测距 报告