0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于51单片机的SHT11温湿度检测调节系统(LCD12864显示)

洛星河 2022-12-18 16:55 次阅读

目录

具体实现功能

设计介绍

51单片机简介

资料内容

仿真实现(protues8.7)

程序(Keil5)

全部资料(压缩文件)

具体实现功能

(1)实时检测温湿度值,LCD12864分别显示温度值、湿度值、温度上下限值、湿度上下限值;
(2)通过按键可以设定温湿度报警阈值;
(3)当温度值过高且湿度值过低时,相应的指示灯亮,蜂鸣器响,继电器控制风扇转动,表示降温;
(4)当温度值过低且湿度值过高时,相应的指示灯亮,蜂鸣器响,继电器控制加热膜工作,表示升温。
(5)温度测量范围0-99,湿度测量范围0-99,误差±1。

pYYBAGOdt3WAWOOLAAIQZB3Ref4753.png

设计介绍

poYBAGOdt3aAYVRRAADioXJXF0A231.png

51单片机简介

51单片是一种低功耗、高性能CMOS-8位微控制器,拥有灵巧的8位CPU和可编程Flash,使得51单片机为众多嵌入式控制应用系统提供灵活、高效的解决方案。

本设计所使用的芯片可兼容以下所有的51系列单片机(包括AT系列和STC系列)。

pYYBAGOdt3aAWinZAAG1ksi-aaA344.png

资料内容

仿真实现(protues8.7)

本设计利用protues8.7软件实现仿真设计,具体如图。

注:请使用protues8.7直接打开资料中的工程文件(资料中已说明打开方式)!

pYYBAGOdt3eAb8dgAAIJEL9StTY649.png

程序(Keil5)

本设计利用KEIL5软件实现程序设计。

注意:请使用KEIL5直接打开资料中的工程文件(资料中已说明打开方式)!

主程序如下:

