基于51单片机的温湿度检测报警系统设计

描述

 

具体实现功能:

由STC89C51/52单片机+DHT11温湿度传感器+LCD1602液晶显示屏+按键模块+报警模块构成。

具体功能:

1、LCD1602液晶显示,第一行显示当前的温度和湿度,第二行显示相应的冷、热、干、湿;

2、四个按键为设置、加、减、确定,用于温湿度报警值的设置;

3、采用温湿度传感器DHT11,温度测量范围0℃-50℃,湿度测量范围20%RH—90%RH;

4、当超过温湿度设置范围时,蜂鸣器响起,相应指示灯亮。

温湿度传感器

仿真演示视频(实物功能和仿真类似):

设计介绍

  温湿度传感器

51单片机简介

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

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

温湿度传感器

设计方案

设计方案如下:

DHT11检测空气中的温度值、湿度值,利用单片机进行数据处理后通过LCD1602实时显示,并根据按键设定的报警阈值进行报警处理。

单片机类设计论文参考模板:

毕设无忧|单片机类毕设论文模板

资料内容

  原理图和PCB(AD19)

本系统原理图和PCB设计采用Altium Designer19,具体如图。

注1:请使用Altium Designer19直接打开资料中的工程文件(资料中已说明打开方式),若要求使用其他版本软件,请谨慎购买!

注2:此设计需按照原理图制作实物,不可直接烧录到任何开发板中运行(需要修改程序)!

温湿度传感器

温湿度传感器

Altium Designer19软件安装包下载链接:

Altium Designer19安装破解教程(内附安装包)

51单片机常用元器件封装下载链接:

资料分享|51单片机常用元器件封装库

Altium Designer19教程:

AD19简易教程(原理图的绘制)

实用技巧|AD19快捷键大全

  仿真实现(protues8.7)

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

注1:请使用protues8.7直接打开资料中的工程文件(资料中已说明打开方式),若要求使用其他版本软件,请谨慎购买!

注2:由于仿真软件限制,仿真设计和实物设计无法百分百对应!!

温湿度传感器

protues8.7软件资料:

proteus8.7安装及破解教程(内附安装包)

若仿真中遇到问题,请参照以下文章解决:

protues仿真常见问题解决方案

Protues8.7简易教程

程序(Keil5)

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

注:请使用KEIL C51直接打开资料中的工程文件(资料中已说明打开方式),若要求使用其他版本软件,请谨慎购买!!

主程序如下:

 

/********************************************************************
* 名称 : Main()
* 功能 : 主函数
***********************************************************************/
void main()
{
    uint i, j, testnum;
    EA = 0;
  Timer0_Init();   
  Data_Init();
  EA = 1;


  L1602_init();
  L1602_string(1,1," Welcome to T&H ");
  L1602_string(2,1," Control System!");
   for (i=0;i<1000;i++)
     for (j=0;j<1000;j++)
     {;}
     
  L1602_string(1,1,"                ");
  L1602_string(2,1,"                ");
  L1602_string(1,1,"Tem:   C Hum:  %");
  L1602_string(2,1,"Good environment")
   
  while(1)
  {
       
     if (FlagStartRH == 1)   //温湿度转换标志检查
     {
         TR0 = 0;
             testnum = RH();
        FlagStartRH = 0;
       TR0 = 1;
       humidity = U8RH_data_H;   //读出温湿度,只取整数部分
       temperature = U8T_data_H;


       
       if(Mode==0)    //温湿度控制
       {
         if (temperature > TH)
        {
          Led1 = 0;
          hot=1;
          Led2 = 1;
          cold=0;
        }
        else if(temperature HH)
        {
          Led3 = 0;
          humid=1;
          Led4 = 1;
          dry=0;
        }
        else if(humidity

 

程序运行结果如图:

温湿度传感器

  审核编辑:汤梓红

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

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分