基于单片机的超声波测距系统的设计与实现毕业论文(设计)(编辑修改稿)内容摘要:

互模块的方案,主要在于显示方案的选择。 通常的显示方案可以考虑 LED数码管显示或者 LCD 液晶显示。 如果 本系统采用 LED数码管显示方案,则至少选用 3 片 7段数码管, 这样 电路相对复杂, 且仅仅能够显示距离信息,状态指示非常很局限。 如果采用LCD 液晶显示方案,则电路相对简化,并且系统的状态信息和测距数据都能很好的给出,但是软件设计部分会相对复杂。 考虑到测距系统应该有一个很好的交互指示功能,所以本系 5 统用了 16*2 字符型 1602ZFA液晶显示器 作为显示模块。 电源模块方案论证 对于电源模块的 方案,因为本系统的设计任务是一个携便式设备,故采用电池供电。 考虑使用时间和系统整体功耗问题,本系统选用电池为 9V干电池。 这里电源模块可供选择的方案有:串联型稳压电路或者开关型稳压电路。 开关型稳压电路的效率较高,且纹波较串联型较小,但是制作成本较高,并且电路结构比较复杂。 又因为本系统的其他基本均为数字 单元,对电源纹波要求较小,故本系统最终采用了串联型稳压电源方案,采用集成三端稳压芯片 LM2940。 3 硬件设计 单片机模块 单片机模块主要由 AT89C52 单片机及其外围时钟电路和复位电路 等 构成 ,具体电路 连接和分析在以下几节中论述。 单片机模块电路 本节给出单片机模块的整体电路图包括单片机模块的引脚连接、时钟电路和复位电路,如下图 31 所示。 其中单片机的 口和 US— 100超声波模块的触发引脚TX和接受引脚 RX, P0口和 P2口提供给液晶模块的数据传输和控制,且单片机的 EA引脚应接高电平,使用单片机的内部 ROM 作为单片机的程序存储器 [2]。 图 31 单片机模块电路 图 时钟电路 单片机的时钟电路 是为系统提供基本的时钟信号 [3], 51系列单片机的时钟电路 通常 分为两 种:外部震荡方式 电路 和内部震荡方式 电路。 本系统的单片机模块采用本部震荡方式 时钟电路 ,即在其引脚 XTAL1 和 引脚 XTAL2 外接石英晶体和微调电容,构成振荡器。 本 系统 6 采用时钟电路的 晶振为 ,电容为 30pF。 其连接图如 32 所示。 图 32 时钟电路 复位电路 当晶体振荡电路工作后,在单片机的 RESET 输入端出现两个机器周期 [4]以上的高电平,单片机会被初始化复位,复位后 各特殊功能寄存器将恢复初始状态。 51 单片机 通常采用上电复位和手动复位的方法,这里同时采用了这两种方式,当接通电 源时会产生一次复位,当正在工作时,若需要复位可以按复位键进行复位,即手动复位。 该电路电阻为 10K,电容为10uF,其电路连接 如图 33 所示。 图 33 复位电路 超声波 模块 本节主要论述 US100 超声波测距模块在本系统中的连接方法。 US100超声波测距方法 本系统采用 US100 的电平触发测距,其在电平触发下的工作时序图 34 所示,根据时序图只需在 Trig/TX 管脚输入一个 10US 以上的高电平,系统便可发出 8 个 40KHZ 的超声波脉冲,然后检测回波信号。 当检测到回波信号后 ,模块还要进行温度值的测量,然后根据当前温度对测距结果进行校正,将校正后的结果通过 Echo/RX 管脚输出。 在此模式下,模块将距离值转化为 340m/s 时的时间值的 2 倍,通过 Echo 端输出一高电平,可根据此高电平的持续时间来计算距离值。 即距离值为: (高电平时间 *340m/s)/2。 在这里 因为距离值已经经过温校正,此时无需再根据环境温度对超声波声速进行校正,即不管温度多少,声速选择 340m/s 即可。 7 图 34 US100 在电平触发下的工作时序图 US100模块 电路 在本系统中 US100超声波模块的连接如下图 35所示 ,其 Trig/TX 管脚连接单片机的 口,由单片机输出一个 10us的高电平; Echo/RX 管脚连接单片机的 ,单片机检测 口的电平变化,其具体检测方法在第 四 章软件设计分析部分给出。 图 35 US100 模块 电路图 人机交互模块 本系统的人机交互模块分为液晶显示器和按键开关两个部分,下面几节将分别分析这两个部分。 液晶显示器 本系统采用的液晶显示器型号为 1062ZFR,它是一个 16*2字 符型液晶显示器 [5], 专门用于显示字母、数字、符号等的点阵型液晶显示模块。 LCD 1062ZFR的引脚 如下: D0— D7八个数据端口, VSS负电源端口, VDD正电源端口, VO对比度调节端口, RS状态控制端, RW读写控制端, E使能端, A和 K灰度参考端口。 显示器硬件 电路 液晶显示器 LCD 1062ZFR在电路中的连接如图 36所示, 将其八个数据端 D0D7分别连接单片机的 ; RS连接 ; RW连接 ; E连接 ; A端口给电平接 GND; 8 K端口给高电平接 VCC; VL端口接一个 10K的滑动 变阻器,用来调节液晶显示器的对比度;VDD端口接系统电源 VCC,而负电源端口 VSS接地即可。 图 36 液晶显示模块 电路 图 按键与开关 为了使得本测距系统有更好的操作性、观测性,本系统设计了一个测量暂停按键 K1,此按键的具体作用如下:当短按按键 K1时,超声波测距系统停止发生超声波,显示器保留前一时刻的测量数据,以测量者方便观察和记录数据;当长按按键 K1时,返回正常测距状态,可以重新开始测量距离。 其硬件连接如下图 37所示,即按键 K1接在单片机。 图 37 按键连接图 电源 模块 本系统中的电源模功能是为系统的其他模块提供稳定的 5V工作电压,其实现方法是采用一个 5V 的集成稳压芯片 LM2940, 用 9V 的干电池作为其输入,则可以从 LM2940 的输出端得到 5V 的稳定电压。 为了使得电源模块提供的 5V 直流工作电压文波更少、稳定性更好,在输入输出端口分别并接滤波电容和电解电容,并且在输出端口并接上一个 LED 系统 9 电源指示灯,以方便指示本系统的电源模块是否正常工作,其电路连接如图 38 所示。 图 38 电源模块 电路 图 4 软件设计 软件设计概述 本系统软件全部采用 c语言编写 ,开发环境为 Keil C。 软件组织 [6]分为两个部分, 分别是 和 ,前者是系统程序主函数和超声波驱动程序所在的 c文件,后者是系统采用的字符液晶器 1602ZFR的驱动程序。 软件组织图如下图 31所示。 关于软件设计思路,算法,各个驱动程序将在后面几节中给出论述 ,完整程序代码在附录二给出。 图 41 软件组织图 软件设计思路和流程图 单片机在上电复位后,首先进行各个模块的初始化、各个变量的初始赋值,进入循环测距 和 显示部分。 在循环部分中,把完成一次测量和一次显示刷 新作为系统的一个工作周期。 在这个工作周期中,首先完成的是超声波测距,即向超声波模块给出触发信号,然后检测模传回来的测距信号,打开计时器 T0, 得到相关数据,然后计算出测量距离,最后再刷新液晶模块显示出测量距离。 此外系统具有 两个中断程序,一个是利用定时器 T0中断,防止测量超出距离而导致 T0溢出。 另一个应用外部中断 INT0来实现 测量暂停功能,对应外部中断 0引脚 K1,当按键短按时,进入外部中断 0的中断程序,在中断程序中显示前 10 一时刻的测距数据,并再次检测按键 K1;当发现 K1长按时,则从中断程序中返回 之前的工作循环。 软件流程图如下图 42所示。 图 42 软件流程图 ( b) T0 中断程序 ( a) 主程序 否 否 否 否 是 是 是 是 口 10us 触发电平 系统初始化 100us 延时 TH0、 TL0 清 0 打开 T0 定时器,允许中断 =0 =1 =0 关闭 T0 定时器,关闭中断 读 TH0、 TL0,计算距离 刷新液晶,显示距离数据 开始 清空 TF0 设置测距错误键值 =1 ( c) INT0中断程序 返回主程序 禁止总中断 刷新液晶屏 显示最后测量的数据 按下 是 返回主程序 清空 IE0 11 超声波模块驱动程序 发射接收程序 本系统超声波测距传感器采用的是 US100超声波测距模块,并且利用其 电平 测量模式,其工作原理图在第二章图。 其模块的驱动程序是由发射程序和接收程序两部分,另外加上一个防溢出中断程序构成。 发射程序是 通过 给 单片机 的 (即与 US100的 TX引脚 相连接)大约 10us的高电平 ,程序中完成 10us的时间并 没有 采 用定时器,而是采用延时程序完成,程序中的函数名为delay_10us()。 经过示波器测量,此段延时的时间大约为。 然后给持续一段约 100us的低电平,这样便完成了发射程序,之后便可以进行 接收程序。 接收程序是用单片机检测 (即与 US100的 RX引脚相连接)的电平变化。 根据US100工作原理图可知,首先保证 ,即此时 US100还没有接收到超声波信号,当 ,打开 T0定时器,进行时间间隔记时,此时 TH0和TL0初值都为 0。 再等待 ,此时表示 超声波信号接收完毕,关闭定时器 T0,。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。