基于基于51单片机士壤湿度检测及自动浇花系统单片机士壤湿度检测及自动浇花系统
1、设计需求及目标、设计需求及目标
通过在单片机程序内设定浇灌湿度值,当采集的湿度样本低于设定湿度值时,开始浇水,高于湿度值,则报警器工作,发出信号,停止浇水。
2、设计思路及方案、设计思路及方案
本次毕业设计是设计一种51单片机控制的自动浇水系统,实现室内盆花浇水的自动化系统。该系统可对土壤的湿度进行监控,并对作物进行适时适量的浇水。其核心是51单片机和土壤湿度检
测器YL-69和显示电路以及浇水继电器驱动电路构成的检测控制部分。主要研究土壤湿度与浇水时间之间的关系、浇灌控制技术及设备系统的硬件、软件编程各个部分。检测部分,单片机选用
AT89C51单片机,软件选用C51语言编程。土壤湿度采集与显示电路可将检测到的土壤湿度模拟量放大转换成数字量通过单片机内程序控制精确的将温度与湿度分别显示在LED数码管显示屏
上,通过单片机内的中断服务程序判断是否要给盆花浇水,若需浇水,则单片机系统发出浇水信号,开始浇水,若不需要浇水,则进行下一次循环检测。在浇水系统中也同时设计一个定时浇水
部分,通过按键开关设置不同的浇水时间段,在时间段以内时,单片机驱动浇水系统,开始浇水,如不在时间段内,则不浇水。硬件电路:
3、部分代码、部分代码
#include //调用单片机头文件
#define uchar unsigned char //无符号字符型 宏定义 变量范围0~255
#define uint unsigned int //无符号整型 宏定义 变量范围0~65535
#include
sbit SCL=P1^4; //SCL定义为P1口的第3位脚,连接ADC0832SCL脚
sbit DO=P1^5; //DO定义为P1口的第4位脚,连接ADC0832DO脚
sbit CS=P1^3; //CS定义为P1口的第4位脚,连接ADC0832CS脚
sbit beep = P3^3; //蜂鸣器IO口定义
uint temperature,s_temp ; //温度的变量
uchar shidu; //湿度等级
uchar s_high = 70,s_low = 25; //湿度报警参数
sbit dianji = P1^6; //电机IO定义
bit flag_300ms ;
uchar key_can; //按键值的变量
uchar menu_1; //菜单设计的变量
//这三个引脚参考资料
sbit rs=P1^0; //1602数据/命令选择引脚 H:数据 L:命令
sbit rw=P1^1; //1602读写引脚 H:数据寄存器 L:指令寄存器
sbit e =P1^2; //1602使能引脚 下降沿触发
uchar code table_num[]="0123456789abcdefg";
/********************************************************************
* 名称 : delay_uint()
* 功能 : 小延时。
* 输入 : 无
* 输出 : 无
***********************************************************************/
void delay_uint(uint q)
{
while(q--);
}
/********************************************************************
* 名称 : write_com(uchar com)
* 功能 : 1602命令函数
* 输入 : 输入的命令值
* 输出 : 无
***********************************************************************/
评论0