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

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

QQ登錄

只需一步,快速開始

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

求助:dht11時(shí)序問(wèn)題--溫濕度一直顯示0的問(wèn)題

[復(fù)制鏈接]
ID:997537 發(fā)表于 2022-5-26 13:31 | 顯示全部樓層 |閱讀模式
按照時(shí)序圖改了很多次,但是總是輸出為0,有沒(méi)有大神能夠幫忙解答一下

dht11.c
  1. #include "STC8A.h"
  2. #include "time111.h"
  3. #include <string.h>
  4. #include "stdio.h"
  5. #include "dht111.h"

  6. sbit dht11=P0^3;
  7. sbit led=P2^0;
  8. sbit led1=P2^1;
  9. unsigned char s[5]=0;
  10. unsigned char rec[5]=0;


  11. void start()
  12. {
  13.         
  14.         dht11=1;
  15.         Delay1us();
  16.         Delay1us();
  17.         dht11=0;
  18.         Delay18ms();
  19.         dht11=1;
  20.         Delay30us();
  21.         //dht11=1;
  22.         while(!dht11)
  23.         {
  24.                 led=0;
  25.         }
  26. }

  27. unsigned char readbyte()
  28. {
  29.         unsigned char i,dat=0;
  30.         for(i=0;i<8;i++)    //從高到低依次接收8位數(shù)據(jù)
  31.    {         
  32.       while(!dht11);   //等待50us低電平過(guò)去
  33.       Delay50us();     //延時(shí)60us,如果還為高則數(shù)據(jù)為1,否則為0
  34.       dat<<=1;           //移位使正確接收8位數(shù)據(jù),數(shù)據(jù)為0時(shí)直接移位
  35.       if(dht11==1)    //數(shù)據(jù)為1時(shí),使dat加1來(lái)接收數(shù)據(jù)1
  36.          dat+=1;
  37.       while(dht11);  //等待數(shù)據(jù)線拉低   
  38.     }  
  39.          return dat;
  40. }

  41. void readall(unsigned char *rec)
  42. {

  43.         unsigned char R_H,R_L,T_H,T_L,RH,RL,TH,TL,revise;
  44.         start();
  45.         if(start==1)led1=0;
  46.         if(dht11==0)
  47.         {
  48.                 while(dht11==0);//等待拉高   
  49.                 Delay80us(); //拉高后延時(shí)80us
  50.                 R_H=readbyte();    //接收濕度高八位  
  51.     R_L=readbyte();    //接收濕度低八位  
  52.     T_H=readbyte();    //接收溫度高八位  
  53.     T_L=readbyte();    //接收溫度低八位
  54.     revise=readbyte(); //接收校正位

  55.     Delay25us();    //結(jié)束
  56.                 if((R_H+R_L+T_H+T_L)==revise)      //校正
  57.         {
  58.                                        
  59.             RH=R_H;
  60.             RL=R_L;
  61.             TH=T_H;
  62.             TL=T_L;
  63.                                         //led1=0;
  64.         }
  65.                         rec[0]=(RH)/10;
  66.       rec[1]=(RH)%10;        
  67.       rec[2]=(TH)/10;
  68.       rec[3]=(TH)%10;        
  69.                                        
  70.         }
  71.            

  72. }
復(fù)制代碼
main.c
  1. #include "STC8A.h"
  2. #include <intrins.h>
  3. #include <string.h>
  4. #include "stdio.h"
  5. #include "Uart.h"
  6. #include "time111.h"
  7. #include "dht111.h"

  8. extern unsigned char s[5];

  9. sbit led1=P2^0;

  10. void main()
  11. {
  12.         
  13.         Uart1Init();
  14.         EA=1;//開啟總中斷


  15.         while(1)
  16.         {
  17.                 char send[2]={'O','k'};
  18.                 char dht11_data[4]=0;
  19.                 start();
  20.                
  21.     send_string(send);
  22.                
  23.                 readall(dht11_data);
  24.     sprintf(s,"%d",dht11_data);
  25.                 send_string(s);
  26.                 Delay2000ms();
  27.         }
  28. }
復(fù)制代碼
dht11時(shí)序圖

dht11時(shí)序圖

dht11時(shí)序圖



回復(fù)

使用道具 舉報(bào)

