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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

基于51單片機的dht11溫濕度數碼管顯示proteus仿真與程序源碼

  [復制鏈接]
跳轉到指定樓層
樓主
ID:389447 發表于 2019-1-9 23:45 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
仿真原理圖如下




按button1可以切換模式
模式0 只顯示溫度
模式1 只顯示濕度
模式2 動態顯示溫度和濕度,每5s切換一次


實物如下
溫度顯示




濕度顯示  小數

微信圖片_20190109232507.jpg (1.64 MB, 下載次數: 108)

濕度顯示

濕度顯示

資料.png (13.6 KB, 下載次數: 279)

資料.png

評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

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

使用道具 舉報

沙發
ID:389447 發表于 2019-1-9 23:49 | 只看該作者
模式選擇,自動顯示切換濕度和溫度,只顯示溫度,只顯示濕度。

單片機源程序如下:
  1. #include<reg51.h>

  2. bit DHT_Start();
  3. bit DHT_ByteRead(unsigned char *dat);
  4. void ConfigTimer0(unsigned int ms);
  5. void Display_hum(unsigned char *num);
  6. void Display_temp(unsigned char *num);


  7. unsigned char T0RH = 0;  //T0重載值的高字節
  8. unsigned char T0RL = 0;  //T0重載值的低字節
  9. unsigned char str=88;
  10. unsigned char DHT[5];

  11. unsigned int tmr1s = 0;
  12. unsigned int tmr10ms = 0;
  13. unsigned char st=0;
  14. unsigned int sdd=0;
  15. unsigned char td=0;
  16. unsigned char mode=0;

  17. bit flag1s = 0;
  18. bit flag10ms = 0;
  19. int x;
  20.             
  21. sbit button1=P0^0;
  22. sbit dot=P1^3;   //數碼管小數點


  23. void delay(unsigned char x)   //延時ms
  24. {
  25.     unsigned char a,b,c;
  26.         for(c=x;c>0;c--)
  27.     {
  28.                 for(b=102;b>0;b--)
  29.         for(a=3;a>0;a--);
  30.         }
  31. }
  32. void main()          
  33. {                 

  34.     bit tmp;
  35.         dot=0;
  36.     EA = 1;            //開總中斷
  37.     ConfigTimer0(10);  //T0定時10ms
  38. //        M1=0; M1=0;M2=0;M3=0;D1=0;D2=0;
  39.     DHT_Start();
  40.     delay(5);

  41.     while (1)
  42.     {


  43.         if(flag10ms)  //數碼管刷新頻率
  44.                 {
  45.                    if(st==0){
  46.                                 Display_temp(&str);
  47.                                 flag10ms=0;
  48.                         }
  49.                    else if(st==1)
  50.                    {
  51.                       Display_hum(&str);
  52.                           flag10ms=0;
  53.                         }

  54.                   
  55.                   
  56.                 }
  57.                 else if (flag1s)  //每秒更新一次溫度、濕度
  58.         {
  59.                 DHT_Start();
  60.                    tmp=DHT_ByteRead(&DHT);
  61.                    if(tmp==1)
  62.                    {

  63.                           if(st==0)
  64.                           {
  65.                             str = DHT[2] ;             //溫度
  66.                                 Display_temp(&str);                     
  67.                             flag1s =0;         //標志位清零
  68.                           }
  69.                           else if(st==1){

  70.                           str = DHT[0] ;  //濕度
  71.                   Display_hum(&str);
  72.                                   flag1s =0;         //標志位清零
  73.                           }

  74.                           

  75.                    }
  76.         }
  77.                 if(button1==0)
  78.                 {
  79.                    delay(2);
  80.                   
  81.                    if(button1==0)
  82.                    {
  83.                      
  84.                                 mode++;
  85.                                 switch(mode)
  86.                                 {
  87.                                   case 0:  st=0;      break;
  88.                                   case 1:  st=1;      break;
  89.                                   case 2:  td=1;      break;
  90.                                   default:     break;
  91.                                 }
  92.                                 if(mode>=3)
  93.                                 {
  94.                                   td=0;
  95.                                   mode=0;
  96.                                 }
  97.                                 while(button1==0)
  98.                                 {
  99.                                 }


  100.                    }

  101.                 }



  102.          }
  103. }


  104. /* 配置并啟動T0,ms-T0定時時間 */
  105. void ConfigTimer0(unsigned int ms)
  106. {
  107.     unsigned long tmp;  //臨時變量
  108.    
  109.     tmp = 11059200 / 12;      //定時器計數頻率
  110.     tmp = (tmp * ms) / 1000;  //計算所需的計數值
  111.     tmp = 65536 - tmp;        //計算定時器重載值
  112.     tmp = tmp + 12;           //補償中斷響應延時造成的誤差
  113.     T0RH = (unsigned char)(tmp>>8);  //定時器重載值拆分為高低字節
  114.     T0RL = (unsigned char)tmp;
  115.     TMOD &= 0xF0;   //清零T0的控制位
  116.     TMOD |= 0x01;   //配置T0為模式1
  117.     TH0 = T0RH;     //加載T0重載值
  118.     TL0 = T0RL;
  119.     ET0 = 1;        //使能T0中斷
  120.     TR0 = 1;        //啟動T0
  121. }
  122. /* T0中斷服務函數,完成1秒定時 */
  123. void InterruptTimer0() interrupt 1
  124. {

  125.     TH0 = T0RH;  //重新加載重載值
  126.     TL0 = T0RL;
  127.     tmr1s++;
  128.         sdd++;
  129.         tmr10ms++;

  130.         if(tmr10ms>=1)           //  數碼管刷新頻率
  131.         {
  132.                   tmr10ms=0;
  133.                 flag10ms = 1;
  134.         }
  135.         if(td==1)
  136.         {
  137.           if(sdd>=500)           //溫度顯示5s        、濕度顯示5s
  138.           {
  139.              sdd=0;
  140.              if(st==0)
  141.              {
  142.                st=1;
  143.                  }
  144.                  else st=0;
  145.           }
  146.         }
  147.     if (tmr1s >= 200)  //1s 數據更新頻率
  148.     {
  149.         tmr1s = 0;
  150.         flag1s = 1;
  151.         }

  152.    
  153. }
