找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1843|回復(fù): 1
打印 上一主題 下一主題
收起左側(cè)

有大佬用過DHT11溫濕度模塊嗎?單片機(jī)測出來的數(shù)據(jù)不太正常,求救

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:494791 發(fā)表于 2019-5-6 10:41 | 只看該作者 回帖獎勵 |倒序?yàn)g覽 |閱讀模式
還有就是那個從機(jī)響應(yīng)函數(shù)response()加上的話lcd就什么也不顯示了,不加的話現(xiàn)在顯示濕度68,溫度46,

程序如下
  1. #include<reg52.h>
  2. #define uchar unsigned char
  3. #define uint unsigned int
  4. sbit DATA=P2^0;
  5. sbit rs=P2^6;        
  6. sbit rw=P2^5;        
  7. sbit en=P2^7;     
  8. uchar rec_dat[9];   //用于顯示的接收數(shù)據(jù)數(shù)組
  9. /*1ms延時(shí)函數(shù)*/
  10. void delay1ms(uint x)   //誤差 0us
  11. {
  12.     unsigned char a,b,c;
  13.     for(c=x;c>0;c--)
  14.         for(b=142;b>0;b--)
  15.             for(a=2;a>0;a--);
  16. }
  17. /*80us延時(shí)函數(shù)*/
  18. void delay80us(void)   //誤差 0us
  19. {
  20.     unsigned char a,b;
  21.     for(b=11;b>0;b--)
  22.         for(a=2;a>0;a--);
  23. }
  24. /*60us延時(shí)函數(shù)*/
  25. void delay60us(void)   //誤差 0us
  26. {
  27.     unsigned char a,b;
  28.     for(b=3;b>0;b--)
  29.         for(a=8;a>0;a--);
  30. }
  31. /*24us延時(shí)函數(shù)*/
  32. void delay24us(void)   //誤差 0us
  33. {
  34.     unsigned char a,b;
  35.     for(b=3;b>0;b--)
  36.         for(a=2;a>0;a--);
  37. }
  38. /*27us延時(shí)函數(shù)*/
  39. void delay27us(void)   //誤差 0us
  40. {
  41.     unsigned char a;
  42.     for(a=12;a>0;a--);
  43. }
  44. /*主機(jī)發(fā)送起始信號*/
  45. void start()
  46. {
  47.    DATA=0;
  48.    delay1ms(20);
  49.    DATA=1;
  50.    delay24us();
  51. }
  52. /*檢測從機(jī)應(yīng)答信號*/
  53. void response()
  54. {
  55.    DATA=0;
  56.    delay80us();
  57.    DATA=1;
  58.    delay80us();
  59. }
  60. /*接收1字節(jié)數(shù)據(jù)*/
  61. uint receivebyte()
  62. {
  63.       uchar i,dat=0;
  64.     for(i=0;i<8;i++)
  65.     {
  66.        while(!DATA);//等待50ms低電平過去
  67.        delay27us();
  68.        if(DATA==1)
  69.          dat+=1;
  70.        dat<<=1;//數(shù)據(jù)移位
  71.        while(DATA);
  72.     }
  73.     return dat;
  74. }
  75. void DHT11()
  76. {
  77.    uchar R_H,R_L,T_H,T_L,RH,RL,TH,TL,revive;
  78.    start();
  79.    DATA=1;
  80. //   response();
  81.    if(DATA==0)
  82.    {
  83.      while(DATA==0);
  84.      delay80us();
  85.      R_H=receivebyte(); //接收濕度高八位
  86.      R_L=receivebyte(); //接收濕度低八位
  87.      T_H=receivebyte(); //接收溫度高八位
  88.      T_L=receivebyte(); //接收溫度低八位
  89.      revive=receivebyte(); //接收校正位
  90.      delay60us();
  91.    }
  92.    if((R_H+R_L+T_H+T_L)==revive) //校正
  93.    {
  94.     RH=R_H;
  95.     RL=R_L;
  96.     TH=T_H;
  97.     TL=T_L;
  98.    }
  99.     /*數(shù)據(jù)處理,方便顯示*/
  100.     rec_dat[0]='0'+(RH/10);
  101.     rec_dat[1]='0'+(RH%10);
  102.     rec_dat[2]='R';
  103.     rec_dat[3]='H';
  104.     rec_dat[4]=' ';
  105.     rec_dat[5]=' ';
  106.     rec_dat[6]='0'+(TH/10);
  107.     rec_dat[7]='0'+(TH%10);
  108.     rec_dat[8]='C';
  109. }
  110. void lcd_wcom(uchar com)
  111. {
  112.    rs=0;
  113.    rw=0;
  114.    P0=com;
  115.    delay1ms(5);
  116.    en=1;
  117.    delay1ms(5);
  118.    en=0;
  119. }
  120. void lcd_wdat(uchar dat)
  121. {
  122.    rs=1;
  123.    rw=0;
  124.    P0=dat;
  125.    delay1ms(5);
  126.    en=1;
  127.    delay1ms(5);
  128.    en=0;
  129. }
  130. void lcd_init()
  131. {
  132.    lcd_wcom(0x38);
  133.    lcd_wcom(0x0c);
  134.    lcd_wcom(0x06);
  135.    lcd_wcom(0x01);
  136. }
  137. void main()
  138. {
  139.    uchar i;
  140.    lcd_init();
  141.    delay1ms(1000);
  142.    while(1)
  143.    {
  144.    DHT11();
  145.    lcd_wcom(0x80);
  146.    for(i=0;i<9;i++)
  147.    {
  148.       lcd_wdat(rec_dat[i]);
  149.    }
  150.    }
  151. }
復(fù)制代碼

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

使用道具 舉報(bào)

沙發(fā)
ID:528677 發(fā)表于 2019-5-6 18:58 | 只看該作者
主函數(shù)加個延時(shí)試試,這模塊不能太過頻繁調(diào)用,最好1~2s調(diào)用一次。
回復(fù)

使用道具 舉報(bào)

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表