一般超声波模块有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单片机超声波测距项目,我们可以提升自己的嵌入式开发技能,学习到实际的硬件控制和软件编程经验。无论你是初学者还是有一定基础的开发者,这个项目都能为你提供宝贵的学习资源和实践经验。在实际...
【标题】中的“基于51单片机的超声波测距技术实现”是指使用51系列单片机,如常见的STC8A8K型号,来设计并实现一种超声波测距系统。51单片机是微控制器领域广泛应用的基础型号,具有丰富的I/O端口和低功耗特性,适合...
这篇接口实验报告主要探讨了基于AT89S51单片机的超声波测距系统的设计与实现。AT89S51是一款常见的8位微控制器,常用于嵌入式系统开发,具有丰富的I/O端口和较高的处理能力,非常适合这种实时性要求较高的测距应用。...
基于51单片机的超声波测距模块是实现精确距离测量的一种实用技术,广泛应用于各种智能设备和自动化系统中。这篇文档将探讨这种模块在实际应用中的原理、设计和实现。 超声波测距模块通常使用SR04型传感器,它通过...
《基于51单片机的超声波测距系统详解》 在电子工程领域,51单片机...通过理解51单片机的控制原理、超声波测距的物理概念以及HC-SR04模块的特性,开发者可以灵活地构建自己的测距系统,并在此基础上进行创新和改进。
### 基于AT89C51单片机实现超声波测距模块的设计 #### 一、项目背景与意义 随着科技的发展,非接触式测量技术在各个领域得到了广泛应用,其中超声波测距技术因其成本低、易于实现等优点而受到青睐。本项目旨在设计...
首先,作者选择了基于 STC51 单片机的超声波测距模块,并对其进行了深入的研究和分析。作者首先了解了超声波测距模块的工作原理,即在超声波模块发射高频脉冲后,等待一定的延时,然后打开外部中断,检测接收引脚...
《基于51单片机的超声波测距模块设计》 超声波测距技术是现代科技领域中的一种重要技术,广泛应用于机器人感知、自动化设备定位、安全监控等多个领域。本文主要探讨的是基于51单片机的超声波测距模块设计,通过利用...
基于51单片机的超声波测距程序(LCD1602显示)本模块性能稳定,测度距离精确。能和国外的SRF05,SRF02等超声波测距模块相媲美。模块高精度,首创无盲区(0cm开始测量),稳定的测距是此产品成功走向市场的有力保障。
C51单片机超声波测距源代码 在本文中,我们将详细介绍使用89c51单片机设计超声波测距系统的源代码。该系统使用数码管显示测距距离,以下是该系统的详细解释和知识点。 一、超声波测距原理 超声波测距是通过发射...
在本文中,我们将深入探讨如何使用51单片机进行超声波测距,并通过数码管显示结果。超声波测距技术广泛应用于各种领域,如智能家居、安防系统以及无人机等,因为它简单、成本低且易于实现。51单片机因其结构简单、...
【毕业设计】基于51单片机的超声波测距仪是一款常见的电子工程实践项目,它利用超声波的传播特性来测量物体与传感器之间的距离。本设计涵盖了硬件电路设计、软件编程以及完整的毕业论文内容,是学习和研究51单片机...
在本项目中,我们关注的是一个基于51单片机实现的超声波测距仪。51单片机是微控制器的一种,因其结构简单、性能稳定、价格低廉而被广泛应用。 首先,51单片机是Intel 8051系列的微处理器,拥有8KB的可编程只读...
2. 超声波测距模块:产生触发脉冲,捕获回波时间,计算距离。 3. 数码管显示模块:处理数据格式,使其适应数码管显示,控制数码管的段选和位选。 4. 主循环:协调超声波测距和数码管显示,定期更新显示内容。 项目...
在这个项目中,我们将关注如何使用51单片机来实现一个超声波测距系统,并通过数码管显示测量结果。 首先,51单片机是Microchip公司生产的一种8位微处理器,因其结构简单、性价比高而成为初学者和许多实际应用中的...
本项目结合了这两种技术,实现了一个基于51单片机的超声波测距系统,并且加入了语音播报功能,使得用户可以通过语音获取测量结果,提高了人机交互性。 首先,我们要了解51单片机的基本结构和工作原理。51系列单片机...
在超声波测距系统中,51单片机负责发送触发信号给超声波传感器,接收回波信号,并计算出目标距离。 HC-SR04超声波传感器是常用的测距模块,它由发射器、接收器和控制电路组成。工作原理是通过发射超声波脉冲,然后...
基于51单片机的超声波测距系统设计包括总体设计方案、发射电路的设计、接收电路的设计、显示模块的设计等。该系统的设计需要考虑超声波测距的原理、超声波传感器的特性、AT89C51单片机的性能和特点等。 知识点5:...