基于51单片机的超声波测距仪课程设计报告

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

毕业论文声明
本人郑重声明:
1.此毕业论文是本人在指导教师指导下独立进行研究取得的成果。

除了特别加以标注地方外,本文不包含他人或其它机构已经发表或撰写过的研究成果。

对本文研究做出重要贡献的个人与集体均已在文中作了明确标明。

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

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

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

3.若在大学学院毕业论文审查小组复审中,发现本文有抄袭,一切后果均由本人承担,与毕业论文指导老师无关。

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

论文中凡引用他人已经发布或未发表的成果、数据、观点等,均已明确注明出处。

论文中已经注明引用的内容外,不包含任何其他个人或集体已经发表或撰写过的研究成果。

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

学位论文作者(签名):
年月
关于毕业论文使用授权的声明
本人在指导老师的指导下所完成的论文及相关的资料(包括图纸、实验记录、原始数据、实物照片、图片、录音带、设计手稿等),知识产权归属华北电力大学。

本人完全了解大学有关保存,使用毕业论文的规定。

同意学校保存或向国家有关部门或机构送交论文的纸质版或电子版,允许论文被查阅或借阅。

本人授权大学可以将本毕业论文的全部或部分内容编入有关数据库进行检索,可以采用任何复制手段保存或编汇本毕业论文。

如果发表相关成果,一定征得指导教师同意,且第一署名单位为大学。

本人毕业后使用毕业论文或与该论文直接相关的学术论文或成果时,第一署名单位仍然为大学。

本人完全了解大学关于收集、保存、使用学位论文的规定,同意如下各项内容:按照学校要求提交学位论文的印刷本和电子版本;学校有权保存学位论文的印刷本和电子版,并采用影印、缩印、扫描、数字化或其它手段保存或汇编本学位论文;学校有权提供目录检索以及提供本学位论文全文或者部分的阅览服务;学校有权按有关规定向国家有关部门或者机构送交论文的复印件和电子版,允许论文被查阅和借阅。

本人授权大学可以将本学位论文的全部或部分内容编入学校有关数据
库和收录到《中国学位论文全文数据库》进行信息服务。

在不以赢利为目的的前提下,学校可以适当复制论文的部分或全部内容用于学术活动。

论文作者签名:日期:
指导教师签名:日期:
大连民族学院2005级通信工程专业微机系统课程设计报告机电信息工程学院
单片机系统课程设计报告
系别:电子工程系
专业:通信工程
班级:
设计题目:超声波测距
学生姓名:
指导教师:
目录
一、设计任务和性能指标 (1)
二、设计方案 (1)
三、系统硬件设计 (3)
四、系统软件设计 (5)
五、调试及性能分析 (8)
六、心得体会 (10)
参考文献 (11)
附录1系统硬件电路图 (12)
附录2程序清单 (13)
一、设计任务和性能指标
1.1 设计任务
设计一个超声波测距器,可应用在汽车倒车、建筑施工工地以及一些工业现场的位置测控,也可用于如液位、井深、管道长度的测量等场合。

要求用Altium Designer 6画出系统的电路原理图(要求以最少组件,实现系统设计所要求的功能),印刷电路板(要求布局合理,线路清晰),绘出程序流程图,并给出程序清单(要求思路清晰,尽量简洁,主程序和子程序分开,使程序有较强的可读性)。

1.2 性能指标
1、测量范围10—80 cm;
2、测量精度1cm;
3、测量时与被测物体无直接接触,能够清晰稳定地显示测量结果;
4、测量范围扩展为10 cm—4m,提高测量精度。

二、设计方案
超声波测距仪是利用超声波发射器向某一方向发射超声波,在发射时刻的同时开始计时,超声波在空气中传播,途中碰到障碍物就立即返回来,超声波接收器收到反射波就立即停止计时。

超声波在空气中的传播速度为340m/s,根据计时器记录的时间t,就可以计算出发射点距障碍物的距离(s),即:s=340t/2 。

超声波测距主要应用于倒车雷达、建筑施工工地以及一些工业现场,例如:液位、井深、管道长度等场合。

