当前位置: 首页 > news >正文

基于51单片机的盆栽自动浇花系统

一.硬件方案

工作原理是湿度传感器将采集到的数据直接传送到ADC0832的IN端作为输入的模拟信号。选用湿度传感器和AD转换,电路内部包含有湿度采集、AD转换、单片机译码显示等功能。单片机需要采集数据时,发出指令启动A/D转换器工作,ADC0832根据送来的地址信号选通IN1通道,然后对输入的模拟信号进行转换,转换结束时,EOC输出高电平,通知单片机可以读取转换结果,单片机通过调用中断程序,读取转换后的数据。最后,单片机把采集到的湿度数据经过软件程序处理后送到LCD1602进行显示。电路主要由STC89C52单片机,ADC0832,LCD1602液晶,土壤湿度传感器,温度传感器,抽水电机,按键,蜂鸣器设计;

二.设计功能

(1)液晶第一行显示 实际的湿度,液晶第二行显示 湿度上限值 湿度下限值。
(2)按键说明:从左边第一个起,减键、加键、设置键。。
(3)可以设置湿度和温度的上下限报警范围,并具有掉电保存功能,保存在STC单片机内部,上电无需重新设置。
(4)当湿度低于下限值时,打开水泵进行抽水自动灌溉同时声光报警,当湿度高于上限值时,自动关闭水泵停止灌溉。
(5)当温度高于上限值时,打开水泵进行抽水自动灌溉同时声光报警,当温度低于下限值时,自动关闭水泵停止灌溉。
(6)具有手动模式,按减键手动打开抽水电机,可以按加键手动关闭抽水电机。

三.设计原理图

Protues仿真图如下:
在这里插入图片描述

四.软件设计

主程序源码

/***************主函数*****************/
void main()
{init_1602();			   //1602液晶初始化time_init();				//初始化定时器 while(1){key();					//独立按键程序if(key_can < 10){key_with();			//按键按下要执行的程序}if(flag_300ms == 1){		flag_300ms = 0;	  clock_h_l();	 //报警函数 if(beep == 1){shidu = Adc0832(0);	//读出湿度shidu = 99 - shidu * 99 / 255;}if(menu_1 == 0){write_sfm2(1,9,shidu);		   //显示湿度等级}} delay_1ms(1);}
}
/*************定时器0中断服务程序***************/
void time0_int() interrupt 1
{	static uchar value;TH0 = 0x3c;TL0 = 0xb0;     // 50msvalue ++;	 if(value % 6 == 0){flag_300ms = 1;	   //300msvalue = 0;}
}

资料链接:https://pan.baidu.com/s/1ORRvAoIsLH30jrH4GSM8Pg?pwd=coxh

相关文章:

  • STM32F103 标准库介绍及PWM波控制LED亮度
  • CnosDB:深入理解时序数据质量函数
  • MFC GDI 绘图模式、映射模式、画笔、笔、字体
  • 题解:CF859C Pie Rules
  • tcpdump源码分析
  • Python数据分析实验四:数据分析综合应用开发
  • AWS安全性身份和合规性之IAM Identity Center(AWS Single Sign-On)
  • 民国漫画杂志《时代漫画》第13期.PDF
  • AI早班车5.25
  • 【EXCEL_VBA_基础知识】10 使用Dir函数合并多个文件数据
  • python冰雹序列的探索与编程实现
  • Restful API设计与使用:介绍什么是RESTful架构,以及如何在Spring Boot中设计和实现Restful API
  • Mybatis源码剖析---第二讲
  • 【Java面试】一、Redis篇(上)
  • 链表-设计LRU缓存结构
  • [分享]iOS开发 - 实现UITableView Plain SectionView和table不停留一起滑动
  • 【347天】每日项目总结系列085(2018.01.18)
  • 2019.2.20 c++ 知识梳理
  • - C#编程大幅提高OUTLOOK的邮件搜索能力!
  • ECMAScript6(0):ES6简明参考手册
  • Invalidate和postInvalidate的区别
  • Java编程基础24——递归练习
  • PHP面试之三:MySQL数据库
  • TypeScript实现数据结构(一)栈,队列,链表
  • 测试开发系类之接口自动化测试
  • 使用putty远程连接linux
  • 我建了一个叫Hello World的项目
  • 译米田引理
  • Linux权限管理(week1_day5)--技术流ken
  • 阿里云重庆大学大数据训练营落地分享
  • ​卜东波研究员:高观点下的少儿计算思维
  • # 再次尝试 连接失败_无线WiFi无法连接到网络怎么办【解决方法】
  • #数据结构 笔记一
  • #我与Java虚拟机的故事#连载09:面试大厂逃不过的JVM
  • (4)(4.6) Triducer
  • (C++)栈的链式存储结构(出栈、入栈、判空、遍历、销毁)(数据结构与算法)
  • (C++17) std算法之执行策略 execution
  • (JS基础)String 类型
  • (ZT)出版业改革:该死的死,该生的生
  • (二十一)devops持续集成开发——使用jenkins的Docker Pipeline插件完成docker项目的pipeline流水线发布
  • (分布式缓存)Redis分片集群
  • (附源码)springboot美食分享系统 毕业设计 612231
  • (附源码)ssm智慧社区管理系统 毕业设计 101635
  • (力扣)1314.矩阵区域和
  • (杂交版)植物大战僵尸
  • (转)Linux下编译安装log4cxx
  • (转)机器学习的数学基础(1)--Dirichlet分布
  • (转)重识new
  • (轉貼) 寄發紅帖基本原則(教育部禮儀司頒布) (雜項)
  • **PHP分步表单提交思路(分页表单提交)
  • *setTimeout实现text输入在用户停顿时才调用事件!*
  • .Net - 类的介绍
  • .NET 4 并行(多核)“.NET研究”编程系列之二 从Task开始
  • .net core MVC 通过 Filters 过滤器拦截请求及响应内容
  • .net core 调用c dll_用C++生成一个简单的DLL文件VS2008