1899基于单片机智能温室控制系统设计【毕设课设】

 

摘要
本文介绍了一种基于AT89C52单片机的智能温室控制系统设计。该系统通过实时检测环境温湿度,与设定的目标值进行比较,自动控制降温、加热、干燥及加湿机构,以维持温室内的温湿度在设定范围内。同时,系统通过LED展示当前状态,并允许通过按键设定温湿度目标范围值。
关键词:单片机;智能温室;控制系统;温湿度检测;执行机构

一、引言

随着现代农业的发展,温室作为一种重要的农业生产设施,其环境控制技术的优劣直接影响到作物的生长和产量。传统的温室环境控制多采用人工调节方式,不仅效率低下,而且难以保证温室内环境的稳定性。因此,开发一种能够自动监测和调节温室环境的控制系统具有重要意义。

二、系统设计方案

本系统以AT89C52单片机为核心,结合温湿度传感器SHT10、逻辑门电路74HC07、NPN三极管、LED指示灯以及加热、降温、干燥、加湿等执行机构,构成了一个完整的智能温室控制系统。

  1. 温湿度检测与信号处理

SHT10温湿度传感器负责实时检测温室内的温度和湿度值,并将模拟信号转换为数字信号输出。通过74HC07逻辑门电路对信号进行整形和放大,以满足单片机的输入要求。

  1. 控制逻辑设计

单片机接收到温湿度信号后,将其与目标值进行比较。根据比较结果,单片机通过控制NPN三极管的通断,实现对加热、降温、干燥、加湿等执行机构的控制。

  1. LED状态显示

系统通过多个LED指示灯展示当前温室内的温湿度状态以及各执行机构的工作状态。LED的亮灭状态由单片机根据实时检测数据和控制逻辑进行控制。

  1. 按键设定功能

系统设有按键输入模块,用户可以通过按键设定温湿度的目标范围值。单片机根据按键输入的值调整控制逻辑,以满足不同作物对温室环境的需求。

三、元器件清单及功能说明

  1. AT89C52单片机:作为系统的核心控制器,负责数据的处理和控制逻辑的实现。

  2. SHT10温湿度传感器:用于实时检测温室内的温度和湿度值。

  3. 74HC07逻辑门电路:对传感器输出的信号进行整形和放大。

  4. NPN三极管:作为执行机构的开关控制元件。

  5. LED指示灯:用于展示当前状态。

  6. 加热、降温、干燥、加湿执行机构:根据单片机的控制信号,实现对温室环境的调节。

  7. 按键输入模块:用于设定温湿度的目标范围值。

  8. 其他元器件:包括电阻、电容、晶振等,用于提供系统所需的基本电路条件。

四、结论

本设计基于AT89C52单片机实现了一种智能温室控制系统,能够实时监测和调节温室内的温湿度环境,提高了温室管理的效率和作物的生长质量。该系统具有结构简单、控制精确、操作方便等优点,适用于各类温室环境控制需求。

#include<reg52.h>
#include"sht10.h"
#include"ds1302.h"
#include"lcd1602.h"
unsigned char TempBuffer[4];
unsigned char humBuffer[4];
unsigned char set[4];
unsigned char set_temp=20,set_hum=20;
unsigned char mode=6;
//unsigned char Key3_val=0;
sbit JIARE=P2^5;//定义加热 降温 加湿 干燥四个端口
sbit JIANGWEN=P2^4;
sbit JIASHI=P2^6;
sbit GANZAO=P2^7;

sbit JIARE_FLAG=P1^5;//定义模式标志位
sbit JIANGWEN_FLAG=P1^6;
sbit JIASHI_FLAG=P1^7;
sbit GANZAO_FLAG=P3^6;
sbit ZIDONG_FLAG=P3^7;

sbit KEY0=P3^2;//定义按键
sbit KEY1=P3^3;
sbit KEY2=P3^4;
void delay_ms(unsigned char k)//延时k ms
{
	unsigned char i,j;
	for(i=0;i<k;i++)
	for(j=0;j<110;j++);
}
//INT 数据转字符串
/*t为int型数据用n个字节存放*/
void IntToStr(unsigned int t, unsigned char *str, unsigned char n) 
{
	unsigned char a[5]; char i, j;                                 	
	a[0]=(t/10000)%10;            	
	a[1]=(t/1000)%10;                                     	
	a[2]=(t/100)%10;                                      	
	a[3]=(t/10)%10;                                       	
	a[4]=(t/1)%10;                                        	
                                                      
	for(i=0; i<5; i++)                	
		a[i]=a[i]+'0';                                    	
	for(i=0; a[i]=='0' && i<=3; i++);                     	
	for(j=5-n; j<i; j++)                       	
		{ *str=' ';  str++; }                             	
	for(; i<5; i++)                                       	
		{ *str=a[i]; str++; }       	
	*str='\0'; 
} 
void Int_init(void)//初始化外部中断
{
	IT0=1;
	EX0=1;
	IT1=1;
	EX1=1;
	PX1=1;
	EA=1;
}
void TH_set(void)//显示设定的温湿度
{
   GotoXY(6,1);
	 IntToStr(set_temp,&set[0],2);
	 Print(set);
	 GotoXY(10,1);
	 IntToStr(set_hum,&set[0],2);
	 Print(set);
	 GotoXY(15,1);
	 IntToStr(mode,&set[0],1);
	 Print(set);
}

资料下载地址:

https://docs.qq.com/doc/p/ffc421513a628b30450ae742547c0b850456d7c8

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值