⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dht11.lst.svn-base

📁 单片机驱动32X64点阵资料
💻 SVN-BASE
字号:
C51 COMPILER V8.08   DHT11                                                                 01/12/2012 22:02:49 PAGE 1   


C51 COMPILER V8.08, COMPILATION OF MODULE DHT11
OBJECT MODULE PLACED IN DHT11.OBJ
COMPILER INVOKED BY: D:\Program Files\keil_51\C51\BIN\C51.EXE DHT11.C BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include "NEW_8051.H"
   2          #include"task.h"
   3          #include <intrins.h>
   4          #include"sbit.h"
   5          uchar ucTemp;
   6          
   7          //----------------------------------------------//
   8          //----------------定义区--------------------//
   9          //----------------------------------------------//
  10          U8  U8FLAG;
  11          U8  U8count,U8temp;
  12          U8  U8T_data_H,U8T_data_L,U8RH_data_H,U8RH_data_L,U8checkdata;
  13          U8  U8T_data_H_temp,U8T_data_L_temp,U8RH_data_H_temp,U8RH_data_L_temp,U8checkdata_temp;
  14          U8  ucComdata;
  15          //uchar data temp_data[2] = {0x00,0x00};
  16          /***************************************************************/
  17          void  Delay_10us(void)
  18          {
  19   1              unsigned char a,b;
  20   1          for(b=1;b>0;b--)
  21   1              for(a=89;a>0;a--);
  22   1      
  23   1      }
  24          /***********************************/
  25          void  COM(void)
  26          {
  27   1          uchar i;
  28   1          for(i=0;i<8;i++)       
  29   1          {        
  30   2              FLAG=2;       
  31   2              while((!DQ)&&FLAG++);
  32   2              Delay_10us();
  33   2              Delay_10us();
  34   2              Delay_10us();
  35   2              ucTemp=0;
  36   2              if(DQ)
  37   2              ucTemp=1;
  38   2              FLAG=2;
  39   2              while((DQ)&&FLAG++);        
  40   2              //超时则跳出for循环               
  41   2              if(FLAG==1)
  42   2              break;
  43   2              //判断数据位是0还是1             
  44   2              // 如果高电平高过预定0高电平值则数据位为 1         
  45   2              ucComdata<<=1;
  46   2              ucComdata|=ucTemp;
  47   2          }
  48   1      
  49   1      }
  50          
  51                  //--------------------------------
  52                  //-----湿度读取子程序 ------------
  53                  //--------------------------------
  54                  //----以下变量均为全局变量--------
  55                  //----温度高8位== T_data_H------
C51 COMPILER V8.08   DHT11                                                                 01/12/2012 22:02:49 PAGE 2   

  56                  //----温度低8位== T_data_L------
  57                  //----湿度高8位== RH_data_H-----
  58                  //----湿度低8位== RH_data_L-----
  59                  //----校验 8位 == checkdata-----
  60                  //----调用相关子程序如下----------
  61                  //---- Delay();, Delay_10us();,COM(); 
  62                  //--------------------------------
  63          /*******************************************/
  64          void RH(void)
  65          { 
  66   1          if(rr==1)
  67   1          {
  68   2              rr=0; 
  69   2              //主机拉低18ms 
  70   2              DQ=0;   
  71   2                      TR0=1; 
  72   2          }
  73   1          // Delay2(180);
  74   1          else  if(zz==1)
  75   1          {  
  76   2              
  77   2              rr=1;
  78   2                      //zz=0;
  79   2              DQ=1;
  80   2              //总线由上拉电阻拉高 主机延时20us
  81   2              Delay_10us();
  82   2              Delay_10us();
  83   2              Delay_10us();
  84   2              //主机设为输入 判断从机响应信号 
  85   2              DQ=1;
  86   2              //判断从机是否有低电平响应信号 如不响应则跳出,响应则向下运行     
  87   2              if(!DQ)          //T !    
  88   2              {
  89   3               U8FLAG=2;
  90   3                      //判断从机是否发出 80us 的低电平响应信号是否结束         
  91   3                      while((!DQ)&&U8FLAG++);
  92   3                      U8FLAG=2;
  93   3                      //判断从机是否发出 80us 的高电平,如发出则进入数据接收状态
  94   3                      while((DQ)&&U8FLAG++);
  95   3                      //数据接收状态           
  96   3                      COM();
  97   3                      U8RH_data_H_temp=ucComdata;
  98   3                      COM();
  99   3                      U8RH_data_L_temp=ucComdata;
 100   3                      COM();
 101   3                      U8T_data_H_temp=ucComdata;
 102   3                      COM();
 103   3                      U8T_data_L_temp=ucComdata;
 104   3                      COM();
 105   3                      U8checkdata_temp=ucComdata;
 106   3                      DQ=1;
 107   3                      U8temp=(U8T_data_H_temp+U8T_data_L_temp+U8RH_data_H_temp+U8RH_data_L_temp);
 108   3                      if(U8temp==U8checkdata_temp)
 109   3                      {
 110   4                              U8RH_data_H=U8RH_data_H_temp;
 111   4                              U8RH_data_L=U8RH_data_L_temp;
 112   4                              U8T_data_H=U8T_data_H_temp;
 113   4                              U8T_data_L=U8T_data_L_temp;
 114   4                              U8checkdata=U8checkdata_temp;
 115   4                  nn=0;
 116   4                  mm=0;
 117   4                  }
C51 COMPILER V8.08   DHT11                                                                 01/12/2012 22:02:49 PAGE 3   

 118   3              }
 119   2          
 120   2          }
 121   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    193    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     15    ----
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -