微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > DHT11温湿度显示问题

DHT11温湿度显示问题

时间:10-02 整理:3721RD 点击:
DHT11在12864上显示温湿度   求助大神下面这个驱动和显示程序的问题 一直显示不出来   只能显示00      刚开始学程序   真心求教,万分感谢
void RH(void)
{
          uchar i,temp;
          //主机拉低18ms
       DHT=0;
           Delay_t(180);
           DHT=1;
         //总线由上拉电阻拉高 主机延时20us
           Delay_10us();
           Delay_10us();
           Delay_10us();
           Delay_10us();
         //主机设为输入 判断从机响应信号
           DHT=1;
         //判断从机是否有低电平响应信号 如不响应则跳出,响应则向下运行          
           if(!DHT)                 //T !          
           {
                        FLAG=2;
                        //判断从机是否发出 80us 的低电平响应信号是否结束         
                        while((!DHT)&&FLAG++);
                        FLAG=2;
                        //判断从机是否发出 80us 的高电平,如发出则进入数据接收状态
                        while((DHT)&&FLAG++); //数据接收状态
                        for(i=0;i<5;i++)
                        {
                                DATARHT[i]=COM();       
                        }                 
                        DHT=1;
                        //数据校验          
                        temp=(DATARHT[0]+DATARHT[1]+DATARHT[2]+DATARHT[3]);
                        if(temp==DATARHT[4])
                        {                       
                                RTflag=1;                  
                        }
                        if(RTflag==1)
                   {                         
                                RTflag=0;
                                tm[0]=DATARHT[0]/10;
                                tm[1]=DATARHT[0]%10;
                                tm[2]=DATARHT[1]/10; //湿度
       
                                tm[3]=DATARHT[2]/10;
                                tm[4]=DATARHT[2]%10;
                                tm[5]=DATARHT[3]/10; //温度                                                               
                   }
                }
   lcm_w_test(0,0x88);
   lcm_w_test(1,0x30+tm[0]);
   lcm_w_test(1,0x30+tm[1]);
}

LZ 得把  单片机型号贴出来, 还有 晶振。   还有Delay_t()  、Delay_10us() 函数
这个应该是 时序的问题。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top