摘 要
超声波测距法迅速,方便,计算简单,易于做到实时控制,提过
基于单片机的超声测距系统的设计能更加深入地了解单片机的实际应用。本课题完成整个超声波测距系统设计,包括单片机控制电路,发射电路,接收电路,LCD显示电路和温度补偿电路。
本课题硬件部分设计采用最小系统板和所需的超声波收发电路。程序由计算机仿真并烧入单片机实际调试,最终实物是一个能在5至200cm范围内准确测量距离的便携式系统,经实际测量误差控制在5%以内。该系统的设计过程加深了对单片机的理解。本设计的产品也能在实际生活中有很广泛的应用。
关键词:超声波,测距,补偿,模块
I
DESIGN OF ULTRASONIC RANGING
BASED ON SINGLECHIP
ABSTRACT
Ultrasonic ranging is so quick and useful,it can be easy to translationed and be controled on time.We can learn much about singlechip during the design of Ultrasonic ranging base on singlechip.
The system is made up by singlechip part,send and receive part,LCD part and temperature detective part.With the helping of smallest system and computer,the product which can detective the distance from 5cm to 200cm comes out.The error is only 0.5%. The system can help you take a good learning about singlechip.On the other hand,the system can be used in many environment by its practicality.
Key Words: Ultrasonic, Ranging, temperature detective
II
目录
摘 要 ................................................................................................................................................... I ABSTRACT ...................................................................................................................................... II 目录 .................................................................................................................................................. III 第1章
绪论 ................................................................................................................................. 1
1.1 课题的背景和意义 ................................................................................................................. 1 1.1.1 课题的背景 ....................................................................................................................... 1 1.1.2 课题的意义 ....................................................................................................................... 1 1.2 超声波测距的发展现状趋势 ................................................................................................. 2 1.3 本课题任务 ............................................................................................................................. 2 第2章
单片机 ............................................................................................................................. 3
2.1 单片机原理及应用 ................................................................................................................. 3 2.1.1 单片机原理 ....................................................................................................................... 3 2.1.2 单片机的应用 ................................................................................................................... 3 2.2 单片机发展前景 ..................................................................................................................... 4 2.3 单片机程序编译环境 ............................................................................................................. 5 2.3.1 KEIL C51 ........................................................................................................................... 5 2.3.2 uVision2集成开发环境 ..................................................................................................... 5 2.3.3 编辑器和调试器 ............................................................................................................... 6 2.3.4 C51编译器 ........................................................................................................................ 6 2.3.5 部分代码优化 ................................................................................................................... 7 2.3.6 RTX51实时核模块 ............................................................................................................ 8 2.3.7 测试程序 ........................................................................................................................... 8 2.3.8 C51 V7版增强功能介绍 ................................................................................................... 9 第3章
超声波测距原理 ........................................................................................................... 10
3.1 超声波原理及应用 ............................................................................................................... 10 3.1.1 超声波原理 ..................................................................................................................... 10
III
3.1.2 超声波应用 ..................................................................................................................... 10 3.2 超声波测距原理 ....................................................................................................................11 第4章
测距系统构成与误差分析 ........................................................................................... 13
4.1 单片机控制器 ....................................................................................................................... 13 4.2 传感器 ................................................................................................................................... 13 4.2.1 超声波传感器原理与选型 ............................................................................................. 13 4.2.2 温度传感器选型 ............................................................................................................. 14 4.3 LCD显示屏 .......................................................................................................................... 15 4.4 系统误差 ............................................................................................................................... 15 4.4.1 系统误差分析 ................................................................................................................. 15 4.4.2 系统误差补偿 ................................................................................................................. 16 第5章
系统设计 ....................................................................................................................... 17
5.1 系统框图 ............................................................................................................................... 17 5.2 硬件 ....................................................................................................................................... 17 5.2.1 发射电路 ......................................................................................................................... 17 5.2.2 接收电路 ......................................................................................................................... 18 5.3 程序流程图 ........................................................................................................................... 20 5.4 系统实物图 ........................................................................................................................... 21 5.5 测试及数据分析 ................................................................................................................... 21 第6章
总结 ............................................................................................................................... 25
参考文献........................................................................................................................................... 26 附录1部分程序............................................................................................................................... 28 致谢 .................................................................................................................................................. 39
IV
浙江工业大学本科毕业设计论文
第1章 绪论
1.1 课题的背景和意义
1.1.1 课题的背景
随着科技的迅猛发展越来越多科技成果被广泛的运用到人们的日常生活当中,给我们的生活带来了诸多方便。本课题就是本着这个宗旨出发,利用超声波的特性来为我们服务。由于超声波指向性强,因而常于距离的测量。超声波发射器向某一方向发射超声波,在发射时刻的同时开始计时,超声波在空气中传播,途中碰到障碍物就立即返回来,超声波接收器收到反射波就立即停止计时[1]。超声波在空气中的传播速度为v,根据计时器记录的时间t,就可以计算出发射点距障碍物的距离s,即:s=vt/2 。这就是所谓的时间差测距法。
利用超声波检测往往比较迅速、方便、计算简单、易于做到实时控制,并且在测量精度方面能达到工业实用的要求,因此在移动机器人,汽车安全,海洋测量等上得到了广泛的应用[2]。
1.1.2 课题的意义
通过本课题可以帮助学习理解单片机和超声波这两种时下发展最快的技术。制作基于单片机的超声波测距仪,需要以超声波技术为基础的外围超声波收发电路,以及以单片机技术为核心的主控制器。是学习电子产品设计的很好途径。利用超声波测距,在许多方面有很多优势。因此,本课题的研究是非常有实用和商业价值。
1
浙江工业大学本科毕业设计论文
1.2 超声波测距的发展现状趋势
随着科学技术的快速发展,超声波将的应用将越来越广。但就目前技术水平来说,人们可以具体利用的超声波技术还十分有限,因此,这是一个正在蓬勃发展而又有无限前景的技术及产业领域。
超声波测距技术在社会生活中已有广泛的应用如汽车倒车雷达等[3],它们测距精度一般较低。目前对超声波高精度测距系统的需求越来越大。展望未来,超声波作为一种新型的非常重要有用的工具在各方面都将有很大的发展空间,它将朝着更加高定位高精度的方向发展,以满足日益发展的社会需求。未来的超声波测距技术将朝着更高精度,更大应用范围,更稳定方向发展,死角问题也能得以解决。
1.3 本课题任务
本设计选用T/R-40-12 超声波传感器。在了解超声波测距原理的基础上,完成了基于时差测距原理的一种超声波测距系统的硬件设计,其中为了进一步提高系统测量精度和系统稳定性,在硬件上增加了温度传感器测温电路,采取声速预置和媒质温度测量相结合的办法对声速进行修正,降低了温度变化对测距精度的影响。有利于提高超声波测距系统的测量精度[5]。
具体设计一个基于单片机的超声波测距器,包括单片机控制电路,发射电路,接收电路,LED显示电路,温度补偿电路。要求测量范围在5~200cm,测量误差5%以内,测量时与被测物体无直接接触,能够清晰稳定地显示测量结果,并能对温度所造成的系统误差做出补偿[6]。
2
浙江工业大学本科毕业设计论文
第2章 单片机
2.1 单片机原理及应用
2.1.1 单片机原理
单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上,大大缩短了系统内信号传送距离,从而提高了系统的可靠性及运行速度。因而在工业测控领域中,单片机系统是最理想的控制系统。所以,单片机是典型的嵌人式系统,是嵌入式系统低端应用的最佳选择。
51系列单片机由以下几部分构成[12]: 1. 中央处理器(CPU) 2. 内部数据存储器(RAM) 3. 内部程序存储器(ROM) 4. 定时器/计数器 5. 并行I/O口 6. 串行口 7. 中断控制系统 8. 时钟电路 2.1.2 单片机的应用
目前单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能IC卡,民用豪华轿车的安全保障系统,录像机、摄像机、全自动洗衣机的控制,以及程控玩具、电子宠物等等,这些都离不开单片机。更不用说自动控制领域的机器人、智能仪表、医疗器械了。
单片机的应用领域[8]:
3
浙江工业大学本科毕业设计论文
1.单片机在智能仪器仪表中的应用; 2.单片机在工业测控中的应用;
3.单片机在计算机网络和通讯技术中的应用; 4.单片机在日常生活及家电中的应用; 5.单片机在办公自动化方面。
2.2 单片机发展前景
计算机系统的发展已明显地朝三个方向发展;这三个方向就是:巨型化,单片化,网络化。以解决复杂系统计算和高速数据处理的仍然是巨型机在起作用,故而,巨型机在目前在朝高速及处理能力的方向努力。单片机在出现时,Intel公司就给其单片机取名为嵌入式微控制器(embedded microcontroller)[10]。单片机的最明显的优势,就是可以嵌入到各种仪器、设备中。这一点是巨型机和网络不可能做到的。
单片机的最新技术进步,包括数字单片机的工艺及技术,模糊单片机的工艺及技术,单片机的可靠性技术,以及以单片机为核心的嵌入式系统。
数字单片机的技术进步反映在内部结构、功率消耗、外部电压等级以及制造工艺上。在这几方面,较为典型地说明了数字单片机的水平。在目前,用户对单片机的需要越来越多,但是要求也越来越高。单片机的技术进步状况表现在以下几方面:内部结构的进步;功耗、封装及电源电压的进步;工艺上的进步。
在单片机应用中,可靠性是首要因素,为了扩大单片机的应用范围和领域,提高单片机自身的可靠性是一种有效方法。近年来,单片机的生产厂家在单片机设计上采用了各种提高可靠性的新技术,这些新技术表现在如下几:EFT(Electrical Fast Transient)技术;低噪声布线技术及驱动技术;采用低频时钟。
单片机在目前的发展形势下,表现出几大趋:可靠性及应用越来越水平高和互联网连接已是一种明显的走向;所集成的部件越来越多;NS(美国国家半导体)公司的单片机已把语音、图像部件也集成到单片机中,也就是说,单片机的意义只是在于单片集成电路,而不在于其功能了;如果从功能上讲它可以讲是万用机。原因是其内部已集成上各种应用电路。功耗越来越低和模拟电路结合越来越多[18]。
随着半导体工艺技术的发展及系统设计水平的提高,单片机还会不断产生新的变化和进步,最终人们可能发现:单片机与微机系统之间的距离越来越小,甚
4
浙江工业大学本科毕业设计论文
至难以辨认。 2.3 单片机程序编译环境
2.3.1 KEIL C51
KEIL C51标准C编译器为8051微控制器的软件开发提供了C语言环境,同时保留了汇编代码高效,快速的特点。C51编译器的功能不断增强,使你可以更加贴近CPU本身,及其它的衍生产品[13]。C51已被完全集成到uVision2的集成开发环境中,这个集成开发环境包含:编译器,汇编器,实时操作系统,项目管理器,调试器。uVision2 IDE可为它们提供单一而灵活的开发环境。
C51 V7版本是目前最高效、灵活的8051开发平台。它可以支持所有8051的衍生产品,也可以支持所有兼容的仿真器,同时支持其它第三方开发工具。因此,C51 V7版本无疑是8051开发用户的最佳选择。
2.3.2 uVision2集成开发环境
uVision2集成开发环境包括以下两个部分:
项目管理:工程(project)是由源文件、开发工具选项以及编程说明三部分组成的。一个单一的uVision2工程能够产生一个或多个目标程序[21]。产生目标程序的源文件构成“组”。开发工具选项可以对应目标,组或单个文件。 uVision2包含一个器件数据库(device database),可以自动设置汇编器、编译器、连接定位器及调试器选项,来满足用户充分利用特定微控制器的要求。此数据库包含:片上存储器和外围设备的信息,扩展数据指针(extra data pointer)或者加速器(math accelerator)的特性。 uVision2可以为片外存储器产生必要的连接选项:确定起始地址和规模。
集成功能:uVision2的强大功能有助于用户按期完工。集成源极浏览器利用符号数据库使用户可以快速浏览源文件。用详细的符号信息来优化用户变数存储器。 文件寻找功能:在特定文件中执行全局文件搜索。工具菜单:允许在V2集成开发环境下启动用户功能。 可配置SVCS接口:提供对版本控制系统的入口。 PC-LINT接口:对应用程序代码进行深层语法分析。Infineon的EasyCase接口:集成块集代码产生。Infineon的DAVE功能:协助用户的CPU和外部程序。DAVE
5
浙江工业大学本科毕业设计论文
工程可被直接输入uVision2。 2.3.3 编辑器和调试器 一、源代码编辑器
uVision2编辑器包含了所有用户熟悉的特性。彩色语法显像和文件辩识都对C源代码进行和优化。可以在编辑器内调试程序,它能提供一种自然的调试环境,使你更快速地检查和修改程序[15]。
二、断点
uVision2允许用户在编辑时设置程序断点(甚至在源代码未经编译和汇编之前)。用户启动V2调试器之后,断点即被激活。断点可设置为条件表达式,变量或存储器访问,断点被触发后,调试器命令或调试功能即可执行。
在属性框(attributes column)中可以快速浏览断点设置情况和源程序行的位置。代码覆盖率信息可以让你区分程序中已执行和未执行的部分。
三、调试函数语言
uVision2中,你可以编写或使用类似C的数语言进行调试内部函数:如printf, memset, rand及其它功能的函数。信号函数:模拟产生CPU的模拟信号和脉冲信号(simulate analog and digital inputs to CPU)。用户函数:扩展指令范围,合并重复动作。
四、变量和存储器
用户可以在编辑器中选中变呈来观察其取值。双层窗口显示,可进行以下调整:当前函数的局部变量;用户在两个不同watch窗口页面上的自定义变量;堆栈调用(call stack)页面上的调用记录(树)(call tree);不同格式的四个存储区。
2.3.4 C51编译器
KEIL C51编译器在遵循ANSI标准的同时,为8051微控制器系列特别设计。语言上的扩展能让用户使用应用中的所有资源。存储器和特殊功能寄存器的存取:
6
浙江工业大学本科毕业设计论文
C51编译器可以实现对8051系列所有资源的操作。SFR的存取由sfr和sbit两个关键字来提供。变量可旋转到任一个地址空间。用关键字at还能把变量放入固定的存储器。存储模式(大,中,小)决定了变量的存储类型。连接定位器支持的代码区可达32个,这就允许用户在原有64KROM的8015基础上扩展程序。在V2的编译器和许多高性能仿真器中,可以支持应用程序的调试。中断功能:C51允许用户使用C语言编写中断服务程序,快速进、出代码和寄存器区的转换功能使C语言中断功能更加高效。 可再入功能是用关键字来定义的。多任务,中断或非中断的代码要求必须具备可再入功能。灵活的指针:C51提供了灵活高效的指针。通用指针用3个字节来存储存储器类型及目标地址,可以在8051的任意存储区内存取任何变量。特殊指针在声明的同时已指定了存储器类型,指向某一特定的存储区域。由于地址的存储只需1-2字节,因此,指针存取非常迅速。
2.3.5 部分代码优化
通用代码优化:常量重叠(constant folding);通用子表达式删除(common subexpression elimination);长度缩减速(reduction);控制流优化(control flow optimization);寄存器变量使用(register variable usage);寄存器间参数传递(parameter passing in register);循环(loop rotation);死码删除(dead code elimination);通用Tail Merging;通用子程序块打包(block subroutine packing)。
8051特殊优化:孔颈优化(peephole optimization);跳转-分支优化(switch-case optimization);中断函数优化(interrupt function optimization);数字覆盖(overlaying);扩展入口优化(extended access optimization)。
寄存器优化:C51为函数参数和局域变量分配了9个CPU寄存器。寄存器间最多可传递三个参数。P全局寄存器优化可删除不必要代码,优化CPU寄存器设备。
C语言实时库:C51实时库含100多种功能,其中大多数是可再入的。库支持所有的ANSI C的程序,与嵌入式应用程序的限制相符。固有程序为硬件提供特殊指令,如:nop, testbit, rol, ror。
A51宏汇编:A51宏汇编支持标准宏和MPL宏。要实现快速产生汇编程序SHELL,就直接使用C51编译器的SRC。在A51 V7版本中,允许用户包含的头
7
浙江工业大学本科毕业设计论文
文件来定义常量和SFR。如今,一个单一头文件可被应用到X程序和汇编程序中。 2.3.6 RTX51实时核模块
RTX51多任务实时内核可以简化那些过程复杂,时间紧迫的软件项目。RTX51是无版税的,完全集成到Keil C51工具链上,支持C语言和汇编语言程序,也完全支持代码区的应用程序。RTX51完全支持:标准任务(用一个共享寄存器区); 快速任务(用一个专用寄存器区);CAN;邮箱(为内部任务通信); 存储池(memory pools)。
RTX51 Tiny是简化后的内核,适于单片机系统。
RTX51和RTX51 Tiny都可使用户创建和撤消任务,发送和接收信号,也可执行其它操作系统管理。
上下文切换(任务切换):轮询方式(round-robin),每个任务在一个规定的时间段内运行,当一个任务的时间段结束时,另一个任务随之开始;抢占方式(preemptive),优先级最高的任务最先执行,直到被一个具有更高优先级的任务打断,或是为等待某个事件而主动放弃控制权。
事件与中断,RTX 51支持下列事件:Timeouts 延迟到特定定时点;Intervals延迟一段时间间隔;Signals协调内部任务操作;Messages在任务间互传信息;Interrupts 处理硬件中断;Semaphores 共享有限资源.
RTX51同时支持中断功能,可以向任务中发送或从任务中接收信号和信息。
2.3.7 测试程序
uVision2调试器具备所有常规源极调试,符号调试特性以及历史跟踪,代码覆盖,复杂断点等功能.DDE界面和shift语言支持自动程序测试.
CPU和外设模拟装置:uVision2为8051及衍生产品提供了高速CPU模拟功能和片上扩展口.在对话框内可直接观察和修改I/O值,也可以用预装的C-LIKE 宏指令书写符号函数来提供动态输入。
目标监控器:uVision2含一个可配置的监控器,可测试目标器件上的软件体。监控器用uVision2的调试器直接工作,可支持代码区。它要求目标系统具备6字节堆栈空间,6KB的代码ROM和256字节Xdata RAM。
8
浙江工业大学本科毕业设计论文
MCB517/251启动工具包:在开始一项8051工程时,MCB启动工具会对你有很大帮助。每一个启动工具包括一套2K字节的开发工具和许多可快速运行的举例程序。用户可在检测8051性能的同时,查看开发工具的可行性。
MCB517AC板含高性能Infineon C517A单片机,它提供标准8052外围设备和A/D转换器,PWM,搜索/比较,8位数据指针,一个高速运算单元。同时包含对81C90CAN控制器和代码区的支持。
2.3.8 C51 V7版增强功能介绍
C51 V7版提供了很多新的和增强的功能,使开发8051嵌入式应用比以前更加简单。C51 V7版新功能包括:新版编译器和连接器更加优化,可以缩短程序的大小;能完全模拟支持的器件更多,如Philips 80C51MX, Dallas 80C390和Analog Devices MicroConverters;新的ISD51系统内调试器,允许在不变的目标硬件上调试程序;可更好地支持Philips 51MX的24位地址;RTX51 Tiny增加了新功能,它比以前更小,但提供的功能更多。
9
浙江工业大学本科毕业设计论文
第3章 超声波测距原理
3.1 超声波原理及应用
3.1.1 超声波原理
声波是物体机械振动状态(或能量)的传播形式。所谓振动是指物质的质点在其平衡位置附近进行的往返运动。譬如,鼓面经敲击后,它就上下振动,这种振动状态通过空气媒质向四面八方传播,这便是声波。 超声波是指振动频率大于20000Hz以上的,其每秒的振动次数(频率)甚高,超出了人耳听觉的上限(20000Hz),人们将这种听不见的声波叫做超声波。超声和可闻声本质上是一致的,它们的共同点都是一种机械振动,通常以纵波的方式在弹性介质内会传播,是一种能量的传播形式,其不同点是超声频率高,波长短,在一定距离内沿直线传播具有良好的束射性和方向性。 3.1.2 超声波应用
由于超声波具有如下特性:超声波可在气体、液体、固体、固熔体等介质中有效传播;超声波可传递很强的能量;超声波会产生反射、干涉、叠加和共振现象;超声波在液体介质中传播时,可在界面上产生强烈的冲击和空化现象。
超声效应已广泛用于实际,主要有如下几方面:
超声检验。超声波的波长比一般声波要短,具有较好的方向性,而且能透过不透明物质,这一特性已被广泛用于超声波探伤、测厚、测距、遥控和超声成像技术。超声成像是利用超声波呈现不透明物内部形象的技术 。把从换能器发出的超声波经声透镜聚焦在不透明试样上,从试样透出的超声波携带了被照部位的信息(如对声波的反射、吸收和散射的能力),经声透镜汇聚在压电接收器上,所得电信号输入放大器,利用扫描系统可把不透明试样的形象显示在荧光屏上。上述装置称为超声显微镜。超声成像技术已在医疗检查方面获得普遍应用,在微电子器件制造业中用来对大规模集成电路进行检查,在材料科学中用来显示合金中不
10
浙江工业大学本科毕业设计论文
同组分的区域和晶粒间界等。声全息术是利用超声波的干涉原理记录和重现不透明物的立体图像的声成像技术,其原理与光波的全息术基本相同,只是记录手段不同而已(见全息术)。用同一超声信号源激励两个放置在液体中的换能器,它们分别发射两束相干的超声波:一束透过被研究的物体后成为物波,另一束作为参考波。物波和参考波在液面上相干叠加形成声全息图,用激光束照射声全息图,利用激光在声全息图上反射时产生的衍射效应而获得物的重现像,通常用摄像机和电视机作实时观察。
超声处理。利用超声的机械作用、空化作用、热效应和化学效应,可进行超声焊接、钻孔、固体的粉碎、乳化、脱气、除尘、去锅垢、清洗、灭菌、促进化学反应和进行生物学研究等,在工矿业、农业、医疗等各个部门获得了广泛应用。 基础研究。超声波作用于介质后,在介质中产生声弛豫过程,声弛豫过程伴随着能量在分子各自电度间的输运过程,并在宏观上表现出对声波的吸收(见声波)。通过物质对超声的吸收规律可探索物质的特性和结构,这方面的研究构成了分子声学这一声学分支。普通声波的波长远大于固体中的原子间距,在此条件下固体可当作连续介质。但对频率在1012赫以上的特超声波,波长可与固体中的原子间距相比拟,此时必须把固体当作是具有空间周期性的点阵结构。点阵振动的能量是量子化的,称为声子(见固体物理学)。特超声对固体的作用可归结为特超声与热声子、电子、光子和各种准粒子的相互作用。对固体中特超声的产生、检测和传播规律的研究,以及量子液体——液态氦中声现象的研究构成了近代声学的新领域。
3.2 超声波测距原理
超声波发射器向某一方向发射超声波,在发射时刻的同时开始计时,超声波在空气中传播,途中碰到障碍物就立即返回来,超声波接收器收到反射波就立即停止计时。超声波在空气中的传播速度为v,根据计时器记录的时间t,就可以计算出发射点距障碍物的距离(s),即:
svt (3-2) 2这就是所谓的时间差测距法。采用超声波测量大气中的地面距离,是近代电
11
浙江工业大学本科毕业设计论文
子技术发展才获得正式应用的技术,由于超声测距是一种非接触检测技术,不受光线、被测对象颜色等的影响,在较恶劣的环境(如含粉尘)具有一定的适应能力。因此,用途极度广泛。例如:测绘地形图,建造房屋、桥梁、道路、开挖矿山、油井等,利用超声波测量地面距离的方法,是利用光电技术实现的,超声测距仪的优点是:仪器造价比光波测距仪低,省力、操作方便。
由于是利用超声波测距,要测量预期的距离,所以产生的超声波要有一定的功率和合理的频率才能达到预定的传播距离,同时这是得到足够的回波功率的必要条件,只有的得到足够的回波频率,接收电路才能检测到回波信号和防止外界干扰信号的干扰。经分析和大量实验表明,频率为40KHz左右的超声波在空气中传播效果最佳,同时为了处理方便,发射的超声波被调制成具有一定间隔的调制脉冲波信号。
12
浙江工业大学本科毕业设计论文
第4章 测距系统构成与误差分析
4.1 单片机控制器
单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上,大大缩短了系统内信号传送距离,从而提高了系统的可靠性及运行速度。因而在工业测控领域中,单片机系统是最理想的控制系统。所以,单片机是典型的嵌人式系统,是嵌入式系统低端应用的最佳选择。本课题选用89S51单片机,89S51相对于89C51增加的新功能包括:
ISP在线编程功能,这个功能的优势在于改写单片机存储器内的程序不需要把芯片从工作环境中剥离。是一个强大易用的功能。
最高工作频率为33MHz,大家都知道89C51的极限工作频率是24M,就是说S51具有更高工作频率,从而具有了更快的计算速度。
具有双工UART串行通道。 内部集成看门狗计时器
兼容性方面:向下完全兼容51全部字系列产品。比如8051、89C51等等早期MCS-51兼容产品。
4.2 传感器
4.2.1 超声波传感器原理与选型
超声波传感器主要材料有压电晶体(电致伸缩)及镍铁铝合金(磁致伸缩)两类。电致伸缩的材料有锆钛酸铅(PZT)等。压电晶体组成的超声波传感器是一种可逆传感器,它可以将电能转变成机械振荡而产生超声波,同时它接收到超声波时,也能转变成电能,所以它可以分成发送器或接收器。小型超声波传感器,发送与接收略有差别,它适用于在空气中传播,工作频率一般为23-25kHz及40-45kHz。这类传感器适用于测距、遥控、防盗等用途。若对发送传感器内谐振
13
浙江工业大学本科毕业设计论文
频率为40kHz的压电陶瓷片(双晶振子)施加40kHz高频电压,则压电陶瓷片就根据所加高频电压极性伸长与缩短,于是发送40kHz频率的超声波,其超声波以疏密形式传播( 疏密程度可由控制电路调制),并传给波接收器。接收器是利用压力传感器所采用的压电效应的原理,即在压电元件上施加压力,使压电元件发生应变,则产生一面为“+”极,另一面为“-”极的40kHz正弦电压。因该高频电压幅值较小,还必须进行放大。
常用的超声波传感器有T/R-40-60,T/R-40-12等(其中T表示发送,R表示接收,40表示频率为40kHZ,16及12表示其外径尺寸,以毫米计)。本设计选用T/R-40-12 超声波传感器。
4.2.2 温度传感器选型
本系统选用DS18B20温度传感器作为误差补偿装置。DS18B20是美国DALLAS半导体公司生产的1—WIRE数字温度传感器,它可实现数字化输出和测试,并且有控制功能强、传输距离远、抗干扰能力强、微功耗等特点。DS18B20的主要特性:
适应电压范围更宽,电压范围3.0~5.5V,在寄生电源方式下可由数据线供电。 独特的单线接口方式,DS18B20在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯。
DS18B20支持多点组网功能,多个DS18B20可以并联在唯一的三线上,实现组网多点测温。
DS18B20在使用中不需要任何外围元件,全部传感元件及转换电路集成在形如一只三极管的集成电路内。
温范围-55℃~+125℃,在-10~+85℃时精度为±0.5℃。
可编程的分辨率为9~12位,对应的可分辨温度分别为0.5℃、0.25℃、0.125℃和0.0625℃,可实现高精度测温。
在9位分辨率时最多在93.75ms内把温度转换为数字,12位分辨率时最多在750ms内把温度值转换为数字,速度更快。
测量结果直接输出数字温度信号,以\"一线总线\"串行传送给CPU,同时可传送CRC校验码,具有极强的抗干扰纠错能力。
14
浙江工业大学本科毕业设计论文
负压特性:电源极性接反时,芯片不会因发热而烧毁,但不能正常工作。
4.3 LCD显示屏
LCD1602应用很普遍,市面上字符液晶绝大多数是基于HD44780液晶芯片的,控制原理是完全相同的,因此HD44780写的控制程序可以很方便地应用于市面上大部分的字符型液晶。字符型LCD通常有14条引脚线或16条引脚线的LCD,多出来的2条线是背光电源线VCC(15脚)和地线GND(16脚),16脚接口的管脚发布如下:
第1脚:VSS为电源地 第2脚:VDD接5V电源正极
第3脚:V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高(对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度)。
第4脚:RS为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器。
第5脚:RW为读写信号线,高电平(1)时进行读操作,低电平(0)时写操作。 第6脚:E(或EN)端为使能(enable)端。
第7~14脚:D0~D7为8位双向数据端。 第15~16脚:空脚或背灯电源。
4.4 系统误差
4.4.1 系统误差分析
超声波是以声波的形式所进行的能量传播。一般来说,超声波传播的距离大或是速度慢,能量消耗就大,倘若超声波的能量全部消耗在传播途中或是声波改变方向,就接收不到回波信号。而超声波传播的速度与弹性介质的种类和状况关系极大,通常说的声速每秒340米,其传播介质是15℃的标准空气。研究表明,声波的传播速度与温度是成正比的,在近地层中,当气温随高度增加而降低时,声音的传播速度随高度增加而减小,声波的射线就会向上弯曲(俗称声音起飞了);
15
浙江工业大学本科毕业设计论文
反之,当气温随高度增加而升高,声波的传播速度就会随高度增加而增加,声波射线呈向下弯曲状,给人的听觉就是‘声音在下沉’。
在相同的间隔测量距离,由于波的传播时间是相同的,但不同温度下到声速不同,所以最终造成测量出来的距离不相等,即如果不是在标准温度下进行测量,将存在系统误差。在超声波测距系统中,影响测量精度的因素很多,包括现场环境干扰、时基脉冲频率等;但环境温度对声速的影响最大,从超声波声速经验公式v331.40.61T可以看出,在0-40℃时,声速变化范围为331.4m/s~354.85m/s。以超声波在20℃的室温条件下的声速343.32m/s为基准,其变化率为6.83%。所以温度的影响不能忽略不计。所以在基于单片机 AT89C52 的超声波测距系统中,必须要对温度进行测量和补偿,以避免温度对测量精度的影响。 4.4.2 系统误差补偿
本系统选用DS18B20温度传感器作为误差补偿装置。采用到声速不是标准室温下到344m/s,而是通过温度传感器测得外界到温度,再根据公式(2)换算出此温度下的声速,这样可以有效到控制系统误差。不同温度下超声波在空气中传播速度随温度变化的关系如下。
v331.40.61T (4-2) 式中,T为实际温度(℃),v为当前环境下声速,单位为m/s。
16
浙江工业大学本科毕业设计论文
第5章 系统设计
5.1 系统框图
超声波 发射电路 超声波 接收电路 单片机 控制器 温度 检测电路 LCD 显示电路
图5-1 系统整体框架
由单片机发出40kHz的方波信号进入超声波发射电路,经LM386功率放大芯片放大后进入超声波发射头。超声波发射头发射的超声波在空气中传播一段时间后经前方被检测物体反射回来,由超声波接收头接收,超声波电路中的20106接收芯片对信号放大整形,超声波接收电路接收回波后发出一个下拉电平使单片机进入中断程序,在中断程序中,单片机从温度检测电路读取数值并换算成当前温度下的声速,应用时差法计算所检测的距离,最后所有的数据都在LCD显示电路上显示。
5.2 硬件
5.2.1 发射电路
17
浙江工业大学本科毕业设计论文
图5-2 超声波发射电路
由于从单片里发出的40KHz脉冲信号的功率较低,不能直接驱动发射换能器,因而需要一个放大电路将脉冲信号放大后再送至发射换能器,驱动其发出与驱动信号同频率的超声波,所以发射电路的主要功能就是放大,发射电路如图5-2所示。为增大超声波的发射频率,本设计利用了单运放LM386,LM386是专为低损耗电源所设计的功率放大器集成电路。它的内建增益为20,透过pin 1和pin8脚位间电容的搭配,增益最高可达200。LM386可使用电池为供应电源,输入电压范围可由4V~12V,无作动时仅消耗4mA电流,且失真小。发射距离可达3m。利用LM386的驱动放大功能将单片机产生的40kHz方波放大输出。驱动压电式超声波发射头发射超声波。 5.2.2 接收电路
接收电路中的CX20106A芯片是一款红外线检波接收的专用芯片,常用于电视机红外遥控接收器。
考虑到红外遥控常用的载波频率38kHz 与测距超声波频率40kHz 较为接近,可以利用它作为超声波检测电路,超声波接收头将机械能转换为电信号。但这个
18
浙江工业大学本科毕业设计论文
电信号非常微弱,必须经过放大,CX20106A芯片完成放大调制的功能。如图3所示。
图5-3 超声波接收电路
实验证明,CX20106A芯片具有很高的灵敏度和较强的抗干扰能力。内部电路由前置放大器、自动偏置电平控制电路、限幅放大器、带通滤波器、峰值检波器和整形输出电路组成。接收的回波信号先经过前置放大器和限幅放大器,将信号调整到合适的幅值;再经过带通滤波器滤波得到有用信号,滤除干扰信号;最后由峰值检波器和整形电路输出到锁相环路,实现准确的计时。
1脚是接收信号输入端。2脚是调节接收信号灵敏度,电阻越小,灵敏度越高。电容越大,灵敏度越高。电容一般取1μF,电阻50~300 Ω的,在干扰较大的场合增加电阻阻值可将灵敏度调低,干扰小的场合减小阻值将灵敏度调高。5脚主要用来调节中心频率,这里取200 kΩ,7脚接上拉电阻,这里取1 kΩ左右。
US_R1 为超声波接收头,当收到超声波时产生一个下降沿,接到单片机的外部中断INT0 上。当超声波接收头接收到40kHz 方波信号时,将会将此信号通过CX20106A 驱动放大送入单片机的外部中断0 口。单片机在得到外部中断0 的中断请求后,会转入外部中断0 的中断服务程序进行处理。
19
浙江工业大学本科毕业设计论文
5.3 程序流程图
开始 Lcd初始化 发40kHz方波3个周期,开启计数器 发射信号进入中断 关闭计数器 计算超声波传播时间 读取温度值 换算当前温度下的声速 计算出距离值 通过lcd 显示 延时0.5s
图5-4 程序流程图
本设计程序采用模块化编程,包括主程序模块,超声波测距程序模块,显示模块,温度测量模块,外部中断模块。
超声波测距时工作过程如下: 1. 由单片机发出40KHz脉冲串。
2. 脉冲串通过超声波发射换能器发出超声波。 3. 单片机在发送脉冲时刻开始计时。
4. 超声波遇到障碍物后回波被超声波换能器接收。 5. 进入中断,关定时器。 6. 读取T0口计数值。
20
浙江工业大学本科毕业设计论文
7. 接收温度传感器的声速。 8. 数据计算。 9. 显示。
5.4 系统实物图
图5-5 系统实物图
图5-5中,左下方是1602液晶显示模块;左上方是89S52单片机;右上方是
超声波发射电路,主要芯片为386功率放大芯片;右下方为超声波接收电路,主要芯片为20106红外接收芯片。右方中部为温度传感器模块,测量周围环境温度,为整个系统提供系统误差补偿。
5.5 测试及数据分析
介于实际测量工作的局限性,最后在测量中选取了5cm、6cm、8cm、10cm、
21
浙江工业大学本科毕业设计论文
15cm、20cm、30cm、50cm、100cm、150cm和200cm 十一个距离进行测量,每个距离连续测量七次,得出测量数据(室温),如表5-5所示。从表中的数据可以看出,测量值和实际值之间都存在误差,但对于连续测量的准确性还是比较高的。
对所测的每组数据去掉一个最大值和最小值,再求其平均值,用来作为最终的测量数据,最后进行比较分析。这样处理数据也具有一定的科学性和合理性。从表中的数据来看,虽然对超声波进行了温度补偿,但在比较近的距离的测量中其相对误差也比较大,这与超声波发射接收头的本身性能有关,在本系统中无法避免。但从全部测量结果看,本设计的绝对误差都比较小,也比较稳定。测距误差主要来源于以下几个方面:
超声波发射与接收探头与被测点存在一定的角度,这个角度直接影响到测量距离的精确值。在本系统中只能靠目测及最简单的工具微调使超声波发射头和接收头的中轴线平行,故存在一定误差。
超声波回波声强与待测距离的远近有直接关系,所以实际测量时,不一定是第一个回波的过零点触发。故所选择测量的平面要尽可能与超声波发射头的中轴线垂直。
由于工具简陋,实际测量距离也有误差。影响测量误差的因素很多,还包括现场环境干扰、时基脉冲频率等等。介于设备限制,在本系统中设计了以下实验装置进行结果测量。实验装置如图6所示。
发射头 接收头 标尺 距离显示
图5-6 测试装置示意图
图5-6中,超声波发射头发射出超声波,在空气中传播一段距离后经由墙壁反射又超声波接收头接收经过单片机处理程序处理在显示电路上显示。整个系统
22
浙江工业大学本科毕业设计论文
在11个特定的距离都测量7次,共计77次测量。每组7个数据,去掉一个最大值和最小值,再求其平均值,用来作为最终的测量数据。
表5-5 测试数据表
(cm) 实际距离 (cm) 测得距离 5 5.24 误差(cm) 0.24 -0.11 -0.33 -0.06 -0.14 -0.09 0.11 0.40 0.94 2.72 3.82 误差比(%) 4.80 1.83 4.22 0.60 0.93 0.45 0.36 0.80 0.94 1.81 1.91
6 8 10 15 20 30 50 100 150 200 5.89 7.67 9.94 14.86 19.91 30.11 50.40 100.94 152.72 203.82 表5-5数据表明,在近距离测量(5~8cm)时,本设计的误差比较大,而在10~100cm距离之间的测量,本设计的精确度相当高,全部控制在1%以下,而在100cm以上距离的测量中,误差略有升高。最小的可测距离是由接收换能器对声波脉冲的直接接收能力将决定。
图5-7 测量结果曲线图
23
浙江工业大学本科毕业设计论文
图5-7更加直观的显示了测量的结果。虚线表示显示数据曲线,实线表示实际距离曲线。由图5-7可见,在10~100cm范围内测量线和实际线几乎完全重合,此时测量的精确度最有保证。所以本设计的可测距离为5~200cm,但是最佳测量距离为10~100cm。
24
浙江工业大学本科毕业设计论文
第6章 总结
超声波测距已广泛的应用于工业定位检测、移动机器人、汽车防碰撞和海洋捕捞作业等领域。随着信号处理技术和计算机技术的发展,超声波测距的应用范围越来越广,测量精度和响应速度也越来越高。这种测距方法不仅可以避免人为因素带来的影响,而且系统测量精度高,适用性强。
本设计完全完成了任务书里的所有要求,测量距离5~200cm,误差在5%以内,其中10~100距离范围内,误差甚至在1%以内。而且测量结果清晰稳定,响应时间短,0.5秒刷新一次数据,所以测量的实时性和连续性好。
介于测量的过程都是电子化,可实时显示测量结果,这类非接触的测量方法有着广泛的应用前景。本产品可在做细微改进后用于多个应用领域,比如移动机器人、汽车防碰撞等等。
25
浙江工业大学本科毕业设计论文
参考文献
[1] 纪良文,蒋静坪.机器人超声测距数据的采集与处理[J].《电子技术用》,2001.(4) . [2] 董峰,许水源.一种高精度超声波测距处理方法[J].厦门大学学报(自然科学
版),1998, 37(4). [3] 刘凤然.基于单片机的超声波测距系统[J].传感器世界,2000,(5). [4] 潘宗预,潘登.超声波测距精度的探讨[J].湖南大学学报,2002,(2).
[5] 来清民,高风昕.超声波测距在行走机器人感知系统中的应用[J].微计算机信息,2006, 22(2):206~208.
[6] 赵广涛, 程荫杭.基于超声波传感器的测距系统设计[J].微计算机信息,2006,22(1):129~130.
[7] 杨帮文.新型集成器件实用电路[M].北京.电子工业出版社, 2005 [8] 阎石.数字电子技术基础(第四版) [M].北京:高等教育出版社,1998 [9] 李群芳等.单片微型计算机与接口技术(第二版)[M].北京:电子工业出版社,2005
[10] 童诗白.模拟电子技术基础(第三版)[M].北京:高等教育出版社,1979 [11] 张珂,刘钢海.提高超声波测距精度方法的研究[J].现代电子技术,2007,15:139-141
[12] 宋敬国,李元宗,徐玉华.P IC单片机在超声波测距系统中的应用[J].机械工程与自动化,机械工程与自动化,2007,4:118-123
[13] 赵海鸣,王纪婵,刘军,史春雪.一种高精度超声波测距系统的改进[J].电子技术应用,2007,4:59-61
[14] 王松,郑正奇,邹晨祎.超声定位车辆路径监测系统的设计 [J].计算机测量与控制; 2006年10期
[15] 高飞燕.基于单片机的超声波测距系统的设计[J].信息技术; 2005年07期; 135-136
[16] 程铁栋,杨丽荣.CPLD和单片机的高精度超声测距系统[J].单片机与嵌入式系统应用; 2005年12期; 19-21
[17] 何永强,卜英勇,任凤跃,樊高妮.用于微地形探测的超声波测距系统[J].机械工程师; 2005年12期; 118-120
26
浙江工业大学本科毕业设计论文
[18] 时玮,孟军,刘波.温度修正的超声波测距控制设计[J].机械工程与自动化; 2005年06期; 86-88
[19] 牛余朋,成曙.基于单片机的超声波测距系统[J].兵工自动化; 2005年04期; 82-84
[20] 石峰.高精度低成本车用超声波传感器的研制[J].传感器世界; 2006年01期; 30-32
[21] 谭定忠,王启明,王叶兰,何干辉,乔锋华.机器人测距传感器的研究[J].机械与电子; 2005年12期; 53-55
[22] 李晓琳,于雪峰.用PIC16C711实现超声波汽车倒泊防撞报警器的设计[J].中国科技信息; 2005年22期; 67+82
[23] 苏炜,龚壁建,潘笑.超声波测距误差分析[J].传感器技术; 2004年06期; 10-13 [24] 沈俊霞,杨德.单片机在超声测距系统中的一种应用[J].电子科技; 2005年05期; 43-45
[25] 张健,李钢.超声波测距系统的研究与设计 [J].合肥工业大学学报(自然科学版); 2004年06期; 58-61
[26] 邢庆滨,赵春晖,蒋志高,冯子兰.基于89C51的超声波液面仪 [J].应用科技; 2001年02期; 16-17
[27] Ondrej Sajdl,Jaromir Zak,Radimir Vrba.Zigbee-Based Wireless Distance Measuring Sensor System[J],Personal Wireless Communications;
[28] Ke-Nung Huanga,Yu-Pei Huang.Multiple-frequency ultrasonic distance measurement using direct digital frequency synthesizers[J],Sensors and Actuators A: Physical;
27
浙江工业大学本科毕业设计论文
附录1部分程序
#include sbit RS = P2^0; //lcd控制总线接口 sbit RW = P2^1; sbit EN = P2^2; sbit P_OUT=P3^7; sbit SENT=P3^0; unsigned int times; //记录检测时间 long time; int index_t1_1; char c[32]=\"Distance :000.00cm\"; //8 121314 1819 272829 long distance; long templong; unsigned char tempchar;//显示处理时的零时变量 int t; void inter0_int(); void timer0_int(); //-------------------------------------------------------------显--------------------------------------- /////////////软件延时///////// void delay(unsigned int n) //n=150时计时20ms左右 { unsigned int cc; 示 28 浙江工业大学本科毕业设计论文 while(n-->0) { for(cc=10;cc>0;cc--); } } //////////////////////////////// ////////////读lcd状态指令////// void recom( ) { EN=0; RS=0; RW=1; EN=1; } //////////////////////////////// //////////测试是否忙/////////////// void busytest() { LCD8=0xff; RS=0; RW=1; EN=1; while((LCD8&0x80)==0x80) { 29 浙江工业大学本科毕业设计论文 EN=0; //这两句protues仿真必须加 EN=1; // }; EN=0; } ///////////////////////////////// ////////////写lcd指令不判断是否忙////// void wrcom(unsigned char n) { RS=0; RW=0; LCD8=n; EN=1; _nop_(); EN=0; } /////////////////////////////// //////////写lcd指令判断是否忙////// void wrcomn (unsigned char n) { busytest(); wrcom(n); } ///////////////////////////// ////////清屏////////////// 30 浙江工业大学本科毕业设计论文 void clrscr() { wrcomn(0x01); //清屏 } //////////////////////////// ///////////初始化lcd/////////// void initlcd() { delay(150); wrcom(0x38); delay(50); wrcom(0x38); delay(50); wrcom(0x38); wrcomn(0x38); wrcomn(0x08); //关显示 不显示光标 wrcomn(0x01); //清屏 wrcomn(0x06); //光标模式 wrcomn(0x0c); //开显示 } //////////////////////////// //////////设置光标位置///////// void setpos(unsigned char x,unsigned char y) { busytest(); x&=0x0f; 31 浙江工业大学本科毕业设计论文 y&=0x03; if(y==0x00) wrcomn(x|0x80); else if(y==0x01) wrcomn((x+0x40)|0x80); } ///////////////////////////////// ////////////写数据////////////// void wrightdata(unsigned char n) { busytest(); RS=1; RW=0; LCD8=n; EN=1; _nop_(); EN=0; } /////////////////////// ///////////写字符串数据//////// void wrightstrdata(unsigned char *s,unsigned int length) { int x,y; int YMAX,XMAX[2]; if(length>16) 32 浙江工业大学本科毕业设计论文 { YMAX=2; XMAX[0]=16; XMAX[1]=length-16; } else { YMAX=1; XMAX[0]=length; XMAX[1]=0; } for(y=0;y EN=0; tempchar=distance%10+48; templong=distance/10; 33 浙江工业大学本科毕业设计论文 } c[15]=tempchar; tempchar=templong%10+48; templong=templong/10; c[14]=tempchar; tempchar=templong%10+48; templong=templong/10; c[12]=tempchar; tempchar=templong%10+48; templong=templong/10; c[11]=tempchar; tempchar=templong%10+48; templong=templong/10; c[10]=tempchar; wrightstrdata(c,18); //*********************************lcd 显结************************************************************* 束 //-------------------------------------------------------------------------------------------------------- /////////////中断0///////////////////////// void inter0() interrupt 0 { TR0=0;//关定显定时器 EX0=0;//关外部中断0 times = 0; time = TL0 + TH0*256; distance = 170 * time/100 - 150; 34 浙江工业大学本科毕业设计论文 clrscr(); display(); TH0=0; TL0=0; TR0=1;//开定显定时器 EX0=1;//开外部中断0 } void inter0_int() { IT0=1; //中断0触发方式,1为负边沿触发,0为低度电平触发 EA=1; //中断允许 EX0=0; } //////////结速中断0/////////////////////////////////////// //-------------------------------------------// //------定时器0 中断程序与初始化程序------// //-------------------------------------------// void timer0_int() //50MM { TMOD=0x11; //gate|c/t|m1|m0|gate|c/t|m1|m0| //gate 0-内部启动 1-intx高电平启动 //c/t 0-定时器 1-计数器t0引脚计数 //m1m0 00-13 01-16 10-8重载 TH0=0; 35 浙江工业大学本科毕业设计论文 TL0=0; EA=1; ET0=0;// 定时器0中断充许 TR0=1;// 开启定时器0 } //----------结束定时器0-----------------------// void fangbo(){ int k ; for(k=0;k<100;k++ ){ t++; } P_OUT = 0; t++; t++; t++; P_OUT = 1; t++; t++; t++; P_OUT = 0; t++; t++; 36 浙江工业大学本科毕业设计论文 t++; P_OUT = 1; t++; t++; t++; P_OUT = 0; t++; t++; t++; P_OUT = 1; t++; t++; t++; P_OUT = 0; t++; t++; t++; P_OUT = 1; t++; t++; t++; } //----------结束定时器1-----------------------// 37 浙江工业大学本科毕业设计论文 ///////////主程序//////////// void main() { SENT = 0; initlcd(); clrscr(); wrightstrdata(\"Welcome !!\ inter0_int(); timer0_int(); times = 0; while(1){ times ++; fangbo(); TH0=0; TL0=0; EX0 = 1; delay(3750); if(times>30) { clrscr(); wrightstrdata(\"Objectives can not be detected!\ } } } ////////////////////////// 38 浙江工业大学本科毕业设计论文 致谢 从去年年末至今,在整个毕业设计到过程中,感谢指导老师和系里同学对我的帮助。从开始的毕业设计选题,资料的收集整理,到毕业设计的实施,再到最后的论文格式整理,你们都给了我很好的意见。毕业设计能够顺利完成和你们的帮助是分不开的。在此致以十分的感谢。 39 因篇幅问题不能全部显示,请点此查看更多更全内容