Browse Source

最终版本

liuhao 3 years ago
parent
commit
c1ba0c27e5

File diff suppressed because it is too large
+ 6 - 6
TEST_Prj/shuitianwuxian_c51/单片机程序/DEMO.uvgui.liuhao


+ 1 - 1
TEST_Prj/shuitianwuxian_c51/单片机程序/DEMO.uvopt

@@ -10,7 +10,7 @@
     <aExt>*.s*; *.src; *.a*</aExt>
     <oExt>*.obj; *.o</oExt>
     <lExt>*.lib</lExt>
-    <tExt>*.txt; *.h; *.inc</tExt>
+    <tExt>*.txt; *.h; *.inc; *.md</tExt>
     <pExt>*.plm</pExt>
     <CppX>*.cpp</CppX>
     <nMigrate>0</nMigrate>

+ 1 - 1
TEST_Prj/shuitianwuxian_c51/单片机程序/DEMO.uvproj

@@ -186,7 +186,7 @@
         </Utilities>
         <Target51>
           <Target51Misc>
-            <MemoryModel>2</MemoryModel>
+            <MemoryModel>0</MemoryModel>
             <RTOS>0</RTOS>
             <RomSize>2</RomSize>
             <DataHold>0</DataHold>

File diff suppressed because it is too large
+ 512 - 475
TEST_Prj/shuitianwuxian_c51/单片机程序/Listings/DEMO.m51


+ 7 - 7
TEST_Prj/shuitianwuxian_c51/单片机程序/Listings/STARTUP.lst

@@ -1,9 +1,9 @@
-A51 MACRO ASSEMBLER  STARTUP                                                              02/17/2022 17:16:18 PAGE     1
+A51 MACRO ASSEMBLER  STARTUP                                                              02/21/2022 21:12:48 PAGE     1
 
 
-MACRO ASSEMBLER A51 V8.02c
+MACRO ASSEMBLER A51 V8.2.7.0
 OBJECT MODULE PLACED IN .\Objects\STARTUP.obj
