利用51单片机,HC-SR04超声波模块实现测距,LCD显示

本文介绍了如何使用51单片机和HC-SR04超声波模块进行测距,并将结果显示在LCD显示器上。通过超声波测距模块、LCD显示模块和键盘扫描模块的协同工作,实现了距离测量和最小距离设定功能。当测量值小于设定的最小距离时,系统触发报警。
摘要由CSDN通过智能技术生成


  这些功能的实现的核心是超声波测距功能的实现。

  HC-SR04超声模块的工作原理为:给超声波至少10us的高电平,一般最好是20us的,模块的trig端会自动产生8个40kHz的矩形脉冲,反馈给ECHO端,产生高电平信号。利用定时器计时。距离S=time*1.7.

 所有功能的实现分为了几个模块:LCD显示模块、超声波测距模块、键盘扫描模块、最小距离设置模块、报警模块、串口通信模块。

 LCD显示模块:初始化、判忙、写入读写数据。

 超声波测距模块:检测、计算、定时器的初始化

 键盘扫描模块:在这个模块中采取了与以往不同的方式,直接分为行与列的扫描,减少了程序的复杂程度,更易理解。给了一个flag值,来判断按键是否按下。

 最小距离设置模块:上一个键盘扫描的返回值给到这个模块中,按下按键设置超声波测距模块测距的最小值s1,若距离,s<s1,则蜂鸣器鸣响,LCD显示error。

程序:

#include <reg52.h>
#include <stdio.h>
#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int
uchar code table[]={0,0,0,0,
                    7,8,9,0,
                    4,5,6,0,
                    1,2,3,0};
uchar code table1[]={0,0x3d-0x30,0x01-0x30,0x2f-0x30,
                     7,8,9,0x2a-0x30,
                     4,5,6,0x2d-0x30,
                     1,2,3,0x2b-0x30};
uchar code table2[]={"     error       "};
sbit rs=P2^6;
sbit rw=P2^5;
sbit e=P2^7;
sbit trig=P2^5;
sbit Echo=P2^4;
sbit beep=P1^5;
bit flag;
uint time,KeyValue,key;
uint S,a=0,s1;
void delay(uchar a)
{
	uchar i;
	while(a--)
	{
		for(i=0;i<250;i++)
		{
			_nop_();
			_nop_();
			_nop_();
			_nop_();
    }
  }
}
/********ÅÐ溯Êý********/
void lcd_mang()
{
	rs=0;
	rw=1;
	e=1;
	_nop_();
	_nop_();
	_nop_();
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值