[リソースのダウンロード]ダウンロードアドレスは次のとおりです:https:
//docs.qq.com/doc/DTlRSd01BZXNpRUxl
温室モデル(靴箱でシミュレート)を設定し、最上層を透明なプラスチックの粘着フィルムの層で覆います。
この設計は、51個のシングルチップ回路、
1602個の液晶ディスプレイ回路、
光検出回路、および
土壌水分検出回路で構成されています。
A / DモジュールPCF8591回路、
1つの高輝度LEDランプ充填光回路、
温度検出DS18B20回路、
1つの黄色の高輝度LEDランプ加熱回路、
ファン回路、
ウォーターポンプ灌漑回路、
4ポジションボタン回路、
1.フォトレジストで光強度を検出し、A / DモジュールPCF8591を処理してLCDに光強度値をリアルタイムで表示し、ボタンを押すことで光強度値を制御できます。
光が設定しきい値より低い場合、1白高LEDライトをオンにしてライトを埋めます。ライトが設定されたしきい値よりも高い場合は、無視してください。
2. DS18B20で温度値を検出し、1602 LCDにリアルタイムで表示し、ボタンを押すだけで温度値を設定できます。設定値より低い場合は、黄色の明るいLEDライトでシミュレートします。設定値を超えるとファンが回転します。
3.土壌湿度センサーにより土壌湿度を検出し、LCDにリアルタイムで湿度値を表示し、リーダーを土壌に設定することができます。土壌湿度が設定したしきい値を下回ると、ウォーターポンプが水を追加します。しきい値よりも大きい場合、アクションはありません。
#include<reg52.h> //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义
#include<stdio.h>
#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:%2d R:%2d T:%2d C",Lval,Rval,distem);//打印电压电流值
LCD_Write_String(0,0,disdat);//显示
sprintf(disset," L:%2d R:%2d T:%2d",(unsigned int)setLval,(unsigned int)setRval,(unsigned int)setTval);//打印电压电流值
LCD_Write_String(0,1,disset);
while (1) //主循环
{