-ASSEMBLER INVOKED BY: C:\Keil_v5\C51\BIN\A51.EXE STARTUP.A51 SET(LARGE) DEBUG PRINT(.\Listings\STARTUP.lst) OBJECT(.\Obj
+ASSEMBLER INVOKED BY: D:\Keil_v5\C51\BIN\A51.EXE STARTUP.A51 SET(SMALL) DEBUG PRINT(.\Listings\STARTUP.lst) OBJECT(.\Obj
                       ects\STARTUP.obj) EP
 
 LOC  OBJ            LINE     SOURCE
@@ -65,7 +65,7 @@ LOC  OBJ            LINE     SOURCE
                       55     ;
                       56     ; <h> Stack Space for reentrant functions in the SMALL model.
                       57     ;  <q> IBPSTACK: Enable SMALL model reentrant stack
-A51 MACRO ASSEMBLER  STARTUP                                                              02/17/2022 17:16:18 PAGE     2
+A51 MACRO ASSEMBLER  STARTUP                                                              02/21/2022 21:12:48 PAGE     2
 
                       58     ;     <i> Stack space for reentrant functions in the SMALL model.
   0000                59     IBPSTACK        EQU     0       ; set to 1 if small reentrant is used.
@@ -133,7 +133,7 @@ LOC  OBJ            LINE     SOURCE
                      121     
                      122                     EXTRN CODE (?C_START)
                      123                     PUBLIC  ?C_STARTUP
-A51 MACRO ASSEMBLER  STARTUP                                                              02/17/2022 17:16:18 PAGE     3
+A51 MACRO ASSEMBLER  STARTUP                                                              02/21/2022 21:12:48 PAGE     3
 
                      124     
 ----                 125                     CSEG    AT      0
@@ -201,7 +201,7 @@ LOC  OBJ            LINE     SOURCE
                      187     ; This code is required if you use L51_BANK.A51 with Banking Mode 4
                      188     ;<h> Code Banking
                      189     ; <q> Select Bank 0 for L51_BANK.A51 Mode 4
-A51 MACRO ASSEMBLER  STARTUP                                                              02/17/2022 17:16:18 PAGE     4
+A51 MACRO ASSEMBLER  STARTUP                                                              02/21/2022 21:12:48 PAGE     4
 
                      190     
                              
@@ -212,7 +212,7 @@ LOC  OBJ            LINE     SOURCE
 0009 020000   F      196                     LJMP    ?C_START
                      197     
                      198                     END
-A51 MACRO ASSEMBLER  STARTUP                                                              02/17/2022 17:16:18 PAGE     5
+A51 MACRO ASSEMBLER  STARTUP                                                              02/21/2022 21:12:48 PAGE     5
 
 SYMBOL TABLE LISTING
 ------ ----- -------

+ 10 - 10
TEST_Prj/shuitianwuxian_c51/单片机程序/Listings/dht11.lst

@@ -1,10 +1,10 @@
-C51 COMPILER V9.54   DHT11                                                                 02/18/2022 10:21:03 PAGE 1   
+C51 COMPILER V9.60.0.0   DHT11                                                             02/21/2022 21:12:49 PAGE 1   
 
 
-C51 COMPILER V9.54, COMPILATION OF MODULE DHT11
+C51 COMPILER V9.60.0.0, COMPILATION OF MODULE DHT11
 OBJECT MODULE PLACED IN .\Objects\dht11.obj
-COMPILER INVOKED BY: C:\Keil_v5\C51\BIN\C51.EXE dht11.c LARGE OPTIMIZE(8,SPEED) BROWSE DEBUG OBJECTEXTEND PRINT(.\Listin
-                    -gs\dht11.lst) TABS(2) OBJECT(.\Objects\dht11.obj)
+COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE dht11.c OPTIMIZE(8,SPEED) BROWSE DEBUG OBJECTEXTEND PRINT(.\Listings\dht
+                    -11.lst) TABS(2) OBJECT(.\Objects\dht11.obj)
 
 line level    source
 
@@ -62,7 +62,7 @@ line level    source
   52   2              dht11_Delay32us();  //32us
   53   2              
   54   2              //高电平26~28us表示'0',70us表示'1'
-C51 COMPILER V9.54   DHT11                                                                 02/18/2022 10:21:03 PAGE 2   
+C51 COMPILER V9.60.0.0   DHT11                                                             02/21/2022 21:12:49 PAGE 2   
 
   55   2              if( DHT11_PIN == 1 )
   56   2              {      
@@ -126,7 +126,7 @@ line level    source
  114   2                  while( DHT11_PIN ); //等待接收;
  115   2                  {
  116   3                       _nop_();
-C51 COMPILER V9.54   DHT11                                                                 02/18/2022 10:21:03 PAGE 3   
+C51 COMPILER V9.60.0.0   DHT11                                                             02/21/2022 21:12:49 PAGE 3   
 
  117   3                        t_count++;
  118   3                  
@@ -190,7 +190,7 @@ line level    source
  176   2      //            {
  177   2      //                *temp = 0;
  178   2      //                *humi = 0;
-C51 COMPILER V9.54   DHT11                                                                 02/18/2022 10:21:03 PAGE 4   
+C51 COMPILER V9.60.0.0   DHT11                                                             02/21/2022 21:12:49 PAGE 4   
 
  179   2      //            }     
  180   2      
@@ -205,11 +205,11 @@ line level    source
 
 
 MODULE INFORMATION:   STATIC OVERLAYABLE
-   CODE SIZE        =    441    ----
+   CODE SIZE        =    401    ----
    CONSTANT SIZE    =   ----    ----
-   XDATA SIZE       =   ----       9
+   XDATA SIZE       =   ----    ----
    PDATA SIZE       =   ----    ----
-   DATA SIZE        =   ----    ----
+   DATA SIZE        =   ----       9
    IDATA SIZE       =   ----    ----
    BIT SIZE         =   ----    ----
 END OF MODULE INFORMATION.

+ 10 - 10
TEST_Prj/shuitianwuxian_c51/单片机程序/Listings/drive_1602.lst

@@ -1,10 +1,10 @@
-C51 COMPILER V9.54   DRIVE_1602                                                            02/17/2022 17:33:09 PAGE 1   
+C51 COMPILER V9.60.0.0   DRIVE_1602                                                        02/21/2022 21:12:48 PAGE 1   
 
 
-C51 COMPILER V9.54, COMPILATION OF MODULE DRIVE_1602
+C51 COMPILER V9.60.0.0, COMPILATION OF MODULE DRIVE_1602
 OBJECT MODULE PLACED IN .\Objects\drive_1602.obj
-COMPILER INVOKED BY: C:\Keil_v5\C51\BIN\C51.EXE drive_1602.c LARGE OPTIMIZE(8,SPEED) BROWSE DEBUG OBJECTEXTEND PRINT(.\L
-                    -istings\drive_1602.lst) TABS(2) OBJECT(.\Objects\drive_1602.obj)
+COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE drive_1602.c OPTIMIZE(8,SPEED) BROWSE DEBUG OBJECTEXTEND PRINT(.\Listing
+                    -s\drive_1602.lst) TABS(2) OBJECT(.\Objects\drive_1602.obj)
 
 line level    source
 
@@ -62,7 +62,7 @@ line level    source
   52   1        if(y == 0)
   53   1        {
   54   2           Write_1602_com(0x80 + x);    
-C51 COMPILER V9.54   DRIVE_1602                                                            02/17/2022 17:33:09 PAGE 2   
+C51 COMPILER V9.60.0.0   DRIVE_1602                                                        02/21/2022 21:12:48 PAGE 2   
 
   55   2        }
   56   1        else
@@ -76,7 +76,7 @@ line level    source
   64   2        }
   65   1      }
   66          
-  67          char data String_Buff[16]={0};
+  67          char xdata String_Buff[16]={0};
   68          void L1602_printf(char x,char y,char *format, ...)
   69          {
   70   1          va_list ap;
@@ -119,14 +119,14 @@ line level    source
 
 
 MODULE INFORMATION:   STATIC OVERLAYABLE
-   CODE SIZE        =    292    ----
+   CODE SIZE        =    250    ----
    CONSTANT SIZE    =   ----    ----
-   XDATA SIZE       =   ----      55
+   XDATA SIZE       =     16    ----
    PDATA SIZE       =   ----    ----
-   DATA SIZE        =     16    ----
+   DATA SIZE        =   ----      30
    IDATA SIZE       =   ----    ----
    BIT SIZE         =   ----    ----
-C51 COMPILER V9.54   DRIVE_1602                                                            02/17/2022 17:33:09 PAGE 3   
+C51 COMPILER V9.60.0.0   DRIVE_1602                                                        02/21/2022 21:12:48 PAGE 3   
 
 END OF MODULE INFORMATION.
 

+ 326 - 291
TEST_Prj/shuitianwuxian_c51/单片机程序/Listings/main.lst

@@ -1,10 +1,10 @@
-C51 COMPILER V9.54   MAIN                                                                  02/18/2022 11:34:52 PAGE 1   
+C51 COMPILER V9.60.0.0   MAIN                                                              02/21/2022 21:12:48 PAGE 1   
 
 
-C51 COMPILER V9.54, COMPILATION OF MODULE MAIN
+C51 COMPILER V9.60.0.0, COMPILATION OF MODULE MAIN
 OBJECT MODULE PLACED IN .\Objects\main.obj
-COMPILER INVOKED BY: C:\Keil_v5\C51\BIN\C51.EXE main.c LARGE OPTIMIZE(8,SPEED) BROWSE DEBUG OBJECTEXTEND PRINT(.\Listing
-                    -s\main.lst) TABS(2) OBJECT(.\Objects\main.obj)
+COMPILER INVOKED BY: D:\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
 
@@ -32,12 +32,12 @@ line level    source
   22          sbit SW1=P3^7;
   23          sbit SW2=P3^6;
   24          sbit SW3=P3^5;
-  25          
-  26          sbit JR_LED=P2^2;
-  27          sbit JW_LED=P2^4;
-  28          
-  29          sbit buzz=P2^1;
-  30          sbit HY_IN=P2^3;
+  25          sbit SW4=P3^4;
+  26          
+  27          sbit JR_LED=P2^2;
+  28          sbit JW_LED=P2^4;
+  29          
+  30          sbit buzz=P3^3;
   31          
   32          uchar temp,humi;
   33          int sw_val=0;
@@ -49,317 +49,352 @@ line level    source
   39   1           for(ix=110;ix>0;ix--);
   40   1      }
   41          uchar SET=0;
-  42          char WdL=20;
+  42          char WdL=10;
   43          char WdH=30;
   44          
-  45          char SdL=60;
+  45          char SdL=30;
   46          char SdH=80;
   47          
   48          char SWL=2;
   49          char SWH=6;
   50          
   51          char keyflag=0;
-  52          
-  53          void KeyRead(void)
-  54          {
-C51 COMPILER V9.54   MAIN                                                                  02/18/2022 11:34:52 PAGE 2   
+  52          uchar bj_flag=0;
+  53          uchar Bj_CNt=0;
+  54          uchar JCount=0;
+C51 COMPILER V9.60.0.0   MAIN                                                              02/21/2022 21:12:48 PAGE 2   
 
-  55   1          if(!SW1)
-  56   1          {
-  57   2             if(!SW1&&keyflag==0) 
-  58   2             {
-  59   3               keyflag=1;
-  60   3               if(++SET>6)SET=0;
-  61   3               while(!SW1);
-  62   3             }
-  63   2          }
-  64   1          else if(!SW2)
-  65   1          {
-  66   2             if(!SW2&&keyflag==0) 
-  67   2             {
-  68   3               keyflag=1;
-  69   3               switch(SET)
-  70   3               {
-  71   4                 case 1:
-  72   4                    if(++WdH>50)WdH=0;
-  73   4                 break;
-  74   4                 
-  75   4                 case 2:
-  76   4                    if(++WdL>50)WdL=0;
-  77   4                 break;
-  78   4                 
-  79   4                 
-  80   4                 case 3:
-  81   4                    if(++SdH>90)SdH=0;
-  82   4                 break;
-  83   4                 
-  84   4                 case 4:
-  85   4                    if(++SdL>90)SdH=0;
-  86   4                 break;
+  55          
+  56          uchar clear_flag=0;
+  57          
+  58          uchar bj_clear=0;
+  59          uint clear_cnt=0;
+  60          
+  61          void KeyRead(void)
+  62          {
+  63   1          if(!SW1)
+  64   1          {
+  65   2             if(!SW1&&keyflag==0) 
+  66   2             {
+  67   3               keyflag=1;
+  68   3               if(++SET>6)SET=0;
+  69   3               while(!SW1);
+  70   3             }
+  71   2          }
+  72   1          else if(!SW2)
+  73   1          {
+  74   2             if(!SW2&&keyflag==0) 
+  75   2             {
+  76   3               keyflag=1;
+  77   3               switch(SET)
+  78   3               {
+  79   4                 case 1:
+  80   4                    if(++WdH>50)WdH=0;
+  81   4                 break;
+  82   4                 
+  83   4                 case 2:
+  84   4                    if(++WdL>50)WdL=0;
+  85   4                 break;
+  86   4                 
   87   4                 
-  88   4                 case 5:
-  89   4                    if(++SWH>8)SWH=0;
+  88   4                 case 3:
+  89   4                    if(++SdH>90)SdH=0;
   90   4                 break;
   91   4                 
-  92   4                 case 6:
-  93   4                    if(++SWL>8)SWL=0;
-  94   4                 break;  
-  95   4               }
-  96   3               while(!SW2);
-  97   3             }
-  98   2          }
-  99   1          
- 100   1          else if(!SW3)
- 101   1          {
- 102   2             if(!SW3&&keyflag==0) 
- 103   2             {
- 104   3               keyflag=1;
- 105   3               switch(SET)
- 106   3               {
- 107   4                 case 1:
- 108   4                   if(--WdH<0)WdH=50;
- 109   4                 break;
- 110   4                 
- 111   4                 case 2:
- 112   4                   if(--WdL<0)WdL=50;
- 113   4                 break;
- 114   4                
- 115   4                 case 3:
- 116   4                   if(--SdH<0)SdH=90;
-C51 COMPILER V9.54   MAIN                                                                  02/18/2022 11:34:52 PAGE 3   
+  92   4                 case 4:
+  93   4                    if(++SdL>90)SdH=0;
+  94   4                 break;
+  95   4                 
+  96   4                 case 5:
+  97   4                    if(++SWH>8)SWH=0;
+  98   4                 break;
+  99   4                 
+ 100   4                 case 6:
+ 101   4                    if(++SWL>8)SWL=0;
+ 102   4                 break;  
+ 103   4               }
+ 104   3               while(!SW2);
+ 105   3             }
+ 106   2          }
+ 107   1          
+ 108   1          else if(!SW3)
+ 109   1          {
+ 110   2             if(!SW3&&keyflag==0) 
+ 111   2             {
+ 112   3               keyflag=1;
+ 113   3               switch(SET)
+ 114   3               {
+ 115   4                 case 1:
+ 116   4                   if(--WdH<0)WdH=50;
+C51 COMPILER V9.60.0.0   MAIN                                                              02/21/2022 21:12:48 PAGE 3   
 
  117   4                 break;
  118   4                 
- 119   4                 case 4:
- 120   4                   if(--SdL<0)SdL=90;
+ 119   4                 case 2:
+ 120   4                   if(--WdL<0)WdL=50;
  121   4                 break;
- 122   4                 
- 123   4                 case 5:
- 124   4                   if(--SWH<0)SWH=8;
+ 122   4                
+ 123   4                 case 3:
+ 124   4                   if(--SdH<0)SdH=90;
  125   4                 break;
  126   4                 
- 127   4                 case 6:
- 128   4                   if(--SWL<0)SWL=8;
+ 127   4                 case 4:
+ 128   4                   if(--SdL<0)SdL=90;
  129   4                 break;
- 130   4               }
- 131   3               while(!SW3);
- 132   3             }
- 133   2          }else
- 134   1          {
- 135   2            keyflag=0;
- 136   2          }
- 137   1      
- 138   1          
- 139   1      }
- 140          
- 141          void Timer0Init(void)   //10毫秒@11.0592MHz
- 142          {
- 143   1        
- 144   1        TMOD &= 0xF0;   //设置定时器模式
- 145   1        TMOD |= 0x01;   //设置定时器模式
- 146   1        TL0 = 0x00;   //设置定时初值
- 147   1        TH0 = 0xDC;   //设置定时初值
- 148   1        TF0 = 0;    //清除TF0标志
- 149   1        ET0=1;
- 150   1        TR0 = 1;    //定时器0开始计时
- 151   1        EA=1;
- 152   1        
- 153   1      }
- 154          bit bj_flag=0;
- 155          uchar Bj_CNt=0;
- 156          uchar JCount=0;
- 157          void TimeISR()interrupt 1
- 158          {
- 159   1        TL0 = 0x00;   //设置定时初值
- 160   1        TH0 = 0xDC;   //设置定时初值
- 161   1         KeyRead();
- 162   1        if(bj_flag)
- 163   1        {
- 164   2           if(++Bj_CNt>30)
- 165   2          {
- 166   3                Bj_CNt=0;
- 167   3                buzz=~buzz; 
- 168   3          }
- 169   2        }else
- 170   1        {
- 171   2           buzz=1;
- 172   2        }
- 173   1        JCount++;
- 174   1      }
- 175          
- 176          void UartInit(void)   //9600bps@11.0592MHz
- 177          {
- 178   1        PCON &= 0x7F;   //波特率不倍速
-C51 COMPILER V9.54   MAIN                                                                  02/18/2022 11:34:52 PAGE 4   
+ 130   4                 
+ 131   4                 case 5:
+ 132   4                   if(--SWH<0)SWH=8;
+ 133   4                 break;
+ 134   4                 
+ 135   4                 case 6:
+ 136   4                   if(--SWL<0)SWL=8;
+ 137   4                 break;
+ 138   4                 
+ 139   4               }
+ 140   3               while(!SW3);
+ 141   3             }
+ 142   2          }
+ 143   1          else if(!SW4)
+ 144   1          {
+ 145   2            if(!SW4&&keyflag==0)  
+ 146   2             {
+ 147   3      
+ 148   3                 bj_clear^=1;
+ 149   3                
+ 150   3               
+ 151   3                while(!SW4);
+ 152   3             }
+ 153   2          }
+ 154   1          else
+ 155   1          {
+ 156   2            keyflag=0;
+ 157   2            clear_cnt=0;
+ 158   2          }
+ 159   1      
+ 160   1      
+ 161   1      }
+ 162          
+ 163          void Timer0Init(void)   //10毫秒@11.0592MHz
+ 164          {
+ 165   1        
+ 166   1        TMOD &= 0xF0;   //设置定时器模式
+ 167   1        TMOD |= 0x01;   //设置定时器模式
+ 168   1        TL0 = 0x00;   //设置定时初值
+ 169   1        TH0 = 0xDC;   //设置定时初值
+ 170   1        TF0 = 0;    //清除TF0标志
+ 171   1        ET0=1;
+ 172   1        TR0 = 1;    //定时器0开始计时
+ 173   1        EA=1;
+ 174   1        
+ 175   1      }
+ 176          
+ 177          void TimeISR()interrupt 1
+ 178          {
+C51 COMPILER V9.60.0.0   MAIN                                                              02/21/2022 21:12:48 PAGE 4   
 
- 179   1        SCON = 0x50;    //8位数据,可变波特率
- 180   1        TMOD &= 0x0F;   //清除定时器1模式位
- 181   1        TMOD |= 0x20;   //设定定时器1为8位自动重装方式
- 182   1        TL1 = 0xFD;   //设定定时初值
- 183   1        TH1 = 0xFD;   //设定定时器重装值
- 184   1        ET1 = 0;    //禁止定时器1中断
- 185   1        TR1 = 1;    //启动定时器1
- 186   1        EA=1;
- 187   1        ES=0;
- 188   1      }
- 189          
- 190          
- 191          void sendData(char *p,unsigned  char n)
- 192          {
- 193   1        if( p == 0) return ;
- 194   1         ES = 0;
- 195   1         if(n > 0)
- 196   1         {
- 197   2           while(n --)
- 198   2           {
- 199   3             SBUF = *p++ ;
- 200   3             while(!TI)  ;
- 201   3             TI = 0      ;
- 202   3           }
- 203   2         }
- 204   1        // ES = 1;
- 205   1      }
- 206          
- 207          
- 208          
- 209          //   往串口发送字符串
- 210          void sendString(char *p)
- 211          {
- 212   1         if(p == 0) return ;
- 213   1         sendData(p,strlen(p));
- 214   1      }
- 215          //  接收中断函数
- 216          void usart() interrupt 4
- 217          {
- 218   1        if(RI == 1)
- 219   1        {  
- 220   2          // setUsartRxData(SBUF); 
- 221   2        }      
- 222   1        RI = 0;
- 223   1        TI = 0;
- 224   1      }
- 225          
- 226          char data showbuff[16]={0};
- 227          char data send_buff[16]={0};
+ 179   1        TL0 = 0x00;   //设置定时初值
+ 180   1        TH0 = 0xDC;   //设置定时初值
+ 181   1         KeyRead();
+ 182   1        if((bj_flag==1)&&(bj_clear==0))
+ 183   1        {
+ 184   2           if(++Bj_CNt>30)
+ 185   2          {
+ 186   3                Bj_CNt=0;
+ 187   3                buzz=~buzz; 
+ 188   3          }
+ 189   2        }else
+ 190   1        {
+ 191   2           buzz=1;  Bj_CNt=0;
+ 192   2        }
+ 193   1        JCount++;
+ 194   1      }
+ 195          
+ 196          void UartInit(void)   //9600bps@11.0592MHz
+ 197          {
+ 198   1        PCON &= 0x7F;   //波特率不倍速
+ 199   1        SCON = 0x50;    //8位数据,可变波特率
+ 200   1        TMOD &= 0x0F;   //清除定时器1模式位
+ 201   1        TMOD |= 0x20;   //设定定时器1为8位自动重装方式
+ 202   1        TL1 = 0xFD;   //设定定时初值
+ 203   1        TH1 = 0xFD;   //设定定时器重装值
+ 204   1        ET1 = 0;    //禁止定时器1中断
+ 205   1        TR1 = 1;    //启动定时器1
+ 206   1        EA=1;
+ 207   1        ES=0;
+ 208   1      }
+ 209          
+ 210          
+ 211          void sendData(char *p,unsigned  char n)
+ 212          {
+ 213   1        if( p == 0) return ;
+ 214   1         ES = 0;
+ 215   1         if(n > 0)
+ 216   1         {
+ 217   2           while(n --)
+ 218   2           {
+ 219   3             SBUF = *p++ ;
+ 220   3             while(!TI)  ;
+ 221   3             TI = 0      ;
+ 222   3           }
+ 223   2         }
+ 224   1        // ES = 1;
+ 225   1      }
+ 226          
+ 227          
  228          
- 229          sbit IN_PL = P1^6;  //SHIFT/!LOA引脚
- 230          sbit IN_Data = P1^7; // QH数据输出引脚
- 231          sbit SCK = P3^6;  //CLOCK引脚
- 232          
- 233          unsigned char Read74HC165(void)
- 234          {
- 235   1         unsigned char indata;
- 236   1         unsigned char i;
- 237   1         IN_PL = 0;//装载8位并行数据
- 238   1         _nop_();
- 239   1         IN_PL = 1;//转换8位并行数据为串行数据
- 240   1         _nop_();
-C51 COMPILER V9.54   MAIN                                                                  02/18/2022 11:34:52 PAGE 5   
+ 229          //   往串口发送字符串
+ 230          void sendString(char *p)
+ 231          {
+ 232   1         if(p == 0) return ;
+ 233   1         sendData(p,strlen(p));
+ 234   1      }
+ 235          //  接收中断函数
+ 236          void usart() interrupt 4
+ 237          {
+ 238   1        if(RI == 1)
+ 239   1        {  
+ 240   2          // setUsartRxData(SBUF); 
+C51 COMPILER V9.60.0.0   MAIN                                                              02/21/2022 21:12:48 PAGE 5   
 
- 241   1       
- 242   1         indata = 0;
- 243   1         for(i = 0; i < 8; i ++) //将8个串行数据存入数组indata中
- 244   1         {
- 245   2          indata = indata << 1;//开始时,indata数组先左移一位,以后每个循环左移一次
- 246   2          SCK = 0;//时钟低电平到来后,并行数据开始转换串行数据
- 247   2          _nop_();
- 248   2          
- 249   2          indata |= IN_Data; //将转换完成的串行数据一位位存入数组
- 250   2          SCK = 1;  //时钟变为高电平,再次变为低电平时,开始传出下一位串行数据
- 251   2         }
- 252   1          return indata;
- 253   1      }
- 254          
- 255          bit clear_flag=0;
- 256          
- 257          void main()
- 258          {
- 259   1        lcd1602_init();
- 260   1        UartInit();
- 261   1        dht11_value(&temp,&humi,DHT11_UINT8);
- 262   1        buzz=1;
- 263   1        delay_xms(200);
- 264   1        dht11_value(&temp,&humi,DHT11_UINT8);
- 265   1        Timer0Init();
- 266   1        while(1)
- 267   1        {
+ 241   2        }      
+ 242   1        RI = 0;
+ 243   1        TI = 0;
+ 244   1      }
+ 245          
+ 246          //char xdata showbuff[16]={0};
+ 247          char data send_buff[17]={0};
+ 248          
+ 249          sbit IN_PL = P2^0;  //SHIFT/!LOA引脚
+ 250          sbit IN_Data = P2^2; // QH数据输出引脚
+ 251          sbit SCK = P2^1;  //CLOCK引脚
+ 252          
+ 253          unsigned char Read74HC165(void)
+ 254          {
+ 255   1         unsigned char indata;
+ 256   1         unsigned char i;
+ 257   1         IN_PL = 0;//装载8位并行数据
+ 258   1         _nop_();
+ 259   1         IN_PL = 1;//转换8位并行数据为串行数据
+ 260   1         _nop_();
+ 261   1       
+ 262   1         indata = 0;
+ 263   1         for(i = 0; i < 8; i ++) //将8个串行数据存入数组indata中
+ 264   1         {
+ 265   2          indata = indata << 1;//开始时,indata数组先左移一位,以后每个循环左移一次
+ 266   2          SCK = 0;//时钟低电平到来后,并行数据开始转换串行数据
+ 267   2          _nop_();
  268   2          
- 269   2          if(JCount>50)//500ms采集一次
- 270   2          {
- 271   3          JCount=0;
- 272   3          if(SET==0)
- 273   3          { 
- 274   4               if(clear_flag==1)
- 275   4                {
- 276   5                  clear_flag=0;
- 277   5                      
- 278   5                  Write_1602_com(0x01);//清显示 
- 279   5                  delay_1ms(100);        
- 280   5                }
- 281   4            
- 282   4                dht11_value(&temp,&humi,DHT11_UINT8);
- 283   4                L1602_printf(0,0,"temp:%2d",temp);
- 284   4                L1602_printf(0,1,"humi:%2d",humi);
- 285   4                L1602_printf(12,0,"%s","SW");
- 286   4                L1602_printf(12,1,"%2dcm",sw_val);
- 287   4                if((temp<WdL||temp>WdH)||(humi<SdL||humi>SdH)||(sw_val<SWL||sw_val>SWH))
- 288   4                {
- 289   5                   bj_flag=1;
- 290   5                }else
- 291   4                {
- 292   5                  bj_flag=0;
- 293   5                }
- 294   4                  sprintf(send_buff,"X%dH%dD%dZ\r\n",temp,humi,sw_val);
- 295   4                 sendString(send_buff);
- 296   4          }
- 297   3          else 
- 298   3          {
- 299   4             if(clear_flag==0)
- 300   4             {
- 301   5                clear_flag=1;
- 302   5                      
-C51 COMPILER V9.54   MAIN                                                                  02/18/2022 11:34:52 PAGE 6   
+ 269   2          indata |= IN_Data; //将转换完成的串行数据一位位存入数组
+ 270   2          SCK = 1;  //时钟变为高电平,再次变为低电平时,开始传出下一位串行数据
+ 271   2         }
+ 272   1          return indata;
+ 273   1      }
+ 274          
+ 275          
+ 276          char find_bit(unsigned char dat)
+ 277          {
+ 278   1         char i=0;
+ 279   1         char cnt=0;
+ 280   1         for(i=0;i<8;i++)
+ 281   1         {
+ 282   2            if(!(dat&0x01))
+ 283   2            {
+ 284   3              cnt++;
+ 285   3            }
+ 286   2            dat>>=1;
+ 287   2         }
+ 288   1         return cnt;
+ 289   1      }
+ 290          void main()
+ 291          {
+ 292   1        lcd1602_init();
+ 293   1        UartInit();
+ 294   1        dht11_value(&temp,&humi,DHT11_UINT8);
+ 295   1        buzz=1;
+ 296   1        delay_xms(200);
+ 297   1        dht11_value(&temp,&humi,DHT11_UINT8);
+ 298   1        Timer0Init();
+ 299   1        while(1)
+ 300   1        {
+ 301   2          
+ 302   2          if(JCount>50)//500ms采集一次
+C51 COMPILER V9.60.0.0   MAIN                                                              02/21/2022 21:12:48 PAGE 6   
 
- 303   5                Write_1602_com(0x01);//清显示 
- 304   5                delay_1ms(100);        
- 305   5             }
- 306   4             switch(SET)
- 307   4             {
- 308   5               case 1:
- 309   5               case 2:
- 310   5                 WriteLcd1602_String(0,0,"Set temp");
- 311   5                 L1602_printf(0,1,"H:%2d  L:%2d",WdH,WdL);
- 312   5               break;
- 313   5               
- 314   5               case 3:
- 315   5               case 4:
- 316   5                 WriteLcd1602_String(0,0,"Set humi");
- 317   5                 L1602_printf(0,1,"H:%2d  L:%2d",SdH,SdL);
- 318   5               break;
- 319   5               
- 320   5               case 5:
- 321   5               case 6:
- 322   5                 WriteLcd1602_String(0,0,"Set SW  ");
- 323   5                 L1602_printf(0,1,"H:%2d  L:%2d",SWH,SWL);
- 324   5               break;
- 325   5             }
- 326   4             
- 327   4          }
- 328   3        }
- 329   2        
- 330   2        }
- 331   1      
- 332   1      }
+ 303   2          {
+ 304   3          JCount=0;
+ 305   3          if(SET==0)
+ 306   3          { 
+ 307   4               if(clear_flag==1)
+ 308   4                {
+ 309   5                  clear_flag=0;
+ 310   5                      
+ 311   5                  Write_1602_com(0x01);//清显示 
+ 312   5                  delay_1ms(100);        
+ 313   5                }
+ 314   4                sw_val = find_bit(Read74HC165());
+ 315   4                dht11_value(&temp,&humi,DHT11_UINT8);
+ 316   4                L1602_printf(0,0,"temp:%2d",(int)temp);
+ 317   4                L1602_printf(0,1,"humi:%2d",(int)humi);
+ 318   4                L1602_printf(12,0,"%s","SW");
+ 319   4                L1602_printf(12,1,"%2dcm",(int)sw_val);
+ 320   4                if((temp<WdL||temp>WdH)||(humi<SdL||humi>SdH)||(sw_val<SWL||sw_val>SWH))
+ 321   4                {
+ 322   5                   bj_flag=1;
+ 323   5                }else
+ 324   4                {
+ 325   5                  bj_flag=0;
+ 326   5                }
+ 327   4                  sprintf(send_buff,"X%dH%dD%dZ\r\n",(int)temp,(int)humi,(int)sw_val);
+ 328   4                 sendString(send_buff);
+ 329   4          }
+ 330   3          else 
+ 331   3          {
+ 332   4             if(clear_flag==0)
+ 333   4             {
+ 334   5                clear_flag=1;
+ 335   5                      
+ 336   5                Write_1602_com(0x01);//清显示 
+ 337   5                delay_1ms(100);        
+ 338   5             }
+ 339   4             switch(SET)
+ 340   4             {
+ 341   5               case 1:
+ 342   5               case 2:
+ 343   5                 WriteLcd1602_String(0,0,"Set temp");
+ 344   5                 L1602_printf(0,1,"H:%2d  L:%2d",(int)WdH,(int)WdL);
+ 345   5               break;
+ 346   5               
+ 347   5               case 3:
+ 348   5               case 4:
+ 349   5                 WriteLcd1602_String(0,0,"Set humi");
+ 350   5                 L1602_printf(0,1,"H:%2d  L:%2d",(int)SdH,(int)SdL);
+ 351   5               break;
+ 352   5               
+ 353   5               case 5:
+ 354   5               case 6:
+ 355   5                 WriteLcd1602_String(0,0,"Set SW  ");
+ 356   5                 L1602_printf(0,1,"H:%2d  L:%2d",(int)SWH,(int)SWL);
+ 357   5               break;
+ 358   5             }
+ 359   4             
+ 360   4          }
+ 361   3        }
+ 362   2        
+ 363   2        }
+ 364   1      
+C51 COMPILER V9.60.0.0   MAIN                                                              02/21/2022 21:12:48 PAGE 7   
+
+ 365   1      }
 
 
 MODULE INFORMATION:   STATIC OVERLAYABLE
-   CODE SIZE        =   1230    ----
+   CODE SIZE        =   1351    ----
    CONSTANT SIZE    =     83    ----
-   XDATA SIZE       =     14       6
+   XDATA SIZE       =   ----    ----
    PDATA SIZE       =   ----    ----
-   DATA SIZE        =     32    ----
+   DATA SIZE        =     36       6
    IDATA SIZE       =   ----    ----
-   BIT SIZE         =      2    ----
+   BIT SIZE         =   ----    ----
 END OF MODULE INFORMATION.
 
 

BIN
TEST_Prj/shuitianwuxian_c51/单片机程序/Objects/DEMO


+ 18 - 17
TEST_Prj/shuitianwuxian_c51/单片机程序/Objects/DEMO.build_log.htm

@@ -3,35 +3,36 @@
 <pre>
 <h1>礦ision Build Log</h1>
 <h2>Tool Versions:</h2>
-IDE-Version: μVision V5.27.1.0
-Copyright (C) 2019 ARM Ltd and ARM Germany GmbH. All rights reserved.
-License Information: liu liuhao, hao, LIC=ZBD7S-LJTWK-ZJ66U-S2R0S-EVBYJ-V416B
+IDE-Version: μVision V5.35.0.0
+Copyright (C) 2021 ARM Ltd and ARM Germany GmbH. All rights reserved.
+License Information: liu liuhao, hao, LIC=HN93N-Y6RTQ-946S2-92SII-WIZF8-PT5FA
  
 Tool Versions:
-Toolchain:       PK51 Prof. Developers Kit  Version: 9.54
-Toolchain Path:  C:\Keil_v5\C51\BIN
-C Compiler:      C51.exe V9.54
-Assembler:       A51.exe V8.02c
-Linker/Locator:  BL51.exe V6.22
+Toolchain:       PK51 Prof. Developers Kit  Version: 9.60.0.0
+Toolchain Path:  D:\Keil_v5\C51\BIN
+C Compiler:      C51.exe V9.60.0.0
+Assembler:       A51.exe V8.2.7.0
+Linker/Locator:  BL51.exe V6.22.2.0
 Library Manager: LIB51.exe V4.30.1.0
 Hex Converter:   OH51.exe V2.7.0.0
-CPU DLL:         S8051.DLL V3.100.0.0
-Dialog DLL:      DP51.DLL V2.62.0.1 
+CPU DLL:         S8051.DLL V3.122.0.0
+Dialog DLL:      DP51.DLL V2.67.0.0 
 <h2>Project:</h2>
-E:\Git\TEST\TEST_Prj\shuitianwuxian_c51\单片机程序\DEMO.uvproj
-Project File Date:  02/17/2022
+E:\git\TEST\TEST_Prj\shuitianwuxian_c51\单片机程序\DEMO.uvproj
+Project File Date:  02/19/2022
 
 <h2>Output:</h2>
-Build target 'Target 1'
+Rebuild target 'Target 1'
+assembling STARTUP.A51...
+compiling drive_1602.c...
 compiling main.c...
+compiling dht11.c...
 linking...
 *** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS
     SEGMENT: ?PR?_LCD1602_DISP?DRIVE_1602
-*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS
-    SEGMENT: ?PR?READ74HC165?MAIN
-Program Size: data=63.3 xdata=110 code=3538
+Program Size: data=97.1 xdata=16 code=3462
 creating hex file from ".\Objects\DEMO"...
-".\Objects\DEMO" - 0 Error(s), 2 Warning(s).
+".\Objects\DEMO" - 0 Error(s), 1 Warning(s).
 Build Time Elapsed:  00:00:01
 </pre>
 </body>

+ 245 - 251
TEST_Prj/shuitianwuxian_c51/单片机程序/Objects/DEMO.hex

@@ -1,256 +1,250 @@
-:0300000002099D55
-:0C099D00787FE4F6D8FD7581410209E482
-:100A290010080000000000000000000000000000A5
-:020A39000000BB
-:060DB8008F907F017E0018
-:030DBE00020D62C1
-:0D0D9E00C2A7120DB8D2A6120DBAC2A6222D
-:0D0DAB00D2A7120DB8D2A6120DBAC2A62210
-:0E0B9100900030EFF0A3EBF0A3EAF0A3E9F040
-:100B9F00E4A3F0ED9000307005E024808003E024A2
-:100BAF00C0FF120D9E900031E0FBA3E0FAA3E0F925
-:100BBF001208B1FF600F120DAB900032E475F00117
-:050BCF001208FE80E0A9
-:010BD40022FE
-:100A9100900000EFF0A3EDF0A3EBF0A3EAF0A3E9DF
-:010AA100F064
-:100AA20090002D7401F0A37400F0A37405F090007F
-:100AB20002E0F9A3E0FAA3E0900030C9F0A3EAF063
-:100AC200A3E9F090002DE0F9A3E0FAA3E09000334F
-:100AD200C9F0A3EAF0A3E9F07B007A007908120BCF
-:100AE20047900000E0FFA3E0FD7B007A0079080256
-:020AF2000B9166
-:100CB8007F38120D9E120DBA7F0C120D9E120DBABE
-:100CC8007F06120D9E120DBA7F01120D9E120DBAEB
-:0C0CD8007F80120D9E7F017E00020DBE89
-:100D0B0090006CEFF0540FF0ED5401FD7003E08098
-:0E0D1B000690006CE024404480FF120D9E22E2
-:100D8E0090006DEBF0120D0B90006DE0FF020DABBD
-:100AF40074656D703A2532640068756D693A253203
-:100B04006400257300535700253264636D00582533
-:100B1400644825644425645A0D0A0053657420749E
-:100B2400656D7000483A25326420204C3A253264C1
-:100B3400005365742068756D6900536574205357BC
-:030B44002020006E
-:100A3B004200620000410069004100611441006006
-:100A4B001E41005F3C41005E5041006B0241006A59
-:100A5B000641006800C10A410064004100670010B4
-:100A6B003200000000000000000000000000000049
-:100A7B000010220000000000000000000000000039
-:050A8B00000000C1099C
-:100D6200D3EF9400EE64809480400B7D6EDDFEEF45
-:060D72001F70ED1E80EA77
-:010D78002258
-:1007550020B72430B7030208B0900068E0600302B8
-:1007650008B004F0A3E004F0D394064002E4F030AE
-:10077500B7030208B080F830B60302081830B60394
-:100785000208B0900068E060030208B004F0A3E03E
-:1007950024FE602114602F14603D14604E14605CCB
-:1007A50024057067900060E004F0D3648094B24043
-:1007B5005AE4F08056900061E004F0D3648094B26E
-:1007C5004049E4F0804590005EE004F0D3648094F5
-:1007D500DA4038E4F0803490005FE004F0D36480C0
-:1007E50094DA4027E490005EF0802090006AE004EF
-:1007F500F0D3648094884013E4F0800F90006BE0A0
-:1008050004F0D3648094884002E4F030B603020813
-:10081500B080F830B5030208AB30B5030208B090DC
-:100825000068E060030208B004F0A3E024FE601F46
-:1008350014602E14603A14604914605524057061E3
-:10084500900060E014F0C3648094805054800D9053
-:100855000061E014F0C36480948050457432F080E8
-:100865004090005EE014F0C3648094805033800DA6
-:1008750090005FE014F0C3648094805024745AF0B3
-:10088500801F90006AE014F0C36480948050128049
-:100895000D90006BE014F0C36480948050037408DD
-:0C08A500F020B50780FBE4900068F02212
+:030000000209658D
+:0C096500787FE4F6D8FD7581760209ACBD
+:1009F10050000000000000000000000000000000A6
+:030A0100000000F2
+:060D6C008F907F017E0064
+:030D7200020C462A
+:0D0D4800C2A7120D6CD2A6120D6EC2A6221B
+:0D0D5500D2A7120D6CD2A6120D6EC2A622FE
+:080AEA008F398B3A8A3B893CED
+:100AF200E4F53DAF05EF3395E04F7006E53924800C
+:100B02008004E53924C0FF120D48AB3AAA3BA93C48
+:100B12001208B5FFFD3395E04D6010120D557401BA
+:0B0B2200253CF53CE4353BF53B80DF53
+:010B2D0022A5
+:0A0B70008F228D238B248A2589260D
+:100B7A007536007537007538278B398A3A893B856F
+:100B8A00363C85373D85383E7B017A007900120B69
+:100B9A00EC7536007537007538007B017A007900EC
+:070BAA00AD23AF22020AEAAD
+:100C1A007F38120D48120D6E7F0C120D48120D6EA0
+:100C2A007F06120D48120D6E7F01120D48120D6ECD
+:0C0C3A007F80120D487F017E00020D72C9
+:100CFC008F0853080F530501AF05EF7004E508800A
+:0C0D0C0004E50824404480FF120D48223A
+:0A0D62008B09120CFCAF09020D55BD
+:100A470074656D703A2532640068756D693A2532B0
+:100A57006400257300535700253264636D005825E1
+:100A6700644825644425645A0D0A0053657420744C
+:100A7700656D7000483A25326420204C3A2532646F
+:100A8700005365742068756D69005365742053576A
+:030A97002020001C
+:100A04000258000001740001570A01551E01541ECA
+:100A14000153500176020175060173000171000152
+:100A24005A00017200015600016F00025B000011C0
+:100A34005D00000000000000000000000000000055
+:020A44000000B0
+:100C4600D3EF9400EE64809480401D7D6EEDFB33FF
+:100C560095E0FAD3EB9400EA6480948040031D800B
+:080C6600ECEF1F70DB1E80D8CB
+:010C6E002263
+:1005BA0020B72D30B703020787AF73EF3395E04FAB
+:1005CA0060030207877573010574D3E57494067492
+:1005DA008094804003E4F57430B70302078780F8FB
+:1005EA0030B6030206BD30B603020787AF73EF3396
+:1005FA0095E04F6003020787757301E57424FE6076
+:10060A003214604814605B14607114700302069E11
+:10061A00240560030206B50555AF55EF3395E0FE94
+:10062A00D3EF9432EE6480948050030206B5E4F569
+:10063A005580780557AF57EF3395E0FED3EF9432E4
+:10064A00EE648094804064E4F557805F0553AF53AD
+:10065A00EF3395E0FED3EF945AEE64809480404BDA
+:10066A0080140554AF54EF3395E0FED3EF945AEE5D
+:10067A00648094804035E4F55380300575AF75EF9A
+:10068A003395E0FED3EF9408EE64809480401CE436
+:10069A00F57580170576AF76EF3395E0FED3EF94C4
+:1006AA0008EE648094804003E4F57630B6030207CE
+:1006BA008780F830B50302076930B503020787AFB0
+:1006CA0073EF3395E04F6003020787757301E57492
+:1006DA0024FE602414603514604614605714606860
+:1006EA00240570761555AF55EF3395E0C3648094B1
+:1006FA0080506775553280621557AF57EF3395E0D2
+:10070A00C3648094805053755732804E1553AF534B
+:10071A00EF3395E0C364809480503F75535A803A12
+:10072A001554AF54EF3395E0C364809480502B7511
+:10073A00545A80261575AF75EF3395E0C3648094DB
+:10074A0080501775750880121576AF76EF3395E0ED
+:10075A00C364809480500375760820B52080FB20FE
+:10076A00B41420B418AF73EF3395E04F700F636F72
+:0E077A000120B40980FBE4F573F55BF55C2209
 :10000E005389F0438901E4F58A758CDCC28DD2A93F
 :05001E00D28CD2AF22DC
-:03000B00020C558F
-:100C5500C0E0C083C082C0D0758A00758CDC1207E5
-:100C650055300A11900064E004F0D3941E4008E466
-:100C7500F0B2A18002D2A1900067E004F0D0D0D0FC
-:060C850082D083D0E032B2
-:100D470053877F75985053890F438920758BFD759D
-:0B0D57008DFDC2ABD28ED2AFC2AC2229
-:100BD500900003EBF0A3EAF0A3E9F0900003A3E093
-:100BE500FAA3E04A602AC2ACEDD394004022AF05D7
-:100BF5001DEF601C900003E0FBA3E475F0011209F2
-:100C050014A9F0FA1208B1F5993099FDC29980DE60
-:010C150022BC
-:100C8B00900000EBF0A3EAF0A3E9F0900000E0FB8A
-:100C9B00A3E0FAA3E0F94A6013120D79AD079000B7
-:0D0CAB0000E0FBA3E0FAA3E0F9120BD52254
-:03002300020DCA01
-:050DCA00C298C299323D
-:100D2900C29600D29600E4FFFEEF25E0FFC2B600AE
-:0D0D3900A297E4334FFFD2B60EEEB408ECE3
-:010D4600228A
-:10038B00120CB8120D479000037401F0A37400F027
-:10039B00A37465F0A37402F07B017A0079661205F1
-:1003AB00EFD2A17FC87E00120D629000037401F0A2
-:1003BB00A37400F0A37465F0A37402F07B017A00C0
-:1003CB0079661205EF12000E900067E0D39432406D
-:1003DB00F7E4F0900069E0600302054C30090EC2AF
-:1003EB00097F01120D9E7F647E00120DBE900003EB
-:1003FB007401F0A37400F0A37465F0A37402F07B96
-:10040B00017A0079661205EF7BFF7A0A79F4900086
-:10041B0066E0900005F0E4FDFF120A917BFF7A0A7B
-:10042B0079FD900065E0900005F07D01E4FF120A74
-:10043B009190000574FFF0A3740BF0A37409F07B8B
-:10044B00FF7A0B7906E4FD7F0C120A917BFF7A0B86
-:10045B00790C900062E0FFA3E0900005CFF0A3EFD2
-:10046B00F07D017F0C120A91900061E0FF3395E063
-:10047B00FE900066E0FD7C00C39FEE6480F8748004
-:10048B00984076900060E0FF3395E0FED3ED9FEE51
-:10049B006480F8748098506190005FE0FF3395E0C2
-:1004AB00FE900065E0FDC39FEE6480F87480984079
-:1004BB004890005EE0FF3395E0FED3ED9FEE648045
-:1004CB00F8748098503390006BE0FF3395E0FE900A
-:1004DB000062E0FCA3E0FDC39FEE6480F8EC648057
-:1004EB0098401690006AE0FF3395E0FED3ED9FEE47
-:1004FB006480F8EC6480984004D20A8002C20A90AF
-:10050B00003974FFF0A3740BF0A37412F090006623
-:10051B00E090003CF0900065E090003DF0900062B0
-:10052B00E0FFA3E090003ECFF0A3EFF07B007A005A
-:10053B00792212008B7B007A007922120C8B02033A
-:10054B00D320090ED2097F01120D9E7F647E00120B
-:10055B000DBE900069E024FE601314602F14602C14
-:10056B00146055146052240560030203D37BFF7A99
-:10057B000B791FE4FDFF120B917BFF7A0B7928900F
-:10058B000060E0900005F0900061801D7BFF7A0B0E
-:10059B007935E4FDFF120B917BFF7A0B79289000E4
-:1005AB005EE0900005F090005FE0900006F07D01AA
-:1005BB00E4FF120A910203D37BFF7A0B793EE4FD31
-:1005CB00FF120B917BFF7A0B792890006AE0900069
-:1005DB0005F090006BE0900006F07D01E4FF120A3D
-:0405EB00910203D3A3
-:040DCF007F0CDFFEB8
-:010DD30022FD
-:080DC1007F247ED9DEFEDFFC79
-:010DC9002207
+:03000B00020B2EB7
+:100B2E00C0E0C0D075D000C006C007758A00758CB5
+:100B3E00DC1205BAE57164017018E56F7014055A80
+:100B4E00D3E55A941E74809480400C755A00B2B34B
+:100B5E008005D2B3755A000572D007D006D0D0D01A
+:020B6E00E03273
+:100D180053877F75985053890F438920758BFD75CC
+:0B0D28008DFDC2ABD28ED2AFC2AC2258
+:100BB1008B258A268927AE02AF01EF4E602CC2AC8D
+:100BC100EDD39400748094804020AF051DEF601A2E
+:100BD100AB250527E527AA267002052614F9120878
+:0B0BE100B5F5993099FDC29980E02223
+:100CDF008B228A238924AE02AF01EF4E600E120DD4
+:0D0CEF0033AD07AB22AA23A924120BB122BA
+:03002300020D7E4D
+:050D7E00C298C2993289
+:100C9600C2A000D2A000E4FFFEEEC39408748094C4
+:100CA600805012EF25E0FFC2A100A2A2E433420762
+:050CB600D2A10E80E454
+:010CBB002216
+:100CBC00E4FEFDEEFB3395E0FAC3EB9408EA6480A6
+:100CCC009480500CEF20E0010DEFC313FF0E80E376
+:020CDC00AF0562
+:010CDE0022F3
+:10038200120C1A120D1875250075260075276E7548
+:1003920028027B007A007970120788D2B37FC87E68
+:1003A20000120C4675250075260075276E75280209
+:1003B2007B007A00797012078812000ED3E57294DE
+:1003C200327480948040F5E4F572E57460030205AE
+:1003D2000EE5566401700EF5567F01120D487F64DA
+:1003E2007E00120D72120C96120CBCEF3395E0F5E2
+:1003F200588F5975250075260075276E7528027B62
+:10040200007A0079701207887BFF7A0A794775278C
+:1004120000857028E4FDFF120B707BFF7A0A795089
+:10042200752700856E287D01E4FF120B707527FF8A
+:1004320075280A75295C7BFF7A0A7959E4FD7F0CDD
+:10044200120B707BFF7A0A795F8558278559287DC0
+:10045200017F0C120B70AF57EF3395E0FEAD707C4D
+:1004620000C3ED9FEE6480F87480984067AF55EF4B
+:100472003395E0FED3ED9FEE6480F874809850547B
+:10048200AF54EF3395E0FEAD6EC3ED9FEE6480F89E
+:10049200748098403FAF53EF3395E0FED3ED9FEE6B
+:1004A2006480F8748098502CAF76EF3395E0FEC3E9
+:1004B200E5599FEE6480F8E5586480984016AF7560
+:1004C200EF3395E0FED3E5599FEE6480F8E558647A
+:1004D200809840057571018003E4F5717542FF75DE
+:1004E200430A754465754500857046754700856EFB
+:1004F2004885584985594A7B007A00795D12008205
+:100502007B007A00795D120CDF0203BEE556700FA4
+:100512007556017F01120D487F647E00120D72E54F
+:100522007424FE601314603014602D14605A146039
+:1005320057240560030203BE7BFF7A0A7972E4FD49
+:10054200FF120AEA7BFF7A0A797BAF55EF3395E017
+:10055200F5278F28AF57801E7BFF7A0A7988E4FD42
+:10056200FF120AEA7BFF7A0A797BAF53EF3395E0F9
+:10057200F5278F28AF54EF3395E0F5298F2A7D01B7
+:10058200E4FF120B700203BE7BFF7A0A7991E4FD4D
+:10059200FF120AEA7BFF7A0A797BAF75EF3395E0A7
+:1005A200F5278F28AF76EF3395E0F5298F2A7D0165
+:0805B200E4FF120B700203BE0E
+:040D83007F0CDFFE04
+:010D87002249
+:080D75007F247ED9DEFEDFFCC5
+:010D7D002253
 :05000300007F14DFFE88
 :0100080022D5
-:100C1600E4FEFCE4FD20A00B000DEDD394FA40F5B4
-:100C26007F6422E4FD120DCF30A008EE25E04401DA
-:100C3600FE8006EE25E0FE800E30A00B000DEDD303
-:0E0C460094FA40F57F64220CECB408C7AF06A8
-:010C5400227D
-:0B05EF00900000EBF0A3EAF0A3E9F09D
-:1005FA00E4FD900007F0F9A3F0FBFC00C2A0001292
-:10060A000DC1D2A000120DCF0030A00302074F2067
-:10061A00A00B000DEDD394FA40F57FFF22E4FD1202
-:10062A00000320A0FD000DEDD394FA40037FFF22C2
-:10063A00C2AF120C16900007EFF0120C16A907129F
-:10064A000C16A3EFF0120C16AB07120C16AC07D25D
-:10065A00AFAF01900007E02FFFE433FEA3E07583FC
-:10066A00002FFFE5833EFEAD03ED7A002FFFEA3E41
-:10067A00FEAD04ED6F7001EE6014900007E0646453
-:10068A00700302074CA3E06464700302074C9000F5
-:10069A0006E064017074900008E075F00A84243062
-:1006AA00FF900000E0FBA3E0FAA3E0F9EF1208CA0A
-:1006BA00900008E075F00A84E5F02430FF9000000D
-:1006CA00E0FBA3E0FAA3E0F9900001EF1208DC9046
-:1006DA000007E075F00A842430FF900003E0FBA3D2
-:1006EA00E0FAA3E0F9EF1208CA900007E075F00AF1
-:1006FA0084E5F02430FF900003E0FBA3E0FAA3E0D6
-:10070A00F9900001EF1208DC803E900008E0FFD368
-:10071A0094325034900007E0C3945F502B9000004D
-:10072A00E0FBA3E0FAA3E0F9EF1208CA900007E0A1
-:10073A00FF900003E0FBA3E0FAA3E0F9EF1208CA76
-:0A074A0080067FFF227FFF227F0060
-:010754002282
-:1009A90002038BE493A3F8E493A34003F68001F2D6
-:1009B90008DFF48029E493A3F85407240CC8C3334F
-:1009C900C4540F4420C8834004F456800146F6DF1E
-:1009D900E4800B0102040810204080900A29E47E7B
-:1009E900019360BCA3FF543F30E509541FFEE49313
-:1009F900A360010ECF54C025E060A840B8E493A3DA
-:100A0900FAE493A3F8E493A3C8C582C8CAC583CA04
-:100A1900F0A3C8C582C8CAC583CADFE9DEE780BEBC
-:010A90000065
-:1008B100BB010689828A83E0225002E722BBFE0245
-:0908C100E32289828A83E4932278
-:1008CA00BB010689828A83F0225002F722BBFE010D
-:0208DA00F32207
-:1008DC00F8BB010DE58229F582E5833AF583E8F052
-:1008EC00225006E92582C8F622BBFE05E92582C8FE
-:0208FC00F222E6
-:1008FE00C5F0F8A3E028F0C5F0F8E5821582700285
-:06090E001583E038F02221
-:10091400A3F8E0C5F025F0F0E58215827002158396
-:06092400E0C838F0E822F3
-:10002600E5182439F582E43400F583E005182290BA
-:100036000036300703900039E475F00112095702C3
-:1000460008B12000E97F2ED2008018EF540F2490CB
-:10005600D43440D4FF30040BEF24BFB41A0050034D
-:100066002461FFE51960021519051CE51C700205DF
-:100076001B30070E900036E475F001120957EF02A7
-:1000860008CA020CE47403D2078003E4C207F51819
-:1000960090003612096EE4F519F51BF51CE519609A
-:1000A600077F2012006980F5751AFFC201C200C2DF
-:1000B60002C203C205C206C208120035FF700D3027
-:1000C60007057F0012007AAF1CAE1B22B4255FC263
-:1000D600D5C204120035FF24D0B40A00501A75F0B8
-:1000E6000A781930D50508B6FF0106C6A426F620FB
-:1000F600D5047002D20380D924CFB41A00EF50047D
-:10010600C2E5D20402027BD20180C6D20080C0D2F0
-:100116000280BCD2D580BAD20580B47F2012006995
-:100126002002077401B5190040F1120026FF1200E3
-:10013600690200A3D208D2068095120026FB12009F
-:1001460026FA120026F94A4B7006794C7A037BFF91
-:1001560020022EE519602A7E008E82758300120920
-:100166002A60060EEE651A70F0C2D5EBC0E0EAC052
-:10017600E0E9C0E0EE1202C2D0E0F9D0E0FAD0E049
-:10018600FB1208B1FF60AAEBC0E0EAC0E0E9C0E0FC
-:10019600120069D0E02401F9D0E03400FAD0E0FB87
-:1001A600E51A0460DCD51AD980877BFF7A0279BE0E
-:1001B600D202809C791080027908C206C2088008A3
-:1001C600D2D5790A8004790AC2D5E51A047002F5F7
-:1001D6001AE4FAFDFEFF120026FC7B08200113122A
-:1001E6000026FD7B1030000A120026FE120026FFB4
-:1001F6007B20EC3382D592D55013C3E43000069FA2
-:10020600FFE49EFEE42001039DFDE49CFCE4CBF8A4
-:10021600C201EC700CCFCECDCCE824F8F870F38098
-:1002260017C3EF33FFEE33FEED33FDEC33FCEB3358
-:10023600FB994002FB0FD8E9EB300105F8D0E0C48A
-:1002460048B201C0E00AEC4D4E4F78207B0070C2E8
-:10025600EAB51A0040BCC0E01202C4D0F0D0E020DB
-:100266000104C4C0E0C4B201C0F0120052D0F0D5FF
-:10027600F0EB0200A312097701405301BA580111AD
-:100286004C010D4201BE4F01C64401C64901264339
-:0802960001CC5501B04601B096
-:10029E004501B047036C5001152D01192E013C2B61
-:1002AE00011D23013A2003552A00D54800000134D0
-:1002BE003F3F3F00790AA2D5200314300509B9103B
-:1002CE00020404B9080104A2D5200602500104203C
-:1002DE0002689202B519005034C0E07F2030031935
-:1002EE007F30A20272067205500F12031BC202C2A9
-:1002FE0006C205C2087F30800F300503E9C0E01248
-:10030E000069300503D0E0F9D0E0B519CC300517FF
-:10031E007F30B9100C1200697F583004077F788047
-:10032E0003B908031200693002057F2D0200697FB0
-:10033E00202008F87F2B2006F322920280CF286E11
-:10034E00756C6C2900D2011200263001F8C20178BA
-:10035E001930D50108F60200D52D50434958120028
-:10036E00262403B405004001E49003679312005A5B
-:0D037E00743A12005AD2037519040201BA34
-:100D7900E4FFFE1208B1600C0FEF70010E09E97073
-:050D8900F20A80EF22D8
-:100B4700900030E0FFA3E0FEA3E0CF900039F0A3D0
-:100B5700EEF0A3EFF0900033E0CBF0A3E0CAF0A3F0
-:100B6700E0C9F07F2290003CAD82AC831208B18DC2
-:100B7700828C83F0A309E970010ADFEC900033E06F
-:0A0B8700FBA3E0FAA3E0F902008BE3
-:10092A00BB010CE58229F582E5833AF583E0225082
-:10093A0006E92582F8E622BBFE06E92582F8E222CC
-:0D094A00E58229F582E5833AF583E49322E6
-:10095700F8E0FBA3A3E0F925F0F0E5821582700229
-:070967001583E0FA38F022CD
-:09096E00EBF0A3EAF0A3E9F0228A
-:10097700D083D082F8E4937012740193700DA3A30F
-:1009870093F8740193F5828883E473740293686023
-:06099700EFA3A3A380DF23
-:100CE400EFB40A07740D120CEF740A309811A89926
-:100CF400B8130CC2983098FDA899C298B811F63070
-:070D040099FDC299F5992247
+:100A9A00E4FEFCECC39408748094805040E4FD208A
+:100AAA00B20F000DEDD394FA7480948040F17F6404
+:100ABA0022E4FD120D8330B209EE25E0FE43060161
+:100ACA008006EE25E0FE801230B20F000DEDD394C1
+:0F0ADA00FA7480948040F17F64220C80B6AF06DE
+:010AE90022EA
+:060788008B228A23892464
+:10078E00E4FDF529F9F52AFBFC00C2B200120D7545
+:10079E00D2B200120D830030B2030208AF20B20FA6
+:1007AE00000DEDD394FA7480948040F17FFF22E423
+:1007BE00FD12000320B2FD000DD3ED94FA74809467
+:1007CE008040037FFF22C2AF120A9A8F29120A9A23
+:1007DE00A907120A9A8F2A120A9AAB07120A9AAC22
+:1007EE0007D2AFAF01E5292FFFE433FEE52A75836B
+:1007FE00002FFFE5833EFEAD03ED7A002FFFEA3EAC
+:10080E00FEEC6F7001EE6012E5296464700302085D
+:10081E00ACE52A646470030208ACE52864017050EC
+:10082E00E52A75F00A842430AB22AA23A9241208E3
+:10083E00CEE52A75F00A84E5F02430AB22AA23A96E
+:10084E00249000011208E0E52975F00A842430ABEB
+:10085E0025AA26A9271208CEE52975F00A84E5F007
+:10086E002430AB25AA26A9279000011208E0803477
+:10087E00D3E52A9432748094805029C3E529945F7D
+:10088E0074809480501EAB22AA23A924E52A120854
+:10089E00CEAB25AA26A927E5291208CE80067FFF12
+:0608AE00227FFF227F0003
+:0108B4002221
+:10097100020382E493A3F8E493A34003F68001F217
+:1009810008DFF48029E493A3F85407240CC8C33387
+:10099100C4540F4420C8834004F456800146F6DF56
+:1009A100E4800B01020408102040809009F1E47EEC
+:1009B100019360BCA3FF543F30E509541FFEE4934B
+:1009C100A360010ECF54C025E060A840B8E493A312
+:1009D100FAE493A3F8E493A3C8C582C8CAC583CA3D
+:1009E100F0A3C8C582C8CAC583CADFE9DEE780BEF5
+:010A460000AF
+:1008B500BB010689828A83E0225002E722BBFE0241
+:0908C500E32289828A83E4932274
+:1008CE00BB010689828A83F0225002F722BBFE0109
+:0208DE00F32203
+:1008E000F8BB010DE58229F582E5833AF583E8F04E
+:1008F000225006E92582C8F622BBFE05E92582C8FA
+:02090000F222E1
+:10002600E54E2442F8E6054E22783F300702784234
+:10003600E475F00112092F0208B52000EB7F2ED2DD
+:10004600008018EF540F2490D43440D4FF30040BB2
+:10005600EF24BFB41A0050032461FFE54F60021578
+:100066004F0552E5527002055130070D783FE47591
+:10007600F00112092FEF0208CE020C6F7403D207AB
+:100086008003E4C207F54E8B3F8A408941E4F54F71
+:10009600F551F552E54F60077F2012006180F57536
+:1000A60050FFC201C200C202C203C205C206C20894
+:1000B60012002FFF700D3007057F00120072AF523D
+:1000C600AE5122B4255FC2D5C20412002FFF24D040
+:1000D600B40A00501A75F00A784F30D50508B6FFF5
+:1000E6000106C6A426F620D5047002D20380D924C0
+:1000F600CFB41A00EF5004C2E5D204020272D20154
+:1001060080C6D20080C0D20280BCD2D580BAD205C9
+:1001160080B47F201200612002077401B54F0040B1
+:10012600F1120026FF12006102009AD208D2068060
+:1001360095120026FB120026FA120026F94A4B7089
+:100146000679437A037BFF20022EE54F602A7E0064
+:100156008E8275830012090260060EEE655070F0FD
+:10016600C2D5EBC0E0EAC0E0E9C0E0EE1202B9D0C9
+:10017600E0F9D0E0FAD0E0FB1208B5FF60AAEBC0C8
+:10018600E0EAC0E0E9C0E0120061D0E02401F9D065
+:10019600E03400FAD0E0FBE5500460DCD550D980AD
+:1001A600877BFF7A0279B5D202809C79108002792A
+:1001B60008C206C2088008D2D5790A8004790AC224
+:1001C600D5E550047002F550E4FAFDFEFF12002654
+:1001D600FC7B08200113120026FD7B1030000A125A
+:1001E6000026FE120026FF7B20EC3382D592D550E6
+:1001F60013C3E43000069FFFE49EFEE42001039D46
+:10020600FDE49CFCE4CBF8C201EC700CCFCECDCC67
+:10021600E824F8F870F38017C3EF33FFEE33FEEDF2
+:1002260033FDEC33FCEB33FB994002FB0FD8E9EBD3
+:10023600300105F8D0E0C448B201C0E00AEC4D4EEA
+:100246004F78207B0070C2EAB5500040BCC0E01277
+:1002560002BBD0F0D0E0200104C4C0E0C4B201C0AB
+:10026600F012004AD0F0D5F0EB02009A12093F01D5
+:10027600375301B15801084C01044201B54F01BD85
+:0F0286004401BD49011D4301C35501A74601A70E
+:100295004501A747036350010C2D01102E01332B97
+:1002A500011423013120034C2A00CC480000012B06
+:1002B5003F3F3F00790AA2D5200314300509B91044
+:1002C500020404B9080104A2D52006025001042045
+:1002D50002689202B54F005034C0E07F2030031908
+:1002E5007F30A20272067205500F120312C202C2BB
+:1002F50006C205C2087F30800F300503E9C0E01251
+:100305000061300503D0E0F9D0E0B54FCC300517DA
+:100315007F30B9100C1200617F583004077F788058
+:1003250003B908031200613002057F2D0200617FC9
+:10033500202008F87F2B2006F322920280CF286E1A
+:10034500756C6C2900D2011200263001F8C20178C3
+:100355004F30D50108F60200CC2D50434958120004
+:10036500262403B405004001E490035E9312005275
+:0D037500743A120052D203754F040201B118
+:100D3300E4FFFE1208B5600C0FEF70010E09E970B5
+:050D4300F20A80EF221E
+:100BEC00853942853A43853B44EBC53CFBEAC53D20
+:100BFC00FAE9C53EF97F0978451208B5F60809E906
+:0E0C0C0070010ADFF4AB3CAA3DA93E02008253
+:10090200BB010CE58229F582E5833AF583E02250AA
+:1009120006E92582F8E622BBFE06E92582F8E222F4
+:0D092200E58229F582E5833AF583E493220E
+:10092F00FAE6FB0808E6F925F0F618E6CA3AF622C9
+:10093F00D083D082F8E4937012740193700DA3A347
+:10094F0093F8740193F5828883E47374029368605B
+:06095F00EFA3A3A380DF5B
+:100C6F00EFB40A07740D120C7A740A309811A89910
+:100C7F00B8130CC2983098FDA899C298B811F630E5
+:070C8F0099FDC299F59922BD
 :00000001FF

+ 0 - 1
TEST_Prj/shuitianwuxian_c51/单片机程序/Objects/drive_1602.__i

@@ -1 +0,0 @@
-"drive_1602.c" LARGE OPTIMIZE (8,SPEED) BROWSE DEBUG OBJECTEXTEND PRINT(.\Listings\drive_1602.lst) TABS (2) OBJECT(.\Objects\drive_1602.obj)

+ 0 - 1
TEST_Prj/shuitianwuxian_c51/单片机程序/Objects/main.__i

@@ -1 +0,0 @@
-"main.c" LARGE OPTIMIZE (8,SPEED) BROWSE DEBUG OBJECTEXTEND PRINT(.\Listings\main.lst) TABS (2) OBJECT(.\Objects\main.obj)

+ 1 - 1
TEST_Prj/shuitianwuxian_c51/单片机程序/dht11.h

@@ -12,7 +12,7 @@
 
 #include <reg52.h>
 #include "intrins.h"
-sbit DHT11_PIN=P2^0;
+sbit DHT11_PIN=P3^2;
 
 //Òý½ÅÅäÖÃΪÊä³ö£»
 #define DHT11_PIN_OUT() {  _nop_(); } 

+ 1 - 1
TEST_Prj/shuitianwuxian_c51/单片机程序/drive_1602.c

@@ -64,7 +64,7 @@ void WriteLcd1602_String(char x,char y,char  *p)
   }
 }
 