ID:735831 發(fā)表于 2022-5-26 15:29 | 顯示全部樓層
校驗(yàn)位不一定有效果可以試著屏蔽編譯校驗(yàn)位檢測(cè)看看結(jié)果,我之前調(diào)的時(shí)候也是校驗(yàn)位的問(wèn)題。如果上述無(wú)效果的話,可能是延時(shí)問(wèn)題,有示波器確定發(fā)出的時(shí)序的話會(huì)好確認(rèn)很多,建議用stc isp自帶的延時(shí)工具調(diào)整軟件延時(shí),還有,你這里顯示是用數(shù)碼管還是使用串口,走串口中斷的話是會(huì)影響單片機(jī)本身軟件的延時(shí)的,再試一試keil的仿真,看看延時(shí)是否符合時(shí)序?
回復(fù)

使用道具 舉報(bào)

ID:887371 發(fā)表于 2022-5-28 16:58 | 顯示全部樓層
hzhehe 發(fā)表于 2022-5-26 15:29
校驗(yàn)位不一定有效果可以試著屏蔽編譯校驗(yàn)位檢測(cè)看看結(jié)果,我之前調(diào)的時(shí)候也是校驗(yàn)位的問(wèn)題。如果上述無(wú)效果 ...

校驗(yàn)通不過(guò)還是時(shí)序問(wèn)題。
樓主應(yīng)該找別人寫的代碼,參考他們的時(shí)序。附上正點(diǎn)原子的代碼。 DHT11.rar (1.92 KB, 下載次數(shù): 117)



我發(fā)現(xiàn)的坑:dht11的端口在讀取前必須持續(xù)大于100m高電平,減小上拉電阻值會(huì)有改善些。假如dht11的端口不復(fù)用其它功能可忽略這個(gè)坑。
回復(fù)

使用道具 舉報(bào)

ID:735831 發(fā)表于 2022-5-30 11:38 | 顯示全部樓層
datouyuan 發(fā)表于 2022-5-28 16:58
校驗(yàn)通不過(guò)還是時(shí)序問(wèn)題。
樓主應(yīng)該找別人寫的代碼,參考他們的時(shí)序。附上正點(diǎn)原子的代碼。

謝謝大哥指點(diǎn)
回復(fù)

使用道具 舉報(bào)

ID:997537 發(fā)表于 2022-6-12 16:20 | 顯示全部樓層
datouyuan 發(fā)表于 2022-5-28 16:58
校驗(yàn)通不過(guò)還是時(shí)序問(wèn)題。
樓主應(yīng)該找別人寫的代碼,參考他們的時(shí)序。附上正點(diǎn)原子的代碼。

感謝大佬!
回復(fù)

使用道具 舉報(bào)

ID:997537 發(fā)表于 2022-6-12 16:21 | 顯示全部樓層
hzhehe 發(fā)表于 2022-5-26 15:29
校驗(yàn)位不一定有效果可以試著屏蔽編譯校驗(yàn)位檢測(cè)看看結(jié)果,我之前調(diào)的時(shí)候也是校驗(yàn)位的問(wèn)題。如果上述無(wú)效果 ...

嗯嗯校驗(yàn)位的我也檢查了 最后還是時(shí)序的問(wèn)題 感謝指點(diǎn)!
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 国产99热在线 | 欧美日本久久 | 91久久国产综合久久 | 一区二区三区四区在线 | 午夜在线小视频 | 日日干日日操 | 国产成人免费视频 | 成人久久久久久久久 | 四虎影院新地址 | 国产日韩视频 | 成人av资源在线 | 国产成人综合亚洲欧美94在线 | 中文字幕成人av | av网站免费| 亚洲国产精品99久久久久久久久 | www日韩高清 | 成人精品区| 一级a爱片性色毛片免费 | 浴室洗澡偷拍一区二区 | 五月婷婷视频 | 亚洲一区av在线 | 欧美成人精品 | 日本高清中文字幕 | 国产精品久久久久久久久久久久冷 | 中文字幕乱码一区二区三区 | 亚洲综合大片69999 | 久久国产一区 | 高清一区二区 | 亚洲一区综合 | 国产精品国产三级国产aⅴ无密码 | 91麻豆精品国产91久久久更新资源速度超快 | 欧美日韩亚洲系列 | 日本一区高清 | 一区二区三区四区日韩 | 国产精品国产三级国产aⅴ原创 | 日韩av大片免费看 | 国产精品永久久久久 | 欧美黑人又粗大 | 欧美亚洲激情 | 成人免费看片又大又黄 | 久久精品国产一区二区电影 |