超声波测距模块:
1、采用IO口TRIG触发测距,给至少10us的高电平信号;
2、模块自动发送8个40khz的方波,自动检测是否有信号返回;
3、有信号返回,通过IO口ECHO输出一个高电平,高电平持续的时间就是超声波从发射到返回的时间。测试距离=(高电平时间*声速(340M/S))/2。
液晶LCD1602电路接口
超声波测距LCD1602显示程序源代码
/*******************超声波测距1602显示********************
* 单片机:51单片机
* 开发环境:keil
* 名称:超声波测距1602显示
注意:用杜邦线将超声波模块的VCC接开发板5V对外供电接口
用杜邦线将超声波模块的GND接开发板GND
用杜邦线将超声波模块的Trig接单片机的P1.5
用杜邦线将超声波模块的Echo接单片机的P1.6
/************************包含头文件************************/
#include <reg51.h>
#define LCD_Data P0
#define Busy 0x80
/**************************宏定义**************************/
#define SPEED_30C 3495 //30摄氏度时的声速,声速V=331.5+0.6*温度;
#define SPEED_23C 3453 //23摄氏度时的声速,声速V=331.5+0.6*温度;
/**************************位定义**************************/
sbit ECHO = P2^1; //回声接收端口
sbit TRIG = P2^0; //超声触发端口
sbit BEEP = P2^3; //蜂鸣器
sbit LCD_RS = P1^0;
sbit LCD_RW = P1^1;
sbit LCD_E =P2^5;
/**********************定义变量和数组**********************/
long int distance = 0; //距离变量
unsigned char code table0[] = {" SL-51A "};
unsigned char code table1[] = {" NO ECHO "};
unsigned char code table2[] = {"Distance:xxx.xcm"};
unsigned char count;
void Delay5Ms(void);
void delay(int In,int Out);
void WriteDataLCD(unsigned char WDLCD);
void WriteCommandLCD(unsigned char WC

该文介绍了一个基于51单片机的超声波测距系统,使用IO口TRIG触发,通过LCD1602液晶屏显示测得的距离。程序在Keil环境下开发,包含了超声波模块与LCD的接口及延时函数等关键代码。
最低0.47元/天 解锁文章
3504

被折叠的 条评论
为什么被折叠?