-char data String_Buff[16]={0};
+char xdata String_Buff[16]={0};
 void L1602_printf(char x,char y,char *format, ...)
 {
 		va_list ap;

+ 58 - 25
TEST_Prj/shuitianwuxian_c51/单片机程序/main.c

@@ -22,12 +22,12 @@
 sbit SW1=P3^7;
 sbit SW2=P3^6;
 sbit SW3=P3^5;
+sbit SW4=P3^4;
 
 sbit JR_LED=P2^2;
 sbit JW_LED=P2^4;
 
-sbit buzz=P2^1;
-sbit HY_IN=P2^3;
+sbit buzz=P3^3;
 
 uchar temp,humi;
 int sw_val=0;
@@ -39,16 +39,24 @@ void delay_xms(int xms)
 	   for(ix=110;ix>0;ix--);
 }
 uchar SET=0;
-char WdL=20;
+char WdL=10;
 char WdH=30;
 
-char SdL=60;
+char SdL=30;
 char SdH=80;
 
 char SWL=2;
 char SWH=6;
 
 char keyflag=0;
+uchar bj_flag=0;
+uchar Bj_CNt=0;
+uchar JCount=0;
+
+uchar clear_flag=0;
+
+uchar bj_clear=0;
+uint clear_cnt=0;
 
 void KeyRead(void)
 {
@@ -127,15 +135,29 @@ void KeyRead(void)
 					 case 6:
 						 if(--SWL<0)SWL=8;
 					 break;
+					 
 				 }
 			   while(!SW3);
 			 }