復制代碼

所有資料51hei提供下載:
Display_temphum.zip (112.49 KB, 下載次數: 501)


回復

使用道具 舉報

板凳
ID:466071 發表于 2019-1-10 20:40 | 只看該作者
謝謝!!
回復

使用道具 舉報

地板
ID:445069 發表于 2019-2-23 15:43 | 只看該作者
DHT11的data口,好像沒有接4.7K的上拉電阻?
回復

使用道具 舉報

5#
ID:567779 發表于 2019-6-20 12:47 | 只看該作者
靈魂9527 發表于 2019-1-9 23:49
模式選擇,自動顯示切換濕度和溫度,只顯示溫度,只顯示濕度。

單片機源程序如下:

謝謝大佬!!
回復

使用道具 舉報

6#
ID:338716 發表于 2019-6-25 06:15 | 只看該作者
感謝你的分享
回復

使用道具 舉報

7#
ID:591640 發表于 2019-8-5 10:35 | 只看該作者
非常感謝,
回復

使用道具 舉報

8#
ID:605988 發表于 2019-9-21 15:04 | 只看該作者
非常感謝
回復

使用道具 舉報

9#
ID:283883 發表于 2019-10-26 12:20 | 只看該作者
是共陰數碼管還是共陽的
回復

使用道具 舉報

10#
ID:389447 發表于 2019-12-1 10:05 | 只看該作者
周栩樂 發表于 2019-10-26 12:20
是共陰數碼管還是共陽的

共陰   
回復

使用道具 舉報

11#
ID:299519 發表于 2019-12-10 14:39 | 只看該作者
東東不錯
回復

使用道具 舉報

12#
ID:492212 發表于 2019-12-22 16:36 | 只看該作者
為什么我用你的程序數碼管只顯示88
回復

使用道具 舉報

13#
ID:362692 發表于 2019-12-26 15:03 來自觸屏版 | 只看該作者
如果在此基礎上,加上一個溫度報警好做嗎
回復

使用道具 舉報

14#
ID:561156 發表于 2019-12-27 22:42 | 只看該作者
在這上面加個控制器設計好做嗎
回復

使用道具 舉報

15#
ID:673920 發表于 2019-12-28 12:40 | 只看該作者
靈魂9527 發表于 2019-1-9 23:49
模式選擇,自動顯示切換濕度和溫度,只顯示溫度,只顯示濕度。

單片機源程序如下:

剛剛學習,先復制源代碼試試,
回復

使用道具 舉報

