基于51单片机 超声波测距 倒车雷达

基于51单片机 超声波测距 倒车雷达

51单片机最小系统电路+LCD1602+蜂鸣器报警电路+按键电路+超声波模块+电源电路

实现液晶显示距离 超设置数值报警 按键可修改数值

可加蓝牙模块 用户可以通过手机端查看距离数据

可加温度显示DS18B20显示温度

可加数码管替代LCD1602

可加DS1302时钟模块 显示年月日 星期 时分秒

可加超声波模块 测量三个四个方向距离

等等功能均可添加设计

以上思路均可参考

源代码  原理图   开题报告  参考论文 答辩技巧 等均可提供

贴部分源码 

/*------------------------------------------------
                    主函数
              /* QQ 2696472421
          时间;2022年3月30日 23:12:11*/
------------------------------------------------*/
main()
{
  float temp;       //距离变量
	uchar i = 0,key;
	unsigned int S_MIN = 20;
	int wendu = 0;
  char xdata SEND_BUF[20];
 	
  TIM0init();    //初始化定时器0
	Init_Timer1(); //定时器初始化
  lcd_init();    //初始化LCD
	lcd_write_str(0,0,"D=      cm        ");
	lcd_write_str(0,1,"V=      cm/s     ");
	uart_init(9600);
  while(1)
  {
		temp = Get_S();//获取距离
		S  = temp > 400? 400 : temp;
		TR1 = 0;	
		LCD1602_write_float(2,0,(long)(100*S),5,3);//显示距离
		LCD1602_write_float(2,1,(long)(100*SPEED),5,3);//显示速度
		TR1 = 1;	
    DelayMs(500);                            //延时决定采样速度
		key = KEY_Scan(0); //读取按键值
		if(key == 1)//设置报警距离
		{   
			  lcd_clear();
			  key = 0;
			  while(key != 1)
				{
						key = KEY_Scan(0);//读取按键值
						lcd_write_str(0,0,"Set the distance");
						lcd_write_str(0,1,"min:    cm"); 
						if(key == 2 && S_MIN < 400) S_MIN++;//最大到400
						if(key == 3 && S_MIN > 3) S_MIN--;//最小到3
					  //显示
						lcd_write_char(4,1,S_MIN / 100 + 0x30);
					  lcd_write_char(5,1,S_MIN % 100 /10 + 0x30);
					  lcd_write_char(6,1,S_MIN % 10 + 0x30);
					  DelayMs(50);
				}
				key = 0;
				lcd_write_str(0,0,"D=      CM        ");
	      lcd_write_str(0,1,"V=      cm/s     ");
		}
		if(sendFlag)
		{
			sendFlag=0;
			sprintf(SEND_BUF,"距离: %6.2fcm\r\n",S);
			uart_send(SEND_BUF,0xFF);
			sprintf(SEND_BUF,"速度: %6.2fcm/s\r\n",SPEED);
			uart_send(SEND_BUF,0xFF);
		}
		if(S < S_MIN)//低于安全距离,蜂鸣器报警
			beep = 0;
		else
			beep = 1;
  }
 }

  • 5
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值