久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 7391|回復: 6
打印 上一主題 下一主題
收起左側

單片機糧倉溫濕度控制系統原理圖和源碼 DHT11傳感器

  [復制鏈接]
跳轉到指定樓層
樓主

給大伙分享一個51單片機做糧倉溫濕度控制系統,下面是原理圖基于dht11傳感器做的.



單片機源程序如下:
  1. #include <reg52.h>
  2. #include "1602.h"
  3. #include "dht.h"
  4. #include "2402.h"

  5. //定義三個LED燈
  6. sbit Led_qushi=P1^6;                //去濕燈
  7. sbit Led_jiangwen=P1^5;                //降溫燈
  8. sbit Led_shengwen=P1^4;                //升溫燈
  9. sbit Key_TH1 = P3^2;
  10. sbit Key_TH2 = P3^3;
  11. sbit Key_HH1 = P3^4;
  12. sbit Key_HH2 = P3^5;

  13. //定義標識
  14. volatile bit FlagStartRH = 0;  //開始溫濕度轉換標志
  15. volatile bit FlagKeyPress = 0; //有鍵按下


  16. //定義溫濕度傳感器用外部變量
  17. extern U8  U8FLAG,k;
  18. extern U8  U8count,U8temp;
  19. extern U8  U8T_data_H,U8T_data_L,U8RH_data_H,U8RH_data_L,U8checkdata;
  20. extern U8  U8T_data_H_temp,U8T_data_L_temp,U8RH_data_H_temp,U8RH_data_L_temp,U8checkdata_temp;
  21. extern U8  U8comdata;
  22. extern U8  count, count_r;

  23. U16 temp;
  24. S16 temperature, humidity;
  25. S16 idata TH, HH;  //溫度上限和濕度上限
  26. char * pSave;
  27. U8 keyvalue, keyTH1, keyTH2, keyHH1, keyHH2;

  28. //定義變量
  29. U16 RHCounter;


  30. //數據初始化
  31. void Data_Init()
  32. {
  33.    RHCounter = 0;
  34.    Led_qushi = 1;
  35.    Led_jiangwen = 1;
  36.    Led_shengwen = 1;
  37.    TH = 40;
  38.    HH = 85;
  39.    keyvalue = 0;
  40.    keyTH1 = 1;
  41.    keyTH2 = 1;
  42.    keyHH1 = 1;
  43.    keyHH2 = 1;

  44. }

  45. //定時器0初始化
  46. void Timer0_Init()
  47. {
  48.         ET0 = 1;        //允許定時器0中斷
  49.         TMOD = 1;       //定時器工作方式選擇
  50.         TL0 = 0x06;     
  51.         TH0 = 0xf8;     //定時器賦予初值
  52.         TR0 = 1;        //啟動定時器
  53. }

  54. //定時器0中斷
  55. void Timer0_ISR (void) interrupt 1 using 0
  56. {
  57.         TL0 = 0x06;
  58.         TH0 = 0xf8;     //定時器賦予初值

  59.         //每2秒鐘啟動一次溫濕度轉換
  60.     RHCounter ++;
  61.     if (RHCounter >= 1000)
  62.     {
  63.        FlagStartRH = 1;
  64.            RHCounter = 0;
  65.     }
  66. }

  67. //存入設定值、
  68. void Save_Setting()
  69. {
  70.    pSave =  (char *)&TH;          //地址低位對應低8位,高位對應高8位
  71.    wrteeprom(0, *pSave);          //存溫度上限值TH低8位
  72.    DELAY(500);
  73.    pSave ++;
  74.    wrteeprom(1, *pSave);          //存溫度上限值TH高8位
  75.    DELAY(500);
  76.    pSave =  (char *)&HH;
  77.    wrteeprom(2, *pSave);          //存濕度上限值RH低8位
  78.    DELAY(500);
  79.    pSave ++;
  80.    wrteeprom(3, *pSave);          //存濕度上限值RH高8位
  81.    DELAY(500);

  82. }

  83. //載入設定值、
  84. void Load_Setting()
  85. {
  86.    pSave =  (char *)&TH;
  87.    *pSave++ = rdeeprom(0);
  88.    *pSave = rdeeprom(1);
  89.    pSave = (char *)&HH;
  90.    *pSave++ = rdeeprom(2);
  91.    *pSave = rdeeprom(3);
  92.    if ((TH>99)||(TH<0)) TH = 40;
  93.    if ((HH>99)||(HH<0)) HH = 85;
  94. }

  95. void KeyProcess(uint num)
  96. {
  97.    switch (num)
  98.    {
  99.       case 1:
  100.              if (TH<99) TH++;
  101.              L1602_char(1, 15, TH/10+48);
  102.              L1602_char(1, 16, TH%10+48);
  103.              break;
  104.           case 2:
  105.              if (TH>1) TH--;
  106.              L1602_char(1, 15, TH/10+48);
  107.              L1602_char(1, 16, TH%10+48);
  108.              break;
  109.           case 3:
  110.              if (HH<99) HH++;
  111.              L1602_char(2, 15, HH/10+48);
  112.              L1602_char(2, 16, HH%10+48);
  113.              break;
  114.           case 4:
  115.              if (HH>1) HH--;
  116.              L1602_char(2, 15, HH/10+48);
  117.              L1602_char(2, 16, HH%10+48);
  118.              break;
  119.           default:
  120.              break;
  121.    }
  122.    Save_Setting();

  123. }

  124. /********************************************************************
  125. * 名稱 : Main()
  126. * 功能 : 主函數
  127. ***********************************************************************/
  128. void main()
  129. {
  130.     U16 i, j, testnum;

  131.     EA = 0;

  132.         Timer0_Init();  //定時器0初始化

  133.     Data_Init();
  134.         EA = 1;

  135.         L1602_init();
  136.         L1602_string(1,1," Welcome to T&H   ");
  137.         L1602_string(2,1," Control System!  ");
  138.         //延時
  139.         for (i=0;i<500;i++)
  140.            for (j=0;j<1000;j++)
  141.            {;}
  142.     //清屏
  143.         L1602_string(1,1,"                ");
  144.         L1602_string(2,1,"                ");
  145.     L1602_string(1,1,"Tem:    C  TH:");
  146.         L1602_string(2,1,"Hum:    %  HH:");
  147.    
  148.     //載入溫度上限和濕度上限設定值
  149.         Load_Setting();
  150.         L1602_char(1, 15, TH/10+48);
  151.         L1602_char(1, 16, TH%10+48);
  152.         L1602_char(2, 15, HH/10+48);
  153.         L1602_char(2, 16, HH%10+48);


  154.         while(1)
  155.         {
  156.        //溫濕度轉換標志檢查
  157.                  if (FlagStartRH == 1)
  158.                  {
  159.                      TR0 = 0;
  160.              testnum = RH();
  161.                          FlagStartRH = 0;
  162.                          TR0 = 1;
  163.              //讀出溫濕度,只取整數部分
  164.                          humidity = U8RH_data_H;
  165.                          temperature = U8T_data_H;
  166.                          //顯示溫濕度
  167.                          L1602_int(1,5,temperature);
  168.                      L1602_int(2,5,humidity);       
  169.                 }
  170.                 //溫濕度控制
  171.                 if (temperature > TH) Led_jiangwen = 0;
  172. ……………………

  173. …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼





所有資料51hei提供下載:
糧倉溫度控制系統.rar (682.39 KB, 下載次數: 215)





分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏5 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:142687 發表于 2017-9-12 22:59 | 只看該作者
好資料,51黑有你更精彩!!!
回復

使用道具 舉報

板凳
ID:696735 發表于 2020-2-22 22:08 來自手機 | 只看該作者
測溫探頭是什么探頭
回復

使用道具 舉報

地板
ID:282869 發表于 2020-2-24 11:57 | 只看該作者
好東西,謝謝分享....
回復

使用道具 舉報

5#
ID:421783 發表于 2020-2-26 22:09 | 只看該作者
好東西,謝謝樓主
回復

使用道具 舉報

6#
ID:214276 發表于 2020-3-15 03:53 | 只看該作者
這個傳感器精度不是很好,如果能換成SHT21,30之類的就好了。
回復

使用道具 舉報

7#
ID:688393 發表于 2020-4-6 12:27 | 只看該作者
I2C總線有什么用啊?
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 成年女人免费v片 | 在线国产一区 | 午夜网 | 久久国产欧美日韩精品 | 久久久久免费观看 | 91porn国产成人福利 | 久久精品中文 | 亚洲a视频 | 亚洲成人免费在线 | 综合色导航 | 国产综合视频 | 欧美久久久久 | 久久久久久久久久久久久久久久久久久久 | 成人妇女免费播放久久久 | 高清一区二区视频 | 欧美日韩国产一区二区三区 | 日本视频一区二区三区 | 亚洲+变态+欧美+另类+精品 | 亚洲国产成人精品久久久国产成人一区 | 亚洲成人av | av在线免费观看网址 | 日韩欧美亚洲 | 国产99视频精品免费视频7 | 国产精品一区网站 | 久久久久国产精品一区 | 亚洲欧美一区二区三区国产精品 | 亚洲成人免费观看 | 国产欧美一区二区三区在线看 | 国产激情在线 | 国产精品久久久久久久久免费软件 | 九九热这里只有精品6 | 91国产在线播放 | 国产精品无码久久久久 | 日本高清aⅴ毛片免费 | 欧美精品一区三区 | 亚洲精品国产成人 | av在线一区二区三区 | 国产一区二区在线看 | 中文字幕高清 | 嫩草视频在线免费观看 | 精品欧美一区二区三区久久久 |