51单片机——自动浇花系统(含全部代码)

目录

正文

设计目的

功能设计

所需元件

设计方法

主要代码

详细代码


正文

设计目的

生活中难免会忘记给自己可爱的花花浇水,本设计就来给我们解决这一难题

功能设计

可实现自动浇花,遥控浇花,按键浇花,可以随时观看土壤湿度,水流大小等

所需元件

51单片机,湿度检测模块,PCF8591,LCD1602,抽水泵,,红外遥控,按键,AT24C02

设计方法

基于51单片机

湿度检测模块检测湿度

PCF8591对采集来的湿度进行AD转换

LCD1602显示当前湿度,水流大小

设置阈值下限控制抽水泵进行自动浇花

按键进行近距离手动浇花,调节水流大小

红外遥控进行远距离手动遥控浇花,调节水流大小

AT24C02进行掉电保存

主要代码

main()
{
	Init_all();//初始化
    while(1)
	{
/*********红外遥控浇花*************/
		if(IRok)//判断33次脉宽是否提取完成
		{
			IRcordpro();//根据33次脉宽解码出4个字节数据
			IRok=0;//清零脉宽检查完成标志位等待下一次脉宽检查
		}
		
		if(IRpro_ok) 
			{
				IR_Work();
				IRpro_ok=0;
			}

/**********按键浇花*****************/
		Key();//按键浇花

/**********湿度检测+AD转换*********/	
        EA = 0;	
		num = PCF8591Read(3);
		EA = 1;
		delay(5);
			
		AD_num=ADC_num(num);//AD归一化

/**********阈值设置+自动浇花*******/		
		VPT=(shi-48)*10+(ge-48);
			
		if(AD_num<VPT)
		{
		  flag1=1;
		}
		else
		{
		  flag1=0;
		}
		
		if(flag==0)
		{
		  switch(flag1)
	      {
		     case 0: ET1=0;TR1=0;PWM=0; break;
		     case 1: ET1=1;TR1=1;break;
	      }
		}

		shi1=AD_num/10;
			
        ge1=AD_num-shi1*10;
    			
/********LCD1602显示********/		
	    LCD1602_Work();	
			

/********AT24C02**********/
		AT24_write(2,shi);
		AT24_write(3,ge);
		AT24_write(4,M);
	}
}

详细代码

链接:https://pan.baidu.com/s/1wbrABMEA1BS28ZBpyF76-w 
提取码:1234

评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小白变形计

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值