基于51单片机的智能大棚光温控制系统
目录
文章目录
前言
一、器件
51单片机
1602lcd显示屏
ds18b20温度传感器
继电器
hs0038红外模块
二、部分代码展示
1.头文件
2.main.c
3.obj.c
总结
前言
这是一个基于c51系列单片机做的智能大棚光温控制系统,系统主要组成元器件有stc89c52单片机,ds18b20温度传感器,1602lcd显示屏,继电器,hs0038红外模块等组成,此系统能够自动测量大棚温度,根据温度反馈自动开关升温设备,到晚上自动打开补光灯白天关闭,为植物生长提供良好环境,系统可由lcd显示屏显示当时时间与温度,时间可由红外遥控设备进行校正,升温设备与补光灯亦可由红外遥控设备手动控制。
一、器件
51单片机
1602lcd显示屏
ds18b20温度传感器
继电器
hs0038红外模块
二、部分代码展示
1.头文件
代码如下(示例):
#include <REG52.H>
#define uchar unsigned char
#define uint unsigned int
#define lcd P0
sbit ir=P3^2;
sbit rs = P2 ^ 6;
sbit rw = P2 ^ 5;
sbit en = P2 ^ 7;
sbit dq = P3 ^ 7;
sbit lig=P2^1;
sbit hea=P2^0;
extern uchar date[33];
extern uchar ir_arr[4];
extern uchar time,flog,num,irok,a,irprosok,n1,flag, temp_h, c,temp_l,temp2,count, m, s, t, n,day,mon,week;
extern uint temp,temp1,year;
void delay(char time);//延时
void write_com_lcd(unsigned char com);//lcd写指令
void write_dat_lcd(unsigned char dat);//lcd//写数据
void init_lcd();//初始化lcd
void init_red();//初始化红外
void init_time0();//初始化定时器0
void irpros();//红外信号转换
void delay1(char a);//延时
void init_ds();//初始化ds18b20
void write_date(uchar dat);//对ds18b20写入数据
uchar read_dat();//读取温度
void read_temp();//温度转化
void display_temp();//显示温度
void init_time();//初始化时钟
void key();//时间修改
void display_time();//显示时间
void heat();//升温设备控制
void light();//补光灯控制
2.main.c
代码如下(示例):
void main()
{char k=0;init_lcd();init_ds();init_red();init_time0();init_time();while (1){if (irok == 1){irok = 0;irpros();}if (irprosok == 1){irprosok = 0;key();if (ir_arr[0] == 0 && ir_arr[2] == 0x18){k=!k;write_com_lcd(0x01);}}light();heat();switch(k){case 0:read_dat();read_temp();display_temp();break;case 1:display_time();break;}}
}
3.obj.c
void irpros()
{char i, j;n1 = 0;for (i = 0; i < 4; i++){a = 0;for (j = 0; j < 8; j++){n1++;a >>= 1;if (date[n1] > 6)a |= 0x80;}ir_arr[i] = a;}irprosok = 1;
}
void read_temp()
{init_ds();write_date(0xcc);write_date(0x44);delay1(80);init_ds();write_date(0xcc);write_date(0xbe);temp_l = read_dat();temp_h = read_dat();temp = temp_h;temp = temp << 8;temp = temp | temp_l;if (temp > 0x8000){temp = (~temp) + 1;c = 1;}elsec = 0;temp1 = temp * 0.0625;temp2 = (temp_l & 0x0f) * 6.25;
}
void light()
{static char k2 = 0;static char K2 = 1;if (ir_arr[0] == 0 && ir_arr[2] == 0x52){k2 = !k2;}if (ir_arr[0] == 0 && ir_arr[2] == 0x4a){K2 = !K2;}if (K2){if (t >= 20||t<=4 || k2){lig = 1;}else if (t > 4 && !k2)lig = 0;}if (K2 == 0){lig = 0;k2 = 0;}
}
总结
总的来说,这个系统的实现并不算困难,后续优化可用光敏传感器代替时间控制补光灯的状态。
基于51单片机的智能大棚光温控制系统相关推荐
- 基于51单片机的智能大棚浇花系统设计 花盆浇水灌溉补光散热方案原理图程序
硬件电路的设计 (附文件) 3.1系统的功能分析及体系结构设计 3.1.1系统功能分析 本设计由STC89C52单片机电路+LCD1602液晶显示电路+光照检测电路+土壤湿度传感器电路+A/D采样PC ...
- 基于51单片机的智能蓝牙路灯街灯控制系统proteus仿真原理图PCB
功能: 0.本系统采用STC89C52作为单片机 1.液晶实时显示时间/环境光强/工作模式 2.每隔5s向蓝牙串口发送一次信息 3.支持路灯故障检测 4.工作时间18~24时,两个路灯同时点亮,24时 ...
- 基于51单片机的智能饮水机烧水控制系统proteus仿真原理图PCB
功能介绍: 0.本系统采用STC89C52作为单片机 1.LCD1602液晶实时显示当前温度和设定温度 2.当温度到达100℃时,蜂鸣器报警提醒水烧开了 3.按键可更改预设温度值,当温度低于设定温度5 ...
- 基于51单片机的智能光控路灯设计及设计报告
自己做的基于51单片机的智能光控路灯设计及设计报告,滑动变阻器模拟光敏电阻,adc0832检测电压,lcd1602做控制面板,自动亮灯的光强范围可调 包括源代码.仿真设计报告. ID:69665037 ...
- 3、基于51单片机的智能水箱控制系统-温度-PH值-水位(仿真+程序+原理图)
目录 基于51单片机的智能水箱控制系统 1.主要功能 2.实验结果 3.仿真工程 4.原理图 5.程序源码 6.资源获取 基于51单片机的智能水箱控制系统 1.主要功能 51单片机检测水箱内温度,ph ...
- 智能窗帘研究制作_基于51单片机的智能窗帘的研究与设计.doc
基于51单片机的智能窗帘的研究与设计 第 PAGE \* Arabic \* MERGEFORMAT 24 页第 PAGE \* Arabic \* MERGEFORMAT 24 页 目录 TOC \ ...
- 基于51单片机的智能检测雨滴报警器
目录 下雨关窗报警器 一.学习目的 1. 了解霍尔传感器工作原理 2. 了解雨滴传感器工作原理 3. 学会使用霍尔传感器检测门窗是否关好 4. 学会使用雨滴传感器检测是否下雨 5. 学会使用蜂鸣器发出 ...
- 【毕业设计】基于51单片机的智能窗帘设计(原理图+原理图+仿真+论文)
按键1:加(手动开启窗帘 按键2:减(手动关闭窗帘) 按键3:进入定时模式开启时间和光控阈值数值大小的开启 按键4:进入当前时间的设置(年.月.日.时.分的设置) 按键5:切换模式(在手动模式.定时模 ...
- 基于51单片机的智能家居防火防盗系统设计
基于51单片机的智能家居防火防盗系统设计 自动开关灯,温度,烟雾浓度报警,数值可调节等:附赠资料包含原理图,仿真,代码(C语言),实物的元件清单及功能演示视频.适合课设. CSDN内下载地址:下载地址 ...
最新文章
- java 毫秒转为日期_java将毫秒转化为日期
- Dojo EnhancedGrid Pagination
- 如何自己找出SMBDA服务使用的端口号
- JAVA中toString方法的作用(转)
- CPU 用户时间 系统时间
- 操盘机器人新增板块资金流向分析模型,可自定义板块、分析周期以及系统自动学习功能
- java将文件移动到另一个目录
- JS 服务器推送技术 WebSocket 入门指北
- db2和相关驱动的下载
- Word2016中调节页眉内容一部分左对齐,一部分右对齐
- 每个系统管理员都要知道的 30 个 Linux 系统监控工具
- 计算广告基础知识(二)
- Unity Shader - Heightmap 高度贴图
- 【02】水果蔬菜识别系统-基于tensorflow2.3开发
- C语言转义字符\数字 八进制和十六进制学习
- GD32 ADC功能及代码详解
- 最高检发布破坏计算机信息系统案等六大指导性案例
- K. chino with c language(水题)
- PyCharm配置远程解释器
- Unity的Handles类
热门文章
- 【操作系统】操作系统的功能管理与分类
- SAGAN——Self-Attention Generative Adversarial Networks
- Redis缓存过期和淘汰策略
- Win10 用户管理中无法删除唯一的administrators组用户
- 2020年有寓意的领证日期_2020年领证日期怎么选
- Windows下的免安装版MySQL配置
- 原型软件 (Prototype Development)开发指南
- 超详细修改C盘下的用户名(适合win10和win11)
- 刷完这50个标准库模块:没人比我更懂Python了
- 如何运行PION/ION(分布式流媒体系统)