基于51单片机的大棚环境土壤湿度光强监测系统proteus仿真原理图PCB

2023-11-05

功能介绍:
0.本系统采用STC89C52作为单片机
1.系统实时监测当前温湿度/土壤湿度/环境光强并显示
2.温湿度超过设定阈值范围,蜂鸣器响,同时开启对应控制继电器
3.土壤湿度低于设定下限,开启喷洒,直至达到上限,关闭喷洒
4.环境光强超过设定上限,启动遮阳伞,环境光强低于设定下限,停用遮阳伞
5.按键可修改阈值范围
6.采用DC002作为电源接口可直接输入5V给整个系统供电

原理图:
在这里插入图片描述

在这里插入图片描述

PCB :
在这里插入图片描述

主程序:

#include "main.h"

#define MAXCNT (64*64-1)
#define MINCNT (1)

/*******************变量定义*********************/
enum _MODE_DF_ dispMode;
uchar setIndex = 0;
uint humidity; //湿度
uint temperature; //温度
uint light;    //光强
float SH_Value = 0;//土壤湿度

uint hmMin= 50;//湿度下限
uint hmMax= 70;//湿度上限

uint tempMin = 25;//温度下限
uint tempMax = 40;//温度上限

uint lightMin = 30;//光照下限
uint lightMax = 60;//光照上限

int SH_Value_Min = 30;//土壤湿度下限
int SH_Value_Max = 60;//土壤湿度上限

uint motorCnt = 0;     //记录遮光棚位置
uchar motorFlag = 2;        //标记当前控制状态,=0遮阳棚已关闭,=1过程中,=2遮阳棚已打开
bit motorDir = 0;        //方向

bit dispFlag = 0;

bit buzzerFlag1 = 0; //蜂鸣器标志1
bit buzzerFlag2 = 0; //蜂鸣器标志2

char dis[16];

/********************************************************
函数名称:void mian()
函数作用:主函数
参数说明:
********************************************************/
void main()
{
   
    Timer0_Init(); //初始化定时器0

    LCD_Init();   //初始化液晶
    DelayMs(200); //延时有助于稳定
    LCD_DispStr(4, 0, "Welcome!");
	DelayS(1);
    LCD_Clear();  //清屏


    BYJ48 = ((BYJ48 & 0xF0) | REV[0]); //取数据
	ULN_DQ3 = BIT3; ULN_DQ2 = BIT2; ULN_DQ1 = BIT1; ULN_DQ0 = BIT0;


    while (1) //死循环
    {
   
        if (dispFlag == 1)
        {
   
            dispFlag = 0;

            if (dispMode == NORMAL)
            {
   
                DispNormal()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

基于51单片机的大棚环境土壤湿度光强监测系统proteus仿真原理图PCB 的相关文章

随机推荐