基于51单片机的超声波智能避障小车仿真

发布于:2025-07-13 ⋅ 阅读:(12) ⋅ 点赞:(0)

目录

 具体实现功能

设计介绍

资料内容

全部内容

资料获取


 具体实现功能

(1)超声波实时测量小车与障碍物间的距离,并用LCD1602显示。
(2)当测得的距离超过50时,前进电机转动(模拟后轮)表示前进。
(3)当测得的距离小于50时,前进电机转动(模拟后轮)和转向避障电机转动(模拟前轮)表示转向。

仿真演示视频:

基于51单片机的超声波智能避障小车仿真-仿真视频

设计介绍

51单片机简介

51单片是一种低功耗、高性能CMOS-8位微控制器,拥有灵巧的8位CPU和可编程Flash,使得51单片机为众多嵌入式控制应用系统提供灵活、高效的解决方案。

本设计所使用的芯片可兼容以下所有的51系列单片机(包括AT系列和STC系列)。

资料内容

仿真实现(protues8.7)

本设计利用protues8.7软件实现仿真设计,具体如图。

程序(Keil5)

本设计利用KEIL5软件实现程序设计。

主函数如下:

/*********************************************************/
// 主函数
/*********************************************************/
void main()
{
	uint dist;												// 保存超声波模块测量到的结果
	Trig_P=0;
	TMOD = 0x01;											// 选择定时器0,并且确定是工作方式1(为了超声波模块测量距离计时用的)
	LCD1602_init();//LCD1602初始化
	dianji1=0;
	
	while(1)
	{
		   


		gSpeed=0.607*(240/10)+331.4;		// 根据公式 v=0.607T+331.4 计算出当前温度值对应的超声波速度,这时的单位是“米/秒” 
		gSpeed=gSpeed/10000;						// 将超声波的速度从单位“m/s”转为“cm/us”,方便后面的计算
		
		dist=GetDistance();							// 通过超声波模块获取距离

		   Table[0]='D';
			Table[1]='i';
			Table[2]='s';
			Table[3]='t';
			Table[4]=':';

			Table[5]=dist/100+0x30;
			
		    Table[6]=dist%100/10+0x30;
			Table[7]=dist%10+0x30;	
			LCD1602_Disp_ZF(0x80,Table,8);



		  if(dist>=20&&dist<=50)								//避障
		  {
			dianji1=1;
			dianji2=1;

		  }
		  else if(dist>50)
		  {
		    dianji1=1;
			dianji2=0;
		  }
		  if(dist<20)								//紧急刹车
		  {
		    dianji1=0;
		    dianji2=0;
		  }

		  if(dist<=50)								//报警
		  {
			beep=0;
		  }
		  else							
		  {
			beep=1;
		  }



	}
}

程序运行结果如图:

全部内容

全部资料包括程序(keil5)、protues仿真(protues8.7)、设计说明、答辩PPT、开发资料、资料使用介绍、仿真视频、最小系统介绍视频等。

资料获取
https://docs.qq.com/doc/DT2hxRVdTWFdZdnVa