基于单片机的超声波测距系统的设计与实现毕业论文(设计)(编辑修改稿)内容摘要:
互模块的方案,主要在于显示方案的选择。 通常的显示方案可以考虑 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,。基于单片机的超声波测距系统的设计与实现毕业论文(设计)(编辑修改稿)
相关推荐
序,数秒即可完成一片 8. 具有 EEPROM 功能 9. 具有看门狗功能 10. 共 3个 16位定时器 /计数器。 即定时器 T0、 T T2 11. 外部中断 4 路,下降沿中断或低电平触发电路, Power Down 模式可由外部中断低电平触发中断方式唤醒 10 12. 通用异步串行口( UART),还可用定时器软件实现多个 UART 13. 工作温度范围: 40~ +85℃(工业级)
,通过检测输出端电压信号的强弱就可以检测出有无药液滴下。 把检测到的信号经过整形后送入单片机进行处理,就可以计算出输液的点滴速度 [3]。 综合考虑上述各种方案,方案三成本 低、电路易实现且不受外界光源干扰,故采用方案三。 剩余液体检测方案 方案一 :采用红外对管实现,跟点滴检测模块一样。 让红外发射和光电接收管分别放在滴管两侧,根据接收信号强弱不同
序,数秒即可完成一片 8. 具有 EEPROM 功能 9. 具有看门狗功能 10. 共 3个 16位定时器 /计数器。 即定时器 T0、 T T2 11. 外部中断 4 路,下降沿中断或低电平触发电路, Power Down 模式可由外部中断低电平触发中断方式唤醒 10 12. 通用异步串行口( UART),还可用定时器软件实现多个 UART 13. 工作温度范围: 40~ +85℃(工业级)
了 MCS51的原有功能,与其完全兼容,并同时增加了新的功能,比如看门狗定时器 WDT、 ISP、及SPI 串行接口技术等,其中, AT89C51 单片机的时钟频率高达 24MHZ, Flash 存储器允许在线电擦除、电写入或使用编程 器对其重复编程。 另外, AT89C51 单片机还支持软件选择的两种掉电工作方式,非常适用于电池供电或其他要求低功耗的场合。 AT89C51 单片机片内的 4KB
警系统,包括毫米雷 达、 CCD 摄像机、 GPS、和高档微机等。 超声波测距的原理 超声波发生器 为了研究和利用超声波,人们已经设计和制成了许多超声波发生器。 总体上讲,超声波发生器可以分为两大类:一类是用电气方式产生超声波,一类是用机械方式产生超声波。 电气方式包括电压型、磁致伸缩型和电动型等:机械方式有加尔统笛、液哨和气流旋笛等。 山西大学工程学院 5 他们所产生的超声波的频率
问外部存储器的期间, ALE 仍以 1/6 振荡频率是固定不变地输出,因此它可对个输出或用于定时目的。 需要注 意的问题是:每次访问外部存储器的时候会跃过一个 ALE 脉冲。 PROG 为第二功能,当对片内程序存储器编程写入时,此引脚作为编程脉冲输入端。 PSEN —— 第 29 脚,访问外部程序存储器选能信,低电平有效。 当 AT89C51由外部程序存储器取指令(或数据)时,每个机器周期两次