`
hzy3774
  • 浏览: 992981 次
  • 性别: Icon_minigender_1
  • 来自: 珠海
社区版块
存档分类
最新评论

51单片机使用超声波测距模块测距

 
阅读更多

一般超声波模块有4个引脚,使用很方便:



 

 

时序:

所以,我们需要测距的话所要做的就是触发Trig,然后用计时器统计Echo的高电平时长,就可以算出距离了:

代码:

#include <reg51.h>
#include <stdio.h>

#define uchar unsigned char
#define uint unsigned int

#define BAUD 9600L
#define FOSC 22118400L
#define CYCLE (12000000.0/FOSC)	//周期 us

sbit Trig = P2^5;
sbit Echo = P2^6;

void sendByte(uchar dat) {
    ES = 0;		//关闭中断
    SBUF = dat;	//写入数据
    while(!TI);	//等待数据发送结束
    TI = 0;		//手动置0
    ES = 1;		//打开中断
}

void sleep() {
    uchar i, j, k;
    for(i = 0; i < 255; i++)
        for(j = 0; j < 255; j++)
            for(k = 0; k < 16; k++);
}

void writeString(char *str) {
    while(*str) {
        sendByte(*str);
        str++;
    }
}


void uartInit() {
    TMOD = 0x20;		//定时器1用于串口
    TH1 = TL1 = -(FOSC/12/32/BAUD);		//设置装入初值
    TR1 = 1;							//启动定时器1
    SM0 = 0;
    SM1 = 1;							//设置串口为方式一
    REN = 1;							//接收使能
    ES = 1;								//打开中断
    EA = 1;
}

float getDist() {
    uchar i = 100;
    float dist = 0.0f;
    uint count = 0;

    Trig = 1;		//打开触发
    while(i--);		//延时一会儿
    TMOD = 0x01;	//计时器0方式1
    TH0 = TL0 = 0;	//装入初值
    Trig = 0;		//关闭触发
    while(!Echo);	//测距过程中
    TR0 = 1;		//打开中断
    while(Echo);	//等待输出电平结束
    TR0 = 0;		//关闭中断
    count = (TH0 << 8) | TL0;	//读取16位计时器里的数字
    dist = CYCLE * count * 0.017;	//0.034cm/us
    return dist;
}

void main() {
    char buffer[16] = {0};

    Trig = 0;
    Echo = 1;
    while(1) {
        sprintf(buffer,"%.2f cm\n",getDist());
        uartInit();
        writeString(buffer);
        sleep();
    }
}

 串口输出:



 模块连接:



 
 

  • 大小: 51.5 KB
  • 大小: 68.4 KB
  • 大小: 79.1 KB
  • 大小: 37.3 KB
  • 大小: 99 KB
分享到:
评论

相关推荐

    超声波测距51C程序_超声波测距模块51单片机_51单片机测距_steady2y8_

    总之,通过这个51单片机超声波测距项目,我们可以提升自己的嵌入式开发技能,学习到实际的硬件控制和软件编程经验。无论你是初学者还是有一定基础的开发者,这个项目都能为你提供宝贵的学习资源和实践经验。在实际...

    基于51单片机的超声波测距技术实现(含大作业文档).rar

    【标题】中的“基于51单片机的超声波测距技术实现”是指使用51系列单片机,如常见的STC8A8K型号,来设计并实现一种超声波测距系统。51单片机是微控制器领域广泛应用的基础型号,具有丰富的I/O端口和低功耗特性,适合...

    接口实验报告-基于AT89S51单片机的超声波测距系统.docx

    这篇接口实验报告主要探讨了基于AT89S51单片机的超声波测距系统的设计与实现。AT89S51是一款常见的8位微控制器,常用于嵌入式系统开发,具有丰富的I/O端口和较高的处理能力,非常适合这种实时性要求较高的测距应用。...

    基于51单片机的超声波测距模块的应用.zip

    基于51单片机的超声波测距模块是实现精确距离测量的一种实用技术,广泛应用于各种智能设备和自动化系统中。这篇文档将探讨这种模块在实际应用中的原理、设计和实现。 超声波测距模块通常使用SR04型传感器,它通过...

    基于51单片机的超声波测距系统

    《基于51单片机的超声波测距系统详解》 在电子工程领域,51单片机...通过理解51单片机的控制原理、超声波测距的物理概念以及HC-SR04模块的特性,开发者可以灵活地构建自己的测距系统,并在此基础上进行创新和改进。

    基于AT89C51单片机实现超声波测距模块的设计

    ### 基于AT89C51单片机实现超声波测距模块的设计 #### 一、项目背景与意义 随着科技的发展,非接触式测量技术在各个领域得到了广泛应用,其中超声波测距技术因其成本低、易于实现等优点而受到青睐。本项目旨在设计...

    基于STC51单片机的超声波测距——从零到一经验之谈

    首先,作者选择了基于 STC51 单片机的超声波测距模块,并对其进行了深入的研究和分析。作者首先了解了超声波测距模块的工作原理,即在超声波模块发射高频脉冲后,等待一定的延时,然后打开外部中断,检测接收引脚...

    基于51单片机的超声波测距模块设计说明.doc

    《基于51单片机的超声波测距模块设计》 超声波测距技术是现代科技领域中的一种重要技术,广泛应用于机器人感知、自动化设备定位、安全监控等多个领域。本文主要探讨的是基于51单片机的超声波测距模块设计,通过利用...

    基于51单片机的超声波测距程序(LCD1602显示)

    基于51单片机的超声波测距程序(LCD1602显示)本模块性能稳定,测度距离精确。能和国外的SRF05,SRF02等超声波测距模块相媲美。模块高精度,首创无盲区(0cm开始测量),稳定的测距是此产品成功走向市场的有力保障。

    c51单片机超声波测距源代码

    C51单片机超声波测距源代码 在本文中,我们将详细介绍使用89c51单片机设计超声波测距系统的源代码。该系统使用数码管显示测距距离,以下是该系统的详细解释和知识点。 一、超声波测距原理 超声波测距是通过发射...

    51单片机编程-超声波测距(数码管显示).zip_51单片机_51超声波_测距_超声波

    在本文中,我们将深入探讨如何使用51单片机进行超声波测距,并通过数码管显示结果。超声波测距技术广泛应用于各种领域,如智能家居、安防系统以及无人机等,因为它简单、成本低且易于实现。51单片机因其结构简单、...

    【毕业设计】基于51单片机超声波测距仪数码管显示(原理图、源程序、论文等)

    【毕业设计】基于51单片机的超声波测距仪是一款常见的电子工程实践项目,它利用超声波的传播特性来测量物体与传感器之间的距离。本设计涵盖了硬件电路设计、软件编程以及完整的毕业论文内容,是学习和研究51单片机...

    超声波测距仪参考源程序_超声波测距仪_51单片机测距_

    在本项目中,我们关注的是一个基于51单片机实现的超声波测距仪。51单片机是微控制器的一种,因其结构简单、性能稳定、价格低廉而被广泛应用。 首先,51单片机是Intel 8051系列的微处理器,拥有8KB的可编程只读...

    51单片机超声波测距仪模块 数码管.rar

    2. 超声波测距模块:产生触发脉冲,捕获回波时间,计算距离。 3. 数码管显示模块:处理数据格式,使其适应数码管显示,控制数码管的段选和位选。 4. 主循环:协调超声波测距和数码管显示,定期更新显示内容。 项目...

    超声波测距(数码管显示)_51单片机_超声波_

    在这个项目中,我们将关注如何使用51单片机来实现一个超声波测距系统,并通过数码管显示测量结果。 首先,51单片机是Microchip公司生产的一种8位微处理器,因其结构简单、性价比高而成为初学者和许多实际应用中的...

    基于51单片机的超声波测距C源程序代码

    本项目结合了这两种技术,实现了一个基于51单片机的超声波测距系统,并且加入了语音播报功能,使得用户可以通过语音获取测量结果,提高了人机交互性。 首先,我们要了解51单片机的基本结构和工作原理。51系列单片机...

    基于51单片机的超声波测距

    在超声波测距系统中,51单片机负责发送触发信号给超声波传感器,接收回波信号,并计算出目标距离。 HC-SR04超声波传感器是常用的测距模块,它由发射器、接收器和控制电路组成。工作原理是通过发射超声波脉冲,然后...

    基于51单片机的超声波测距毕业论文.doc

    基于51单片机的超声波测距系统设计包括总体设计方案、发射电路的设计、接收电路的设计、显示模块的设计等。该系统的设计需要考虑超声波测距的原理、超声波传感器的特性、AT89C51单片机的性能和特点等。 知识点5:...

Global site tag (gtag.js) - Google Analytics