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

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 14403|回復(fù): 30
收起左側(cè)

基于51單片機(jī)的dht11溫濕度數(shù)碼管顯示proteus仿真與程序源碼

  [復(fù)制鏈接]
ID:389447 發(fā)表于 2019-1-9 23:45 | 顯示全部樓層 |閱讀模式
仿真原理圖如下


仿真

仿真


按button1可以切換模式
模式0 只顯示溫度
模式1 只顯示濕度
模式2 動(dòng)態(tài)顯示溫度和濕度,每5s切換一次


實(shí)物如下
溫度顯示

溫度顯示

溫度顯示




濕度顯示  小數(shù)

濕度顯示

濕度顯示
資料.png

評(píng)分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

ID:389447 發(fā)表于 2019-1-9 23:49 | 顯示全部樓層
模式選擇,自動(dòng)顯示切換濕度和溫度,只顯示溫度,只顯示濕度。

單片機(jī)源程序如下:
  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重載值的高字節(jié)
  8. unsigned char T0RL = 0;  //T0重載值的低字節(jié)
  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;   //數(shù)碼管小數(shù)點(diǎn)


  23. void delay(unsigned char x)   //延時(shí)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定時(shí)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)  //數(shù)碼管刷新頻率
  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;         //標(biāo)志位清零
  68.                           }
  69.                           else if(st==1){

  70.                           str = DHT[0] ;  //濕度
  71.                   Display_hum(&str);
  72.                                   flag1s =0;         //標(biāo)志位清零
  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. /* 配置并啟動(dòng)T0,ms-T0定時(shí)時(shí)間 */
  105. void ConfigTimer0(unsigned int ms)
  106. {
  107.     unsigned long tmp;  //臨時(shí)變量
  108.    
  109.     tmp = 11059200 / 12;      //定時(shí)器計(jì)數(shù)頻率
  110.     tmp = (tmp * ms) / 1000;  //計(jì)算所需的計(jì)數(shù)值
  111.     tmp = 65536 - tmp;        //計(jì)算定時(shí)器重載值
  112.     tmp = tmp + 12;           //補(bǔ)償中斷響應(yīng)延時(shí)造成的誤差
  113.     T0RH = (unsigned char)(tmp>>8);  //定時(shí)器重載值拆分為高低字節(jié)
  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;        //啟動(dòng)T0
  121. }
  122. /* T0中斷服務(wù)函數(shù),完成1秒定時(shí) */
  123. void InterruptTimer0() interrupt 1
  124. {

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

  130.         if(tmr10ms>=1)           //  數(shù)碼管刷新頻率
  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 數(shù)據(jù)更新頻率
  148.     {
  149.         tmr1s = 0;
  150.         flag1s = 1;
  151.         }

  152.    
  153. }
復(fù)制代碼

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

使用道具 舉報(bào)

ID:466071 發(fā)表于 2019-1-10 20:40 | 顯示全部樓層
謝謝!!
回復(fù)

使用道具 舉報(bào)

ID:445069 發(fā)表于 2019-2-23 15:43 | 顯示全部樓層
DHT11的data口,好像沒有接4.7K的上拉電阻?
回復(fù)

使用道具 舉報(bào)

ID:567779 發(fā)表于 2019-6-20 12:47 | 顯示全部樓層
靈魂9527 發(fā)表于 2019-1-9 23:49
模式選擇,自動(dòng)顯示切換濕度和溫度,只顯示溫度,只顯示濕度。

單片機(jī)源程序如下:

謝謝大佬!!
回復(fù)

使用道具 舉報(bào)

ID:338716 發(fā)表于 2019-6-25 06:15 | 顯示全部樓層
感謝你的分享
回復(fù)

使用道具 舉報(bào)

ID:591640 發(fā)表于 2019-8-5 10:35 | 顯示全部樓層
非常感謝,
回復(fù)

使用道具 舉報(bào)

ID:605988 發(fā)表于 2019-9-21 15:04 | 顯示全部樓層
非常感謝
回復(fù)

使用道具 舉報(bào)

ID:283883 發(fā)表于 2019-10-26 12:20 | 顯示全部樓層
是共陰數(shù)碼管還是共陽(yáng)的
回復(fù)

使用道具 舉報(bào)

ID:389447 發(fā)表于 2019-12-1 10:05 | 顯示全部樓層
周栩樂 發(fā)表于 2019-10-26 12:20
是共陰數(shù)碼管還是共陽(yáng)的

共陰   
回復(fù)

使用道具 舉報(bào)

ID:299519 發(fā)表于 2019-12-10 14:39 | 顯示全部樓層
東東不錯(cuò)
回復(fù)

使用道具 舉報(bào)

ID:492212 發(fā)表于 2019-12-22 16:36 | 顯示全部樓層
為什么我用你的程序數(shù)碼管只顯示88
回復(fù)

使用道具 舉報(bào)

ID:362692 發(fā)表于 2019-12-26 15:03 來自手機(jī) | 顯示全部樓層
如果在此基礎(chǔ)上,加上一個(gè)溫度報(bào)警好做嗎
回復(fù)

使用道具 舉報(bào)

ID:561156 發(fā)表于 2019-12-27 22:42 | 顯示全部樓層
在這上面加個(gè)控制器設(shè)計(jì)好做嗎
回復(fù)

使用道具 舉報(bào)

ID:673920 發(fā)表于 2019-12-28 12:40 | 顯示全部樓層
靈魂9527 發(fā)表于 2019-1-9 23:49
模式選擇,自動(dòng)顯示切換濕度和溫度,只顯示溫度,只顯示濕度。

單片機(jī)源程序如下:

剛剛學(xué)習(xí),先復(fù)制源代碼試試,
回復(fù)

使用道具 舉報(bào)

ID:673920 發(fā)表于 2019-12-28 13:01 | 顯示全部樓層
靈魂9527 發(fā)表于 2019-1-9 23:49
模式選擇,自動(dòng)顯示切換濕度和溫度,只顯示溫度,只顯示濕度。

單片機(jī)源程序如下:

謝謝!調(diào)試通過!
回復(fù)

使用道具 舉報(bào)

ID:150208 發(fā)表于 2020-1-7 17:24 | 顯示全部樓層
為什么把你的程序沒有更改,只是重新編譯一下,就只會(huì)很閃的顯示88,但不重新編譯,直接用你之前的.hex文件,又顯示正常呢?
回復(fù)

使用道具 舉報(bào)

ID:150208 發(fā)表于 2020-1-7 17:25 | 顯示全部樓層
為什么用你的程序沒有任何改動(dòng)只是重新編譯一下,會(huì)顯示不了,只會(huì)顯示閃的88
回復(fù)

使用道具 舉報(bào)

ID:707289 發(fā)表于 2020-3-19 15:55 | 顯示全部樓層
挺好的,希望大佬繼續(xù)分享dht12.
回復(fù)

使用道具 舉報(bào)

ID:412517 發(fā)表于 2020-3-24 15:40 | 顯示全部樓層
感謝分享!正需要學(xué)習(xí)!
回復(fù)

使用道具 舉報(bào)

ID:752951 發(fā)表于 2020-5-15 22:23 來自手機(jī) | 顯示全部樓層
仿真原理圖為什么我的p2.1、p2.4、p1.1,為紅色
回復(fù)

使用道具 舉報(bào)

ID:754108 發(fā)表于 2020-5-17 16:35 來自手機(jī) | 顯示全部樓層
為什么我編譯,出現(xiàn)delay:missing function-prototype和 delay:requires-style prototype
回復(fù)

使用道具 舉報(bào)

ID:752951 發(fā)表于 2020-5-23 14:17 來自手機(jī) | 顯示全部樓層
unsigned int tmr1s = 0; unsigned int tmr10ms = 0;是什么意思
回復(fù)

使用道具 舉報(bào)

ID:752674 發(fā)表于 2020-5-23 21:25 | 顯示全部樓層
仿真的時(shí)候除了把proteus和keil 保存在同一文件夾下 還有什么要求嗎
回復(fù)

使用道具 舉報(bào)

ID:545457 發(fā)表于 2020-5-26 18:02 | 顯示全部樓層
靈魂9527 發(fā)表于 2019-1-9 23:49
模式選擇,自動(dòng)顯示切換濕度和溫度,只顯示溫度,只顯示濕度。

單片機(jī)源程序如下:

樓主程序非常有用哦
回復(fù)

使用道具 舉報(bào)

ID:556974 發(fā)表于 2020-6-2 10:44 | 顯示全部樓層
謝謝大佬
回復(fù)

使用道具 舉報(bào)

ID:782184 發(fā)表于 2020-6-17 16:10 | 顯示全部樓層
原件屬性是什么
回復(fù)

使用道具 舉報(bào)

ID:782184 發(fā)表于 2020-6-17 16:11 | 顯示全部樓層
我想問問原件屬性是什么,仿真沒結(jié)果
回復(fù)

使用道具 舉報(bào)

ID:92810 發(fā)表于 2020-6-28 11:37 | 顯示全部樓層
謝謝樓主分享了,下載學(xué)習(xí)學(xué)習(xí)
回復(fù)

使用道具 舉報(bào)

ID:797084 發(fā)表于 2020-7-4 12:47 | 顯示全部樓層
有沒有原理圖的文件
回復(fù)

使用道具 舉報(bào)

ID:839306 發(fā)表于 2020-11-29 20:46 | 顯示全部樓層
想問一下仿真中R1 1k的電阻是哪一個(gè)?在元件中叫什么
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 日韩在线小视频 | 在线日韩精品视频 | 黄色在线免费观看视频网站 | av黄色在线 | 成人精品啪啪欧美成 | 天天综合久久 | 91精品国产91久久久久久 | av国产精品毛片一区二区小说 | 亚洲精品久久久久久首妖 | 范冰冰一级做a爰片久久毛片 | 精精国产视频 | 午夜网站视频 | 国产亚洲精品久久久优势 | 精品久久久久一区二区国产 | 999久久久久久久久6666 | 亚洲码欧美码一区二区三区 | 国产美女黄色片 | av性色| 午夜理伦三级理论三级在线观看 | 黄色网址在线免费播放 | 91免费观看在线 | 亚洲a在线观看 | 国产精品久久久久久久久久免费 | 偷拍亚洲色图 | 国产一区二区影院 | 国产精品美女一区二区 | 国产在线97 | 成人免费视频观看 | av大片在线观看 | 亚洲日韩中文字幕一区 | 久久久精品网 | 免费视频一区二区 | 懂色一区二区三区免费观看 | 亚洲a在线观看 | 久久久www成人免费精品张筱雨 | 久久久久久成人 | 日韩精品三区 | 一级网站| 蜜臀久久 | 在线视频三区 | 国产视频三区 |