目前国内一般使用专用集成电路设计超声波测距仪,但是专用集成电路的成本很高,并且没有显示,操作使用很不方便。

超声波指向性强,穿透能力强,能量消耗缓慢,在介质中传播的距离较远,因而超声波经常用于距离的测量。

如测距仪和物位测量仪等都可以通过超声波来实现。

但由于超声波传感器的成本较高,所以一般运用于专业领域,民用产品中运用较少。

考虑到一般情况下对测距的要求较低,可在一定程度上牺牲其精确度和测距范围,从而降低成本,使其运用范围大大扩展。

超声波测距系统主要由声波发射电路、回波接收电路以及信号采集电路、温度补偿电路等组成。

2.1 硬件方案选择
(1)超声波发射电路
总体上讲,超声波发生器可以分为两大类:一类是用电气方式产生超声波,
一类是用机械方式产生超声波。

电气方式包括压电型、磁致伸缩型和电动型等;机械方式有加尔统笛、液哨和气流旋笛等。

它们所产生的超声波的频率、功率和声波特性各不相同,因而用途也各不相同。

目前较为常用的是压电式超声波发生器。

压电式超声波发生器实际上是利用压电晶体的谐振来工作的。

超声波发生器内部主要由两个压电晶片和一个共振板组成。

当它的两极外加脉冲信号,其频率等于压电晶片的固有振荡频率时,压电晶片将会发生共振,并带动共振板振动,便产生超声波。

反之,如果两电极间未外加电压,当共振板接收到超声波时,将压迫压电晶片作振动,将机械能转换为电信号,这时它就成为超声波接收器了。

这种压电式超声波传感器是利用内藏的压电晶体的压电效应。

压电晶体在外电场作用下会产生机械变形,或者使压电晶体变形也会产生电压,前者称为逆压电效应,后者称为正压电效应。

利用压电晶体的逆压电效应,电路的高频电压会转换为高频机械振动,以产生超声波,作为超声波发生探头,利用压电晶体的正压电效应可将接收的超声波振动转换成电信号,作为超声波接收探头。

(2)超声波接收电路
超声波接收电路的作用是对接收的超声波信号进行放大,并将放大后的信号处理成系统可以处理的电平信号。

(3)温度补偿电路
超声波是一种声波,其声速c与温度有关。

如果测距精度要求很高时,则应通过温度补偿的方法加以校正。

温度测量可以使用数字温度传感器DS18B20。

(4)超声波测距器的算法设计
超声波测距的原理即超声波发生器在某一时刻发出一个超声波信号,当这个超声波遇到被测物体后发射回来,就被超声波接收器所接收到。

这样只要计算出从发出超声波信号到返回信号所用的时间,就可以算出超声波发生器与反射物体的距离。

距离的计算公式为:
()2
=
=
d⨯
c
s
2t
其中d为被测物体与测距器的距离,s为声波来回的路程,c为声速,t为声波来回所用的时间。

(5)系统硬件框图如图1所示。

图1系统硬件框图
2.2 超声波测距器的软件
系统软件主要由主程序、超声波发射子程序、超声波接收中断程序及显示子程序组成,如图2所示。

图2系统程序结构框图
超声波测距器主程序利用外部中断检测返回超声波信号,一旦接收到返回的超声波信号,立即进入中断程序。

三、系统硬件设计
主要由单片机系统及显示电路、超声波发射电路和超声波检测接收电路三部分组成。

采用STC89C55来实现对CX20106A红外接收芯片和TCT40-10系列超声波转换模块的控制。

单片机通过P1.0引脚经反相器来控制超声波的发送,然后单片机不停的检测INT0引脚,当INT0引脚的电平由高电平变为低电平时就认为超声波已经返回。

计数器所计的数据就是超声波所经历的时间,通过换算就可以得到传感器与障碍物之间的距离。

图3超声波测距原理框图
3.1 单片机系统及显示电路
单片机采用STC89C55。

采用11.0592MHz高精度的晶振,以获得较稳定的时钟频率,减小测量误差。

单片机用P1.0端口输出超声波转化器所需的40KHz方波信号,利用外中断0口检测超声波接受电路输出的返回信号。

