C51 COMPILER V9.54   MAIN                                                                  02/17/2022 16:53:45 PAGE 1   


C51 COMPILER V9.54, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN .\Objects\main.obj
COMPILER INVOKED BY: C:\Keil_v5\C51\BIN\C51.EXE main.c OPTIMIZE(8,SPEED) BROWSE DEBUG OBJECTEXTEND PRINT(.\Listings\main
                    -.lst) TABS(2) OBJECT(.\Objects\main.obj)

line level    source

   1          #include "drive_1602.h"
   2          #include "dht11.h"
   3          #include "string.h"
   4          #include "stdio.h"
   5          #define uint unsigned int 
   6          #define uchar unsigned char
   7            
   8          typedef unsigned          char uint8_t;
   9          typedef unsigned short     int uint16_t;
  10          typedef unsigned           int uint32_t;
  11          
  12          typedef uint32_t  u32;
  13          typedef uint16_t u16;
  14          typedef uint8_t  u8;
  15          /*
  16          2���ܹ����������ʪ�ȣ�ʵʱ��ʾ��LCD1602Һ�����ϡ� 
  17          3���ܹ�����������ֵ����������������ˮ��������
  18          4������̫���ܹ�����ܻ�����
  19          5�����ü̵�������DZˮ�á�
  20          6����������ģ��ʵ��Զ�̿��ơ�
  21          7���Զ��Ͷ��ֽ�ˮ�л���
  22          8�����ݲ�ͬ�������ͻ������ܹ������ĵ�����ˮҪ��
  23          
  24          ����ʪ�ȴ���������������ĺ�ˮ��������⵽���źŴ�����������Ƭ����
  25          ͨ��DS18B20�¶ȴ�������⵽�Ļ����¶ȷ�������Ƭ������Ƭ�������Ƚϴ�����
  26          �����Ҫ��ˮ������ˮ�õ����ˮ���������Ҫ��Ƭ����������ģʽ��
  27          ϵͳ������Ӧ��ͬ�������ͻ��������趨�� 
  28          ���Ԥ�ڳɹ���̫���ܹ���ϵͳΪϵͳ���硣
  29          ͨ��������ʪ�Ⱥͻ����¶ȵļ��ʵ���Զ�������
  30          �õ���˿ʵ�ֶ�ˮλ�ļ�⣬��ˮ��ûˮʱ��
  31          ���źŴ��ݵ���Ƭ������Ƭ��������ʹLED��������Ҫ��ˮ��
  32          
  33          ��ϵͳ̫���ܹ��硣ͨ��������ʪ�ȵļ��ʵ���Զ�������
  34          ��������������ˮ��Ȳ���������������ֹͣ����������ˮ��
  35          ��������ֹͣ��ˮ���¶ȴ��������Ը�֪��Χ�Ļ����¶ȣ�
  36          �������ֿ���ʵ��Զ�̲�����
  37          ʵ���Զ����ֶ���ˮ�IJ�����
  38          ��Ȼ����ͨ������Ҳ����ʵ���Զ����ֶ��IJ�����
  39          Һ����ʾ��Ҳ����ʵʱ��ʾ��ǰ���¶Ⱥ�ʪ����Ϣ��
  40          */
  41          
  42          char SET=0;
  43          
  44          char SdL=60;
  45          char SdH=80;
  46          
  47          char SET_Timer=5;
  48          
  49          sbit BG_LED=P2^4;
  50          sbit Jsq=P2^3;
  51          sbit buzz=P2^3;
  52          
  53          bit Open=0;
  54          