-		}else
+		}
+		else if(!SW4)
+		{
+		  if(!SW4&&keyflag==0)	
+			 {
+
+				   bj_clear^=1;
+					
+				 
+				  while(!SW4);
+			 }
+		}
+		else
 		{
 		  keyflag=0;
+		  clear_cnt=0;
 		}
 
-		
+
 }
 
 void Timer0Init(void)		//10毫秒@11.0592MHz
@@ -151,15 +173,13 @@ void Timer0Init(void)		//10
 	EA=1;
 	
 }
-bit bj_flag=0;
-uchar Bj_CNt=0;
-uchar JCount=0;
+
 void TimeISR()interrupt 1
 {
   TL0 = 0x00;		//设置定时初值
 	TH0 = 0xDC;		//设置定时初值
 	 KeyRead();
-	if(bj_flag)
+	if((bj_flag==1)&&(bj_clear==0))
 	{
 	   if(++Bj_CNt>30)
 		{
@@ -168,7 +188,7 @@ void TimeISR()interrupt 1
 		}
 	}else
 	{
-	   buzz=1;
+	   buzz=1;	Bj_CNt=0;
 	}
 	JCount++;
 }
@@ -223,12 +243,12 @@ void usart() interrupt 4
 	TI = 0;
 }
 
-char data showbuff[16]={0};
-char data send_buff[16]={0};
+//char xdata showbuff[16]={0};
+char data send_buff[17]={0};
 