显示电路采用简单实用的LCD1602液晶显示电路,用P0做为数据口。

单片机系统及显示电路如图4所示。

图4单片机及显示电路原理图
3.2 超声波发射电路
超声波发射电路原理图如图5所示。

图5超声波发射电路原理图
压电超声波转换器的功能:利用压电晶体谐振工作。

内部结构图6所示,它有两个压电晶片和一个共振板。

当它的两极外加脉冲信号,其频率等于压电晶片
的固有振荡频率时,压电晶片将会发生共振,并带动共振板振动产生超声波,这
时它就是一超声波发生器;如没加电压,当
共振板接受到超声波时,将压迫压电振荡
器作振动,将机械能转换为电信号,这时
它就成为超声波接受转换器。

超声波发射
转换器与接收转换器其结构稍有不同。

图6超声波转换原理图
3.3 超声波检测接收电路
超声波检测接收电路采用集成电路CX20106A,如图7所示,这是一款红外线检波接收的专用芯片,常用于电视机红外遥控接收器。

考虑到红外遥控常用的载波频率38KHz与测距超声波频率40KHz较为接近,可以利用它作为超声波检测电路。

实验证明其具有很高的灵敏度和较强的抗干扰能力。

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

图7超声波接收电路图
四、系统软件设计
超声波测距软件设计主要由主程序,超声波发射子程序,超声波接受中断程序、温度补偿及显示子程序和距离测量及显示子程序组成。

下面对超声波测距器的算法,主程序,超声波发射子程序和超声波接收中断程序逐一介绍。

4.1 超声波测距器的算法设计
下图示意了超声波测距的原理,即超声波发生器在某一时刻发出的一个超声波信号,当超声波遇到被测物体后反射回来,就被超声波接收器所接受。

这样只要计算出发生信号到接受返回信号所用的时间,就可算出超声波发生器与反射物
4.2 主程序
主程序首先对系统环境初始化,设置定时器
T0工作模式为16位的定时计数器模式,置位总
中断允许位EA 并给显示端口P0和P2清0。


后调用超声波发生子程序送出一个超声波脉
冲,为避免超声波从发射器直接传送到接收器
引起的直接波触发,需延迟0.1ms(这也就是测
距器会有一个最小可测距离的原因)后,才打开外中断0接收返回的超声波信号。

由于采用
11.0592MHz 的晶振,机器周期为1us,当主程序检测到接收成功的标志位后,将计数器T0中的
数(即超声波来回所用的时间)按下式计算即可测得被测物体与测距仪之间的距离,以20℃
时的声速为344 m/s 为例,则有:
d=(C*T0)/2 =172*T0/10000cm (其中T0为计
数器T0的计数值)
测出距离后结果将以十进制BCD 码方式显示,然后再发超声波脉冲重复测量过程。

主程序框图如图9所示。

4.3 超声波发生子程序和超声波接收中断程序
超声波发生子程序的作用是通过P1.0端口发送5个左右的超声波信号频率约40KHz 的方波,脉冲宽度为12us 左右,同时把计数器T0打开进行计时。

超声波测距器主程序利用外中断0检测返回超声波信号,一旦接收到返回超声波信号(INT0引脚出现低电平),立即进入中断程序。

进入该中断后就立即关闭计时器T0停止计时,并将测距成功标志字赋值1。

如果当计时器溢出时还未检测到超声波返回信号,则定时器T0溢出中断将外中断0关闭,并将测距成功标志字赋值0以表示此次测距不成功。

中断程序的框图如图10所示。

图10计数器T0中断程序(左)、计数器T1中断程序(中)
外部INT0中断程序(右)
4.4 温度补偿子程序和温度显示子程序
温度补偿子程序的作用是将当前实验环境的实际温度值准确测量、转换并存储,用以确定此时声波的速度值。

本程序采用DS18B20的12位转换精度,温度寄存器里的值是以0.0625为步进的,即温度寄存器里的二进制值乘以0.0625,就是实际的十进制温度值。

