• 目录

    文章目录

    前言

    一、器件

    • 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单片机的智能大棚光温控制系统相关推荐

  1. 基于51单片机的智能大棚浇花系统设计 花盆浇水灌溉补光散热方案原理图程序

    硬件电路的设计 (附文件) 3.1系统的功能分析及体系结构设计 3.1.1系统功能分析 本设计由STC89C52单片机电路+LCD1602液晶显示电路+光照检测电路+土壤湿度传感器电路+A/D采样PC ...

  2. 基于51单片机的智能蓝牙路灯街灯控制系统proteus仿真原理图PCB

    功能: 0.本系统采用STC89C52作为单片机 1.液晶实时显示时间/环境光强/工作模式 2.每隔5s向蓝牙串口发送一次信息 3.支持路灯故障检测 4.工作时间18~24时,两个路灯同时点亮,24时 ...

  3. 基于51单片机的智能饮水机烧水控制系统proteus仿真原理图PCB

    功能介绍: 0.本系统采用STC89C52作为单片机 1.LCD1602液晶实时显示当前温度和设定温度 2.当温度到达100℃时,蜂鸣器报警提醒水烧开了 3.按键可更改预设温度值,当温度低于设定温度5 ...

  4. 基于51单片机的智能光控路灯设计及设计报告

    自己做的基于51单片机的智能光控路灯设计及设计报告,滑动变阻器模拟光敏电阻,adc0832检测电压,lcd1602做控制面板,自动亮灯的光强范围可调 包括源代码.仿真设计报告. ID:69665037 ...

  5. 3、基于51单片机的智能水箱控制系统-温度-PH值-水位(仿真+程序+原理图)

    目录 基于51单片机的智能水箱控制系统 1.主要功能 2.实验结果 3.仿真工程 4.原理图 5.程序源码 6.资源获取 基于51单片机的智能水箱控制系统 1.主要功能 51单片机检测水箱内温度,ph ...

  6. 智能窗帘研究制作_基于51单片机的智能窗帘的研究与设计.doc

    基于51单片机的智能窗帘的研究与设计 第 PAGE \* Arabic \* MERGEFORMAT 24 页第 PAGE \* Arabic \* MERGEFORMAT 24 页 目录 TOC \ ...

  7. 基于51单片机的智能检测雨滴报警器

    目录 下雨关窗报警器 一.学习目的 1. 了解霍尔传感器工作原理 2. 了解雨滴传感器工作原理 3. 学会使用霍尔传感器检测门窗是否关好 4. 学会使用雨滴传感器检测是否下雨 5. 学会使用蜂鸣器发出 ...

  8. 【毕业设计】基于51单片机的智能窗帘设计(原理图+原理图+仿真+论文)

    按键1:加(手动开启窗帘 按键2:减(手动关闭窗帘) 按键3:进入定时模式开启时间和光控阈值数值大小的开启 按键4:进入当前时间的设置(年.月.日.时.分的设置) 按键5:切换模式(在手动模式.定时模 ...

  9. 基于51单片机的智能家居防火防盗系统设计

    基于51单片机的智能家居防火防盗系统设计 自动开关灯,温度,烟雾浓度报警,数值可调节等:附赠资料包含原理图,仿真,代码(C语言),实物的元件清单及功能演示视频.适合课设. CSDN内下载地址:下载地址 ...

最新文章

  1. java 毫秒转为日期_java将毫秒转化为日期
  2. Dojo EnhancedGrid Pagination
  3. 如何自己找出SMBDA服务使用的端口号
  4. JAVA中toString方法的作用(转)
  5. CPU 用户时间 系统时间
  6. 操盘机器人新增板块资金流向分析模型,可自定义板块、分析周期以及系统自动学习功能
  7. java将文件移动到另一个目录
  8. JS 服务器推送技术 WebSocket 入门指北
  9. db2和相关驱动的下载
  10. Word2016中调节页眉内容一部分左对齐,一部分右对齐
  11. 每个系统管理员都要知道的 30 个 Linux 系统监控工具
  12. 计算广告基础知识(二)
  13. Unity Shader - Heightmap 高度贴图
  14. 【02】水果蔬菜识别系统-基于tensorflow2.3开发
  15. C语言转义字符\数字 八进制和十六进制学习
  16. GD32 ADC功能及代码详解
  17. 最高检发布破坏计算机信息系统案等六大指导性案例
  18. K. chino with c language(水题)
  19. PyCharm配置远程解释器
  20. Unity的Handles类

热门文章

  1. 【操作系统】操作系统的功能管理与分类
  2. SAGAN——Self-Attention Generative Adversarial Networks
  3. Redis缓存过期和淘汰策略
  4. Win10 用户管理中无法删除唯一的administrators组用户
  5. 2020年有寓意的领证日期_2020年领证日期怎么选
  6. Windows下的免安装版MySQL配置
  7. 原型软件 (Prototype Development)开发指南
  8. 超详细修改C盘下的用户名(适合win10和win11)
  9. 刷完这50个标准库模块:没人比我更懂Python了
  10. 如何运行PION/ION(分布式流媒体系统)