基于51单片机的自动浇花系统
目录
一、项目需求
二、仿真
三、程序
四、资料清单
资料下载地址:基于51单片机的自动浇花系统
一、项目需求
1、自动检测土壤湿度、温度、光照强度;
2、土壤湿度过低驱动水泵进行浇花;
3、LCD1602显示当前土壤湿度、温度、光照强度;
4、当光强、温度超过一定范围后报警;
二、仿真
三、程序
部分程序
enum { TEMP,HUMI };
typedef union //定义共用同类型
{unsigned int i;float f;
}value;int display = 0;
void delay(uchar ms)
{ // 延时子程序
uchar i;
while(ms--)
{ for(i = 0;i<250;i++);
}
}char ShtWriteByte(unsigned char value)
{unsigned char i,error=0;for(i=128;i>0;i>>=1) // 高位为1,循环右移{if (i&value)Data_P=1; // 和要发送的数相与,结果为发送的位elseData_P=0;Sck_P=1;_nop_(); // 延时3us_nop_();_nop_();Sck_P=0;}Data_P=1; // 释放数据线Sck_P=1;error=Data_P; // 检查应答信号,确认通讯正常_nop_();_nop_();_nop_();Sck_P=0;Data_P=1;return error; // error=1 通讯错误
}char ShtReadByte(unsigned char ack)
{unsigned char i,val=0;Data_P=1; // 释放数据线for(i=0x80;i>0;i>>=1) // 高位为1,循环右移{Sck_P=1;if(Data_P)val=(val|i); // 读一位数据线的值Sck_P=0;}Data_P=!ack; // 如果是校验,读取完后结束通讯Sck_P=1;_nop_(); // 延时3us_nop_();_nop_();Sck_P=0;_nop_();_nop_();_nop_();Data_P=1; // 释放数据线return val;
}void ShtTransStart(void)
{Data_P=1;Sck_P=0;_nop_();Sck_P=1;_nop_();Data_P=0;_nop_();Sck_P=0;_nop_();_nop_();_nop_();Sck_P=1;_nop_();Data_P=1;_nop_();Sck_P=0;
}void ShtConnectReset(void)
{unsigned char i;Data_P=1; //准备Sck_P=0;for(i=0;i<9;i++) //DATA保持高,SCK时钟触发9次,发送启动传输,通迅即复位{Sck_P=1;Sck_P=0;}ShtTransStart(); //启动传输
}char ShtMeasure(unsigned char *p_value, unsigned char *p_checksum, unsigned char mode)
{unsigned error=0;unsigned int i;ShtTransStart(); // 启动传输switch(mode) // 选择发送命令{case 1 : // 测量温度error+=ShtWriteByte(0x03);break;case 2 : // 测量湿度error+=ShtWriteByte(0x05);break;default:break;}for(i=0;i<65535;i++)if(Data_P==0)break; // 等待测量结束if(Data_P)error+=1; // 如果长时间数据线没有拉低,说明测量错误*(p_value) =ShtReadByte(1); // 读第一个字节,高字节 (MSB)*(p_value+1)=ShtReadByte(1); // 读第二个字节,低字节 (LSB)*p_checksum =ShtReadByte(0); // read CRC校验码return error; // error=1 通讯错误
}void CalcSHT11(float *p_humidity ,float *p_temperature)
{const float C1=-4.0; // 12位湿度精度 修正公式const float C2=+0.0405; // 12位湿度精度 修正公式const float C3=-0.0000028; // 12位湿度精度 修正公式const float T1=+0.01; // 14位温度精度 5V条件 修正公式const float T2=+0.00008; // 14位温度精度 5V条件 修正公式float rh=*p_humidity; // rh: 12位 湿度float t=*p_temperature; // t: 14位 温度float rh_lin; // rh_lin: 湿度 linear值float rh_true; // rh_true: 湿度 ture值float t_C; // t_C : 温度 ℃t_C=t*0.01 - 40; //补偿温度rh_lin=C3*rh*rh + C2*rh + C1; //相对湿度非线性补偿rh_true=(t_C-25)*(T1+T2*rh)+rh_lin; //相对湿度对于温度依赖性补偿*p_temperature=t_C; //返回温度结果*p_humidity=rh_true; //返回湿度结果
}
四、资料清单
基于51单片机的自动浇花系统相关推荐
- 基于51单片机的自动浇花系统设计/基于51单片机的智能抽奖系统控制设计/基于51单片机的数字时钟与日历显示控制设计 毕业设计
1147基于51单片机的自动浇花系统设计 设计思路:通湿度传感器实时监测湿度,通过LCD显示出实时的湿度采集值,可以通过按键设定目标界限,当达到这个界限值时,浇花系统的电机装置运行. 电路包含:LCD ...
- 基于51单片机的智能浇花系统(可做毕设)
基于51单片机的智能浇花系统(可做毕设) 一.系统介绍 二.仿真展示 三.实物展示 四.仿真过程 五.代码 1.ADC0832 2.LCD1602 3.按键 4.水泵 5.温湿度 6.定时器 7.ma ...
- 【51单片机】基于51单片机的智能浇花系统的设计与实现
技术:C语言.单片机等 摘要: 本设计是基于51系列单片机而设计的智能浇花系统,本系统结合单片机编程技术.传感器技术以及GSM通信技术实现系统基本功能,使系统根据不一样的土壤湿度,能够相应的改变浇水要 ...
- 基于51单片机的自动浇花浇水系统LCD1602显示仿真
硬件设计 基本框架 该电路的工作原理是由STC89C52单片机和ADC0832组成系统的核心部分,湿度传感器将采集到的数据直接传送到ADC0832的IN端作为输入的模拟信号.选用湿度传感器和AD转换, ...
- 基于51单片机的自动浇花系统设计
引言 1 选题的目的和意义 随着社会的进步,人们的生活质量越来越高.在家里养养盆花可以陶冶情操,丰富生活.同时盆花可以通过光合作用吸收二氧化碳,净化室内空气,在有花木的地方空气中阴离子聚集较多,所以空 ...
- diy 单片机 自动浇花_基于单片机的自动浇花系统
摘要 很多家庭都种植有令人赏心悦目的花卉,但是当主人外出几天时,为避免这些花卉处于无人浇水的境地,所以设计一种自动浇花器十分必要的.本系统采用51单片机STC12C5A60S2作为核心控制器,用土壤湿 ...
- 基于单片机的自动追日系统设计_基于单片机的自动浇花系统的设计
龙源期刊网 http://www.qikan.com.cn 基于单片机的自动浇花系统的设计 作者:吴蓓 张阳 来源:<现代信息科技> 2018 年第 03 期 摘 要:为了解决人们生活中由 ...
- c语言数字植物管理系统,基于AT89C52单片机的智能浇花系统(包含程序代码)
内容简介: 基于AT89C52单片机的智能浇花系统,毕业论文,共50页,18022字,附程序代码.实物图等. 摘要 伴随着经济的快速发展,人们的物质生活水平得到了极大的提高,生活质量越来越为人们关注. ...
- diy 单片机 自动浇花_基于单片机的自动浇花系统的设计
中图分类号:TP368.12文献标识码:A 文章编号:2096-4706(2018)03-0000-03 Design of Automatic Watering System Basedon Sin ...
最新文章
- Google 多任务学习框架 MMoE
- TransG : A Generative Model for Knowledge Graph Embedding ACL 2016.Berlin, Germany.
- python【力扣LeetCode算法题库】289- 生命游戏
- Hadoop学习之Hadoop集群的定制配置(一)
- win7/WIN8.1(x64) 下使用MSDE WIN10不行
- 详述WebLogic反序列化远程命令执行漏洞的处理过程,云和恩墨技术通讯精选
- androidpn php,服务器推送消息到Android终端方法
- U盘美化(更换U盘logo和页面背景软件)
- 【python】QQ 空间照片下载器
- zip与rar的区别
- JavsScript
- 5.7 矩阵的逆的性质
- BSOJ 2927 -- 【模拟试题】保镖排队
- navicat for mysql 10.1.7下载破解(2017.12.30)
- 苹果手机微信聊天记录删除了怎么恢复?(基础操作版)
- 三星android pie,三星Galaxy系列Android 9.0 Pie
- AD18 PCB高亮
- 学生选课系统功能需求
- 我的创业你也可以复制:股权结构中常见的问题
- (转)理论经典:TCP协议的3次握手与4次挥手过程详解
热门文章
- 在什么情况下需要进行开眼角修复的手术
- uniapp 创建小程序使用云开发
- Pygame 官方文档 - pygame.display
- 物联网板开发入门指南
- Python做手写数字识别
- Java+SSM二手交易商城微信小程序源码【包调试运行】
- Jenkins 基础07 凭据管理
- URLOS实战入门—制作LAP网站环境
- windows10+ubuntu 16 04+双硬盘(SSD+HDD)分区(图文)
- Commands that may modify the data set are disabled, because this instance is configured to report er