超声波实验报告.docx
- 文档编号:10056450
- 上传时间:2023-02-08
- 格式:DOCX
- 页数:22
- 大小:418.99KB
超声波实验报告.docx
《超声波实验报告.docx》由会员分享,可在线阅读,更多相关《超声波实验报告.docx(22页珍藏版)》请在冰豆网上搜索。
超声波实验报告
电子电路实验3
综合设计实验总结报告
题目:
班级:
学号:
姓名:
成绩:
日期:
摘要
为了研究和利用超声波,人们已经设计和制成了许多超声波发生器。
本设计就是基于51系列单片机利用超声波的测距系统。
本作品硬件部分主要由单片机系统及显示电路、超声波发射电路和超声波检测接收电路三部分组成。
采用STC89C51来实现对CX20106A红外接收芯片和TCT40-10系列超声波转换模块的控制。
软件部分主要由主程序、超声波发生子程序、超声波接收中断程序及数码管显示子程序等部分组成。
单片机通过P1.0引脚经反相器来控制40KHz的超声波的发送,然后单片机不停的检测INT0引脚,当INT0引脚的电平由高电平变为低电平时就认为超声波已经返回。
计时器所计的数据就是超声波所经历的时间,通过换算就可以得到传感器与障碍物之间的距离,并将距离在数码管上显示出来。
基于单片机的超声波测距系统电路设计简单,能够实时显示,精度高,操作简单易懂。
一.设计选题
基于超声波的障碍物检测系统的设计实现
二.设计任务及要求
结合单片机最小系统和其他模块电路设计一个基于超声波的障碍物检测系统。
1.能够检测前方一米左右是否有障碍,并用指示灯或数码管显示出来。
2.用数码管显示障碍物的精确距离,精度10%以内,最小距离1.0米。
三.系统概述
1.超声波测距原理
声波是指频率超过20KHz的机械波,在其传播介质中被定义为纵波。
当声波受到尺寸大于其波长的目标物体阻挡时就会发生反射;反射波称为回声。
假如声波在介质中传播的速度是已知的,而且声波从声源到达目标然后返回声源的时间可以测量得到,从声波到目标的距离就可以精确地计算出来。
这就是本系统的测量原理。
这里声波传播的介质为空气,采用40KHz的不可见的超声波。
2.超声波传感器原理
压电超声波转换器的功能:
利用压电晶体谐振工作。
内部结构上图所示,它有两个压电晶片和一个共振板。
当它的两极外加脉冲信号,其频率等于压电晶片的固有振荡频率时,压电晶片将会发生共振,并带动共振板振动产生超声波,这时它就是一超声波发生器;如没加电压,当共振板接受到超声波时,将压迫压电振荡器作振动,将机械能转换为电信号,这时它就成为超声波接受转换器。
3.方案设计与论证
方案一
整个电路可分为三大部份,一部份是超声波发射调理电路,一部份是超声波回波接收处理电路,一部分是显示电路。
用于驱动超声波传感器的40KHz的方波由一片555搭成的多谐振荡器生成,受控于单片机的控制信号;40KHz的方波经CD4049调理,变成振幅为18V的方波,提高发射功率。
发射头发射出去的超声波经障碍物反射后,反射到接收头,而接收到的波形幅度非常小,所以在回波处理电路中,把接收到的波形放大了5000倍,用的是NE5532搭成的两级交流放大电路。
经放大后的波形送入,LM311比较器;经比较器调理后的波形成为方波,可送给单片机的外部中断。
图例1方案一超声波测距系统方框图
在设计中,驱动超声波换能器的40KHz是以2个脉冲的序列发射出去的,也就是说是以脉冲的形式进行发射的。
超声波测距模块中有40KHz方波的产生电路,所以在单片机对发射的控制也就是对40KHz方波产生电路的使能控制。
本方案采用NE555产生40KHz方波,驱动能力强,并用NE5532对回波进行放大,接受能力强,测距较远。
但是由于使用NE555及NE5532使电路变得复杂。
方案二
主要由单片机系统及显示电路、超声波发射电路和超声波检测接收电路三部分组成。
采用STC89C51来实现对CX20106A红外接收芯片和7404的控制。
单片机通过引脚经7404来控制40KHz超声波的发送,然后单片机不停的检测INT0引脚,当INT0引脚的电平由高电平变为低电平时就认为超声波已经返回。
计数器所计的数据就是超声波所经历的时间,通过换算就可以得到传感器与障碍物之间的距离。
图例2方案二超声波测距系统方框图
本方案中40KHz超声波采用单片机程序产生,用74LS04反相器驱动超声波发生器,电路简单。
由于40KHz的频率接近CX20106红外线检波接收的专用芯片的38KHz的频率,故超声波接收模块采用CX20106接受超声波接收器的信号,电路简单,并且容易控制。
但是由于由单片机经74LS04驱动超声波发生器,驱动能力有限,测量距离较近。
综合两种方案,第一种测量距离较远,但电路复杂,第二种方案简单,测量距离较近,但能够够达到本系统的设计要求精度,我采用第二种方案。
四.单元电路设计与分析
1.单片机最小系统
图例3单片机最小系统电路
单片机具有高性能,低价格等特点,并且体积小,可靠性高,不易受外界电磁干扰,实施控制功能强,并且有很强的位处理能力,系统扩展方便,硬件设计简单。
本系统单片机采用宏晶公司生产的89C51系列8位单片机,其P0口接10K的上拉电阻可以增加驱动能力!
2.串口通信电路
图例4串行通行电路
STC89C51单片机是用串口与微机通信下载程序的,但是单片机采用+5V作为逻辑电平,而PC机采用+/-15V作为逻辑电平,单片机不能直接与PC机连接通信,故本系统采用美信公司生产的MAX232电平转换芯片用于单片机通信下载程序。
3.超声波发射电路
图例5超声波发射模块电路
由于单片机发生的40KHz超声波信号比较微弱,需要放大才能驱动超声波发射器。
本模块采用74LS04反相器经过两级反相,提高驱动能力。
4.超声波检测电路
图例6超声波检测模块电路
本系统采用40KHz的超声波,考虑到红外遥控常用的载波频率38KHz与测距超声波频率40KHz较为接近,故超声波接收模块采用红外线检波接收的专用芯片CX20106A作为超声波检测电路。
其内部结构见下图:
图例6CX20106内部结构图
信号送到CX20106的①脚,CX20106的总放大增益约为80dB,其⑦脚输出的控制脉冲序列信号幅度在3.5~5V范围内。
总增益大小由②脚外接的R1、C1决定,R1越小或C1越大,增益越高。
但取值过大时将造成频率响应变差,C1为1uF。
采用峰值检波方式检波电容C2为3.3uF。
R2为带通滤波器中心频率f0的外部电阻。
积分电容C3取330pF。
经CX20106处理后的脉冲信号由⑦脚输出。
4.显示电路
图
例
7
数
码
管
显
示
电
路
显示电路采用2位共阳LED数码管,其两个位选分别接在单片机的P2.7和P2.6口上,8个段选接在P0口上,这样能够节省6个I/O口供其他外设接入单片机。
五.软件调试
硬件调试完成后进行软件调试阶段。
首先编一个小程序用于测试测试串口通信及数码管显示电路。
程序如下:
#include
#defineuintunsignedint
#defineucharunsignedchar
sbitLED1=P2^7;
sbitLED2=P2^6;
ucharnum[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x7f};//0123456789.
voiddelay(uintii)//1ms延时函数
{uinti,j;
for(i=0;i for(j=0;j<8;j++); } voidmain() {inti; LED1=0; LED2=0; While (1) { For(i=0;i<=10;i++) {P0=num[i]; delay(50); } } } 经检测,程序烧录进单片机,并且数码管从0-9和“.”循环正确显示,串口通信及数码管显示电路正确。 下一步进行超声波测距的软件程序调试过程: 图例8主程序流程图定时器溢出中断流程图外部中断流程图 软件包括超声波发生函数、定时器函数、中断函数、显示函数四部分。 1.超声波发生函数用来发生占空比为50%的40KHz的超声波: voidsend() { send=1; _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); send=0; _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); } 2.定时器函数用于记录超声波发射到反射回来的时间: voidtimer1_init()//定时器初始化 { TH1=0; TL1=0; } voidtimer1()interrupt3using3//定时器溢出中断 { EA=0; TR1=0; TH1=0; TL1=0; Send(); Send(); TR1=1; delay (1); EA=1; } 当超声波接收器长时间没有检测到信号时,计时器计数会溢出并产生中断,这时要对定时器重新赋初值,并在此发射超声波。 3.中断函数用于检测超声波接收器接收的信号,并产生中断计算测试距离,并调用显示函数将距离显示出来: voidINT0()interrupt0using0 { EA=0; TR1=0; LED3=1; delay(50); time=TH1*256+TL1; s=(185*time)/10000; display(); TH1=0; TL1=0; Send(); Send(); TR1=1; delay (1); EA=1; } 4.显示函数用于人机界面,将单片机内部处理信息显示出来。 voiddisplay() { intbai,shi,ge; if((s/100)==0) { shi=s%100/10; ge=s%100%10; for(k=0;k<50;k++) { LED1=0; P0=num[shi]; delay(50); LED1=1; delay(20); LED2=0; P0=num[ge]; delay(50); LED2=1; delay(20); } } else { bai=s/100; shi=s%100/10; for(k=0;k<50;k++) { LED1=0; P0=num[bai]; delay(50); LED1=1; delay(20); LED1=0; P0=num[10]; delay(50); LED1=1; delay(20); LED2=0; P0=num[shi]; delay(50); LED2=1; delay(20); } } } 由于只有2为数码管,为得到足够的精度,算法上分为两级,其显示如: 当测试距离S<1m时,显示为xxcom,当S>1m时,则显示为x.xm。 六.测试数据及分析 经在室内测试系统,其测试数据如下: , 编号 距离 /com 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 标准距离/com 10 15 20 25 30 40 45 50 60 70 80 90 100 105 110 120 130 140 实测距离/com 11 16 22 26 32 41 47 52 62 71 82 92 1.0m 1.0m 1.1m 1.2m 1.3m 1.4m 结果分析: 从实验结果可以看出在1m之内最大绝对误差误差为2com,精度在10%之内,达到任务要求。 六.结束语 通过本次试验,我基本了解了单片机最小系统的工作原理及其外部设备的扩展,以及超声波测距原理。 感谢学校给我这次实践机会,感谢老师和同学们的帮助。 谢谢! 参考文献 [1]陈莹.基于单片机的超声波测距系统.华中科技大学硕士论文,2004年4月 [2]史晓华,杜新培.超声波测距系统.北京: 科技广场ScienceMosaic,2008年05期 [3]操文祥.基于单片机的超声测距系统.安徽: 安徽大学硕士学位论文.2007年11月 附录1 超声波测距程序源代码 //*********************************************************************** #include #include #defineuintunsignedint #defineucharunsignedchar sbitLED1=P2^7; sbitLED2=P2^6; sbitsend=P1^0; sbitLED3=P1^1; uchark; unsignedlonginttime,s=0; ucharnum[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x7f}; //************************1ms延时函数 voiddelay(uintii) { uinti,j; for(i=0;i for(j=0;j<8;j++); } //*************************40KHZ超声波发生函数 voidSend() { send=1; _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); send=0; _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); } //************************数码管显示函数 voiddisplay() { intbai,shi,ge; if((s/100)==0) { shi=s%100/10; ge=s%100%10; for(k=0;k<50;k++) { LED1=0; P0=num[shi]; delay(50); LED1=1; delay(20); LED2=0; P0=num[ge]; delay(50); LED2=1; delay(20); } } else { bai=s/100; shi=s%100/10; for(k=0;k<50;k++) { LED1=0; P0=num[bai]; delay(50); LED1=1; delay(20); LED1=0; P0=num[10]; delay(50); LED1=1; delay(20); LED2=0; P0=num[shi]; delay(50); LED2=1; delay(20); } } } //************************定时器1初始化函数 voidtimer1_init() { TH1=0; TL1=0; } //************************定时器1函数 voidtimer1()interrupt3using3 { EA=0; TR1=0; TH1=0; TL1=0; Send(); Send(); TR1=1; delay (1); EA=1; } //************************中断函数 voidINT0()interrupt0using0 { EA=0; TR1=0; LED3=1; delay(50); time=TH1*256+TL1; s=(185*time)/10000; display(); TH1=0; TL1=0; Send(); Send(); TR1=1; delay (1); EA=1; } //***********************系统初始化函数 voidinit() { TMOD=0x10; EA=1; ET1=1; EX0=1; IT0=0;//INT0低电平检测 TR1=0; timer1_init(); } //**********************主函数 voidmain() { init(); TR1=1; while (1) { display(); LED3=0; } } 附录2元件清单 元件名称 标称值或型号 数量 单片机 STC89C51 1片 CX20106A 1片 反相器 74LS04 1片 超声波接收头 TCT40-10 1对 MAX232 1片 数码管 2位共阳 1个 自锁开关 1个 按键 1个 PNP三极管 S8550 2个 电阻 4.7Ω 1个 1KΩ 7个 10KΩ 9个 22KΩ 1个 200KΩ 1个 无极性电容 30pF 2个 330pF 1个 0.1uF 6个 0.47uF 1个 有极性电容 1uF 1个 3.3uF 1个 10uF 2个 导线 若干 附录3原理图
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 超声波 实验 报告