C51 COMPILER V9.54   MAIN                                                                  02/17/2022 16:53:45 PAGE 2   

  55          char SETLBuff[5];//װ��ʪ������
  56          char SETHBuff[5];//װ���¶���������
  57          char blue_buff[16]={0};
  58          char WdBuff[6];//װ��ʪ������
  59          char SdBuff[6];//װ���¶���������
  60          void sendString(char *p);
  61          
  62          unsigned char temp_val=0,humi_val=70;
  63          
  64          unsigned int set_gz=1000;
  65          
  66          void Get_DHTData(void)
  67          {
  68   1          if(dht11_value(&temp_val,&humi_val,DHT11_UINT8)==0)
  69   1          {
  70   2      
  71   2              SdBuff[0]=humi_val/10+'0';   //��ʪ�ȵ��������ֵ�ʮλ�͸�λ�ֿ� 
  72   2              SdBuff[1]=humi_val%10+'0'; 
  73   2              SdBuff[2]='%';
  74   2              
  75   2              WdBuff[0]=temp_val/10+'0';   //��wen�ȵ��������ֵ�ʮλ�͸�λ�ֿ� 
  76   2              WdBuff[1]=temp_val%10+'0';
  77   2              WdBuff[2]=0xdf;WdBuff[3]='C';
  78   2            
  79   2              sprintf(blue_buff,"X%dH%dD%dZ\r\n",temp_val,humi_val);
  80   2              sendString(blue_buff);
  81   2          }
  82   1      }
  83          
  84          
  85          void delay_xms(int xms)
  86          {
  87   1          char ix=0;
  88   1          for(;xms>0;xms--)
  89   1           for(ix=110;ix>0;ix--);
  90   1      }
  91          
  92          
  93          bit SET_Mode=0;
  94          bit CloseIfg=0;
  95          unsigned char  BjCnt=0;
  96          bit TimeOpen=0; //������ʱ�رձ��� 
  97          
  98          static unsigned int DsTimer=0; //����ʱ������  
  99          void KeyRead(void)
 100          {
 101   1          static char keyIfg=0;
 102   1          unsigned char KeyVal=0;
 103   1        KeyVal = P3&0xF8; //��ȡ����ֵ 
 104   1         if(KeyVal!=0xF8)//���������
 105   1         {
 106   2           if(keyIfg==0)
 107   2           {
 108   3             keyIfg=1;
 109   3             switch(KeyVal)  //�жϼ�ֵ 
 110   3             {
 111   4               case 0xF0:
 112   4                    SET_Mode=~SET_Mode;
 113   4                    CloseIfg=0;
 114   4                    SET=0;
 115   4               break;
 116   4               
C51 COMPILER V9.54   MAIN                                                                  02/17/2022 16:53:45 PAGE 3   

 117   4               case 0xE8:
 118   4                    if(SET_Mode==0)
 119   4                    {
 120   5                       if(++SET>3)SET=0;
 121   5                    }
 122   4               break;
 123   4               
 124   4               case 0xD8:
 125   4                    if(SET_Mode==0)
 126   4                    {
 127   5                       if(SET==1)
 128   5                       {
 129   6                          if(++SdL>92)SdL=0;
 130   6                       }
 131   5                       if(SET==2)
 132   5                       {
 133   6                          if(++SdH>92)SdH=0;
 134   6                       }
 135   5                       if(SET==3)
 136   5                       {
 137   6                         if(set_gz<9990)
 138   6                         {
 139   7                            set_gz+=100;
 140   7                         }
 141   6                       }
 142   5                    }
 143   4               break;
 144   4               
 145   4               case 0xB8:
 146   4                    if(SET_Mode==0)
 147   4                    {
 148   5                       if(SET==1)
 149   5                       {
 150   6                          if(--SdL<0)SdL=92;
 151   6                       }
 152   5                       if(SET==2)
 153   5                       {
 154   6                          if(--SdH<0)SdH=92;
 155   6                       }
 156   5                        if(SET==3)
 157   5                       {
 158   6                         if(set_gz>100)
 159   6                         {
 160   7                            set_gz-=100;
 161   7                         }
 162   6                       }
 163   5                       
 164   5                    }
 165   4      
 166   4               break;
 167   4                    
 168   4               case 0x78: //�ֶ����ư��� 
 169   4                 if(SET_Mode) //�ֶ�ģʽ�²�����
 170   4                 {
 171   5                     Open^=1;
 172   5                    
 173   5                 }
 174   4               break;
 175   4                    
 176   4      
 177   4             }
 178   3           }
C51 COMPILER V9.54   MAIN                                                                  02/17/2022 16:53:45 PAGE 4   

 179   2         }else keyIfg=0;
 180   1            
 181   1        
 182   1      }
 183          
 184          
 185          void Time0Init(void)    //40����@11.0592MHz
 186          {
 187   1      
 188   1        TMOD &= 0xF0;   //���ö�ʱ��ģʽ
 189   1        TMOD |= 0x01;   //���ö�ʱ��ģʽ
 190   1        TL0 = 0x00;   //���ö�ʱ��ֵ
 191   1        TH0 = 0x70;   //���ö�ʱ��ֵ
 192   1        TF0 = 0;    //���TF1��־
 193   1        TR0 = 1;    //��ʱ��1��ʼ��ʱ
 194   1        ET0=1;
 195   1        EA=1;
 196   1      }
 197          
 198          
 199          uchar getTime=0;
 200          void ISR_T0()interrupt 1
 201          {
 202   1        
 203   1         TL0 = 0x00;    //���ö�ʱ��ֵ
 204   1         TH0 = 0x70;    //���ö�ʱ��ֵ
 205   1           getTime++;
 206   1           KeyRead();
 207   1            if(Open)
 208   1            {
 209   2              Jsq=0;
 210   2            }else
 211   1            {
 212   2               Jsq=1;
 213   2            }
 214   1          
 215   1      //    if(SET_Mode==1&&Open)//��ʱģʽ 
 216   1      //    {
 217   1      //      if(SET_Timer>0)  //��ʱģʽ�ݼ�  
 218   1      //      {
 219   1      //         if(++DsTimer>25)//1Sʱ�䵽
 220   1      //         {
 221   1      //             DsTimer=0;
 222   1      //             SET_Timer--; 
 223   1      //         }
 224   1      //      }else
 225   1      //      {
 226   1      //         Open=0;
 227   1      //      }
 228   1      //   }
 229   1      
 230   1      }
 231          
 232          void UartInit(void)   //9600bps@11.0592MHz
 233          {
 234   1        PCON &= 0x7F;   //�����ʲ�����
 235   1        SCON = 0x50;    //8λ����,�ɱ䲨����
 236   1        TMOD &= 0x0F;   //�����ʱ��1ģʽλ
 237   1        TMOD |= 0x20;   //�趨��ʱ��1Ϊ8λ�Զ���װ��ʽ
 238   1        TL1 = 0xFD;   //�趨��ʱ��ֵ
 239   1        TH1 = 0xFD;   //�趨��ʱ����װֵ
 240   1        ET1 = 0;    //��ֹ��ʱ��1�ж�
C51 COMPILER V9.54   MAIN                                                                  02/17/2022 16:53:45 PAGE 5   

 241   1        TR1 = 1;    //������ʱ��1
 242   1        EA=1;
 243   1        ES=1;
 244   1      }
 245          
 246          
 247          void sendData(char *p,unsigned  char n)
 248          {
 249   1        if( p == 0) return ;
 250   1         ES = 0;
 251   1         if(n > 0)
 252   1         {
 253   2           while(n --)
 254   2           {
 255   3             SBUF = *p++ ;
 256   3             while(!TI)  ;
 257   3             TI = 0      ;
 258   3           }
 259   2         }
 260   1         ES = 1;
 261   1      }
 262          
 263          
 264          //   �����ڷ����ַ���
 265          void sendString(char *p)
 266          {
 267   1         if(p == 0) return ;
 268   1         sendData(p,strlen(p));
 269   1      }
 270          bit SendIfg=0;
 271          unsigned char urx_dat=0;
 272          
 273          //  �����жϺ���
 274          void usart() interrupt 4
 275          {
 276   1        if(RI == 1)
 277   1        {  
 278   2      
 279   2            urx_dat = SBUF;
 280   2            switch(urx_dat)
 281   2            {
 282   3              case '@':
 283   3                 SET_Mode=0;
 284   3              break;
 285   3              
 286   3              case '$':
 287   3                SET_Mode=1;
 288   3              break;
 289   3              
 290   3              case '&':
 291   3                if(SET_Mode)Open=1;
 292   3              break;
 293   3              
 294   3              case '*':
 295   3                  if(SET_Mode)Open=0;
 296   3              break;
 297   3            }
 298   2        }      
 299   1        RI = 0;
 300   1        TI = 0;
 301   1      }
 302          
