




下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、超声波测距课设ZIilJiIgyUlm UJlVelt UfTftJiIWJlyy单片机课程设计报告课题名称超声波测距仪专 业学生姓名学 号指导教师4 / 20目录摘要 3一、总体方案介绍 3二、硬件设计 52.1显示电路 52.2超声波发射电路 62.3超声波接收电路 7三、软件设计 73.1主程序设计 83.2超声波发射子程序及接收中断子程序 93.3关于超声波测距中的盲区问题 10四、系统调试 10五、心得体会 11六、参考文献 12七、附件摘要随着科学技术的快速发展, 超声波将在测距仪中的应用越来越广。 但就目前 技术水平来说, 人们可以具体利用的测距技术还十分有限, 因此,这是一个正
2、在 蓬勃发展而又有无限前景的技术及产业领域。 展望未来, 超声波测距仪作为一种 新型的非常重要有用的工具在各方面都将有很大的发展空间, 它将朝着更加高定 位高精度的方向发展,以满足日益发展的社会需求,如声纳的发展趋势基本为: 研制具有更高定位精度的被动测距声纳,以满足水中武器实施全隐蔽攻击的需 要;继续发展采用低频线谱检测的潜艇拖曳线列阵声纳, 实现超远程的被动探测 和识别;研制更适合于浅海工作的潜艇声纳, 特别是解决浅海水中目标识别问题; 大力降低潜艇自噪声, 改善潜艇声纳的工作环境。 无庸置疑, 未来的超声波测距 仪将与自动化智能化接轨, 与其他的测距仪集成和融合, 形成多测距仪。 随着测
3、 距仪的技术进步, 测距仪将从具有单纯判断功能发展到具有学习功能, 最终发展 到具有创造力。在新的世纪里,面貌一新的测距仪将发挥更大的作用。本设计采用以AT89C51单片机为核心的低成本、高精度、微型化数字显示超 声波测距仪的硬件电路和软件设计方法。整个电路采用模块化设计,由主程序、 中断程序、发射子程序、接收子程序、显示子程序等模块组成。各探头的信号经 单片机综合分析处理, 实现超声波测距仪的各种功能。 在此基础上设计了系统的 总体方案,最后通过硬件和软件实现了各个功能模块。一、 总体方案介绍本文所研究的超声波测距仪利用超声波指向性强、 能量消耗缓慢、 传播距离 较远等优点, 即用超声波发射
4、器向某一方向发送超声波, 同时在发射的时候开始计时,在超声波遇到障碍物的时候反射回来, 超声波接收器在接收到反射回来的 超声波时,停止计时。设超声波在空气中的传播速度为V,在空气中的传播时间为T,汽车与障碍物的距离为S, S=VT/2,这样可以测出汽车与障碍物之间的距 离,然后在LED显示屏上显示出来。其工作机理是依据压电材料的正逆压电效应,利用逆压电效应产生超声波, 即逆压电效应是在压电材料上加上某种特定频率的交变正弦信号, 材料就会产生 随所加电压的变化规律而变化的机械形变, 这种机械形变推动周围介质振动, 产 生疏密相间的机械波,如果其振动频率在超声范围内,这种机械波就是超声波。本文所设
5、计的超声波测距仪主要由 AT89C52单片机、超声波发射电路、超声 波接收放大电路、显示电路 .首先由单片机驱动产生12MHZ晶振,由超声波发射探头发送出去,在遇到障 碍物反射回来时由超声波接收探头检测到信号, 然后经过滤波、 放大、整形之后 送入单片机进行计算,把计算结果输出到LED液晶显示屏上。超声波发生器可以 分为两大类:一类是用电气方式产生超声波; 另一类是用机械方式。 产生超声波。 电气方式包括压电型、电动型等;机械方式有加尔统笛、液 和气流旋笛等。它 们所产生的超声波的频率, 功率和声波特性各不相同, 因而用途也各不相同。 目 前在近距离测量方面较为常用的是压电式超声波换能器。综上
6、分析决定采用AT89C51单片机作为主控制器,其中超声波系统设计如图1.1 所示超声波测距课设图1.1、硬件设计硬件电路可分为单片机系统及显示电路、 超声波发射电路和超声波检测接收 电路三部分。2.1显示电路本系统单片机通过P1.0引脚经反相器来控制超声波的发送,然后单片机不 停的检测INTo引脚,当INTo引脚的电平由高电平变为低电平时就认为超声波已 经返回。计数器所计的数据就是超声波所经历的时间,通过换算就可以得到传感器与障碍物之间的距离。超声波测距的硬件示意图如图2.1所示:单片机采用89S52或其兼容系列。采用12MHz高精度的晶振,已获得较稳定 的时钟频率,减少测量误差。单片机用P1
7、.0端口输出超声波换能器所需的40KHz 的方波信号,利用外中断0 口检测超声波接收电路输出的返回信号。IIlIIdCIIICLIrrlef a t*com6莒配萱表2.1显示字符共阳极段选码dp gfedcba显示字符共阳极段选码dp gfedcba0C0HA88H1F9HB83H2A4HCC6H3B0HDA1H499HE86H592HF8EH682HP8CH7F8Hy91H880H8.00H990H火FFH2.2超声波发射电路超声波发射电路原理图如图2.2所示。发射电路主要有反向器和超声波发生 换能器T构成,单片机P1.0的端口输出40KHz方波信号一路经一级反向器后送 到超声波换能器的一
8、个电极,另一路经两级反向器后送到超声波换能器的另一个 电极。用这种推挽形式将方波信号加到超声波换能器两端,可以提高超声波的发 射强度。输出端采用两个反向器并联,用以提高驱动能力。上拉电阻R10, R11一方面可以提高反向器74lS04输出高电平的驱动能力,另一方面可以增加超声 波换能器的阻尼效果,缩短其自由震荡的时间。2.3超声波接收电路集成电路CX20106A是一款红外线检波接收的专用芯片,常用于电视机红外 遥控接收器。考虑到红外遥控常用的载波频率 38KHZ与测距的超声波频率40KHZ 较为接近,可以利用它制作超声波检测接收电路(如图3-5)。实验证明用CX20106A接受超声波(无信号时
9、输出高电平),具有很高的灵敏度和较强的抗干 扰能力。适当更改电容C4的大小,可以改变接收电路的灵敏度和抗干扰能力。三、软件设计超声波测距的原理,即超声波发生器T在某一时刻发出一个超声波信号,当 这个超声波信号遇到被测物体后反射回来, 就被超声波接收器R所接收到。这样 只要计算出从发出超声波信号到接收到返回信号所用的时间, 就可以计算出超声 波发生器与反射物体的距离。距离的计算公式:d=s/2=(c*t)/2其中 d 为被测物与测距器的距离, s 为声波的来回路程, c 为声波, t 为声 波来回所用的时间。其中声速 c 与温度有关。C=331.5+0.607*T如果要提高测距精确度, 则必须考
10、虑温度的影响, 也可取室温简化电路设计, 将温度传 感器作为扩展电路,在力所能及的情况下完成。3.1 主程序设计主程序首先是对系统环境初始化,设定定时器 To工作模式为6位定时计数 器模式,置位总中断允许位 EA并给显示端口 P0和P2清0。然后调用超声波发 生子程序送出一个超声波脉冲, 为了避免超声波从发射器直接传送到接收器引起 的直射波触发,需要延时约0.1ms (这也就是超声波测距器会有一个最小测距离 的原因)后,才打开外中断0接收返回的超声波信号。由于采用的是12MHZ勺晶 振,计算器每计一个数就是1us,当主程序检测到接收成功的标志位后,将计 数器T0中的数(即超声波来回所用的时间)
11、按式(1-2 )计算,即可得被测物体 与测距器之间的距离,设计时取 20C时的声速为344m/s。20 / 201发射超声波脉冲1等待反射超声波计算距离显示结果0.5s主程序流程图3.2超声波发射子程序及接收中断子程序超声波发生子程序的作用是通过 P1.0端口发送2个左右超声波脉冲信号(频 率约为40kHz的方波),脉冲宽度为12us左右,同时把计数器To打开进行计时。 超声波发生子程序较简单,但要求程序运行时间准确,所以采用汇编语言编程。 超声波测距器主程序利用外中断 0 检测返回超声波信号, 一旦接收到返回超 声波信号(即 INT0 引脚出现低电平)立即进入中断程序。进入该中断程序后立 即
12、关闭计时器 T0 停止计时,并将测距成功标志字赋值 1。如果当计时器溢出是还未检测到超声波返回信号,则定时器T0 溢出中断将外中断 0 关闭,并将测距成功标志字赋值 2 以表示本次测距不成功。3.3 关于超声波测距中的盲区问题 超声波测距是根据超声波发射到接收经过的时间来测量介质之间的距离, 但 超声波的发射端和接收端之间可能不经过物体的反射,直接接收到发射的超声 波,这时测量的距离就不是物体间的距离,而是超声波发射端与接收端的距离, 这段距离就是盲区。超声波盲区是一定要避免的, 通常用软件控制, 方法如下, 单片机控制模组 每次发生若干完整的40KHZ的脉冲信号,发射信号前打开计数器 TO,
13、进行计时, 等计时到一定值后再开启检测回波信号, 这个计时时间要大于超声波从发射端传 到接收端时间, 这样就可避免干扰, 而测距的最小距离要大于发射端到接收端的 距离。四、系统调试 超声波测距仪的制作和调试都比较简单, 安装时应保持两换能器中心轴线平 行并相距48cm其余元件无特殊要求。若能将超声波接收电路用金属壳屏蔽 起来,则可提高抗干扰能力。 根据测量范围要求不同, 可适当调整与接收换能器 并接的滤波电容C4的大小,以获得合适的接收灵敏度和抗干扰能力。制作完成并调试好后, 便可将程序编译好下载到单片机试运行。 根据实际情 况可以修改超声波发生子程序每次发送的脉冲宽度和两次测量的间隔时间,
14、以适 应不同距离的测量需要。根据所设计的电路参数和程序,测距仪能测的范围为0.075.5m,测距仪最大误差不超过ICm系统调试完后应对测量误差和重复一 致性进行多次实验分析,不断优化系统使其达到实际使用的测量要求。调试注意事项 :一、超声波探头表面严禁用手及其它物体触摸以免产生信号滞后性及损坏二、所有 IC 器件最好拔下烙铁插头再焊接 ,以免损坏 .三、按图安装完毕后接上12V电源,测距部分只要安装正确不必进行调试即可正常工作 , 同时接收电路应用铁皮屏蔽以增加抗干扰的性能 . 以上所有芯片采 用 DIP 封装如要缩小体积所有器件可用贴片封装 .四、使用注意事项 : 在测距中应保证测距仪与被测
15、物体距离为定值 , 要和被测物 体成一条直线 , 使测得距离读数的准确性 .五、心得体会为期一周的单片机课程设计结束了, 最大的收获是系统的了解的利用单片机 制作一个产品的过程, 同时巩固了以前所学过的知识, 而且学到了很多在书本上 所没有学到过的知识。通过这次课程设计使我懂得了理论与实际相结合的重要 性,只有理论知识是远远不够的, 只有把所学到理论知识与实践相结合起来, 从 理论中得出结论才能真正的服务于工作。这次实设计中遇到很多实际性的问题, 在实际设计中才发现, 书本上理论性 的东西在实际运用中还是有一定出入的, 所以有些问题不但要深入理解, 而且要 不断更正自己的错误思维。 很多子程序
16、是可以借鉴别人的, 但是程序之间的衔接 才是关键, 因此可以说系统的设计是软件与硬件的结合, 二者是密不可分的。 这 次的课设也激发了我对单片机的学习兴趣, 我想这将对我今后的学习产生积极的 影响。其次, 这次的课设让我充分的认识到团队合作的重要性, 只有分工合作才 能保证工作的有条不紊。六、参考文献【1】史彦斌,段哲民,高宪军,基于 AT89C2051的超声波测距仪设计,新技术 新仪器, 2007【 2】周凯,赵望达,赵迪,刘静,高精度超声波测距系统,测试技术卷,2007【 3】常静,贺焕林,减少超声波测距仪盲区的研究,中国棉花加工,2005附件一: 程序 #include#include
17、unsigned char intt0;unsigned int x ; unsigned int temper ;/ 计算时候温度两位温小数/ 发射超声波float n;float s;float tt;sbit sent=P20; sbit receive=P32; sbit led1=P11;sbit led2=P15;sbit led3=P16;sbit led4=P17;/ 成功标志/ 报警标志/ 停止/ 失败标志Sbit begi n=P33k1开始按钮Sbit StOP=P36k2停止按钮Sbit Wen du=P37;/k3 温度 /Sbit H4052B=P12;Sbit H
18、4052A=P13;unSigned char Set_S=20;unSigned char fail;/* 超声波40khz发射10个,大约200us*/ vOid cSb_40k() unSigned char i=30;/8.6cmWhile(i-)_nOP_(); _nOP_();_nOP_();_nOP_(); Sent=Sent;/*T0 溢出中断 */ vOid timer0() interruPt 1TR0=0; /T0 停止计数EX0=0;OutSeg0=Seg20;/ 显示缓冲区是 FAIL OutSeg1=Seg21;OutSeg2=Seg22;OutSeg3=Seg23
19、;vOid timer1() interruPt 3TF1=0; TH1=0; TL1=100; led4=led4;/*- 外部中断0, -*/void intr0() interrupt 01TR0=0;/T0停止计数EX0=0;/关外部中断led1=0;/测距成功标志led3=1;led4=1;/灭测距失败标志n=TH0;/n=n*256+TL0;/n存放计数intt0=1;/ 主函数void main()TMOD=0x11; /定时器 0 计数TH1=0;TL1=100;ET1=1;EA=1; / 开总中断H4052B=0;H4052A=1;x=ReadTemperature();wh
20、ile(1) / 循环b: display(); / 显示 if(begin=0)&(stop=1)&(wendu=1) delay_18B20(1000);/ 去抖动 if(begin=0)&(stop=1)&(wendu=1)/ 开始 H4052B=0;H4052A=1;fail=1;delay_18B20(1000);while(begin=0);/ 按键松开之后动作TH0=0x00; / 计数清零TL0=0x00; /ET0=1; / 定时器 0 中断允许TR0=1; /T0 计数计时csb_40k(); / 发射 6delay_18B20(20); /14.7 避开盲区 20cm E
21、X0=1;else if(stop=0)&(begin=1)&(wendu=1)停止 delay_18B20(1000);/ 去抖动 if(stop=0)&(begin=1)&(wendu=1)/ while(stop=0);while(1)if(begin=0)set_s+;while(begin=0);else if(wendu=0)set_s-;while(wendu=0);else if(stop=0)while(stop=0);goto b;buf2=(unsigned char)(set_s/10%10);buf3=(unsigned char)(set_s%10); outseg
22、0=0;outseg1=0;outseg2=seg0buf2;outseg3=seg0buf3;display();else if(wendu=0)&(begin=1)&(stop=1) / 单独测温度 delay_18B20(2000);/ 去抖动if(wendu=0)&(begin=1)&(stop=1) while(wendu=0);H4052B=1;H4052A=0;fail=2;delay_18B20(1000);delay_18B20(1000); while(begin=0);/ 按键松开之后动作TH0=0x00; / 计数清零TL0=0x00; /ET0=1; /定时器 0 中
23、断允许TR0=1; /T0 计数计时csb_40k(); /发射 6delay_18B20(20); /14.7 避开盲区 20cm EX0=1;if(intt0=1)s=336*n/20000; / 计算距离if(fail=1)s-=5;if(s51)s=0;if(fail=2)s+=18;fail=0;if(sset_s) TR1=1; /s 大于设置值报警,响, led4 亮 else led4=1;TR1=0;if(s100)/小于 100 显示 * 。 *x=(unsigned int)(s*100); / 取前四位放入 x buf0=(unsigned char)(x/1000);
24、 / 距离前四位放入 buf 中buf1=(unsigned char)(x/100%10);buf2=(unsigned char)(x/10%10);buf3=(unsigned char)(x%10); outseg0=seg0buf0; outseg1=seg1buf1; outseg2=seg0buf2; outseg3=seg0buf3;else / 大于 100 显示 * 。* x=(unsigned int)(s*10); / 取前四位放入 x buf0=(unsigned char)(x/1000); / 距离前四位放入 buf 中buf1=(unsigned char)(x
25、/100%10);buf2=(unsigned char)(x/10%10); buf3=(unsigned char)(x%10);outseg0=seg0buf0; outseg1=seg0buf1; outseg2=seg1buf2; outseg3=seg0buf3;intt0=0; display(); / 显示 #include #define out P0 unsigned char seg310=0xeb,0x0a,0x67,0x6e,0x8e, 0xec,0xed,0x2a,0xef,0xee, /0-9 0xfb,0x1a,0x77,0x7e,0x9e,0xfc,0xfd,
26、0x3a,0xff,0xfe, /0-9 带小 数点0xa5,0xaf,0x0a,0xc1; /FAILunsigned char buf4=2,0,0,9; unsigned char outseg4= 0x67,0xeb,0xeb,0xee;unsigned char stopp4=0x04,0x04,0x04,0x04;sbit P25=P23;sbit P26=P24;sbit P23=P25;sbit P24=P26;void delay(unsigned int i) /25us+(i-1)*9while(i-);/* 显示 */void display(void) unsigne
27、d char i;for(i=0;i4;i+)if(i=0)P25=0; P26=1; P23=1; P24=1;if(i=1)P25=1; P26=0; P23=1; P24=1;if(i=2)P25=1; P26=1; P23=0; P24=1;if(i=3)P25=1; P26=1; P23=1; P24=0;out=outsegi;delay(200);#includesbit DQ = P34; /定义 1820 通信端口void delay_18B20(unsigned int i) /25us+(i-1)*9 while(i-);/*DS18B20 测温度 */ 初始化函数Init_DS18B20
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 盐城幼师考编试题及答案
- Z世代消费心理洞察:2025年新消费品牌情感价值塑造策略报告
- 天然气勘探开发技术创新与市场前景分析报告
- 能源与资源行业:能源行业供应链风险管理研究报告
- 班组自查报告
- 新消法考试题及答案
- 江苏省苏州市昆山市、太仓市2025年第二学期普通高中半期考试初三数学试题含解析
- 四川省广元市重点中学2024-2025学年初三(普通班)下学期期末考试生物试题试卷含解析
- 安全管理与施工效率的关系试题及答案
- 木工画图考试题及答案
- 基于深度学习的图像修复算法研究
- 隐私与保密信息管理制度
- 《隧道防火保护板系统技术规程》
- 2025年安徽黄山旅游集团招聘笔试参考题库含答案解析
- 中铜国际贸易集团有限公司招聘笔试冲刺题2025
- 商演服务合同
- 《建筑采光分析》课件
- 海洋机器人与人工智能知到智慧树章节测试课后答案2024年秋哈尔滨工程大学
- 上海市境内旅游合同 示范文本(2013版)
- 钢构制品加工协议
- “煎炒烹炸”与中药疗效(安徽中医药大学)知道智慧树章节答案
评论
0/150
提交评论