找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

51單片機(jī)接受不到溫度傳感器的數(shù)據(jù)是怎么回事

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:637082 發(fā)表于 2021-6-5 18:02 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
51單片機(jī)接受不到溫度傳感器的數(shù)據(jù)是怎么回事
  • #include<reg52.h>
  • #include<intrins.h>
  • #define uchar unsigned char
  • #define uint unsigned int
  • sbit Data=P2^0;
  • uchar rec_dat[9]="12369566";
  • extern void InitLcd1602();
  • extern void LcdShowStr(unsigned char x, unsigned char y, unsigned char *str);
  • void DHT11_delay_us(uchar n)
  • {
  •     while(--n);
  • }
  • void DHT11_delay_ms(uint z)
  • {
  •    uint i,j;
  •    for(i=z;i>0;i--)
  •       for(j=110;j>0;j--);
  • }
  • void DHT11_start()
  • {
  •    Data=1;
  •    DHT11_delay_us(2);
  •    Data=0;
  •    DHT11_delay_ms(20);
  •    Data=1;
  •    DHT11_delay_us(30);
  • }
  • uchar DHT11_rec_byte()
  • {
  •    uchar i,dat=0;
  •   for(i=0;i<8;i++)
  •    {
  •       while(!Data);
  •       DHT11_delay_us(8);
  •       dat<<=1;
  •       if(Data==1)
  •          dat+=1;
  •       while(Data);
  •     }
  •     return dat;
  • }
  • void DHT11_receive()
  • {
  •     uchar R_H,R_L,T_H,T_L,RH,RL,TH,TL,revise;
  •     DHT11_start();
  •     if(Data==0)
  •     {
  •         while(Data==0);   //等待數(shù)據(jù)
  •         DHT11_delay_us(40);  //延時80us
  •         R_H=DHT11_rec_byte();    //濕度高位
  •         R_L=DHT11_rec_byte();    //濕度低位
  •         T_H=DHT11_rec_byte();    //溫度高位
  •         T_L=DHT11_rec_byte();    //溫度低位
  •         revise=DHT11_rec_byte(); //獲取數(shù)據(jù)
  •         DHT11_delay_us(25);    //延時
  •         if((R_H+R_L+T_H+T_L)==revise)      //校驗
  •         {
  •             RH=R_H;
  •             RL=R_L;
  •             TH=T_H;
  •             TL=T_L;
  •         }
  •         /*數(shù)據(jù)分解*/
  •         rec_dat[0]='0'+(RH/10);
  •         rec_dat[1]='0'+(RH%10);
  •         rec_dat[2]='R';
  •         rec_dat[3]='H';
  •         rec_dat[4]=' ';
  •         rec_dat[5]=' ';
  •         rec_dat[6]='0'+(TH/10);
  •         rec_dat[7]='0'+(TH%10);
  •         rec_dat[8]='C';
  •     }
  • }
  • void main()
  • {
  •    InitLcd1602();   //1602初始化
  •    while(1)
  •    {
  •        DHT11_delay_ms(1500);    //DHT11初始1S延時
  •        DHT11_receive();
  •                         LcdShowStr(0,0,rec_dat);  //顯示溫濕度
  •    }
  • }


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

使用道具 舉報

沙發(fā)
ID:748788 發(fā)表于 2021-6-7 11:03 | 只看該作者
一般都是延時不準(zhǔn)的問題
回復(fù)

使用道具 舉報

板凳
ID:861234 發(fā)表于 2021-6-7 11:17 | 只看該作者
再仔細(xì)閱讀PDF
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

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

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