温度处理子程序判断温度值的“+”和“-”并将转换好的温度整数位和小数位存入显示缓存区50H ~53H 中,50H 为最高位,53H 为最低位。

温度显示子程序用来判断高位是否有灭零需要,以及符号位的选择和显示。

程序框图如图11所示。

图11温度显示子程序(左上)、温度处理子程序(左下)
温度转换子程序(右)
五、调试及性能分析
5.1 调试步骤
首先要做的就是检查检测硬件电路是否有短路、断路、虚焊等。

具体步骤及测试结果如下:
(1)检查电源与地线是否全部连接上,用万用表对照电路原理图测试各导线是否完全连接;测试结果所有连接线都已准确连接好;
(2)检验单片机的晶振是否起振,用示波器观察波形;测试结果波形都符合正常工作波形;
(3)检查各芯片工作是否正常,检测按键的导通情况;测试结果正常。

然后将软硬件结合在一起进行调试,把整个超声波测距系统按照实现功能分为各个子模块进行调试。

具体步骤如下:
(1)显示模块调试。

由于受实验器材和实验台的限制,此部分电路及其程序没能做到事先进行测试,所以在调试这个部分时遇到了很多问题,开始是发现硬件电路设计有问题,接的74LS373锁存器几乎就不起作用,然后改线将锁存器去掉了;接着是程序有错误,显示不正确,通过仔细阅读液晶资料,发现其工作时序没有配合好,经改动后在电路板上终于调试通过了;
(2)温度补偿模块调试。

因为之前在实验台上已经调试通过,所以将程序下载到单片机后就正确了。

但在实验台上调试时也曾出现过很严重的问题,原因就是没有彻底弄明白DS18B20的工作工作时序,只有将时序配合好,芯片才呢个正常工作。

(3)超声波发射与接收模块的调试。

这部分是整个系统的核心,也是最易出现问题的部分,而且之前并没有实际测试过,因此在这个模块的调试过程中很困难。

由于发射和接收不能独立调试,所以要同时考虑这两个部分的工作情况,只有两个部分都正常工作了才能得到正确的实验结果。

将调试程序下载后,发现没能得到正确的实验现象,接着便开始进行分步调试,发射部分我们通过示波器观察波形,发现波形的频率与实际需要值略有偏差,经改正程序后符合了实际需要的频率和幅度,但还是没有正确的实验现象。

确定发射没有问题后便开始进行接收部分的调试,反复进行电路连接检查和程序结构的改进后,依然没有调试成功。

正要在困难面前退缩的时候,突然想起来,在分发电容时有一个电容在没有确定容值的情况下就发下来了,我这才想起来去检查我的器件型号规格是否有问题,果然,发现了那个误发的电容,其标称值比我们所需要的大了100倍,此时的我非常懊悔,恨自己一时疏忽没有做好调试前最基本的工作,把电容换了后调试成功了,又做了一点调整,系统能稳定的工作了。

5.2 性能分析
超声波测距系统是现代生活一种很方便的测距仪器,它能够准确快速的测量出距离,给人们的生活带来很大方便。

当系统上电时,显示器上将显示“Welcome”的字样,很快系统开始工作,随着探头的移动,显示器上将实时显示当前所对准的物体的距离,而且会一并显示当前测量环境的温度值。

由于系统的驱动问题以及软件上的缺陷,实际测量值范围最好控制在3m内,距离值误差≤1cm,温度值误差≤0.5℃。

本系统尚有不足,一是缺少电源开关控制按键,二是缺少报警机制,三是测量条件改变时的纠错能力差,另外液晶显示也没有达到理想的稳定状态。

希望在
进一步的设计过程中解决这些问题,并有所完善和再创新。

六、心得体会
这次课程设计是对我们学习单片机原理与应用和印刷电路板设计课程的检验及实际应用能力的一次提高。

我们所设计的是超声波测距系统。

可以测量的距离范围是5cm~3m,精确到1cm。

由于声波在不同的温度下的速度值变化很大,为了减少测量误差,我们采用DS18B20温度传感器进行温度补偿设计,它具有体积小、适用电压宽等特点,其测量范围为-55℃~+125℃。

