已阅读5页,还剩37页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
存档日期 存档日期 存档编号 存档编号 本科生毕业设计 论文 本科生毕业设计 论文 论论 文文 题题 目 目 基于单片机的超声波测距仪 姓姓 名 名 学学 号 号 系系 别 别 机电工程系 班班 级 级 机制 专专 业业 机械设计制造及其自动化 指指 导导 教教 师 师 江苏师范大学科文学院教务处印制江苏师范大学科文学院教务处印制 江苏师范大学科文学院毕业设计 论文 任务书 专业 机械设计制造及其自动化 班级 12 机制 Z 姓名 1 设计题目 基于单片机的超声波测距仪 2 设计任务要求及主要原始资料 1 设计制作超声波测距仪模型 2 编写调试程序 3 完成实物及程序的调试并使其正确的运行 4 编写毕业设计说明书 5 修改毕业设计说明书 6 准备答辩 三 设计时间 2014 年 3 月 14 日 至 2014 年 6 月 3 日 指导教师 签名 教学院长 签名 摘 要 随着科技的发展 自动化程度的提高以及电子产品的普及 电子测距产品也走 进了人们的视野 相对于普通的测量工具 它具有数字式显示 测距精准以及可智 能化控制等优点 本系统是利用 STC89C52 单片机和超声波测距模块进行设计制作的智能化测距仪 主要实现距离的检测 数字式显示 以及超限报警等功能 基于单片机的超声波测 距仪是以单片机为控制核心 通过超声波测距模块对被测物体发射超声波 利用超 声波在空气中的传播速度和发射到接收到超声波所用时间计算得到距离 测距原理 简单 容易实现 并且在生产生活中可以得到广泛使用和推广 具有实际性意义 关键词 单片机 STC89C52 超声波传感器 基于单片机的超声波测距仪 I Ultrasonic ranging Abstract With the development of science and technology the improvement of automation and the popularity of electronic products electronic product range also went into people s horizons Compared with the common measuring tool it has a digital display ranging precision and intelligent control etc This system is using STC89C52 MCU and ultrasonic ranging module to design the intelligent range finder mainly realize the distance detection digital display and transfinite alarm and other functions Based on single chip ultrasonic range finder based on single chip microcomputer as control core the object to be measured by the ultrasonic ranging module of launch ultrasonic wave using the ultrasonic velocity in air and launch time to calculate the distance used to receive the ultrasonic Ranging principle is simple easy to implement and can be widely used in production and life and the promotion has practical significance Key words microcontroller STC89C52 ultrasonic sensors ultrasonic range finder based on singlechip 目目 录录 摘 要 I Ultrasonic ranging II 第一章 绪论 1 1 1 需求分析 1 1 2 可行性分析 2 第二章 单片机的概述 3 2 1 单片机的含义及组成 3 2 2 单片机的发展 4 2 3 单片机的特点 4 2 4 单片机的应用 5 第三章 基于单片机的超声波测距仪总体设计方案 6 3 1 超声波测距仪的系统设计 6 3 2 主控制器 6 3 3 显示电路 7 3 4 超声波测距模块 8 3 4 1 HC SR04 超声波测距模块的特性 8 3 4 2 HC SR04 超声波测距模块的引脚 8 3 4 3 HC SR04 超声波测距模块的工作原理 9 3 4 4 超声波时序图 10 3 4 5 HC SR04 超声波测距模块的电路设计 10 第四章 基于单片机的超声波测距仪的硬件设计 12 4 1 电源指示灯电路 12 4 2 单片机主板电路 12 4 2 1 时钟电路 12 4 2 2 复位电路 13 4 3 数码管显示电路 13 4 4 距离测量电路 14 4 5 蜂鸣器电路 15 4 6 系统原理电路 16 第五章 基于单片机的超声波测距仪的软件设计 17 5 1 主程序 17 5 2 距离测量子程序 18 5 3 距离显示子程序 21 5 4 超限距离调节子程序 22 5 5 超限报警子程序 25 总结 27 致谢 27 展望 27 附录 A 28 附录 B 29 参考文献 36 江苏师范大学本科生毕业设计 基于单片机的超声波测距仪设计 0 第一章第一章 绪论绪论 本文主要讲解的是基于单片机的超声波测距仪 它是以 STC89C52 为核心 以 超声波测距模块为距离传感器的测距产品 其应用范围广泛 融入到各行各业 1 1 需求分析 超声波测距仪广泛被用在建筑 工业生产 日常生活 军事 灾难搜救 水文 液位测量 现场的位置监控 车辆倒车避障 移动机器人探测定位等领域 是智能 化产业中的杰出产品 传统的测距仪器是普通的尺子 虽然它的价格十分便宜 但 它的局限性很多 使用不方便 并且很多地方无法测量 超声波测距仪是以单片机为核心 以超声波测距模块为基础 具有使用方便 操作简单 局限性少 精度高 测量范围大 并且可以数字显示出测量距离等特点 给人们的生产生活 以及灾难搜救 军事等带来了巨大的方便 需求报告 名称 超声波测距仪 功能 测量并显示距离 也可以作为距离控制器 距离报警器 性能 3mm 距离偏差 输入 一个是设定键 一个加键 一个减键 用来调节报警距离 输出 距离显示 超限报警 基于单片机的超声波测距仪的未来 21 世纪 单片机已经普遍应用与生产生活各个方面 超声波测距仪作为其中产 品已经受到广大社会的认可和欢迎 超声波测距仪是一种非接触式测距仪 避免了很多测量上的局限 而且受到外 界影响很小 在粉尘污染 潮湿 高温 有腐蚀气体等恶劣的环境中也可以正常使 用 同时其系统具有高稳定性 高可靠性 以及使用寿命长等优点 在科技前沿 不少研究人员利用超声波测距自动化控制使机器人避障行走 这 在灾害救援上起着重要的作用 在汽车倒车距离报警上的作用也是举足轻重的 基于单片机的超声波测距仪作为自动化控制的产品跟的上科技的步伐 走的进 人们的生产生活 称得上是科技发展的必需品 并且可以不断完善 不断的突破 江苏师范大学本科生毕业设计 基于单片机的超声波测距仪设计 1 可以应用于更广 更前卫的事业中去 1 2 可行性分析 可行性分析包括元器件的使用和购买是否方便 产品的开发是否存在技术难题 和市场需求等 1 基于单片机的超声波测距仪 由 STC89C52 单片机 超声波测距模块 LED 数码管等部件组成 元器件价格便宜且通用性强 STC89C52 是 MCS 51 系列 中的一种较为普遍的一款单片机 它具备了 51 单片机的优点 又在性能上做了完善 和提高 超声波测距模块也已经模块化 标准化 使用起来非常方便 LED 数码管 以及其它附件市场上供货畅通 2 软件使用 C 语言编写 本设计采用为单片机专门开发了 Keil C 软件进行 编程 程序书写方便便 可行性强 研究不存在技术难题 3 较大市场需求量 效益方面相当可观 超声波测距仪除了测量距离以外 还可以应用于各种距离控制电路和限距报警电路 应用前景广阔 4 基于单片机的超声波测距仪的特点 1 价格低廉 灵动性好 2 使用 操作简单 可以数字显示 3 自动化控制方便 4 完善很多测量的局限性 5 体积小 重量轻 能耗低 6 可塑性好 可以作为很多大型产品的附件 江苏师范大学本科生毕业设计 基于单片机的超声波测距仪设计 2 第二章第二章 单片机的概述单片机的概述 单片机是单片微型计算机的简称 它是将中央处理器 存储器 定时器 计数器 中断系统 输入 输出端口等工作部件集成在一块集成电路芯片上的微型计算机 单 片机 单片机在是一种智能化控制器 现代人类生活中处处都能看到单片机的产 品 智能控制 MP3 交通灯 计算器 家用电器 电脑以及手机等都含有单片机 它具有质量轻 使用灵活 体积小 可靠性高 价格便宜等特点 它起初应用在工 业控制领域 现代机电类专业人员必须熟练掌握单片机知识 灵活运用单片机技术 2 1 单片机的含义及组成 单片机是一个集成化的计算机 是一个小型的控制设备 通常我们把中央处理 器 CPU Central Processing Unit ROM RAM 定时器 计数器等计算机的主要部 件集成在一块电路芯片上 这就形成了单片机 如图 2 1 所示 图 2 1 单片机逻辑结构 从图 1 1 中可以看出 整个单片机的核心部件是中央处理器 CPU Central Processing Unit 它通过总线和其它部件连接并进行数据交换 时钟电路给它提供 系统工作的时间 以使各个部件统一协调工作 它内部的工作部件有运算器和控制 器两大部分 主要功能是完成算数和逻辑的运算与控制 存储器是单片机系统中具有记忆功能的电子部件 它是由数据存储器和程序存 储器组成 数据存储器主要用于储存程序运行期间所用到的数据信息 程序存储器 江苏师范大学本科生毕业设计 基于单片机的超声波测距仪设计 3 主要用于保存常数 应用程序和表格 同时还可以用于保存程序执行时用到的数据 单片机内部的程序寄存器可以扩展的地址空间为 64KB 因为内部程序不需要改动 要求稳定性 可靠性要高 通常选用只读存储器作为单片机内部的程序寄存器的扩 充 定时器 计数器是单片机中重要的部件 主要用于实现定时 计数 并通过定时或 计数结果对所要操作的对象进行控制 串行端口的主要作用是实现了单片机与外设进行数据的交换 时钟电路主要用于产生单片机工作所需要的时钟信号 它由两个部分组成 分 别是振荡器 ALE 信号和时钟发生器 中断控制系统是单片机为了满足各种实时控制需要而设置的 是重要的输入输 出方式 比如定时器 计数器的溢出 外部接收到中断信号 单片机内部一些突发的 事件以及单片机掉电 故障等单片机中断系统进入中断进行处理 在 51 单片机中设 有 5 个中断源 我们可以通过对 TCON SCON IE 和 IP 的编程实现对中断的控制 管理 系统总线 BUS 是计算机各个工作部件之间传送信息的公共通道 2 2 单片机的发展 1970 年微处理器研制成功后 随后出现了单片机 早期的单片机都是 4 位或 8 位的 4 位单片机广泛应用于生活用品中 比如智能控制电子玩具 家用电器 计 算器等领域 8 位单片机功能性强 价格适中 软硬件资源丰富 被广泛应用在仪 器仪表 工业控制 智能接口等领域 如今在生活中也随处可以看到 51 单片机系列 的身影 20 世纪 80 年代以后 技术水平大力提升 集成电路的集成度有了很大提 高 16 位单片机开始问世 在当时高速复杂的控制系统中 通常使用的都是 16 位 单片机 但因为价位过高没有得到很广泛的应用 90 年代后由于 IT 技术发展的推 动 单片机技术得到了巨大提高 ARM 处理器进入主流市场 并且得到广泛应用 32 位单片机迅速取代 16 位单片机受到了人们的亲赖 如今大家所使用的智能手机 很多都是使用的 ARM 单片机 江苏师范大学本科生毕业设计 基于单片机的超声波测距仪设计 4 2 3 单片机的特点 1 系统内部结构简单 实现模块化 2 体积小 成本低 环境适应能力强 3 抗干扰能力强 4 控制能力强 速度快 5 低功耗 低电压 6 外部扩展能力强 7 具有高的可靠性 8 生产产品易于携带 2 4 单片机的应用 单片机应用在我们生产生活中的各个领域 主要应用的领域有 1 仪器仪表 2 商业营销领域 3 家用电器领域 4 办公自动化领域 5 航空航天领域 6 网络和通信领域 7 专用设备的智能化管理及过程控制 江苏师范大学本科生毕业设计 基于单片机的超声波测距仪设计 5 第三章第三章 基于单片机的超声波测距仪总体设计方案基于单片机的超声波测距仪总体设计方案 3 1 超声波测距仪的系统设计 基于单片机的超声波测距仪用 STC89C52 的单片机 作为整个电路的控制主要 控制部件 超声波测距模块为测距传感器 LED 数码管显示 蜂鸣器报警 系统设 计图框图如图 3 1 所示 图 3 1 系统设计方框图 工作过程 通过超声波测距模块获得的从基点到被测物体的距离 并将其传给 STC89C52 单片机进行处理 经过 SCT98C52 处理后 再把距离传给 LED 数码管显 示 并根据距离设定值控制距离 必要时还可以控制蜂鸣器报警 3 2 主控制器 STC89C52 单片机片内含有 8KB 的可编程 Flash 存储器 是一种 8 位控制器 它具有读写速度快 低功耗的优点 并且可直接使用串口下载 下载速度一般在几 秒到几十秒之间 STC89C52 采用的是经典的 MCS 51 内核 在原有的基础上增加 改进了很多 51 单片机不具备的功能 同时该芯片性价比高 故本设计选用的主控制 器是 STC89C52 单片机 STC89C52 的引脚如图 3 2 所示 江苏师范大学本科生毕业设计 基于单片机的超声波测距仪设计 6 图3 2 STC89C52的引脚图 3 3 显示电路 LED 数码管是由 8 个发光二极管组成的 数码管可以分为共阴极和共阳极两种 共阳极数码管的公共端口接在高电平上 一般情况下需要通过开关三极管接在 5V 电源上 当接通电源时数码管被点亮 共阴极数码管的公共端口接地方能点亮数码 管 同时因为数码管的字段是由发光二极管组成 所以在数码管的段选端接上限流 电阻 LED 数码管性价比高 使用方便 是应用非常广泛的显示器 本设计采用 4 位 共阳极 LED 数码管 从并口输出段码 LED 显示原理图如图 3 3 所示 江苏师范大学本科生毕业设计 基于单片机的超声波测距仪设计 7 图 3 3 LED 数码管原理图 3 4 超声波测距模块 市场上超声波测距模块有很多不同的种类 本系统采用 HC SR04 超声波测距模 块 此模块由超声波发射器 超声波接收器以及超声波控制电路三部分组成 模块 的非接触式距离测量范围为 10mm 3000mm 测量的精度可达高到 3mm 超声波 模块实物如图 3 4 图 3 4 超声波模块实物图 3 4 1 HC SR04 超声波测距模块的特性 1 工作电流 2mA 以下 2 工作电压 4 5V 5 5V 但绝对不允许超过 5 5V 以免烧坏元器件 3 测量距离范围 测量最小距离为 4mm 最大距离为 3000mm 误差 4 数据连续输出 不需要任何设置 4 功耗电流 功耗电流的范围是 1mA 20mA 5 高精度 精度可达 3mm 6 工作温度 0 100 7 存放温度 40 120 8 外形尺寸 45 20 15mm 3 4 2 HC SR04 超声波测距模块的引脚 HC SR04 超声波测距模块有 4 个引脚 如图 3 5 所示 江苏师范大学本科生毕业设计 基于单片机的超声波测距仪设计 8 图3 5 HC SR04超声波测距模块的引脚 如图 3 5 所示 其中端口 Vcc 提供 5V 电压 GND 为地线 TRIG 是触发控制 信号输入端 ECHO 是回响信号输出端 3 4 3 HC SR04 超声波测距模块的工作原理 单片机首先发出触发信号触发超声波测距模块工作 触发后 模块内部发出 8 个 40kHz 的脉冲并且检测是否接收到回波 如果接收到回波发射器立即向指定方向 发射超声波信号 当信号发出时开始计时 碰到被测物体后就立即返回来 接收头 接收到信号后产生毫伏级的微弱电压信号 电压信号传到单片机中定时器立刻停止 计时 根据计时器记录的时间 t 和超声波在空气中的传播速度 超声波在空气中的 传播速度为 340m s 由此就可以计算出发射点距被测物体的距离 S 即 S 340t 2 图 3 6 是相应的系统框图 图3 6 超声波测距原理图框 江苏师范大学本科生毕业设计 基于单片机的超声波测距仪设计 9 3 4 4 超声波时序图 图 3 7 超声波时序图 如图 3 7 所示首先要由主控制器提供一个触发信号 信号是 10 s 以上的高电平 当超声波测距模块被触发后 在超声波模块内部就会由 4069 反相器整合处理主控制 器提供的 40kHz 的脉冲信号 接着循环发出 8 个这样的高电平周期信号发出并检测 回波 只要检测到有回波信号 就会输出回响信号 同时触发主控制器计时并将回 响信号置 1 输出回响信号持续高电平的时间与基点到被测物之间的距离成正比 由此通过输出回响信号的脉冲宽度 计算出被测量的距离 3 4 5 HC SR04 超声波测距模块的电路设计 1 超声波的发射和处理 由主控制器产生 40kHz 的脉冲 利用 4069 反相器对 40kHz 频率信号进行调整 使超声波传感器产生谐振 以供超声波模块使用 发射电路图如图 3 8 所示 图3 8 超声波发射电路图 2 超声波的接收与处理 HC SR04 超声波测距模块的接收头采用 UCM40R 与发射头配对 接收头接 江苏师范大学本科生毕业设计 基于单片机的超声波测距仪设计 10 收到超声波信号之后 通过内部电路 将脉冲信号转变为电压信号 因为获得的电 压信号很微弱 故需要经放大器放大 本模块采用带有差动输入的 LM324 放大器 它比常规运算放大器在各个方面优点都要显著 LM324 运算放大器将微弱的电压信 号进行放大 之后会转变为较强的电压信号 促使信号触发回响信号输出端由 1 变为 0 送至单片机处理 使得定时器停止计时 超声波接收电路图如图 3 9 所 示 图3 9 超声波接收电路图 江苏师范大学本科生毕业设计 基于单片机的超声波测距仪设计 11 第四章第四章 基于单片机的超声波测距仪的硬件设计基于单片机的超声波测距仪的硬件设计 超声波测距仪的硬件设计电路包括 电源指示电路 主板电路 数码管显示电 路 超声波测距电路 蜂鸣器报警电路等 4 1 电源指示灯电路 电路说明 电源开关按下 发光二极管点亮 表明电路处于通电状态 电源开 关复位 即电路断电 发光二极管熄灭 电路中为硅管发光二极管 它的正常工作 电流为 3mA 10mA 左右 正向压降约为 1 7V 电流过大会烧坏二极管 电流过小 二极管的亮度减弱 因此在电路中需要连接电阻 电阻阻值不易过大 电路中电阻 被称为限流电阻 因为发光二极管正向压降为 1 7V 根据欧姆定律 I U R 可以求出 电阻的范围为 330 1 1k 左右 本系统为了使二极管发光强度高 故选用 330 电阻 电源指示灯电路图如图 4 1 所示 图4 1 电源指示灯电路图 4 2 单片机主板电路 主板电路是单片机最基本的电路 又被称作最小系统 它的主要作用是为单片 机提供标准的时钟 以及使单片机初始化 主板电路包括 时钟电路 复位电路等 4 2 1 时钟电路 时钟电路为单片机提供时钟信号 使得单片机能够按照一定的时序进行稳定的 工作 它是由晶振和电容两部分组成 晶振的频率即时钟电路的频率 它决定着定 时器的溢出时间 电容则在电路中起滤波作用 时钟电路有两种震荡方式 内部震 荡电路和外部震荡电路 根据设计需要 采用内部方式 因为本设计用到了定时器 江苏师范大学本科生毕业设计 基于单片机的超声波测距仪设计 12 因为单片机输出的震荡脉冲为 12 分频 故为了减少计算量 故采用频率为 12MHz 的晶振 由于晶振频率为 12MHz 属于高频波 电容在电路中起到滤波作用 高频 选用小电容 低频选用大电容 故在本设计中电容选用 30pF 内部震荡电路如图 4 2 所示 图 4 2 内部震荡电路 4 2 2 复位电路 复位电路是一种用来使电路恢复到起始状态的电路设备 它是单片机的初始化 操作 它的操作原理与计算机类似 只是启动原理和手段有所不同 在单片机在开 机和系统出现问题时 可以使用复位键使其恢复到起始状态 要使单片机成功复位 需要在单片机的 30 引脚 ALE 提供高电平信号 高电平信号必须产生并保持 24 个晶 振周期 两个机器周期 以上 即在 30 引脚 ALE 上输入脉冲宽度超过 2 个机器周 期的正脉冲复位信号 复位方式一般有上电复位 按键手动复位两种方式 根据设 计需要 本系统采用上电复位方式 上电复位电路如图 4 3 所示 图 4 3 上电复位电路 4 3 数码管显示电路 电路功能 用来显示测量距离 极限距离的十位 个位以及设置状态标志等 江苏师范大学本科生毕业设计 基于单片机的超声波测距仪设计 13 电路说明 本系统显示电路采用 4 位一体共阳极数码管显示方式 P0 0 P0 3 口 控制数码管的位选信号 P2 口控制数码管的段选信号 工作原理 数码管实际上是由二极管组成的 一位数码管由 8 个二极管组成 故显示原理和二极管类似 当单片机 P0 0 P0 3 口为低电平时 位选端选通 点亮 相应的数码管位 当 P2 口为低电平时 根据段选码显示相应的数字 电路原理 显示电路由四个上拉电阻 一个 4 位一体共阳极数码 四个三极管 8 个限流电阻组成 由于 P0 口与其他端口不同 是开漏输出 故应接上拉电阻 本 系统选用 4 7K 上拉电阻 数码管是此电路的显示元件 三极管在电路中的作用是 开关作用 当 P0 口输出低电平时 三极管导通 为数码管提供高电平 限流电阻是 为了限制过大电流烧坏二极管 本电路选用 330 电阻 既能保证数码管亮度 又 不会损坏数码管 LED 数码管显示电路如图 4 4 所示 图 4 4 LED 数码管显示电路 4 4 距离测量电路 超声波测距仪设计采用 HC SR04 测距模块 超声波测距模块的触发信号口 Trig 和输出回响信号 Echo 口分别接在 P3 口的 P3 2 与 P3 3 电路功能 距离测量电路主要负责测量测量系统到被测物体的距离 并将信号 发送至单片机中进行信号的处理 电路工作原理 超声波测距模块通过发射端向被测物体发射出长约 6mm 频率 江苏师范大学本科生毕业设计 基于单片机的超声波测距仪设计 14 为 40kHz 的超声波信号 一旦发射超声波信号 立即触发单片机进行计时处理 定 时器 T0 开始计时 超声波在空气中传播 接触到被测物体信号返回 接收头实质上 是一种压电效应的换能器 它接收到信号后产生毫伏级的微弱电压信号 电压信号 传到单片机中使得定时器 T0 停止计时 由于超声波在空气中的传播速度为 340m s 根据发射和接收的时间差计算出发射点到被测物体的实际距离 S 即 S 340t 2 距离测量电路图如图 4 5 所示 图 4 5 距离测量电路图 4 5 蜂鸣器电路 蜂鸣器分为两种 一种是有源蜂鸣器 另一种是无源蜂鸣器 区别在于有源蜂 鸣器一般内部含有内部震荡器 无源蜂鸣器中不含内部震荡器 触发有源蜂鸣器发 声只需给它通入额定电压就可以了 而想要触发无源蜂鸣器发声 必须接在音频输 出电路中才能够发声 它的原理和电磁扬声器原理类似 本设计的报警系统选用的 发声元件是有源蜂鸣器 工作原理 当测量距离小于设定值时 蜂鸣器接通报警 当测量距离超过设定 值时 蜂鸣器关闭 报警停止 电路原理 本报警系统电路采用一个蜂鸣器 一个三极管 一个电阻实现报警 功能 因为蜂鸣器在工作时需要较大的工作电流 单片机引脚提供的电流无法直接 驱动蜂鸣器工作 所以必须要在电路中增加放大电路 一般采用三极管放大电流就 可以了 本系统采用 PNP 型三极管放大电流 蜂鸣器电路图如图 4 6 所示 江苏师范大学本科生毕业设计 基于单片机的超声波测距仪设计 15 图 4 6 蜂鸣器电路图 4 6 系统原理电路 系统原理电路显示了整个设计的电路原理 它包括了超声波测距模块的数据采 集电路 距离显示电路 控制电路和主板电路等 电路工作原理 系统原理电路综合和各个部分电路 并使其协调统一工作 完 成设计要求 接通电路电源 电源指示灯点亮 各个部分进入初始化状态 超声波 模块首先进行距离的测量 然后送往单片机中进行处理 经过单片机处理后送入显 示模块显示 并判断是否超限 如果超限 报警系统报警 按键模块负责调节超限 距离 在设置状态下 显示系统显示设置状态标志和超限值 系统原理电路图如图 4 7 所示 图 4 7 系统原理电路图 江苏师范大学本科生毕业设计 基于单片机的超声波测距仪设计 16 第五章第五章 基于单片机的超声波测距仪的软件设计基于单片机的超声波测距仪的软件设计 系统程序主要包括主程序 距离测量子程序 超限距离调节子程序 距离显示 子程序 超限报警子程序等 5 1 主程序 主程序主要的功能是负责距离的测量 距离的显示 超限距离的调节及超限报 警等子程序的协调统一运作 其流程图如图 5 1 所示 图 5 1 主程序流程图 参考程序如下 超声波测距主程序 void main P0 P1 P2 P3 0XFF P0 P1 P2 P3 口置高电平 juli cl 超声波测距离函数 江苏师范大学本科生毕业设计 基于单片机的超声波测距仪设计 17 led display 超声波测距处理距离显示函数 t0 init 定时器 0 定时器 1 初始化函数 xj d 20 设置限距值初始值 超声波测距主循环 while 1 if delay main 1 判断 delay main 是否为 1 为 1 时进入循环 每延时 300ms 扫描一次 delay main 0 delay main 清零 以便下次使用 baojing 报警函数 juli cl 测距离函数 led display 处理距离显示函数 keystroke 按键调节函数 5 2 距离测量子程序 距离测量子程序的主要功能是控制超声波测距模块的发射和接收 计算出从信 号发出到接收到信号所使用的时间 本系统采用定时器 0 作为超声波测距的计时器 它工作在工作方式 1 所以它的定时时间 T 为 CYCYTXTNT 65536 其中 X 是定时器装入的初值 是单片机的机器周期 CYT 因为本系统采用 12MHz 的晶振 故 1 s 又由于初值为 0 故每次溢出时CYT 时间 T 为 65536 s 单片机通过计算处理得出距离并保存于中间变量中以备调用 其程序流程图如图 5 2 所示 江苏师范大学本科生毕业设计 基于单片机的超声波测距仪设计 18 5 2 超声波测距程序流程图 参考程序如下 超声波测距程序 void juli cl cf xh 1 单片机 P3 2 发出持续 10 s 的高电平触发 delay 1 延时 110 x1 110 s cf xh 0 TH0 0 定时器 0 高八位清零 TL0 0 定时器 0 低八位清零 TR0 0 定时器 0 关闭 varible 0 while hx xh 判断是否接到回波信号 为零时等待 TR0 1 检测到回波信号后启动定时器 while hx xh 当 hx xh 接收到信号 P3 3 口置位 1 计数并等 待 江苏师范大学本科生毕业设计 基于单片机的超声波测距仪设计 19 t0 TH0 256 TL0 计算定时器所用的时间 if varible 1 t0 65000 判断超声波超测量的时间是否超出范围 如果超出则显示三个 8 TR0 0 定时器 0 关闭 csjl 2 判断是否能够进行距离计算的中间变量 csb juli 888 显示 3 个 888 varible 0 清零超声波中间变量 break 循环检测作用 else 当检测时间没有超出范围则进行距离的计算 csjl 1 判断是否能够进行距离计算的中间变量 if csjl 1 假如没有超过测距范围 则定时器停止计时 计算距离 TR0 0 关定时器 0 定时 csb juli TH0 读出定时器 0 高八位的时间 csb juli csb juli 256 TL0 读出定时器 0 低八位的时间并与高八位 时间相加求出时间总值 csb juli varible 65536 计算测距时用的时间 csb juli 0 017 因为超声波速度为 340m s 在这里 0 017 340 2 10 3 10 6 if csb juli 350 如果大于 3 5m 就超出超声波的量程就显示三个 8 csb juli 888 显示三个 8 江苏师范大学本科生毕业设计 基于单片机的超声波测距仪设计 20 5 3 距离显示子程序 距离显示函数主要是对测得计算出的距离进行显示 距离显示子程序包括距离 的处理 数码管处理 数码管显示和循环扫描四个过程 距离处理是将测得计算所 得到的距离通过进一步计算分配给每一位数码管所显示的段码值 并且控制数码管 显示位数 数码管处理是控制数码管位选 数码管显示则是综合距离处理和数码管 处理对数码管进行循环扫描显示 其流程图如图 5 3 所示 图 5 3 距离处理子程序 参考程序如下 超声波测距处理距离函数 void led display xs led 0 table du csb juli 10 数码管小数点前一位段码 xs led 1 table du csb juli 10 10 数码管小数点后弟一位段码 xs led 2 table du csb juli 100 10 数码管小数码后第二位段码 xs num 3 数码管显示位数 江苏师范大学本科生毕业设计 基于单片机的超声波测距仪设计 21 超声波测距处理数码管函数 void table we switch unschar i switch i case 0 table we1 0 table we2 1 table we3 1 table we4 1 break 显示第一位数码管 case 1 table we1 1 table we2 0 table we3 1 table we4 1 break 显示第二位数码管 case 2 table we1 1 table we2 1 table we3 0 table we4 1 break 显示第三位数码管 case 3 table we1 1 table we2 1 table we3 1 table we4 0 break 显示第四位数码管 超声波测距数码显示函数 void display static unschar s s if s xs num 控制显示位数 s 0 table we switch s 循环扫描显示 P2 xs led s 5 4 超限距离调节子程序 超限距离调节子程序主要是对报警值进行按键调节 通过按键调节报警值的增 江苏师范大学本科生毕业设计 基于单片机的超声波测距仪设计 22 减 报警值的取值范围在 1cm 350cm 之间 该程序还有对设置状态标识设置以及移 送显示函数显示的功能 其程序流程图如图 5 4 所示 图 5 4 超限距离调节子程序 参考程序如下 超声波测距超限距离按键调节函数 void keystroke if k1 0 判断设置键是否按下 delay 10 延时 if k1 0 再次检测设置键是否按下 delay 30 延时 k1num if k1num 2 点击两次退出设置状态 k1num 0 江苏师范大学本科生毕业设计 基于单片机的超声波测距仪设计 23 if k1num 0 是否进入设置状态 xs led 0 table du xj d 10 设置小数点前一位数码管 xs led 1 table du xj d 10 10 设置小数点后一位数码管 xs led 2 table du xj d 100 10 设置小数点后两位数码管 xs led 3 0 x88 设置状态标志符 xs num 4 四位数码管全部显示 if k1num 1 if k2 0 是否按下设置加键 delay 10 延时 if k2 0 再次检测是否按下设置加键 delay 30 延时 xj d 报警值加 1 if xj d 350 最大报警值不得超过 350 xj d 350 if k3 0 是否按下设置减键 delay 10 延时 if k3 0 再次检测是否按下设置减键 江苏师范大学本科生毕业设计 基于单片机的超声波测距仪设计 24 delay 30 延时 xj d 报警值减 1 if xj d 1 最小报警值不得小于 1 xj d 1 5 5 超限报警子程序 超限报警子程序主要功能是超限报警 当距离小于设定值的时候 蜂鸣器接通 报警 当距离大于设定值时 蜂鸣器停止报警 其流程图如图 5 5 所示 图 5 5 超限报警子程序流程图 参考程序如下 超声波测距报警程序 void baojing 江苏师范大学本科生毕业设计 基于单片机的超声波测距仪设计 25 if csb juli xj d 判断距离是否小于设定值 delay 5 延时 110 x5 550 s if csb juli xj d 消除实际距离在设定距离左右变化时的干扰 fmq fmq P3 4 端口取反 蜂鸣器断续报警 else 如果距离超过设定值 那么取消报警 fmq 1 P3 5 置位高电平 报警停止 江苏师范大学本科生毕业设计 基于单片机的超声波测距仪设计 26 总结总结 致谢 对于本次毕业设计 从课题的选定到设计的执行以及论文的书写 每一个阶段 都离不开分析 计算和思考 对于毕业设计这一严峻的任务 我必须尽心尽力去完 成 在单片机这一领域 我们课程中仅仅是大致了解 很多单片机的精髓内容并没 有涉及 出于爱好 我决定选择 基于单片机的超声波测距仪 这一课题 这对我 来说是一次挑战 的确 在执行设计的过程中遇到了诸多难题 由于知识缺乏 必 须通过自学来解决这些问题 因此在这个过程中学到了很多东西 在此我要感谢我的导师范晖老师 我们老师工作繁重 却依然兢兢业业的为我 们指导论文书写的格式 结构以及设计的优化 而且对我的论文做了深入的了解 帮助我认识并解决了设计过程中遇到的诸多问题 展望 由于时间和精力有限 本设计还有很多地方没有完善 比如在作距离测量装置 的时候可以在超声波探测头处添加一个激光装置 这样就可以明确看出测量的位置 在测量距离方面 超声波测距仪的测量距离太短 这一局限性问题和传感器本身有 关 所以可以采用激光测距传感器替换掉超声波测距传感器解决这一问题 通过学 习我已经可以利用传感器去设计产品了 只是现在时间有限 以及无法控制的外界 因素 所以只能再此提一下可行性的方法论 具体实施过程只能等到以后去实践 当然 在单片机这个领域 也还有大量的知识值得我去学习 在这次毕业设计 时 我已经对单片机提起了浓厚的兴趣 将来我会勤勤恳恳的丰富相关知识 努力 在这个领域立足 江苏师范大学本科生毕业设计 基于单片机的超声波测距仪设计 27 附录附录 A A 元件清单 元件名称描述符号脚注数量 10K 电阻R108051 10uF 电解电容C4 CAPPR1 27 1 7x2 8 1 12M 晶振X1CY1 D 指示灯D1LED RED1 四位共阳数码管DS1SMA1 USB 电源接口sip21 电源开关SW1sw 自锁1 U1 单片机STC89C52U1DIP40 11 蜂鸣器LS1FMQ1 9012 三极管放大三极管Q690121 30pF 电容电容C1 C208052 超声波测距模块超声波测距模块HC SR041 SW P 独立按键SwitchS1 S2 S3 S4KEYS4 9012 三极管开关三极管 Q1 Q2 Q3 Q490124 330 电阻 R2 R7 R15 080510 4 7K 电阻R3 R4 R5 R608054 江苏师范大学本科生毕业设计 基于单片机的超声波测距仪设计 28 附录附录 B B 基于单片机的超声波测距仪源程序 include STC89C52 的头文件 include define unschar unsigned char 宏定义 将 unsigned char 定义为 unschar define unsint unsigned int 宏定义 将 unsigned int 定义为 unsint 七段 LED 共阳极数码管 0 16 段选定义 unschar code table du 0 1 2 3 0 xc0 0 xf9 0 xa4 0 xb0 4 5 6 7 0 x99 0 x92 0 x82 0 xf8 8 9 A B 0 x80 0 x90 0 x88 0 x83 C D E F 0 xc6 0 xa1 0 x86 0 x8e 8 0 xff 七段 LED 共阳极数码管位选定义 unschar code table we 0 x70 0 xb0 0 xd0 0 xe0 七段 LED 共阳极数码管显示调用表格 unschar xs led 8 0 xc0 0 xf9 0 xa4 0 xb0 0 x99 0 x92 0 x82 0 xf8 数码管位选定义 sbit table we1 P0 3 sbit table we2 P0 2 sbit table we3 P0 1 sbit table we4 P0 0 数码管变量 unschar xs num 3 显示数码管的个位数 江苏师范大学本科生毕业设计 基于单片机的超声波测距仪设计 29 超声波测距模块 IO 口的定义 sbit cf xh P3 2 超声波发射 sbit hx xh P3 3 超声波接收 unschar varible 超声波中间变量 定义超声波变量 long csb juli 距离变量 unsint xj d 设置距离变量 bit csjl 超声波超超限标志 unsint t0 保存定时器 0 的时间的中间值 按键的 IO 变量的定义 sbit k1 P1 0 sbit k2 P1 1 sbit k3 P1 4 unschar k1num 蜂鸣器 IO 口的定义 sbit fmq P3 4 蜂鸣器 IO 口定义 接在 P3 4 口 bit delay main 主循环延时 声明函数 void delay unsint z 延时函数声明 void juli cl 超声波测距函数声明 void led display 处理距离函数声明 void table we switch unschar i 处理数码管函数声明 void display 数码显示函数声明 void keystroke 独立按键函数声明 void baojing 报警函数声明 void t0 init 定时器 0 初始化函数声明 超声波测距主程序 void main P0 P1 P2 P3 0XFF P0 P1 P2 P3 口置高电平 juli cl 超声波测距离函数 led display 超声波测距处理距离显示函数 t0 init 定时器 0 定时器 1 初始化函数 xj d 20 设置限距值初始值 超声波测距主循环 while 1 if delay main 1 判断 delay main 是否为 1 为 1 时进入循 江苏师范大学本科生毕业设计 基于单片机的超声波测距仪设计 30 环 每延时 300ms 扫描一次 baojing 报警函数 juli cl 测距离函数 led display 处理距离显示函数 keystroke 按键调节函数 delay main 0 delay main 清零 以便下次使用 delay 延时程序 void delay unsint z unsint i j 定义 i j 为无符号整型 for i z i 0 i for 循环 其延时时间为 j i 110 z s for j 110 j 0 j 超声波测距程序 void juli cl cf xh 1 单片机 P3 2 发出持续 10 s 的高电平触发 delay 1 延时 110 x1 110 s cf xh 0 TH0 0 定时器 0 高八位清零 TL0 0 定时器 0 低八位清零 TR0 0 定时器 0 关闭 varible 0 while hx xh 判断是否接到回波信号 为零时等待 TR0 1 检测到回波信号后启动定时器 while hx xh 当 hx xh 接收到信号 P3 3 口置位 1 计数 并等待 t0 TH0 256 TL0 计算定时器所用的时间 if varible 1 t0 65000 判断超声波超测量的时间是否超出范围 如果超出则显示三个 8 TR0 0 定时器 0 关闭 csjl 2 判断是否能够进行距离计算的中间变量 csb juli 888 显示 3 个 888 江苏师范大学本科生毕业设计 基于单片机的超声波测距仪设计 31 varible 0 清零超声波中间变量 break 循环检测作用 else 当检测时间没有超出范围则进行距离的计算 csjl 1 判断是否能够进行距离计算的中间变量 if csjl 1 假如没有超过测距范围 则定时器停止 计时 计算距离 TR0 0 关定时器 0 定时 csb juli TH0 读出定时器 0 高八位的时间 csb juli csb juli 256 TL0 读出定时器 0 低八位的时间并与高八位 时间相加求出时间总值 csb juli varible 65536 计算测距时用的时间 csb juli 0 017 因为超声波速度为 340m s 在这里 0 017 340 2 10 3 10 6 if csb juli 300 如果大于 3 5m 就超出超声波的量程就显 示三个 8 csb juli 888 显示三个 8 超声波测距处理距离函数 void led display xs led 0 table du csb juli 10 数码管小数点前一位段码 xs led 1 table du csb juli 10 10 数码管小数点后弟一位段码 xs led 2 table du csb juli 100 10 数码管小数码后第二位段码 xs num 3 数码管显示位数 超声波测距处理数码管函数 void table we switch unschar i switch i case 0 table we1 0 table we2 1 table we3 1 table we4 1 break
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 第一单元巩固练习卷(试卷)2026-2027学年二年级数学上册北师版(含答案)
- 2026 中考英语作文・益处 -成长- 收获 -感悟高分表达
- 正定县2027届数学六年级第一学期期末监测试题含解析
- 西藏那曲地区比如县2027届数学六年级第一学期期末监测试题含解析
- 2027届黑龙江省名山农场学校六年级数学第一学期期末达标检测试题含解析
- 2027届弓长岭区数学三上期末教学质量检测模拟试题含解析
- 云阳县文武学校一年级数学加减法练习题
- 2027届江苏省淮安市洪泽县外国语学校五校联考四上数学期末检测模拟试题含解析
- 云浮市云城区河口田心小学一年级数学加减法练习题
- 2026年麦芽糖产品创新研究分析报告
- 福建省百校2026届高三5月联考语文试卷(含答案)
- 安装工程项目成本管控字典
- 博帕尔案例分析
- 光纤光缆的行业分析报告
- 医院高值耗材管控制度及实施方案
- 连接器培训课件
- 矿山安全教育培训课直播课件
- 外贸采购 业务培训课件
- GB/T 14233.2-2025医用输液、输血、注射器具检验方法第2部分:生物学试验方法
- 2025年基本公共卫生服务项目(慢阻肺健康管理)培训试题(附答案)
- 路灯节能改造工程项目可行性研究报告
评论
0/150
提交评论