• 方案介绍
  • 附件下载
  • 推荐器件
  • 相关推荐
申请入驻 产业图谱

51单片机导盲手杖_超声波测距+DS18B20测温设计

2024/08/13
1486
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

设计资料获取联系方式.doc

共1个文件

原理图PAB:Altium Designer

仿真原版本:proteus 7.8

程序编译器:keil 4/keil 5

编程语言:C语言

设计编号:S0019

设计要求

导盲手杖主要用于帮助视觉有障碍的人解决行动不便问题,具有成本低,使用方便等特点。主要要求有:

1.显示前方障碍物距离;

2.实时测量距离,并通过蜂鸣器提醒距离过短,蜂鸣器蜂鸣发出预警;

3.可以通过按键调整蜂鸣器预警的距离;

4.附加要求,可以显示实际温度,根据温度调整传感器测试计算,减少误差。

img

img

仿真电路

可以通过按键调整蜂鸣器预警的距离,从而调整安全距离。

img

原理图

img

PCB图

imgimg

源程序

img

主程序

/主函数
void main()
{
	Init_ultrasonic_wave();
	//屏幕初始化
	Init1602();
	//温度初始化
	tmpchange(); 
	t_=tmp();
	tmpchange();
	t_=tmp();
	tmpchange();
	t_=tmp();

	//循环显示
	while(1)
	{
		Key();
		//正常显示
		if(mode==0)
		{
			StartModule();//启动超声波
			while(!RX);	  //当RX为零时等待
			TR0=1;		  //开启计数
			while(RX);	  //当RX为1计数并等待
			TR0=0;		  //关闭计数
	
			delayms(20);  //20MS
			tmpchange();  //温度转换
			t_=tmp();     //度温度
			Conut(t_/10); //计算距离
			if(L_<Min)
			{
				Feng_Start();
			}
			
			
			
			/*	if(FW=0)
				Feng_Stop();
			*/
			Display_1602(t_/10,L_);
		}
		//调整显示
		else if(mode!=0)
		{
			//最大最小值
			Init_MaxMin();
			while(mode!=0)
			{
				
				Key();
				/*if(k==1&&mode==1)
				{
					Init_MaxMin();	
   				write_com(0x8d);//设置位置					
				}
				*/
				 if(k==1&&mode==1)
				{
					Init_MaxMin();	
   				write_com(0x89);//设置光标位置	
				}
				k=0;
			}
			//界面初始化
			Init1602();
		}
	}
}

按键检测

//按键检测
void Key()
{
	//功能键按下
	if(K1==0)
	{
		Feng_Start();//蜂鸣器开
		delay_key(); //消抖
		while(K1==0);//等待松手
		Feng_Stop(); //蜂鸣器关闭
		mode++;      //模式++
		if(mode==2)	 //达到最大限度归为
			mode=0;	
		k=1;			 //按键标志位
	}
	//+键
	else if(K2==0)
	{
		Feng_Start();//蜂鸣器开
		delay_key(); //消抖
		while(K2==0);//等待松手
		Feng_Stop(); //蜂鸣器关闭
		//最大值调整
		/*if(mode==1)  //在最大值调整下
		{
			Max++;	 //调整最大值
			if(Max==201)//到达201归为200
			{
				Max=200;
			}	
		}*/
		//最小值
	if(mode==1)//最小模式下调整
		{
			Min++;		//调整最小值
			/*if(Min>Max) //最小值不能大于最大值
			{
				Min=Max;
			}	
				*/
		}
		k=1;
	}
	//-键
	else if(K3==0)
	{
		Feng_Start();
		delay_key();
		while(K3==0);
		Feng_Stop();
		//最大值调整
		/*if(mode==1)
		{
			Max--;
			if(Max<Min)
			{
				Max=Min;
			}	
		}*/
		//最小值
		 if(mode==1)
		{
			Min--;
			if(Min==0xff)
			{
				Min=0;
			}				
		}
		k=1;
	}
}

资料清单

下载

img

  • 设计资料获取联系方式.doc
    下载

推荐器件

更多器件
器件型号 数量 器件厂商 器件描述 数据手册 ECAD模型 风险等级 参考价格 更多信息
SFH203FA 1 OSRAM GmbH FIBER OPTIC PHOTODIODE DETECTOR, PLASTIC PACKAGE-2

ECAD模型

下载ECAD模型
$0.64 查看
74HC245D,653 1 Nexperia 74HC245; 74HCT245 - Octal bus transceiver; 3-state@en-us SOP 20-Pin

ECAD模型

下载ECAD模型
$0.61 查看
S29AL016J70TFI020 1 Cypress Semiconductor Flash, 1MX16, 70ns, PDSO48, TSOP-48
$10.3 查看

相关推荐