-sbit IN_PL = P1^6;  //SHIFT/!LOA引脚
-sbit IN_Data = P1^7; // QH数据输出引脚
-sbit SCK = P3^6;  //CLOCK引脚
+sbit IN_PL = P2^0;  //SHIFT/!LOA引脚
+sbit IN_Data = P2^2; // QH数据输出引脚
+sbit SCK = P2^1;  //CLOCK引脚
 
 unsigned char Read74HC165(void)
 {
@@ -252,8 +272,21 @@ unsigned char Read74HC165(void)
 		return indata;
 }
 
-bit clear_flag=0;
 
+char find_bit(unsigned char dat)
+{
+	 char i=0;
+	 char cnt=0;
+   for(i=0;i<8;i++)
+	 {
+	    if(!(dat&0x01))
+			{
+			  cnt++;
+			}
+		  dat>>=1;
+	 }
+	 return cnt;
+}
 void main()
 {
 	lcd1602_init();
@@ -278,12 +311,12 @@ void main()
 						Write_1602_com(0x01);//清显示 
 						delay_1ms(100);				 
 					}
-			
+			    sw_val = find_bit(Read74HC165());
 			    dht11_value(&temp,&humi,DHT11_UINT8);
-				  L1602_printf(0,0,"temp:%2d",temp);
-				  L1602_printf(0,1,"humi:%2d",humi);
+				  L1602_printf(0,0,"temp:%2d",(int)temp);
+				  L1602_printf(0,1,"humi:%2d",(int)humi);
 				  L1602_printf(12,0,"%s","SW");