16#
ID:673920 發表于 2019-12-28 13:01 | 只看該作者
靈魂9527 發表于 2019-1-9 23:49
模式選擇,自動顯示切換濕度和溫度,只顯示溫度,只顯示濕度。

單片機源程序如下:

謝謝!調試通過!
回復

使用道具 舉報

17#
ID:150208 發表于 2020-1-7 17:24 | 只看該作者
為什么把你的程序沒有更改,只是重新編譯一下,就只會很閃的顯示88,但不重新編譯,直接用你之前的.hex文件,又顯示正常呢?
回復

使用道具 舉報

18#
ID:150208 發表于 2020-1-7 17:25 | 只看該作者
為什么用你的程序沒有任何改動只是重新編譯一下,會顯示不了,只會顯示閃的88
回復

使用道具 舉報

19#
ID:707289 發表于 2020-3-19 15:55 | 只看該作者
挺好的,希望大佬繼續分享dht12.
回復

使用道具 舉報

20#
ID:412517 發表于 2020-3-24 15:40 | 只看該作者
感謝分享!正需要學習!
回復

使用道具 舉報

21#
ID:752951 發表于 2020-5-15 22:23 來自觸屏版 | 只看該作者
仿真原理圖為什么我的p2.1、p2.4、p1.1,為紅色
回復

使用道具 舉報

22#
ID:754108 發表于 2020-5-17 16:35 來自觸屏版 | 只看該作者
為什么我編譯,出現delay:missing function-prototype和 delay:requires-style prototype
回復

使用道具 舉報

23#
ID:752951 發表于 2020-5-23 14:17 來自觸屏版 | 只看該作者
unsigned int tmr1s = 0; unsigned int tmr10ms = 0;是什么意思
回復

使用道具 舉報

24#
ID:752674 發表于 2020-5-23 21:25 | 只看該作者
仿真的時候除了把proteus和keil 保存在同一文件夾下 還有什么要求嗎
回復

使用道具 舉報

25#
ID:545457 發表于 2020-5-26 18:02 | 只看該作者
靈魂9527 發表于 2019-1-9 23:49
模式選擇,自動顯示切換濕度和溫度,只顯示溫度,只顯示濕度。

單片機源程序如下:

樓主程序非常有用哦
回復

使用道具 舉報

26#
ID:556974 發表于 2020-6-2 10:44 | 只看該作者
謝謝大佬
回復

使用道具 舉報

27#
ID:782184 發表于 2020-6-17 16:10 | 只看該作者
原件屬性是什么
回復

使用道具 舉報

28#
ID:782184 發表于 2020-6-17 16:11 | 只看該作者
我想問問原件屬性是什么,仿真沒結果
回復

使用道具 舉報

29#
ID:92810 發表于 2020-6-28 11:37 | 只看該作者
謝謝樓主分享了,下載學習學習
回復

使用道具 舉報

30#
ID:797084 發表于 2020-7-4 12:47 | 只看該作者
有沒有原理圖的文件
回復

使用道具 舉報

31#
ID:839306 發表于 2020-11-29 20:46 | 只看該作者
想問一下仿真中R1 1k的電阻是哪一個?在元件中叫什么
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产精品一区二区在线观看 | 91av在线影院 | 久久久久亚洲av毛片大全 | 91久久精品 | 欧美日韩国产三级 | 蜜桃精品噜噜噜成人av | 一区二区三区免费看 | 午夜精品视频 | 亚洲免费一区二区 | 天天操天天天干 | 红桃视频一区二区三区免费 | 久久一二区 | 国产91网站在线观看 | 亚洲一区二区三区在线播放 | 一级毛毛片 | 欧美亚洲国产日韩 | 新疆少妇videos高潮 | 欧美精品在线免费 | 人人玩人人添人人澡欧美 | 国产激情一区二区三区 | 国产精品久久久久久久久久免费看 | 亚州精品天堂中文字幕 | 欧美淫 | 久久久91 | 欧美精品欧美精品系列 | 国产成人一区二区 | 九九热精品免费 | 精品91久久| 久久av一区 | 欧美精品第三页 | 一区二区在线观看av | 自拍视频网站 | 欧产日产国产精品v | 祝你幸福电影在线观看 | 久久综合九九 | 影视先锋av资源噜噜 | 欧美日韩视频在线播放 | 国产xxxx搡xxxxx搡麻豆 | 国产在线一区二区 | 久久精品欧美一区二区三区不卡 | 欧美一级片在线看 |