单片机智能农业温度大鹏

单片机智能农业温度大鹏,第1张

#include
#include
#include
#include
#include
sbit k1=P3^3;
sbit k2=P2^1;
sbit k3=P2^2;
sbit beep=P1^1;
sbit led1=P3^5;
sbit led2=P3^0;
sbit led3=P3^4;
sbit moto=P1^0;
u1 a,c;
u1 mode,flag;
u1 miao,num1;
u2 guangzhao;
u2 guangzhaoH=1600;
char temph=20,templ=5;
char humih=80,humil=20;
u1 code num[10]="0123456789";
u1 temp,humi,tempvalue;
u1 code str1[]="T:";  //温度
u1 code str2[]="H:";  //湿度
u1 code str3[]="Error";  
u1 code str4[]="Success    "; 
u1 code str5[]="%RH";
u1 code str6[]="TempH:";	  //设定温度上限显示
u1 code str7[]="TempL:";	  //设定温度下限显示
u1 code str8[]="HumiH:";	   //设定湿度上限显示
u1 code str9[]="HumiL:";
u1 code str10[]="G:";
u1 code str11[]="GuangZH:";	   //设定湿度上限显示
u1 code str13[]="lux";
u1 code sy1[]="ICCS         ";
u1 code sy2[]="1058";
u1 ds18b20_read_temp()
{
	u1 b;
	ds18b20_reset(); //复位
	 ds18b20_check();	
	 ds18b20_write_byte(0xcc);//写入地址
	 ds18b20_write_byte(0x44); //开始转化命令
	 delay10us(100);
	 ds18b20_reset();//复位
	 ds18b20_check();
	 ds18b20_write_byte(0xcc);//写入地址
	 ds18b20_write_byte(0xbe);//写入存储器命令
	 a=ds18b20_read_byte();//读取温度低字节
	 b=ds18b20_read_byte();
	b<<=4;
	c=b&0x80;
	b+=(a&0xf0)>>4;
	a=a&0x0f;
	return b;
}

