加入星计划,您可以享受以下权益:

  • 创作内容快速变现
  • 行业影响力扩散
  • 作品版权保护
  • 300W+ 专业用户
  • 1.5W+ 优质创作者
  • 5000+ 长期合作伙伴
立即加入

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

08/13 09:38
1268
服务支持:
技术交流群

完成交易后在“购买成功”页面扫码入群,即可与技术大咖们分享疑惑和经验、收获成长和认同、领取优惠和红包等。

虚拟商品不可退

当前内容为数字版权作品,购买后不支持退换且无法转移使用。

加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论
放大
实物图
相关方案
  • 方案介绍
  • 相关文件
  • 推荐器件
  • 相关推荐
  • 电子产业图谱
申请入驻 产业图谱

原理图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模型 风险等级 参考价格 更多信息
XRCFD25M000F2N51R0 1 Murata Manufacturing Co Ltd Parallel - Fundamental Quartz Crystal,
$0.83 查看
PVT422SPBF 1 International Rectifier Transistor Output SSR, 2-Channel, 4000V Isolation, LEAD FREE, PLASTIC, SURFCAE MOUNT, DIP-8
$8.57 查看
XRCGB32M000F1H00R0 1 Murata Manufacturing Co Ltd Parallel - Fundamental Quartz Crystal, 32MHz Nom, SMD, 3 PIN

ECAD模型

下载ECAD模型
$0.55 查看

相关推荐

电子产业图谱