1、洛阳理工学院毕业设计(论文) I 基于 51 单片机 的 超声波测距仪 设计 摘 要 利用超声波进行测距有许多 优点 比如不受光 强 度、 色彩 和 电磁场 等 外界 因素的 影响, 而且超声波 传感器的 价位 较低 、结构 也较为简单 ,超声波 以声速传播,方 便 收发 与计算。 在 汽车倒车 雷达 、 移动 机器人的避障、 特别是 测量 距离 等许多方面都已有了非常普遍 的应用。 本次 毕业设计的 超声波测距仪 是 在 STC89C51 单片机 的基础上设计的,在分析和了解了超声波的一些优点和特性后,又查看了 利用 超声波测距的基本原理 。最后 决定 使用 51 单片机 系统和 超声波 传
2、感器共同 组成 。 设计的 超声波测距仪 的 硬件部分 主要包括 电 源及 复位 模块 、 单片机 与超声波模块组成的超声波发射模块 、超声波接收模块 、 LED 数码显示模块 和扩展 报警模块 。 软件 部分主要包括单片机主程序 、 根据超声波 发射与接 收计算 距离程序、 LED 距离 显示程序 、 按键控制程序 和蜂鸣器 报警程序 ,这样安排 使 得 系统具有模块化的特点 。系统 容易 进行 控制 ,具有 可靠地 的 性能 , 具有较高的测量 精度, 最重要的是能对距离进行实时测量。 关键词 : 单片机,测距仪, 超声波 ,实时 测量 洛阳理工学院毕业设计(论文) II Design o
3、f Ultrasonic Distance Meter Based on 51 MCM ABSTRACT Using ultrasonic ranging has many advantages for example, from the effects of light intensity, color and electromagnetic field and other external factors and price lower ultrasonic sensors, the structure is simple, ultrasonic sounds velocity, conv
4、enient transceiver and calculation. In the car reverse radar, mobile robot obstacle avoidance, especially measuring distance and many other aspects have been very common application. The graduation design of ultrasonic range finder based on STC89C51 MCU design, analysis and understanding of the some
5、 advantages and characteristics of ultrasonic and looked at the use of the basic principle of ultrasonic distance measurement. Finally, the composition of the 51 single-chip microcomputer system and ultrasonic sensor is decided. The design of ultrasonic rangefinder hardware part consists of the powe
6、r and reset module, SCM and ultrasonic module consists of ultrasonic emission module, ultrasonic receiving module, LED digital display expansion module and alarm module. Software part mainly includes MCU program, according to the ultrasonic transmitting and receiving computing program distance, the
7、distance of LED display program, key control procedures and buzzer alarm procedures, this arrangement enables the system to have the characteristics of modular. The system is easy to control and has the reliable performance, and has the higher accuracy, and the most important is the real-time measur
8、ement of the distance. KEY WORDS: Single chip microcomputer, Range finder, Ultrasonic, Real-time measurement 洛阳理工学院毕业设计(论文) III 目 录 摘 要 . I 目 录 .III 第 1 章 绪 论 . 1 1.1 研究背景 . 1 1.2 研究的主要意义 . 1 第 2 章 系统电路设计 . 3 2.1 系统结构设计 . 3 2.2 电路总体设计方案 . 3 2.2.1 发射与接收电路设计方案 . 3 2.2.2 显示电路设计方案 . 5 2.2.3 报警电路设计方案 . 6
9、 2.2.4 系统复位电路设计 . 6 第 3 章 系统硬件设计 . 9 3.1 单片机概述 . 9 3.1.1 STC89C51 主要性能 . 9 3.1.2 STC89C51 外部结构及特性 . 9 3.1.3 STC89C51 内部组成 . 11 3.2 超声波测距模块 .13 3.2.1 超声波传感器介绍 .13 3.2.2 HC-SR04 超声波测距芯片的性能特点 .13 3.2.3 超声波时序图 .15 3.3 驱 动显示电路及报警电路 .16 3.3.1 LED 数码管显示电路 .16 3.3.2 蜂鸣器报警电路 .17 3.4 HC-RS04 超声 波测距原理 .18 3.5
10、按键设置电路 .19 第 4 章 系统软件设计 .21 4.1 系统主程序 .21 洛阳理工学院毕业设计(论文) IV 4.2 显示距离子程序 .22 4.3 报警子程序 .22 4.4 按键子程序 .24 第 5 章 系统仿真 .25 5.1 系统仿真环境 Proteus.25 5.2 仿真 .25 5.3 误差及特性分析 .27 结 论 .28 谢 辞 .29 参考文献 .30 洛阳理工学院毕业设计(论文) 1 第 1 章 绪 论 1.1 研究背景 超声波 测距 法 是 通过超声 波 测量从 已知 位置到 被测物体 表面的距离 的利用超声波的方法 。 超声波 也是一种 机械波, 是 一种
11、频率在 20kHz 以上的声波。超声波测距是 人们 根据蝙蝠通过 超声波 反射 进行捕食的方法发现的,也是仿生学 中 非常出名的例子 , 对 生产领域产生了 很大的影响。 跟着 电子测量技术的 不断 飞速 发展, 已经可以 利用超声波实现精准测量了 。 测量技术 在 经济 的 不断发展下 得到了 越来越广的应用 , 因此 超声波凭借着 性能稳定 、成本 低廉 、精度高 等 优点得到了重视 。 机器人技术 在 出现 后 发展 迅 猛,机器人 的 用途 也不在 局限在 工业生产而是进入了 人们的 日常生活。 普遍 的应用 对于增加 群众 对机器人 技术的 认识变 得非常 重要。机器人 能够 通过
12、特有 的 感知系统感知 并确定 前 面 障碍物的 位置 和周围 的环境以完成 躲避障碍物、自动寻路 、测距等功能。超声波测距具有其他 的测距技术 没有 的特点, 比如测量精度 高 , 成本低廉 , 对 环境 的 要求低 ,使用简便等 。 将红外、灰度 等 传感器和 超声波 结合 在一起 将可以 共同 作用使 机器人 实现 自动寻路 和绕 开 障 碍 等功能。超声波 由于 传播方向 较 稳定 、 并且在介质里 传播 时 能量 削减 缓慢 ,能 够发送很远的 距离 ,所以 在测量距离 的 时候经常用到 。 超声波 最 普遍的 应 用是在 汽车 倒车雷达、物位测量仪、 测距仪、 研发移动机器人 以及
13、一些 特殊 工业现场等 场合 。 以后 超声波传感器 很可能 将会 智能化 、 自动化, 实现 更加方便高效的测距 仪器 。 1.2 研究 的主要 意义 超声波测距 技术 是 一种 非常 有前景 的 的 技术 ,近距 离的超声测距不会被 光线 影响, 并且 结构 比 较简单, 成本经济 实惠 。超声 波测量最重要的 优点是 :环境介质 很普遍,空气、液体和 固体 都能 使用 , 因此适合 使用 的 范洛阳理工学院毕业设计(论文) 2 围非常大 。更重要的是 使用 超声波检测 能 很大程度的 降低 劳动强度, 可以避免工 作 人 员 在恶劣工作环境中可能 受到 的 伤害,还 能够提高 距离 结果
14、 的准确度 ; 另外,超声波测距 仪也可以作用到别的功能系统中, 如在机器人的 避障系统、车 内置 防撞系统、自动 停车系统 和倒车雷达 , 因此 超声波测距 仪对电子 测量技术 发展是非常重要的 。 洛阳理工学院毕业设计(论文) 3 第 2 章 系统电路设计 2.1 系统结构设计 图 2-1 所示 的是超声波 测距仪的系统设计结构图 。 主要由单片机、 超声波传感器、 按键 、 复位 电路 、 LED 显示电路 、 蜂鸣器 及电源电路组成。系统主要功能包括: 1. 发射 与 接收 超声波 , 通过计算收发 时间差 得到 测量 的 距离; 2. LED 显示测量距离 ; 3. 接收用户 按下按
15、键的 相应指 令并 做出 处理; 4. 系统运行 出 错时 , 使 用电平式开关 和 上电复位电路 进行 复位 处理 。 图 2-1 超声波测距仪 的系统结构 图 2.2 电路总体设计方案 2.2.1 发射与接收 电路设计方案 对于 此次 超声波测距仪 的系统 , 难点 就 是如何生成 稳定 40KHz信号。由于 此次 使用 的 是 中心工作频率 为 40KHz 的超声波传感器 ,当偏移 这个频率时,接收端的敏感 程 度将有所 下降 ,从超声波传 感 器的特性曲线中 可电源 电路 超声波 发射 电路 超声波 接收电路路 AT89C51 4 位 LED显示器 3 键 键盘 复位 电路 蜂鸣器 洛
16、阳理工学院毕业设计(论文) 4 以 看出 具体下降 的 幅度 。当发 射 端 的 频 率 为 40KHz 时,接收 端 能 收 到的强度最强 的 信号 ,因此 计算 的 距离也就最大,但如 果 偏移 中心频率 时,测量距离就会 产生 缩短,这一点是本 次 设计的 可能 忽略的 关键 点 。如何生成一个 40KHz 的驱动信号,有多种 方法 ,可以选择 用 电感、电容振荡器件做出 一个 产生 信号的发生器, 不过这种方式 产生的 信号 频率 稳定 性 较差 ,调准比较难,所以 很难制作成功 。而此次 设计中,选 择 用单片机产生一个稳定信号 ,因为 使 用了频率稳定性 较 好的晶振 元件 作为系
17、统的时钟,所以系统频率 有 极高的稳定性, 也能 产生 频率非常平稳 的驱动信号 ,当编 入 的程序的 要求 不同的时候 , 也 能够 轻松地 取到需要的 频率 。 电路中 决定前面 是否 被 障碍物 阻挡 是 根据 接收到的信号强度值 的 , 所以本设计制作成功非常关键性的一点 就是起控点的选择 。由于反射回来的超声波信号的强弱 受 环境因素 的 影响 ,因此 需要很细心 的 进行 调试。 这时还 要 仔细观察随 着 距离 的变化 ,电路中的直流控制电压的变化,从而选择出最合适的电压比较的起控点 , 这样才能 实现 当距离达到设置好的 值 时进行报警 。 超声波测距仪 开始测量距离时, 单片
18、机 便开始 执行相应程序。 此时 P01 口 产生 10us 的 TTL, 51 单片机也开始 不断循环 生成八个 40kHz 的脉冲信号,通过 自身 自动放大 , 而且将连续发射 200us。 当 P32 口 收到信号的时候会产生一个回 响 信号 ,此 回响信号 和 测量 的距离是有一个固定的比例关系。 使用 51 单片 机执行程序后, P01 端 会发出 一个 40kHz的 脉冲信号 ,然后 使用 三极管进行放大 用来 驱动超声波模块的发射端,发出超声波信号。 之后 接收 端 要和发射端匹配, 就收后 需要把超声波进行调制 转换成交变电压型信号。之后 在 进行运算放大器的两级放大,电路内部
19、 的 中心频率 为 f0=1/1.1 的 压控 震荡 器 , 电容 的作用 是 选择锁定 带宽 。 输 入信号则放大 25mv, 输出端 P32 的 电平也会有高 变化 成低, 然后 用来当中断请求的 信号 , 在放到 单片机内部 去 处理 。 洛阳理工学院毕业设计(论文) 5 当 超声波发射端 打开 的时候 单片机的内部 T0 定时器也同 时 打开 , 然后 根据 定时器 自身 的 计数功能计 出超声波从发射到 接收 一共用了多长时间 。 每次 接收 到反射回来的超声波 时, 接收电路的输出端就会发生负跳变, 这时还 会发生一个 请求信号 去请求中断,单片机接收到 此 外部 请求 中断 后
20、便会主动 执行 外部中断对应 的 服务子程序,并读出 超声 波 发射接收 时间差在 据此 计算距离。 图 2-2 发射与接收电路 2.2.2 显示电路设计 方案 显示设备是使用最普便的并很经典的输出设备,大部分电子设备都需要有显示器,之间的不同之处也就只是显示器的结构类型的不同。显示器中最简单的就是 LED 发 光二极管组成的。 其中还有结构功能都比较完整的CRT 监视器,还有 LCD 液晶屏是显示器里屏幕比较大的。在考虑到超声波测距仪的需求和对单片机资源的节省,所以选择使用 LED 驱动设备显示并使用串行的方式。超声波测距仪需要显示的距离是在 6 米以内的,加上设置需要,所以使用 4 位 L
21、ED 数码管进行显示,距离使用厘米为单位。 LED显示器在单片机系统中经常使用的驱动方式有两种,一种是静态显示驱动,另一种是动态驱动显示。其中静态显示驱动指的是让恒定的电流驱动需要亮的二极管,但是这样就需要让每个 LED 显示器的输入引脚都去对应一个独立的 能进行锁存的 I/O 口。这样的优点是显示时单片机向接受口传送的字形码不需要改变,当显示的数据发生变化时,只需要重新发送一个-+ T r ig E c h oVCCGNDU3洛阳理工学院毕业设计(论文) 6 字形码即可。这样做对单片机的使用较小,节省性能,但是对于硬件的要求太冗杂需要很多寄存器的设备。而且如果增加显示位数也会非常麻烦,会大幅
22、增加系统器件容量。动态显示驱动是利用不同时间显示的方法对LED 进行短暂驱动 ,之后 逐位驱动 显示 各个 LED, 这需要 一直循环 显示 每一 位 ,而 且 LED 的亮度取决于 亮暗持续 的 平均 水平。 在分析了 这两种显示方式 的 优缺点后 ,最终 确定 使 用 动态驱动 方式进行 数据 显示。此次 设计 用 P0口进行 对 LED的 字形输出 , 使用 八路输出的透明锁存器 74hc573 进行 对数据的 锁存, 同时加上上拉电阻增加驱动 电流 是LED 的亮度增加。 用 P1 口对 LED 显示的位进行控制 , 同时 采用共 阴型 的LED 显示器, 避免 刚上电 时 数码管闪烁
23、。 2.2.3 报警电路 设计方案 系统报警 电路需要 有 运算放大电路 和 蜂鸣器 等 原件。 其中放大电路用PNP 三极管完成 。放大电路采用负反馈方式 , 也就是 反相比例运算电路 ,反相比例运算电路 主要 的特点 , 就是 输入信号 是 从反 向 输入端 进行 输入的 , 而且 输入端 还要 接地 处理。因此由于 “ 虚短 ” 和 “ 虚断 ” 电路具有 的特性, 就是 = , = =0。其中常说 的 “ 虚短 ” 就 是 使用 理想 的 集成运放 原理: ,因此能够看成是 两个输入端 中间 的差模 电势差基本是 0, 也就是 d= 0 ,即 = , 不过 是确实 有 值 的 。 因为
24、 两个输入端 之 间的 电势差等于 0, 但是 又 真的 不是短路, 所以叫做 “ 虚短 ” 。而“ 虚短 ” 是 根据 理想 的 集成运放 中 输入 的 电阻 Rid , 因此 也可以当成输入端 没有 电流,即 = 0 ,这样 的话 输入端 又 等于是断路, 不过 又没有断开, 这就成了 “ 虚断 ” 。 在 电路 里 ,反相输入端 和接地端的电位 一样, 不过 又 没有 真的 进行 接地, 把这种 方法叫做 “ 虚 地 ” 。 所以可以通过这种 方法进行 放大 。 2.2.4 系统 复位电路 设计 在平常使用单片机的时候,单片机系统 除了会正常初始化,有 时 也会因为程序 在运行时发 生 错误,或者人员操作 时 失误都有可能让系统 变成 锁