与传统的热敏电阻相比,它能够直接读出被测量温度并且可根据实际要求通过简单的编程实现9~12位的数字值读数方式。

本次实验中选择其12位转换精度。

由于DS18B20读出或写入的信息仅需要一根口线完成,这样就需要准确的读写时序,刚开始由于时序没有配合好,调试很久都没出现正确的结果,后来通过对其时序的再一次了解和把握终于测出了准确的温度值。

但读出来的温度值只是整个系统的一个辅助部分,我们主要是为了得到与当前环境下的温度值对应的声速值,此部分转换通过软件设计中温度的比较及查表来完成。

显示部分选择了LCD1602液晶显示,但由于实验台的限制,软件调试过程中采用动态数码管显示。

原理图设计时我们使用了印刷电路板设计课上学过的Altium Designer 6制图工具,由于一些实际的器件在器件库中无法找到,我们只有自己制作,在这个过程中我们学到了很多的知识和方法。

在制作PCB板图的时候,很多器件的封装与实际尺寸存在很大的差别,为了获得准确的封装,我们实际测量了所给器件的大小与规格,找到了与之匹配的封装库。

当然我们也走过弯路,在考虑产品外型设计时,由于探头位置的需要,我们曾想过要将两个探头与主板分开单置出来,经老师分析,考虑到单开一块板的成本及安装困难的问题,提议将探头引脚弯曲便可。

这个问题让我感受颇深,虽然只有这么小小的变动但却解决了实际问题。

而自己却把简单的问题复杂化,因此我们在看问题时,一定要多角度考虑。

程序编写过程也给了我们很大的收获。

在编写程序之前,我们查阅了大量的相关资料,力求做到简洁规范清晰。

在把握了整体的思路后,我们先从程序流程图着手,将整个程序分成若干模块,分开编写,一边发现问题一边解决问题,并在实验板上检验程序测试情况,根据现象不断修改。

由于实验板的种种限制,我们不得不针对实验台来进行软件设计与调试。

在这个过程中我们体会到编程的技巧,设置子程序的合理性,同时对单片机最小系统的设计有了整体的理解和深刻的体会,使我们的思维的锻炼与能力培养有了很大的提高和进步。

本次课程设计时间虽短,但收获却很大。

我们对应用单片机最小系统来设计产品有了整体的把握,对程序编写的合理与规范性有了深刻的理解,建立起程序设计的一般思路,以及Altium Designer 6的使用方法,其强大的功能给我们提供了很大的帮助,通过原理图的设计,使我们认识到了这个软件的重要性,提高
了我们运用的熟练性,我们会以此为契机,在日后的学习中会继续使用它,使其发挥更大的功能。

经过三个星期的课程设计,我们得到了充分的锻炼,不仅对单片机的学习有了深刻的理解,同时也增强了我们的毅力和处理突发问题的能力。

学习是要付出一定的艰辛与努力的,做事情一定要有不怕困难的吃苦精神,唯有坚持不懈,发扬团队协作才能够克服困难,取得最后的胜利。

相信本次课程设计对我们以后的学习将会有很大的影响,我们一定会积极地总结经验与教训,改进不足,争取在日后做得更好。

当然要感谢老师和同学们的帮助,在我们束手无策,陷入困境的时候给予热情的帮助,使我们顺利渡过难关。

课程设计是一次很好的实践动手机会,通过实践,我们的知识得到了应用,真正实现了知识的学以致用,理论联系实际,我们会更加注重实践能力的锻炼,注重动手能力的培养。