C51 COMPILER V9.54   MAIN                                                                  02/17/2022 16:53:45 PAGE 6   

 303          
 304          uint gz_val=0;
 305          
 306          void main(void)
 307          {
 308   1       
 309   1        Time0Init();
 310   1        lcd1602_init();
 311   1         WriteLcd1602_String(0,0," Welcome to use");  
 312   1        delay_xms(1000);
 313   1        Write_1602_com(0x01);//����ʾ
 314   1        delay_xms(100);   
 315   1        Get_DHTData();  
 316   1        delay_xms(50);
 317   1        BG_LED=1;
 318   1        UartInit();
 319   1        while(1)
 320   1        { 
 321   2          
 322   2          if(++getTime>20)
 323   2          {
 324   3            getTime=0;
 325   3            Get_DHTData();
 326   3      //      gz_val = BH1750_temp();
 327   3      //      if(gz_val>9999)gz_val=9999;//�������ֵ
 328   3        
 329   3          if(SET_Mode==0) //�Զ�ģʽ���� 
 330   3          {
 331   4                  if(!CloseIfg)
 332   4                  {
 333   5                     CloseIfg=1;
 334   5                     Write_1602_com(0x01);//����ʾ   
 335   5                     delay_1ms(10);   
 336   5                  }
 337   4              if(SET==0)//����ģʽ
 338   4              {
 339   5                 WriteLcd1602_String(0,0,"Temp:");
 340   5                 WriteLcd1602_String(5,0,WdBuff);
 341   5             
 342   5                 WriteLcd1602_String(0,1,"Humi:");
 343   5                 WriteLcd1602_String(5,1,SdBuff);
 344   5                
 345   5                 WriteLcd1602_String(15,1,"A");
 346   5                
 347   5                if(humi_val<SdL)//�������� 
 348   5                {
 349   6                    Open=1;
 350   6                    buzz=0;
 351   6                }else if(humi_val>SdL&&humi_val<SdH)//����������
 352   5                {
 353   6                    Open=1;
 354   6                    buzz=1;
 355   6                }else if(humi_val>SdH)
 356   5                {
 357   6                    Open=0;//�ر�
 358   6                    buzz=1;
 359   6                }
 360   5                
 361   5              }else  //����ģʽ 
 362   4              {
 363   5                SETLBuff[0]=SdL/10+'0';
 364   5                SETLBuff[1]=SdL%10+'0';
C51 COMPILER V9.54   MAIN                                                                  02/17/2022 16:53:45 PAGE 7   

 365   5                SETLBuff[2]='%';
 366   5                SETLBuff[3]=' ';
 367   5                SETHBuff[0]=SdH/10+'0';
 368   5                SETHBuff[1]=SdH%10+'0';
 369   5                SETHBuff[2]='%';
 370   5                SETHBuff[3]=' ';
 371   5                 WriteLcd1602_String(9,0,"L:");
 372   5                 WriteLcd1602_String(11,0,SETLBuff);
 373   5             
 374   5                 WriteLcd1602_String(9,1,"H:");
 375   5                 WriteLcd1602_String(11,1,SETHBuff);
 376   5      
 377   5              }
 378   4              
 379   4          }
 380   3         if(SET_Mode==1) //�ֶ�����ģʽ
 381   3          {
 382   4            
 383   4              if(!CloseIfg)
 384   4              {
 385   5                     CloseIfg=1;
 386   5                     Write_1602_com(0x01);//����ʾ   
 387   5                     delay_1ms(10);   
 388   5              }
 389   4              if(SET==0)
 390   4              {
 391   5      //           WriteLcd1602_String(0,0,"T:");
 392   5      //           WriteLcd1602_String(2,0,WdBuff);
 393   5      //       
 394   5      //           WriteLcd1602_String(9,0,"R:");
 395   5      //           WriteLcd1602_String(11,0,SdBuff);
 396   5      //            WriteLcd1602_String(0,1,"light:");
 397   5      //            WriteLcd1602_String(6,1,GZ_Buff);
 398   5      //            
 399   5      //             WriteLcd1602_String(15,1,"B");
 400   5                WriteLcd1602_String(0,0,"Temp:");
 401   5                 WriteLcd1602_String(5,0,WdBuff);
 402   5             
 403   5                 WriteLcd1602_String(0,1,"Humi:");
 404   5                 WriteLcd1602_String(5,1,SdBuff);
 405   5                
 406   5                 WriteLcd1602_String(15,1,"M");
 407   5              } 
 408   4            
 409   4          }
 410   3          
 411   3      
 412   3        }
 413   2      
 414   2      
 415   2        }
 416   1      
 417   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   1063    ----
   CONSTANT SIZE    =     51    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     54       6
   IDATA SIZE       =   ----    ----
C51 COMPILER V9.54   MAIN                                                                  02/17/2022 16:53:45 PAGE 8   

   BIT SIZE         =      5    ----
END OF MODULE INFORMATION.


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