利用51单片机实现超声波测距功能,利用单片机控制超声波的发射和对超声波自发射至接收往返时间的计时。系统定时发射超声波,在启动发射电路的同时启动单片机内部的定时器,利用定时器的计数功能记录超声波发射的时间和收到反射波的时间。当收到超声波的反射波时,接收电路输出端产生一个负跳变,单片机检测到这个负跳变信号后,停止内部计时器计时,读取时间,计算距离,测量结果输出给LCD显示。

1.系统电路图

超声波测距仪由单片机AT89C51、超声波电路和显示电路还有警报电路,按键控制等组成,如图所示。单片机选用AT89C51,采用12MHz高精度的晶振,以获得较稳定时钟频率,减小测量误差。单片机用P3.5端口输出超声波换能器所需的40kHz的方波信号,P3.2(以超声波模块2为例)端口监测超声波接收电路输出的返回信号。显示电路采用简单实用的LCD显示屏。

2.系统软件流程图

系统首先完成初始化,超声波发射端向目标发射超声波,接收头接收到反射的回波后(有高电平),经过接收电路处理,向单片机P3.2输入一个低电平脉冲。单片机控制着超声波的发送,超声波发送完毕后,立即启动内部计时器计时,当检测到P3.2由高电平变为低电平后,立即停止内部计时器计时。单片机将测得的时间与声速相乘再除以2即可得到测量值,最后经LCD显示屏测得的结果显示出来。

3.系统仿真效果及程序获取方式见连接基于51单片机的超声波三路测距https://mp.weixin.qq.com/s?__biz=MzkzMjI5OTExMA==&mid=2247484177&idx=1&sn=8f6908d4ba0528e68f998829fd881dfb&chksm=c25cab18f52b220eb4d9b0853043933c8579d9e5390395a747544583c6012cedcd9f8e75e5f2&token=946648640&lang=zh_CN#rd

4.附录距离计算函数

/*********************************************************/
// 计算超声传感器测量到的距离
/*********************************************************/
uint GetDistance(void)
{
    uint ss;                    // 用于记录测得的距离
    TH0=0;
    TL0=0;
    Trig1_P=1;                // 给超声波模块1一个开始脉冲
    DelayMs(1);
    Trig1_P=0;
    while(!Echo1_P);    // 等待超声波模块1的返回脉冲
    TR0=1;                        // 启动定时器,开始计时
    while(Echo1_P);        // 等待超声波模块1的返回脉冲结束
    TR0=0;                        // 停止定时器,停止计时
    ss=((TH0*256+TL0)*0.034)/2;     // 距离cm=(时间us * 速度cm/us)/2
    return ss;
}

如需完整项目代码,可发送公众号消息《超声测距程序》索取。