参考文献
[1] 徐维祥,刘旭敏.单片微型机原理及应用.大连:大连理工大学出版社,1996
[2] 何立民.单片机实验与实践教程(一).北京:北京航空航天大学出版社,2003
[3] 楼然苗,李光飞.单片机课程设计指导.北京:北京航空航天大学出版社,2007
[4] 李群芳,黄建.单片机微型计算机与接口技术.北京:电子工业出版社,2001
[5] 汪道辉.单片机系统设计与实践.北京:电子工业出版社,2006
附录1系统硬件电路图
附录2程序清单
;************************************************************* ; 系统初始化定义
;************************************************************* TEMPER_VL DATA 20H ; 温度值(取整后)存储区
TEMPER_VH DATA 21H
TEMPL DATA 26H
TEMPH DATA 27H ; 测得温度值存储区
TEMPHC DATA 28H
TEMPLC DATA 29H
TEMPHEAD EQU 36H ; 温度值缓存区
TEMPER_NUM EQU 39H ; 处理温度值缓存区
VOUT EQU P1.0 ; 超声波脉冲输出端口
TEMPDIN BIT P2.4 ; DS18B20温度输入端口
RS EQU P2.6
RW EQU P2.5
E EQU P2.7
;********************************************
; 中断入口程序
;********************************************
ORG 0000H
LJMP BEGIN
ORG 0003H
LJMP PINT0 ;外部0中断
ORG 000BH
LJMP INTT0 ;计数器T0中断
ORG 0013H
RETI
ORG 001BH
LJMP INTT1 ;定时器T1中断
ORG 0023H
RETI
ORG 002BH
RETI
;********************************************
; 主程序
;********************************************
ORG 0100H
BEGIN: MOV SP,#4FH
MOV R0,#40H ;40H-43H为显示距离存放单元MOV R7,#30H ;60H-63H为显示温度存放单元CLEARDISP: MOV @R0,#30H
DJNZ R7,CLEARDISP
MOV 23H,#00H
MOV TMOD,#21H ;T1为8位自动重装,T0为16位定时器 MOV TH0,#00H ;65毫秒初值
MOV TL0,#00H
MOV TH1,#0F4H ;40KHz初值
MOV TL1,#0F4H
MOV P0,#0FFH
MOV P1,#0FFH
MOV P2,#0FFH
MOV P3,#0FFH
MOV R4,#0AH ;超声波肪冲个数控制(为赋值的一半) LCALL LCDON ;开机显示
SETB PX0
SETB ET0
SETB EA
BEGIN1: LCALL READTEMP
LCALL READTEMP1 ;读出温度值子程序
LCALL CONVTEMP
LCALL DISPBCD
SETB TR0 ;开启测距定时器
ABEGIN: LCALL DISPLAY
JNB 23H,ABEGIN ;收到回波时置标志位
CLR EA
CLR 23H
LCALL WORK ;计算距离子程序
SETB EA
MOV TH0,#00H ;65毫秒初值
MOV TL0,#00H
SETB TR0 ;重新开启测距定时器
MOV R2,#02H
LOOP: LCALL DISPLAY
DJNZ R2,LOOP
SJMP BEGIN1
;****************************************************
; 中断服务子程序
;****************************************************
;T0中断,65mS中断一次
INTT0: CLR EA
CLR TR0
MOV TH0,#00H
MOV TL0,#00H
SETB ET1
SETB TR0 ;启动计数T0,用以计算超声来回时间 SETB TR1 ;开启定时器T1,用以发超声波 NOP
SETB EX0
OUT: RETI
;T1中断,发送超声波
INTT1: CPL VOUT
DJNZ R4,RETIOUT
CLR TR1 ;超声波发送完毕,关T1
CLR ET1
MOV R4,#0AH
RETIOUT: RETI
;外部中断0检测回波
PINT0: CLR TR0 ;关计数器
CLR TR1
CLR ET1
CLR EA
CLR EX0
MOV 45H,TL0 ;将计数值移入处理单元
MOV 46H,TH0
SETB 23H ;接收成功标志
RETI
;****************************************************
; 距离计算程序 (=计数值*172/10000cm)
;****************************************************
WORK: PUSH ACC
PUSH PSW
PUSH B
MOV R3, 46H
MOV R2, 45H
MOV R1, #00D
MOV DPTR, #TEMPR
LCALL DIFFER ;将温度值转换为对应的速度值
MOVC A,@A+DPTR
MOV R0, A
LCALL MUL2BY2
MOV R3, #03H
MOV R2, #0E8H
LCALL DIV4BY2
MOV R3, #27H
MOV R2, #10H
LCALL DIV4BY2
MOV A,R4。

相关文档
最新文档