【Proteus仿真】【32单片机-A012】GP2D12红外测距系统设计

目录

一、主要功能

二、使用步骤

三、硬件资源

四、软件设计

五、实验现象

联系作者

一、主要功能

1、距离测量与LCD显示

2、低于测量阈值,警报模块启动

3、测量距离阈值设置

二、使用步骤

使用LCD1602液晶、按键、蜂鸣器、GP2D12红外传感器,

GP2D12红外传感器测量范围 20-150 因非线性测量存在误差。

系统运行后,LCD1602显示红外测量距离值和阈值;

当测量距离值低于阈值,报警器启动。

按键调节阈值。

三、硬件资源

1、32单片机核心模块

2、按键模块

3、GP2D12红外传感器

4、蜂鸣器模块

5、LCD1602显示模块

四、软件设计

复制代码
#include "delay.h"
#include "sys.h"
#include "1602.h"
#include "key.h"
#include "ADC.h"
#include "Tool.h"



u16 Infrared_value; //距离检测值
u16 Infrared_value_L=25; //距离检阈值


u8 Set_num=0;		//设置标志位
u8 Key_num=0;//按键值

void key_san(void);//按键判断函数
void Work(void);//工作运行函数

void Delay(int num)
{
	while(num--) ;
}
void display_data(void)///显示
{	
	LcdWriteCom(0x0C);	  		                            //取消光标闪烁	
	LcdWriteCom(0x80+7); //第一行
	LcdWriteData(Infrared_value%1000/100+0x30);
	LcdWriteData(Infrared_value%100/10+0x30);
	LcdWriteData(Infrared_value%10+0x30);
	
	LcdWriteCom(0x80+0x40+7); //第二行
	LcdWriteData(Infrared_value_L%1000/100+0x30);
	LcdWriteData(Infrared_value_L%100/10+0x30);
	LcdWriteData(Infrared_value_L%10+0x30);
}


int main()
{	
	delay_init();	    	 //延时函数初始化
	LCD1602_Init();      //lcd函数初始化
	ADC1_Init();      //adc函数初始化
	TOOL_Init();         //工具初始化
	KEY_Init();        //按键函数初始化
	while(1) 
	{	
		key_san();//按键判断函数
		middleAverageFilter();//获取ad值
		Work();//工作运行函数
		display_data();///显示
	}	  
}
void Work()//工作运行函数
{
	if(Key_num==0)
	{
		if(Infrared_value<Infrared_value_L)//低于距离
			BEEP  = 0;//开启
		else 
			BEEP  = 1;//关闭
	}
	else
		BEEP  = 1;//关闭

}
void key_san()//按键判断函数
{
		Key_num=KEY_Scan(0);
		switch(Key_num)
		{
			case 1://设置按键		
					if(Set_num==1)
						Set_num = 0 ;
					else	
						Set_num++;
				break;
			case 2://加
					if(Set_num==1)
					{
						if(Infrared_value_L<100) Infrared_value_L++;
					}
				break;
			case 3://减
					if(Set_num==1)
					{
						if(Infrared_value_L>20) Infrared_value_L--;
					}
				break;
			case 4:


				break;	
		}
		if(Set_num==1)
		{
			LcdWriteCom(0x80+0x40+15); //第二行
			LcdWritestr("<");
		}
		else if(Set_num==0)
		{
			LcdWriteCom(0x80+0x40+15); //第二行
			LcdWritestr(" ");
		}
}

五、实验现象

B站演示视频:

【STM32单片机-A012】【Proteus仿真】GP2D12红外测距系统仿真_哔哩哔哩_bilibili本项目使用Proteus8仿真STM32单片机GP2D12红外测距系统使用LCD1602液晶、按键、蜂鸣器、GP2D12红外传感器,GP2D12红外传感器测量范围 20-150 因非线性测量存在误差。系统运行后,LCD1602显示红外测量距离值和阈值;当测量距离值低于阈值,报警器启动。按键调节阈值。主要功能如下:1、距离测量与LCD显示2、低于测量阈值,警报模块启动3、测量距离阈值设置, 视频播放量 0、弹幕量 0、点赞数 0、投硬币枚数 0、收藏人数 0、转发人数 1, 视频作者 无忧电子设计, 作者简介 Q:215138327 V:Kinpar 承接51,32单片机设计定做,51,32单片机protues仿真,实物,程序等。,相关视频:【51单片机-B002】【protues仿真】基于51单片机多功能计算器仿真,基于STM32单片机DHT11温湿度检测系统仿真,【STM32单片机-A005】【Proteus仿真】烟雾温湿度检测系统,【51单片机-B005】【protues仿真】基于51单片机自动售货机12864屏幕1仿真,【STM32单片机-A008】【Proteus仿真】MPX4115压力检测系统仿真,【51单片机-B003】【protues仿真】基于51单片机交通灯1仿真,【51单片机-B004】【protues仿真】基于51单片机密码锁1仿真,【STM32单片机-A004】【Proteus仿真】超声波测距系统,基于STM32单片机DS18B20温度检测系统仿真,A006 基于STM32单片机PWM波形系统仿真https://www.bilibili.com/video/BV1WwTizVEZj/

联系作者

作者B站链接:https://space.bilibili.com/3493294220773802

专注于51单片机、STM32、Proteus、物联网软件开发,PCB设计。

相关推荐
点灯小铭6 小时前
基于单片机的多功能LCD音乐播放器设计
单片机·嵌入式硬件·毕业设计·课程设计·期末大作业
2501_927773078 小时前
嵌入式——时序IIC
单片机·嵌入式硬件
项目題供诗11 小时前
51单片机入门(七)
单片机·嵌入式硬件·51单片机
来自晴朗的明天11 小时前
1、光耦隔离电路
单片机·嵌入式硬件·硬件工程
国科安芯13 小时前
面向星载芯片原子钟的RISC-V架构MCU抗辐照特性研究及可靠性分析
单片机·嵌入式硬件·架构·制造·risc-v·pcb工艺·安全性测试
雪域迷影13 小时前
MacOS中运行Next.js项目注册新用户时MongoDB报错MongoServerError
mongodb·macos·react·next.js
三伏52214 小时前
Cortex-M3权威指南Cn第十章——笔记
笔记·单片机·嵌入式硬件·cortex-m3
独处东汉14 小时前
freertos开发空气检测仪之按键输入事件管理系统设计与实现
人工智能·stm32·单片机·嵌入式硬件·unity
小灰灰搞电子14 小时前
STM32/GD32 字节对齐详解
stm32·单片机·嵌入式硬件
AC赳赳老秦14 小时前
DeepSeek 辅助科研项目申报:可行性报告与经费预算框架的智能化撰写指南
数据库·人工智能·科技·mongodb·ui·rabbitmq·deepseek