项目说明
该设计是一个简易的基于51单片机的超声波测距系统,功能说明:
- 使用LCD1602实时显示当前的超声波测试距离。
- 可以通过示波器查看发送的信号和超声波模块接收到的信号。
代码和仿真放在了CSDN的下载里,并未设置积分,应该可以直接下载。只想加点下载量,好像有下载量才能升级。
下载链接
如果下载开始收积分了,可以关注微信公众号少年潜行,回复关键字A004超声波测距,获取网盘链接。不会有付钱解压
📖 欢迎交流 如果代码对你有帮助,希望可以帮我点个赞👍和收藏
设计环境
仿真软件版本:Proteus8.9
下载链接:
链接:https://pan.baidu.com/s/1kkgFmRBlh268m_ESl83weg 提取码:9bde 复制这段内容后打开百度网盘手机App,操作更方便哦
硬件设计
硬件设计如图,主要使用LCD屏幕展示超声波的测量距离,然后还有就是一个示波器显示发送Trig和Echo的信号。
软件设计
主要就是在While中发送信号,然后使用LCD1602显示
#include "reg52.h"
#include "stdio.h"
#include "hc_sr04.h"
#include "LCD1602.h"
#include "stdio.h"
#define u8 unsigned char
#define u16 unsigned int
void delayms(unsigned int ms)
{
unsigned char i=100,j;
for(;ms;ms--)
{
while(--i)
{
j=10;
while(--j);
}
}
}
void main()
{
float dist_value = 0;
u8 lcdShowBuff[16] = {0};
HCSR04_Init(); // HCSR04的引脚初始化
HCSR04_Timer0Init(); // HCSR04的定时器计数初始化
LcdInit(); // LCD显示初始化
while(1)
{
HCSR04_trigSendOnePulse();
dist_value = DistCount();
sprintf((char*)lcdShowBuff,"distanc : %f ",dist_value);
LcdShowStr(0,0,lcdShowBuff);
delayms(100);
}
}
调试效果
1、显示当前的测试距离和示波器的波形