找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 9337|回复: 10
收起左侧

51单片机控制的DHT11简易温湿度检测原理图与源码

  [复制链接]
ID:307829 发表于 2018-4-15 10:01 | 显示全部楼层 |阅读模式
简易温湿度测量仪实现思路是通过温湿度传感器采集数据传送到最小系统上,并由最小系统对采集到的数据进行处理,随后发送到数码管或者液晶屏上进行显示,并对异常数据进行报警。
实验使用器材有DHT11温湿度传感器、IAP15W4K58S4最小系统、四位数码管、蜂鸣器以及发光二极管。通过最小系统发送开始信号使DHT11开始工作并采集数据判断DHT11是否正常工作,若DHT11正常工作,将采集数据进行校验,若校验结果正确,将其保存,并通过P1口显示到数码管上。随后判断数据是否超过预警值,如超过,将P2.4口电位拉高,使蜂鸣器示警,并让LED灯熄灭来进行警示。电路使用一个数码管对温湿度进行循环显示,相比较于使用2个数码管进行显示和使用液晶屏,成本和操作难度都有所降低。
实现原理图如图所示:
图片1.png
程序在附件中,直接根据数据手册进行编写。可以对照DHT11数据手册进行查看


单片机源程序如下:
  1. #include "STC15.h"
  2. #include "stdio.h"
  3. #include "Delay.h"
  4. #include "uart.h"
  5. #include "dht11.h"
  6. unsigned char temp[2],humi[2];
  7. unsigned char flag;
  8. unsigned char code Num[16]={0x3F,
  9. 0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,
  10. 0x7F,0x6F,0x77,0x7C,0x39,0x5E,0x79,0x71};
  11. int m,n,p,q;
  12. long int i;

  13. void main(void)
  14. {
  15.         P0M1 = 0;        P0M0 = 0;        //设置为准双向口
  16.         P1M1 = 0;        P1M0 = 1;        //设置为准双向口
  17.         P2M1 = 0;        P2M0 = 1;        //设置为准双向口
  18.         P3M1 = 0;        P3M0 = 0;        //设置为准双向口
  19.         P4M1 = 0;        P4M0 = 0;        //设置为准双向口
  20.         P5M1 = 0;        P5M0 = 0;        //设置为准双向口
  21.         P6M1 = 0;        P6M0 = 0;        //设置为准双向口
  22.         P7M1 = 0;        P7M0 = 0;        //设置为准双向口
  23.         
  24.         while(1)
  25.         {
  26.                 flag=DHT11_Read_Data(temp,humi);
  27.                 if(flag==0)                                //读取成功
  28.                 {
  29.                         m=(int)temp[0]/10;
  30.                         n=(int)temp[0]%10;
  31.                         p=(int)temp[1]/10;
  32.                         i=100;
  33.                         
  34.                         if(temp[0]>50||humi[0]>90)
  35.                         {
  36.                                 P24=1;
  37.                         }
  38.                         else P24=0;
  39.                         
  40.                         while(i--)
  41.                         {
  42.                                 P23=1;
  43.                                 P1=~Num[12];
  44.                                 delay_ms(10);
  45.                                 P23=0;
  46.                                 P20=1;//P20十位供电
  47.                                 P1=~Num[m];//P1显示
  48.                                 Delay1ms();
  49.                                 P20=0;
  50.                                 P21=1;//P21个位供电
  51.                                 P1=~(Num[n]+0x80);
  52.                                 delay_ms(10);
  53.                                 P21=0;
  54.                                 P22=1;//P22十分位供电
  55.                                 P1=~Num[p];
  56.                                 delay_ms(10);
  57.                                 P22=0;
  58.                         }
  59.                         
  60.                         m=(int)humi[0]/10;
  61.                         n=(int)humi[0]%10;
  62.                         p=(int)humi[1]/10;
  63.                         q=(int)humi[1]%10;
  64.                         i=100;
  65.                         while(i--)
  66.                         {
  67.                                 P20=1;//P20十位供电
  68.                                 P1=~Num[m];//P1显示
  69.                                 Delay1ms();
  70.                                 P20=0;
  71.                                 P21=1;//P21个位供电
  72.                                 P1=~(Num[n]+0x80);
  73.                                 delay_ms(10);
  74.                                 P21=0;
  75.                                 P22=1;//P22十分位供电
  76.                                 P1=~Num[p];
  77. ……………………

  78. …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码


所有资料51hei提供下载:
danshumaguan.zip (63.21 KB, 下载次数: 141)

评分

参与人数 2黑币 +55 收起 理由
584625123 + 5 很给力!
admin + 50 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

ID:287659 发表于 2018-9-29 21:52 | 显示全部楼层
很给力
回复

使用道具 举报

ID:422827 发表于 2018-11-8 10:46 | 显示全部楼层
谢谢楼主 很棒
回复

使用道具 举报

ID:422961 发表于 2018-11-8 13:57 | 显示全部楼层
谢谢楼主 很棒!
回复

使用道具 举报

ID:460586 发表于 2019-1-3 19:36 | 显示全部楼层
真好,我也想下载
回复

使用道具 举报

ID:481514 发表于 2019-2-27 14:39 来自手机 | 显示全部楼层
求发1224462284@qq.com
回复

使用道具 举报

ID:445069 发表于 2019-3-1 16:58 | 显示全部楼层
才发现,不是stc51单片机。
回复

使用道具 举报

ID:163730 发表于 2019-6-21 23:40 | 显示全部楼层
再试试这个驱动
回复

使用道具 举报

ID:840996 发表于 2020-11-10 12:51 | 显示全部楼层
楼主,有全的原理图么
回复

使用道具 举报

ID:95809 发表于 2020-11-10 17:13 来自手机 | 显示全部楼层
ontheroad 发表于 2019-3-1 16:58
才发现,不是stc51单片机。

那就是STC单片机,可以用其他的15系列单片机代替,比如15W408
回复

使用道具 举报

ID:166284 发表于 2020-11-12 17:00 | 显示全部楼层
你的电路原理图上的LED灯在哪里啊???????????????
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表