/****************主函数***************/
void main()//主函数
{
 value humi_val,temp_val;
 uchar humi_max=50,humi_min=15,temp_max=40,temp_min=20,temp,humi;//定义变量
 uchar error,checksum;
 uchar flag=0;
 
 DisplayOn();
 s_connectionreset();
 Led1=1;
 jiangwen=1;
 Led2=1;
 shengwen=1;
 beep=1;
 while(1)
 {
  error=0;
   error+=s_measure((unsigned char*) &humi_val.i,&checksum,HUMI); //measure humidity
   error+=s_measure((unsigned char*) &temp_val.i,&checksum,TEMP); //measure temperature
   if(error!=0)
   s_connectionreset();         //in case of an error: connection reset
   else
   {
  //温湿度值、阈值读取及显示
   humi_val.f=(float)humi_val.i;          //converts integer to float
     temp_val.f=(float)temp_val.i;          //converts integer to float
     calc_sth11(&humi_val.f,&temp_val.f);      //calculate humidity, temperature
     //dew_point=calc_dewpoint(humi_val.f,temp_val.f); //calculate dew point

   if(temp_val.f>99)
    temp_val.f=99;
   if(humi_val.f>99)
    humi_val.f=99;
   temp=(uchar)temp_val.f+1;
   humi=(uchar)humi_val.f-3;
     Disp(temp,humi,temp_max,temp_min,humi_max,humi_min);
   
   }
  while(P1!=0xff||flag!=0)
  {
   if(SetTempMax==0)
   {
    while(SetTempMax==0);
    flag=1;
    //显示文字
    DispHZ(0,3,she);
    DispHZ(16,3,ding);
    DispHZ(32,3,wen);
    DispHZ(48,3,du);
    DispHZ(64,3,shang);
    DispHZ(80,3,xian);
   }
   else if(SetTempMin==0)
   {
    //显示文字
    while(SetTempMin==0);
    flag=2;
    DispHZ(0,3,she);
    DispHZ(16,3,ding);
    DispHZ(32,3,wen);
    DispHZ(48,3,du);
    DispHZ(64,3,xia);
    DispHZ(80,3,xian);
   }
   if(SetHumiMax==0)
   {
   //显示文字
    while(SetHumiMax==0);
    flag=3;
    DispHZ(0,3,she);
    DispHZ(16,3,ding);
    DispHZ(32,3,shi);
    DispHZ(48,3,du);
    DispHZ(64,3,shang);
    DispHZ(80,3,xian);
   }
   if(SetHumiMin==0)
   {
    //显示文字
    while(SetHumiMin==0);
    flag=4;
    DispHZ(0,3,she);
    DispHZ(16,3,ding);
    DispHZ(32,3,shi);
    DispHZ(48,3,du);
    DispHZ(64,3,xia);
    DispHZ(80,3,xian);
   }
   else if(flag==1&&NumInc==0)
   {
    while(NumInc==0);//改变温度上限++
    temp_max++;
    Disp(temp,humi,temp_max,temp_min,humi_max,humi_min);
   }
   else if(flag==2&&NumInc==0)
   {
    while(NumInc==0);//改变温度下限++
    temp_min++;
    Disp(temp,humi,temp_max,temp_min,humi_max,humi_min);
   }
   else if(flag==3&&NumInc==0)
   {
    while(NumInc==0);
    humi_max++;//改变温湿度上限++
    Disp(temp,humi,temp_max,temp_min,humi_max,humi_min);
   }
   else if(flag==4&&NumInc==0)
   {
    while(NumInc==0);
    humi_min++;//改变温度下限++
    Disp(temp,humi,temp_max,temp_min,humi_max,humi_min);
   }
   else if(flag==1&&NumDec==0)
   {
    while(NumDec==0);
    temp_max--;//改变温度上限--
    Disp(temp,humi,temp_max,temp_min,humi_max,humi_min);
   }
   else if(flag==2&&NumDec==0)
   {
    while(NumDec==0);
    temp_min--;//改变温度下限--
    Disp(temp,humi,temp_max,temp_min,humi_max,humi_min);
   }
   else if(flag==3&&NumDec==0)
   {
    while(NumDec==0);
    humi_max--;//改变湿度上限--
    Disp(temp,humi,temp_max,temp_min,humi_max,humi_min);
   }
   else if(flag==4&&NumDec==0)
   {
    while(NumDec==0);
    humi_min--;//改变湿度下限--
    Disp(temp,humi,temp_max,temp_min,humi_max,humi_min);
   }
   else if(isOK==0)
   {
    //清空文字显示
    while(isOK==0);
    flag=0;
    DispHZ(0,3,blank);
    DispHZ(16,3,blank);
    DispHZ(32,3,blank);
    DispHZ(48,3,blank);
    DispHZ(64,3,blank);
    DispHZ(80,3,blank);
   }
  }
  if((temp>temp_max)&&(humihumi_max))//温度过低且湿度过高,报警及加热
  {
   Led1=1;
   jiangwen=1;
   Led2=0;
   shengwen=0;
   beep=0;
  }
  else
  {
   Led1=1;
   jiangwen=1;
   Led2=1;
   shengwen=1;
   beep=1;
  }
  delayms(10);

 }
}

程序运行结果如图:

poYBAGOdt3eAGpD6AAM4ta3w2ww346.png

全部资料(压缩文件)

全部资料包括程序(Keil5)、protues仿真(protues8.7)、仿真视频开发资料、资料使用介绍视频、仿真讲解视频、程序讲解视频、单片机最小系统介绍等,全网最全!

pYYBAGOdt3iAResdAAFqtYvY9jA615.png

资料链接:https://docs.qq.com/doc/DT2JidWJ6WmRFZ2dm

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 单片机
    +关注

    关注

    6019

    文章

    44316

    浏览量

    627636
  • 仿真
    +关注

    关注

    50

    文章

    3960

    浏览量

    132878
  • LCD12864
    +关注

    关注

    7

    文章

    232

    浏览量

    44750
  • SHT11
    +关注

    关注

    6

    文章

    21

    浏览量

    26893