u1 DAT_read_date(u1 *temp,u1 *humi)
{
	u1 buf[5];
	u1 i;
   	DAT_rest();
	if(DAT_check()==0)
	{
		for(i=0;i<5;i++)
		{	
			buf[i]=DAT_read_byte();
		}
		if((buf[0]+buf[1]+buf[2]+buf[3])==buf[4])
		{
			*humi=buf[0];
			*temp=buf[2];	
		}
	}
	else return 1;
	return 0;
}
void sound()
{
	u1 i=50;
	while(i--)
	{
		beep=!beep;
		delay1ms(2);
		
	}
}
void key_scan()
{
	if(k1==0)
	{
		delay1ms(10);
		if(k1==0)
		{
			mode++;
			if(mode==6)mode=0;
			LCD1602_write_com(0x01);
		}
		while(!k1);
	}
	if(mode==1)
	{
		if(k2==0)
		{
			delay1ms(10);
			if(k2==0)
			{
				temph++;
				if(temph>=80)temph=80;
			}
			while(!k2);
		}
		if(k3==0)
		{
			delay1ms(10);
			if(k3==0)
			{
				temph--;
				if(temph<=0)temph=0;	
			}
			while(!k3);
		}
	}
	if(mode==2)
	{
		if(k2==0)
		{
			delay1ms(10);
			if(k2==0)
			{
				templ++;
				if(templ>=80)templ=80;
			}
			while(!k2);
		}
		if(k3==0)
		{
			delay1ms(10);
			if(k3==0)
			{
				templ--;
				if(templ<=0)templ=0;	
			}
			while(!k3);
		}	
	}
   
	if(mode==4)
	{
		if(k2==0)
		{
			delay1ms(10);
			if(k2==0)
			{
				humil++;
				if(humil>=80)humil=80;
			}
			while(!k2);
		}
		if(k3==0)
		{
			delay1ms(10);
			if(k3==0)
			{
				humil--;
				if(humil<=0)humil=0;	
			}
			while(!k3);
		}	
	}
	if(mode==5)
	{
		if(k2==0)
		{
			delay1ms(10);
			if(k2==0)
			{
				guangzhaoH++;
				if(guangzhaoH>=2300)guangzhaoH=2300;
			}
			while(!k2);
		}
		if(k3==0)
		{
			delay1ms(10);
			if(k3==0)
			{
				guangzhaoH--;
				if(guangzhaoH<=0)guangzhaoH=0;	
			}
			while(!k3);
		}	
	}
	
}
void lcd1602_inti_display()
{
	u1 i;
	LCD1602_write_com(0x80);
	for(i=0;i<2;i++)
	{
		LCD1602_write_dat(str1[i]);	
	}
	LCD1602_write_com(0xc0);
	for(i=0;i<2;i++)
	{
		LCD1602_write_dat(str2[i]);	
	}
	LCD1602_write_com(0xc8);
	for(i=0;i<2;i++)
	{
		LCD1602_write_dat(str10[i]);	
	}

}
void baojinpros()
{
	
	if((tempvalue>=temph)||(humi>=humih))
	{
		sound();
		moto=1;
	}
	if(guangzhao<1200)
	{
		sound();	
	}
	if(guangzhao<1100)
	{
		led1=0;
		led2=0;
		led3=0;

	}
	else if(guangzhao<1300)
	{
		led1=0;
		led2=0;
		led3=1;
	}
	else if(guangzhao<1800)
	{
		led1=0;
		led2=1;
		led3=1;
	}
	else
	{
		led1=1;
		led2=1;
		led3=1;	
	}
	if((tempvalue<=templ)||(humi<=humil))
	{
		moto=0;
	}
   if((tempvalue>templ)&&(tempvaluehumil)&&(humi=3)
		{
			miao=4;
		}
	}

}
• 9 月 20 日 8:00 竞赛正式开始。 • 参赛者必须是有正式学籍的全日制在校本、专科学生,应携带能够证明参赛者学生身份的有 效证件(如学生证)随时备查。每队严格限制 2 人。 • 参赛队必须在指定的竞赛场进行独立设计和制作,不得携带电子存储设备和手机等上网通讯 设备,不得以任何方式与他人交流,包括教师在内的非参赛队员必须回避,对违纪参赛队取 消参赛资格,按零分计算。 • 9 月 20 日 12:00 竞赛结束,离开现场,12:50 评委按照抽签顺序评测,每组出一名同学现场 演示,签字确认结果。(每个测评组 2 名专家组成) • 作品评测过程中,只做功能演示,不与裁判员交流,裁判员以作品实际功能演示结果作为依 据。评测过程中,如遇故障,参赛队员可在一分钟内调整,每超时一分钟扣 5 分,超过 3 分 钟则评测结束。 智能农业大棚控制系统(A 平台) 一、任务 设计并制作智能农业大棚控制系统。开机后,屏幕第一行显示“ICCS”,第 二行显示“抽签号后 4 位数”(如 1085),并自下而上滚动,3 秒后停止滚动。画 出系统各组件连接图,并简要说明,画出键盘图并标注各键功能。画出全部程序流 程图。 二、基本功能要求 (1)以 12864 点阵屏作为显示终端,显示大棚温湿度(单位摄氏度、相对湿 度)、光照(单位 lux)信息;显示补光灯、鼓风机(电机模拟)工作状态(开启或 关闭)。其中大棚温湿度来自于温湿度传感器、光照来自于光敏电阻或其他传感器、 补光灯为高亮 LED 输出。 (2)温湿度数据、光照数据每隔 2 秒动态刷新;采用合理方式调整温湿度、 光照信号变化,以产生可见动态效果。 (3)当大棚温湿度高于某限定值,语音模块报警(报警内容:温湿度超 限),同时鼓风机(电机模拟)工作 5 秒并关闭;当光照低于某限定值,语音模块报 警(报警内容:光照亮度偏低),补光灯亮起,高于某限定值,补光灯灭。 三、发挥要求 (1)当补光灯亮起后,具有自动调节亮度功能,分为三档“弱、中、强”,根 据不同光照强度切换对应档位。 (2)设计键盘输入,设置室温、湿、光照限定值报警功能,并实现声、光报 警。 (3)设计 RFID 射频 IC 卡功能,可以设置卡的级别:管理卡,用户卡。刷 “管理卡”,屏幕显示管理卡,同时可以制作用户卡;刷“用户卡”,屏幕显示用户 卡。 (4)刷“用户卡”,按下功能按键,实现历史数据查询功能,可以记录 30 秒数 据(共 15 次),通过翻页等可实现数据历史查询。 无偿分享,可交流QQ1494728092

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/915174.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-16
下一篇2022-05-16

发表评论

登录后才能评论

评论列表(0条)

    保存