设置温室模型(鞋盒模拟),上层铺设透明塑料保鲜膜。
51单片机电路设计,
液晶显示电路1602,
光检测电路,
土壤湿度检测电路的组成。
A/D模块PCF8591电路、
1颗高亮LED照明补光电路,
温度检测DS18B20电路、
1颗黄色高亮LED灯加热电路,
风扇电路、
水泵灌溉电路,
四位按键电路,
1.通过光敏电阻检测光强,然后A/D模块PCF8591处理后,将光强值实时显示在液晶上,并按键控制光强值,
当光线低于设定阈值时,一个白色明亮LED如果光线高于设定阈值,则无需管理。
2、通过DS18B20检测温度值,实时显示在1602液晶上,温度值可以通过按钮设。当温度低于设定值时,它是黄色的LED灯模拟。当温度超过设定值时,风扇旋转。
3、通过土壤湿度传感器检测土壤湿度,并在液晶上实时显示湿度值,当土壤湿度小于设定阈值时,可设置土壤读者。当阈值大于阈值时,不要移动。
#include //包含头文件,一般不需要更改。头文件包含特殊功能寄存器的定义
#include
#include "1602.h"
#include "delay.h"
#include "sysdefine.h"
#include"18b20.h"
sbit led_l = P1^0;
sbit led_b = P1^1;
sbit fan = P1^4;
sbit relay = P1^3;
sbit key_s = P3^4;
sbit key_a = P3^5;
sbit key_u = P3^6;
void Init_Timer0(void);
unsigned char readTem = FALSE ;//定义阅读时间标志
unsigned char readADCFlag = FALSE ;
int temp;
float temperature = 0;
char disdat[16]; ///打印数组初始化
char disset[16];
unsigned long time_20ms=0; //定时器计数
float Lv=0.0; //光照采集电压
float Tv=0.0; ///土壤采集电压
unsigned int Lval =0; ///光强
unsigned int Rval = 0; ///土壤湿度
unsigned int distem;
unsigned char rekey = 0;
unsigned char SetFlag = 0; //设置值
unsigned char setLval = 50;
unsigned char setRval = 50;
unsigned char setTval = 30;
void main (void)
{
unsigned char midval;
Init_Timer0();
LCD_Init(); ///初始化液晶
DelayMs(20); //延迟有助于稳定
LCD_Clear(); //清屏
sprintf(disdat,"L:- R:- T:- C",Lval,Rval,distem);//打印电压电流值
LCD_Write_String(0,0,disdat);//显示
sprintf(disset," L:- R:- T:-",(unsigned int)setLval,(unsigned int)setRval,(unsigned int)setTval);//打印电压电流值
LCD_Write_String(0,1,disset);
while (1) //主循环
{