51单片机实现超声波测距相关推荐

  1. 利用51单片机+HC-SR04+51单片机制造超声波测距模块

    利用HC-SR04和51单片机制造超声波测距模块 完整的项目链接: https://github.com/linxinloningg/51_chip_core.git 硬件电路分析: 1.HC-SR0 ...

  2. 基于51单片机HC-SR04超声波测距带温度补偿

    基于51单片机HC-SR04超声波测距带温度补偿 1 开发环境 2 功能说明介绍 3 程序 3.1 工程文件 3.2 代码 4 原理图 5 元器件清单 6 PCB 7全部资料 1 开发环境 仿真图:p ...

  3. 基于51单片机的超声波测距及温度补偿

    具体实现功能 系统由STC89C52单片机+超声波测距传感器(HC-SR04)+DS18B20温度传感器+LCD1602液晶显示屏+按键+蜂鸣器+电源构成 具体功能:1.LCD1602液晶显示测量的距 ...

  4. 51单片机配合超声波测距以及用1602液晶进行显示

    自己写的一个小程序,给51入门的朋友们用一下,实测还行,没什么问题,但几米以上就不怎么准,主要是模块比较廉价,当练手用.注释也都比较清楚. /*超声波测距程序,利用51单片机的外部中断,如果有时候发现 ...

  5. 基于51单片机的超声波测距模块

    实现功能 通过超声波模块进行测距显示在LCD1602上并通过设在程序上设置上下限进行进行超出上下限的报警蜂鸣器 模块 1.89c51 2.lcd1602 3.超声波测距模块 4,蜂鸣器 作者用的是51 ...

  6. 基于51单片机的超声波测距_液位检测_温度检测protues仿真

    硬件设计 (末尾附文件) 代码设计 //宏定义 #define uchar unsigned char #define uint unsigned int #define ULint unsigned ...

  7. 51单片机的超声波测距系统【proteus仿真+程序+报告+原理图】

    1.主要功能 该系统由AT89C51单片机+数码管模块+LED指示灯模块+按键模块构成. 利用51单片机实现超声波测距功能.利用单片机控制超声波的发射和对超声波自发射至接收往返时间的计时.系统定时发射 ...

  8. 【030】基于51单片机的超声波液位测距报警系统(带温度显示)Proteus仿真设计

    一.压缩包资料内容 (1).基于51单片机的超声波液位测距报警(带温度显示)系统proteus仿真设计一份: (2).基于51单片机的超声波液位测距报警(带温度显示)系统proteus仿真设计keli ...

  9. 51单片机 普中V2 超声波测距 报警 显示 基于MCS51单片机的超声波测距模块的开发

    基于MCS51单片机的超声波测距模块的开发 采用C51程序设计语言,完成下列功能要求. l 必选功能: (1) 超声波模块和单片机的接口设计,画出完整的电路原理图.(15分) (2) 开发板上电时,显 ...

  10. 基于51单片机的超声波避障小车设计(含Proteus仿真)

    超声波避障程序随处可见,基于51单片机的超声波避障小车也很成熟,但是完整的Proteus仿真并不容易找到开源资料. 这次主要给大家分享其Proteus仿真部分. 涉及到的模块有:超声波模块(hc-sr ...

最新文章

  1. c# 字符串是否相等
  2. hdu3449 有依赖的背包问题
  3. matlab基础(0)
  4. jsp里面的input的值吗_一个jsp页面中的input框向另一个jsp页面的input框传值
  5. day18 面向对象
  6. MATLAB学习笔记(十六)
  7. 目标检测——如何处理任意输入尺寸的图片
  8. bzoj1355——2016——3——15
  9. (秒杀项目) 4.10 项目面试项目常见问题
  10. python get 函数-python的__get__、__set__、__delete__(1)
  11. 软考中级网络工程师真题资料
  12. Excel-VBA基础(11):VBA中数组基础知识
  13. 新gre argument写作遇到难题如何破解?
  14. 小三角箭头向下向上查看隐藏的效果 vue
  15. matlab信息隐藏和提取,使用matlab进行图像信息隐藏和提取
  16. AppStore内收费软件和游戏破解方法--证实可行
  17. 关于DNS的配套工具
  18. 趣图:凌晨三点,灯火阑珊处
  19. API比较PostMessageA和SendMessageA游戏屏蔽
  20. 农民工看完都学会了!教你一种更清晰的Android架构!附赠课程+题库

热门文章

  1. Java在线聊天室(客户端+服务器)
  2. 自动旁注并多进程调用wwwscan扫描旁注结果的python脚本。
  3. 移动通信-多径效应,多普勒效应,菲涅尔区,阴影效应,快衰落,慢衰落
  4. AcWing 棋盘挑战 dsf
  5. 机器人编程按时巡线_活动回顾 丨巡线机器人编程活动带小朋友体验游戏设计的乐趣...
  6. 增量式PID公式的4点疑问和理解
  7. AD快捷键的设置及推荐
  8. Unity快速安装教程
  9. iconfont矢量图标在小程序中的使用
  10. BIOS开启了VT,但是CPU-V显示未开启