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

標題: 仿真時LCD一直顯示DHT11采集的數據為0,求大神解決一下 [打印本頁]

作者: m18203092233    時間: 2023-3-28 21:15
標題: 仿真時LCD一直顯示DHT11采集的數據為0,求大神解決一下
請問是因為沒采集到數據嗎,還是時序問題呀  純小白QAQ

DHT11代碼:
#include"reg52.h"
#include"DHT11.h"
#include"delay.h"
#include <intrins.h>
sbit  DHT11_DQ=P3^7;

bit status;  

void delay_10us(unsigned int nus)
{
        unsigned char i;

        i = 2*nus;
        while (--i);
}

void DHT11_Rst(void)  
{
        DHT11_DQ=0;      
        delay_ms(20);   
        DHT11_DQ=1;      
        delay_10us(4);  
}

bit DHT11_Check(void)
{
        unsigned char retry=0;

        while(DHT11_DQ&&retry<100)
        {
                retry++;
                delay_10us(1);
        };
        if(retry>=100)return 1;   
        else retry=0;              
        while(!DHT11_DQ&&retry<100)
        {
                retry++;
                delay_10us(1);
        };
        if(retry>=100)return 1;
                 return 0;
        
}

bit DHT11_Init(void)  
{
        DHT11_Rst() ;         
        return DHT11_Check();
}

static unsigned char DHT11_Read_Byte(void)
{
        unsigned char retry, dat = 0, i;
        status = OK;  
        for(i = 8; i > 0; i--)
        {
        
                dat <<= 1;
                retry = 0;
        
                whileT11_DQ == 0 && retry++ < NUMBER);
                if(retry >= NUMBER)
                {
                        status = ERROR;  
                        return 0;   
                }

                delay_10us(2);
        
                if(DHT11_DQ != 0)
                {
               
                        dat++;
               
                        while(DHT11_DQ != 0 && retry++ < NUMBER)
                        {
                                DHT11_DQ = 1;
                        }
                        if(retry >= NUMBER)
                        {
                                status = ERROR;  
                                return 0;
                        }  
                }
        }  
        return (dat);

bit DHT11_Read_Date(unsigned char *temp,unsigned char *humi)
{  
        unsigned char i = 0,retry = 0;
        unsigned char buf[SIZE];
        DHT11_DQ = 0;      
        delay_ms(30);
        DHT11_DQ = 1;   

        delay_10us(3);
        if(DHT11_DQ != 0)  
        {
                //??ó|′eD?o?  
                return ERROR;
        }
        else
        {
        
                while(DHT11_DQ == 0 && retry++ < NUMBER);  
                if(retry >= NUMBER)
                {
                        DHT11_DQ = 1;
                        return ERROR;  
                }
                retry = 0;
                DHT11_DQ = 1;        
        
                while(DHT11_DQ != 0 && retry++ < NUMBER);
                if(retry >= NUMBER)
                {
                        DHT11_DQ = 1;
                        return ERROR;
                }
        

            for(i = 0; i < SIZE; i++)  
                {
                        buf[ i] = DHT11_Read_Byte();
                        if(status == ERROR)        
                        {
                                DHT11_DQ = 1;   
                                return ERROR;  
                        }  
                }
                if((buf[0]+buf[1]+buf[2]+buf[3])==buf[4])
                {
                        *humi = buf[0];
                        *temp = buf[2];
                        DHT11_DQ = 1;
                        return OK;                                                   
                }
                else                        
                {
                        
                        return ERROR;
                }
        }         
}



主函數
void main()
{
        unsigned char temperature;              
        unsigned char humidity;
        Time0_Time1_init();
        lcd1602_init();
        led= 1;
        delay_ms(1000);
        L1602_string(1,1,"WD:");
        L1602_string(1,8,"SD:");
        L1602_string(1,6,"C");
        L1602_string(1,13,"%");
        L1602_string(2,3,":");
        L1602_string(2,6,":");
        L1602_string(2,12,":");
        while(1)
        {
                DHT11_Read_Date(&temperature,&humidity);
                delay_ms(50);
               
                L1602_int(1,4,temperature);
                L1602_int(1,11,humidity);
               
                if(key1==0
                {
                        buf++;
                        if(buf>1) buf=0;
                }
               
                if(buf==0
                {
                        L1602_string(1,15,"SD");
                        if(key2==0) led=~led;
                        if(key3==0) q1=~q1;
                        if(key4==0) q2=~q2;
                        if(temperature>40) q2=1;
                }
               
               
                if(buf==1
                {
                        L1602_string(1,15,"ZD");
                        if(key4==0) miao++;
                        if(key5==0) fen++;
                        if(key6==0) shi++;
                        if(key3==0) shi1++;  if(shi1>23) shi1=0;
                        if(key2==0) fen1++;  if(fen1>59) fen1=0;
                        
                        if((shi==shi1)&(fen==fen1)
                        {
                                if(humidity>70) led=q1=q2=0;  
                        
                        }
                        if(temperature>40|humidity<35
                        led=q1=q2=1;        
                }
                L1602_int(2,1,shi);
                L1602_int(2,4,fen);
                L1602_int(2,7,miao);
               
                L1602_int(2,10,shi1);
                L1602_int(2,13,fen1);
               
                delay_ms(150);
        }        
}

void Timer0() interrupt 1
{
   TH0=(65536-50000)/256;
   TL0=(65536-50000)%256;
   count++;
   if(count==20
        {
    count=0
                miao++;
                if(miao>59)
                {
                        miao=0;
                        fen++;
                }
                if(fen>59)
                {
                        fen=0;
                        shi++;
                }
                if(shi>23) shi=0;
  }
}





歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 成人免费视频在线观看 | 国产欧美一区二区三区久久 | 成年人在线观看视频 | 中文字幕在线免费观看 | 一区二区三区四区在线视频 | 欧美一区2区三区4区公司 | 久久精品久久久 | 成人1区2区 | 欧美久久久久久久 | 亚洲成人精品一区 | www.久久久久久久久 | 久久成人高清视频 | 91麻豆精品国产91久久久更新资源速度超快 | 一区二区在线免费观看视频 | 国产在线精品一区二区 | 一区二区小视频 | 亚洲欧美国产毛片在线 | 欧美日韩视频网站 | 国产免费自拍 | 一区二区三区在线看 | 国产一区在线视频 | 毛片av免费在线观看 | 色综合久久88色综合天天 | 91视视频在线观看入口直接观看 | 日韩在线观看一区二区三区 | 欧美日韩国产一区二区三区 | 在线观看免费av片 | 日韩在线免费播放 | 中文字幕一区二区三区精彩视频 | 中文字幕一区在线观看视频 | 欧美国产日韩一区 | 免费观看国产视频在线 | 欧美成人精品二区三区99精品 | 网站黄色在线 | 天天噜天天干 | 偷拍亚洲色图 | 一级二级三级在线观看 | 国产综合区 | 精品中文在线 | 国产极品车模吞精高潮呻吟 | 欧美日韩一区二区在线观看 |