news 2026/3/21 10:31:47

C51_HC-SR04超声波模块

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
C51_HC-SR04超声波模块

文章目录

  • 一、HC-SR04
    • 1、电气参数
    • 2、引脚
  • 二、HC-SR04工作原理
    • 1、基本工作原理
    • 2、超声波时序图
    • 3、原理图
  • 三、代码实例
    • 1、UT.h
    • 2、UT.c
    • 3、main.c
    • 4、实例现象

一、HC-SR04

HC-SR04 超声波测距模块可提供 2cm-400cm 的非接触式距离感测功能,测距精度可达高到 3mm;
模块包括超声波发射器、接收器与控制电路。

1、电气参数

工作电压:DC—5V
工作电流:15mA
工作频率:40Hz
电平输出:高5V
电平输出:底0V
感应角度:不大于15度
射程范围:2cm-400cm
高精度 可达0.3cm

2、引脚

VCC 电源正极
GND 电源地
Trig 触发信号输入
Echo 回响信号输出

二、HC-SR04工作原理

1、基本工作原理

1、利用IO口中Trig触发测距 ,要求:给出至少10us的高电平;
2、模块自动发出8个40KHz的方法,自动检测是否有信号返回;
3、有信号返回,通过IO口Echo输出一高电平;
4、高电平的时间超声波从发射到返回的时间,测试距离=(高电平时间*声速(340m/s))/2 。

2、超声波时序图

提供一个 10us 以上脉冲触发信号,该模块内部将发出 8 个 40kHz 周期电平并检测回波。
一旦检测到有回波信号则输出回响信号。
回响信号的脉冲宽度与所测的距离成正比。
由此通过发射信号到收到的回响信号 时间间隔可以计算得到距离。
公式:距离= 高电平时间*声速(340M/S)/2;建议测量周期为 60ms 以上,以防止发射信号对回响信号的影响。

3、原理图

VCC–>3V3
ECHO–>P15
TRIG–>P16
GND–>GND

三、代码实例

通过超声波测试出前方障碍的距离,通过LCD1602液晶屏幕进行显示。

1、UT.h

#ifndef__UT_H__#define__UT_H__/** *@breaf 定时计数器1初始化 *@param 无 *@retval 无 */voidT0_Init();/** *@beaf 超声波模块初始化 *@param 无 *@retval 无 */voidUT_Init();/** *@beaf 超声波模块触发函数 *@param 无 *@retval 无 */voidUT_triggr();/** *@beaf超声波测距 *@param 无 *@retval distance 测试的距离 */unsignedintmeasure();#endif

2、UT.c

#include<REGX52.H>#include"UT.h"#include"Delay.h"sbit Trig=P1^6;//定义超声波模块引脚sbit Echo=P1^5;/** *@breaf 定时计数器1初始化 *@param 无 *@retval 无 */voidT0_Init(){TMOD=0x01;//定义计时器0工作方式为1TH0=0;//定义定时器初值TL0=0;ET0=1;//开定时器0中断EA=1;//开总中断}/** *@beaf 超声波模块初始化 *@param 无 *@retval 无 */voidUT_Init(){Echo=0;Trig=0;T0_Init();}/** *@beaf 超声波模块触发函数 *@param 无 *@retval 无 */voidUT_triggr(){Trig=1;Delay10us(2);Trig=0;}/** *@beaf超声波测距 *@param 无 *@retval distance 测试的距离 */unsignedintmeasure(){unsignedinta,distance;while(Echo==0);TR0=1;while(Echo);TR0=0;a=TH0*256+TL0;TH0=0;TL0=0;distance=a*1.7/100;returndistance;}

3、main.c

#include<reg52.h>#include"LCD1602.h"#include"UT.h"#include<intrins.h>unsignedintdis;//定义距离变量voidmain(){LCD_Init();//LCD1602初始化UT_Init();//超声波模块初始化LCD_ShowString(1,1,"distance:");while(1){UT_triggr();//触发测距信号dis=measure();//返回测距数值LCD_ShowSignedNum(1,10,dis,3);//显示测试距离}}

4、实例现象

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/3/15 2:47:38

JavaScript处理时间详解:时分秒的获取、计算与格式化

在JavaScript中处理时间&#xff0c;尤其是时、分、秒的获取、计算与格式化&#xff0c;是前端开发中一项基础且频繁的任务。无论是制作倒计时、显示当前时间&#xff0c;还是处理时间间隔&#xff0c;都离不开对这三个时间单位的精确操作。本文将从实际应用场景出发&#xff0…

作者头像 李华
网站建设 2026/3/15 0:40:32

AI基础从入门到实战:完整学习路线与代码实践

一、AI学习路线规划 AI学习需要遵循"数学基础→编程工具→机器学习→深度学习→项目实战"的系统路径&#xff0c;通常需要9-12个月完成从零基础到项目实战的完整学习。 阶段一&#xff1a;数学与编程基础&#xff08;1-3个月&#xff09; 数学基础是AI的基石&#…

作者头像 李华
网站建设 2026/3/21 3:17:21

驾驭昇腾CANN异步流水线从算子优化到系统级性能跃迁

目录 1 摘要 2 技术原理 2.1 架构设计理念解析 2.2 核心算法实现 2.2.1 异步执行模型深度解析 2.2.2 Stream并行机制实现原理 2.3 性能特性分析 2.3.1 同步 vs 异步性能对比 2.3.2 内存访问模式优化 3 实战部分 3.1 完整可运行代码示例 3.2 分步骤实现指南 步骤1&…

作者头像 李华
网站建设 2026/3/12 23:13:53

音元系统:目录

目录 1 绪论 2 已有析音法 2.1 已有各式析音法的分类 2.1.1 各类各式二分法 2.1.1.1 两段二分法 2.1.1.1.1 声韵二分法 2.1.1.1.2 首干二分法 2.1.1.2 质调二分法 2.1.2 一调二质分析法 2.1.2.1 节调声质韵质分析法 2.1.2.2 节调声母韵母分析法 2.1.3 一调三质分析…

作者头像 李华
网站建设 2026/3/12 18:48:02

Java毕业设计不会做怎么办?

同学别慌&#xff0c;毕业设计确实是大学生涯的一大挑战&#xff0c;但完全有办法解决。很多同学都经历过这个阶段&#xff0c;我们一步步来梳理。 &#x1f50d; 第一步&#xff1a;冷静分析现状 明确截止时间 - 离答辩还有多少周&#xff1f; 评估当前进度 - 是完全没开始&…

作者头像 李华