-				  L1602_printf(12,1,"%2dcm",sw_val);
+				  L1602_printf(12,1,"%2dcm",(int)sw_val);
 					if((temp<WdL||temp>WdH)||(humi<SdL||humi>SdH)||(sw_val<SWL||sw_val>SWH))
 					{
 					   bj_flag=1;
@@ -291,7 +324,7 @@ void main()
 					{
 					  bj_flag=0;
 					}
-						sprintf(send_buff,"X%dH%dD%dZ\r\n",temp,humi,sw_val);
+						sprintf(send_buff,"X%dH%dD%dZ\r\n",(int)temp,(int)humi,(int)sw_val);
 					 sendString(send_buff);
 		}
 		else 
@@ -308,19 +341,19 @@ void main()
 			   case 1:
 				 case 2:
 					 WriteLcd1602_String(0,0,"Set temp");
-				   L1602_printf(0,1,"H:%2d  L:%2d",WdH,WdL);
+				   L1602_printf(0,1,"H:%2d  L:%2d",(int)WdH,(int)WdL);
 				 break;
 				 
 				 case 3:
 				 case 4:
 					 WriteLcd1602_String(0,0,"Set humi");
-				   L1602_printf(0,1,"H:%2d  L:%2d",SdH,SdL);
+				   L1602_printf(0,1,"H:%2d  L:%2d",(int)SdH,(int)SdL);
 				 break;
 				 
 				 case 5:
 				 case 6:
 					 WriteLcd1602_String(0,0,"Set SW  ");
-				   L1602_printf(0,1,"H:%2d  L:%2d",SWH,SWL);
+				   L1602_printf(0,1,"H:%2d  L:%2d",(int)SWH,(int)SWL);
 				 break;
 			 }
 			 

Some files were not shown because too many files changed in this diff