超声波测距LCD1602显示

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

超声波测距模块:

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

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

嵌入式硬件与代码

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值