收藏 人收藏

    评论

    相关推荐

    基于SHT11传感器的温湿度测量系统设计

    研究了基于SHT11温湿度传感器和单片机技术的智能温湿度测量系统。##3软件设计
    发表于 08-25 16:22 1.1w次阅读
    基于<b class='flag-5'>SHT11</b>传感器的<b class='flag-5'>温湿度</b>测量<b class='flag-5'>系统</b>设计

    51单片机温湿度监控系统

    ,实现系统对超限温湿度监控报警; 5.设计输入单元,可对系统正常温湿度范围进行调节; 6.仿真系统
    发表于 08-18 21:12

    基于51单片机SHT11温湿度监测系统LCD1602显示,上下限按键设置

    设计要求 1.设计一套基于51单片机温湿度Proteus仿真监控系统; 2.采用高精度的SHT11温湿
    发表于 03-26 17:44

    基于单片机SHT11温湿度监测

    我做的一个基于单片机温湿度控制 传感器使用的是SHT11我自己找不出程序的错误 可是仿真确无法成功,望大侠指点一二啊 用液晶显示所测温湿度
    发表于 05-13 19:55

    SHT11温湿度测量仪设计led显示 谁会做帮帮忙

    课程设计的内容及要求:1. 内容利用51单片机温湿度传感器SHT11设计并制作一套温湿度测量仪。系统
    发表于 01-05 15:31

    proteus仿真和程序基于at89c52单片机sht11温湿度控制系统lcd1602显示

    proteus仿真和程序基于at89c52单片机sht11温湿度控制系统lcd1602显示
    发表于 05-11 01:17

    求各路大神给个51单片机DHT11检测温湿度lcd12864显示的程序

    求各路大神给个51单片机DHT11检测温湿度lcd12864显示的程序
    发表于 05-02 14:49

    基于fpga的温湿度监控设计lcd12864显示

    我想问一下大神们,就是我用dht11检测温湿度,要在lcd12864显示数据,但是lcd12864
    发表于 04-29 22:43

    基于SHT11温湿度传感器和单片机技术的智能温湿度测量系统

    研究了基于SHT11温湿度传感器和单片机技术的智能温湿度测量系统系统使用
    发表于 04-27 06:34

    SHT11传感器的温度湿度监控报警系统单片机Proteus设计

    注:资源分享请见文末…概述系统通过SHT11温湿度传感器感应周围的环境的温度和湿度,通过单片机对采集到的数据进行读取处理,经过
    发表于 07-21 06:11

    如何去实现一种基于单片机SHT11温湿度采集报警系统的设计

    如何去实现一种基于单片机SHT11温湿度采集报警系统的设计?
    发表于 01-26 07:53

    基于SHT11温湿度远程监控系统设计

    采用数字温湿度传感器SHT11作为测量元件,结合单片机和GSM实现远程监控系统,该系统包括温湿度
    发表于 01-08 16:41 156次下载
    基于<b class='flag-5'>SHT11</b><b class='flag-5'>温湿度</b>远程监控<b class='flag-5'>系统</b>设计

    基于51单片机温湿度检测的设计资料合集免费下载

    本次设计是采用MSC-51系列单片机中的AT89C51SHT11的低成本的温湿度检测
    发表于 05-05 08:00 52次下载
    基于<b class='flag-5'>51</b><b class='flag-5'>单片机</b><b class='flag-5'>温湿度</b><b class='flag-5'>检测</b>的设计资料合集免费下载

    使用51单片机实现SHT11温湿度传感器检测的程序和电路图

    本文档的主要内容详细介绍的是使用51单片机实现SHT11温湿度传感器检测的程序和电路图
    的头像 发表于 01-31 12:10 1.7w次阅读
    使用<b class='flag-5'>51</b><b class='flag-5'>单片机</b>实现<b class='flag-5'>SHT11</b><b class='flag-5'>温湿度</b>传感器<b class='flag-5'>检测</b>的程序和电路图

    51单片机的土壤温湿度检测LCD12864显示设计

    本资源内容概要: 这是基于51单片机的土壤温湿度检测LCD12864显示设计包含了 C语言程序源
    发表于 08-11 15:12 0次下载