提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
前言
本文将介绍普中51单片机多功能超声波测距仪的概念、原理、硬件设计、软件设计、实验测试以及总结展望。
一、超声波测距原理
超声波测距原理基于声波在空气中传播的特性。超声波传感器发出超声波脉冲,当这些声波遇到物体并被反射回来后,传感器就接收到了返回的声波。通过测量发送和接收之间的时间差,可以计算出物体与传感器之间的距离。
超声波传感器一般由振荡器、发射器、接收器和信号处理电路组成。振荡器产生高频信号,发射器将信号转换为超声波脉冲并发射出去,接收器接收到返回的声波,并将其转换为电信号送至信号处理电路进行处理。
工作频率对测距精度有直接影响。较高的工作频率可以提供更高的测距分辨率,但传感器的检测范围会相应减小;较低的工作频率则反之。因此,在选择超声波传感器时需要根据实际需求平衡工作频率和测距精度。
二、硬件设计
下面是所需的硬件组件清单:
普中51单片机开发板
超声波模块
杜邦线
连接超声波传感器和普中51单片机的方法如下:
1.将超声波传感器的VCC引脚连接至普中51单片机的电源正极;
2.超声波传感器的GND引脚连接至普中51单片机的电源地线;
3.将超声波传感器的Trig引脚连接至普中51单片机的指定I/O引脚,用于触发超声波发送;
4.将超声波传感器的Echo引脚连接至普中51单片机的指定I/O引脚,用于接收返回的声波。
在电路设计考虑方面,需要注意选择合适的电源供应方式,保证电路工作稳定可靠。此外,还需进行引脚配置,确保超声波传感器与普中51单片机之间的信号传输正确。
实验说明:
根据自己使用的LCD1602是否带有转接板,如果带有转接板的即为4位,需在LCD.H头文件中
将宏#define LCD1602_4PINS打开,我们这里使用的LCD1602是8位,所以默认将该宏注释。
实验接线:
LCD1602液晶模块–>单片机管脚
超声波模块–>单片机管脚
TRIG–>P21
ECHO–>P20
三、软件设计
软件设计包括以下几个步骤:
1.初始化普中51单片机的各个模块和引脚;
2.设置超声波传感器的触发引脚为输出模式,并将其置高,延时一段时间后置低,从而触发超声波的发送;
3.监听超声波传感器的接收引脚,等待返回的声波
四、代码示例
这是 LCD1602上显示超声波检测的距离,单位为mm的示例:
main.c:
#include<reg51.h>
#include<intrins.h>
#include"lcd.h"
sbit Trig = P2^1;
sbit Echo = P2^0;
unsigned char PuZh[]=" Pechin Science ";
unsigned char code ASCII[15] = {
'0','1','2','3','4','5','6','7','8','9','.','-','M'};
static unsigned char DisNum = 0; //显示用指针
unsigned int time=0;
unsigned long S=0;
bit flag =0;
unsigned char disbuff[4] ={
0,0,0,0,};
/*******************************************************************************
* 函 数 名 : main
* 函数功能 : 主函数
* 输 入 : 无
* 输 出 : 无
*******************************************************************************/
void Conut(void)
{
time=TH0*256+TL0;
TH0=0;
TL0=0;
S=(time*1.7)/100; //算出来是CM
if((S>=700)||flag==1) //超出测量范围显示“-”
{
flag=0;
DisplayOneChar(0, 1, ASCII[11]);
DisplayOneChar(1, 1, ASCII[10]); //显示点
DisplayOneChar(2, 1, ASCII[11]);
DisplayOneChar(3, 1, ASCII[11]);
DisplayOneChar(4, 1, ASCII[12]); //显示M
}