基于51实现超声波测距

基于51单片机与HC-SR04实现超声波测距,相对精度可以达到5mm,相对误差2cm左右,测量范围2-400cm!

下面为核心代码

/******************************** 
程序功能:超声波测量距离并使用LCD1602显示 	
*********************************/ 
#include "Timer.h" 
#include "String.h" 
#include "HC_SR04.h"  
#include "LCD1602.h"  

#define SYS_TIME 100000 //100ms一次

/* 系统初始化 */
static void SystemInit(void)
{
    LCD1602_Init();//液晶初始化
    Timer_Init(SYS_TIME);//初始化定时器输出系统时钟	
    LCD1602_ShowString("System Init");//提示系统初始化			
}

 /* 主函数入口 */
void main(void)
{
    float Distance=0;//距离变量,范围0-5
    
    while(1)
    {
        if(getSysClock() == SET)//等待系统时钟
        {		 				        
            setSysClock(RESET);//清除系统时钟				          
          
            Distance = HC_GetDistance();//获得距离 				            

            LCD1602_ShowStringToAddress(Frist_line,"Distance:");//显示提示信息	
            if(Distance < 4.0)//4M以内为有效距离				 							
                LCD1602_ShowString(DoubleToString(Distance,1));//显示距离数据,保留一位小数
            else 								
                LCD1602_ShowString("----"); 						
            LCD1602_ShowString("CM");//显示单位			 				  
            } 	
      } 
} 

需要参考项目可以私聊我!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值