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

📄 main.lst

📁 自己写的测试程序,调试已通过,可以直接使用, 而且有的还有详细的注释.红外采集器软件
💻 LST
📖 第 1 页 / 共 5 页
字号:
 233   1         unsigned int j,i;
 234   1         unsigned int hhhh;
 235   1         bit ff;
 236   1       hhhh=0;
C51 COMPILER V7.08   MAIN                                                                  06/13/2007 16:48:08 PAGE 5   

 237   1                for(i=0;i<8;i++)
 238   1                     {iic_read[i]=0x00;}
 239   1                                  iic_read[2]=80;
 240   1                                  iic_read[1]=0;
 241   1                                              iic_read[3]=0;
 242   1                                              iic_read[4]=0;
 243   1                                              iic_read[5]=0;
 244   1                                              iic_read[7]=0;
 245   1                       write_iic_data(1,&iic_read,0,8);    // 初始温度上限
 246   1         clear_lcd_screen();
 247   1        write_word(0,3,12,&chinese[27]);           //write input a word "存储器无记录!“
 248   1        write_word(0,3,28,&chinese[28]);
 249   1        write_word(0,3,44,&chinese[17]);
 250   1        write_word(0,3,60,&chinese[29]);
 251   1        write_word(1,3,12,&chinese[30]);
 252   1        write_word(1,3,28,&chinese[31]);
 253   1        write_byte(1,3,44,&number[23]);
 254   1               while(1){if(base_time==1){     hhhh++;if(hhhh>40000){break;}}}
 255   1      
 256   1          clear_lcd_screen();
 257   1         write_word(0,2,10,&chinese[22]);           // write input a word "请连接传感器!
 258   1         write_word(0,2,26,&chinese[32]);
 259   1         write_word(0,2,42,&chinese[33]);
 260   1         write_word(0,2,58,&chinese[25]);
 261   1         write_word(1,2,10,&chinese[26]);
 262   1         write_word(1,2,26,&chinese[17]);
 263   1         write_byte(1,2,42,&number[23]);
 264   1        
 265   1         write_word(0,4,20,&chinese[34]);             // write input 搜索中
 266   1         write_word(0,4,36,&chinese[35]);
 267   1         write_word(0,4,50,&chinese[36]);
 268   1         i=2;
 269   1        while(1)
 270   1          {
 271   2                   
 272   2              write_byte(1,4,i,&number[24]);
 273   2                     i+=6;
 274   2      
 275   2                  if(i>32){i=2;for(j=8;j<35;j+=8){ write_byte(1,4,j,&number[19]);  }}  //clear 
 276   2                  while(1){if(base_time==1){  hhhh++;if(hhhh>2000){break;}}}                // point while
 277   2                 ff= finding();
 278   2                      if(ff){break;}
 279   2                          }
 280   1              }
 281                   
 282                               
 283          
 284                                     
 285          
 286                    
 287          /****************   display before set ************************************/
 288          void display_set(void)
 289          {
 290   1        unsigned char z,x,y;                            // 系统状态
 291   1      
 292   1        read_iic_data(1,&iic_read[0],0,6); 
 293   1        
 294   1         clear_lcd_screen();
 295   1        
 296   1      
 297   1        write_word(0,0,32,&chinese[11]);             
 298   1        write_word(0,0,48,&chinese[12]);            
C51 COMPILER V7.08   MAIN                                                                  06/13/2007 16:48:08 PAGE 6   

 299   1        write_word(1,0,0,&chinese[60]);           
 300   1        write_word(1,0,16,&chinese[61]);            
 301   1      
 302   1      
 303   1        write_word(0,2,4,&chinese[42]);             //write input a word "已"
 304   1        write_word(0,2,20,&chinese[23]);            //write input a word "安装硬件"
 305   1        write_word(0,2,36,&chinese[24]);           
 306   1        write_word(0,2,52,&chinese[40]);            
 307   1        write_word(1,2,4,&chinese[41]);  
 308   1        write_byte(1,2,20,&number[22]);
 309   1        
 310   1        x=iic_read[0]/10;                                    //
 311   1        write_byte(1,2,28,&number[x]);
 312   1        x=iic_read[0]%10;
 313   1        write_byte(1,2,36,&number[x]);  
 314   1        
 315   1                                                  
 316   1      
 317   1        write_word(0,4,4,&chinese[7]);           // 温度下限
 318   1        write_word(0,4,20,&chinese[8]);         
 319   1        write_word(0,4,36,&chinese[45]);            
 320   1        write_word(0,4,52, &chinese[44]); 
 321   1        write_byte(1,4,4,&number[22]);
 322   1                                                         write_byte(1,4,32,&number[26]);
 323   1                                                         write_byte(1,4,40,&number[12]); 
 324   1        
 325   1          z=iic_read[1]/100;
 326   1           write_byte(1,4,12,&number[z]);
 327   1            x=(iic_read[1]-z*100)/10;
 328   1      
 329   1             write_byte(1,4,20,&number[x]); 
 330   1          y=(iic_read[1]-z*100-x*10)%10;
 331   1           write_byte(1,4,28,&number[y]);  
 332   1       
 333   1                            
 334   1            
 335   1                       if(iic_read[3]==1) {write_byte(1,4,12,&number[25]);}
 336   1              //                        else if(z==0&x==0){write_byte(1,2,20,&number[25]);}    // 正负号!
 337   1                      //                         else  write_byte(1,2,12,&number[25]);
 338   1                              
 339   1      //next1:  
 340   1      
 341   1        write_word(0,6,4,&chinese[7]);           // 温度上限
 342   1        write_word(0,6,20,&chinese[8]);         
 343   1        write_word(0,6,36,&chinese[43]);            
 344   1        write_word(0,6,52, &chinese[44]); 
 345   1        write_byte(1,6,4,&number[22]); 
 346   1                                                        write_byte(1,6,32,&number[26]);
 347   1                                                        write_byte(1,6,40,&number[12]);
 348   1          z=iic_read[2]/100;
 349   1           write_byte(1,6,12,&number[z]);
 350   1            x=(iic_read[2]-z*100)/10;
 351   1      
 352   1             write_byte(1,6,20,&number[x]); 
 353   1          y=(iic_read[2]-z*100-x*10)%10;
 354   1           write_byte(1,6,28,&number[y]); 
 355   1            
 356   1        
 357   1                       if(iic_read[4]==1){write_byte(1,6,12,&number[25]);}
 358   1                              //        else if(z==0&x==0){write_byte(1,6,20,&number[25]);}
 359   1                              //             else  write_byte(1,6,12,&number[25]);
 360   1      
C51 COMPILER V7.08   MAIN                                                                  06/13/2007 16:48:08 PAGE 7   

 361   1        
 362   1      //next2:      
 363   1       
 364   1                        ES=1;
 365   1        delay_1s(1000);
 366   1                        ES=0;
 367   1      }           
 368          
 369          /**********************   found new  ****************************************/
 370          
 371          void found_new(void)
 372          {
 373   1         unsigned char num[8];
 374   1         unsigned char n,i,z;
 375   1         bit h;
 376   1      
 377   1         delay_iic();
 378   1        read_iic_data(1,&iic_read,0,6);
 379   1        n=iic_read[0];
 380   1        delay_iic();
 381   1         if(iic_read[0]==64)                  //  系统超限!
 382   1            {          clear_lcd_screen();
 383   2                        
 384   2                                write_word(0,3,26,&chinese[11]);           
 385   2                    write_word(0,3,42,&chinese[12]);
 386   2                    write_word(0,3,58,&chinese[50]);
 387   2                    write_word(1,3,10,&chinese[44]);
 388   2                                write_byte(1,3,26,&number[23]);
 389   2                  delay_1s(30000);
 390   2      
 391   2                       goto xx;
 392   2                  }
 393   1        if(iic_read[0]<0|iic_read[0]>64)
 394   1                          {
 395   2                                                  read_iic_data(1,&iic_read,0,6);
 396   2                              if(iic_read[0]<0|iic_read[0]>64){error();}
 397   2                                                      }   //系统故障!
 398   1           
 399   1      
 400   1       
 401   1      
 402   1               for(;n>0;n--)
 403   1                { z=0;    
 404   2                 read_iic_data(0,&iic_read,n*8-8,8);
 405   2              delay_iic();
 406   2               if(iic_write[0]==iic_read[0]){ z++;}
 407   2           if(iic_write[1]==iic_read[1]){ z++;}
 408   2           if(iic_write[2]==iic_read[2]){ z++;}
 409   2           if(iic_write[3]==iic_read[3]){ z++;}     
 410   2               if(iic_write[4]==iic_read[4]){ z++;}
 411   2           if(iic_write[5]==iic_read[5]){ z++;}
 412   2           if(iic_write[6]==iic_read[6]){ z++;}
 413   2           if(iic_write[7]==iic_read[7]){ z++;}                        
 414   2                                                   if(z==8)
 415   2                                              {        clear_lcd_screen();    
 416   3                                           write_word(0,3,20,&chinese[17]);//器件已存在! 
 417   3                                           write_word(0,3,36,&chinese[41]);
 418   3                                           write_word(0,3,52,&chinese[42]);
 419   3                                           write_word(1,3,4,&chinese[27]);
 420   3                                           write_word(1,3,20,&chinese[57]);
 421   3                                                       write_byte(1,3,36,&number[23]);
 422   3                                    x:     delay_1s(30000);
C51 COMPILER V7.08   MAIN                                                                  06/13/2007 16:48:08 PAGE 8   

 423   3                                                                         while(1){
 424   4                                                                                 ds18b20_number(&num[0]);
 425   4                                                                                         if(num[0]==0x28|num[0]==0x26)
 426   4                                                                                           {goto x;}  
 427   4                                                                                          else           
 428   4                                                                                                 {break;}    // if you not bright ds18b20,do while  
 429   4                                                                                        }
 430   3                                                                                                  
 431   3                                                          goto xx;
 432   3                                                                       }
 433   2                            
 434   2                                
 435   2                
 436   2                  }
 437   1      
 438   1                        read_iic_data(1,&iic_read,0,6);        //写IIC 总数加1
 439   1                        delay_iic();
 440   1                write_iic_data(0,&iic_write,iic_read[0]*8,8);   
 441   1                                                        
 442   1                                                       
 443   1                iic_read[0]++;
 444   1                delay_iic();
 445   1                        write_iic_data(1,&iic_read[0],0,1); 
 446   1      
 447   1                       clear_lcd_screen();
 448   1              write_word(0,0,28,&chinese[53]);           
 449   1              write_word(0,0,44,&chinese[54]);                   //  添加成功 序列
 450   1              write_word(0,0,60,&chinese[55]);                            //  ::当前总数 
 451   1              write_word(1,0,12,&chinese[56]);
 452   1              write_byte(1,0,28,&number[23]);
 453   1              
 454   1                  z=0;n=0;h=0;
 455   1             for(i=0;i<8;i++)
 456   1                    {    if(i<4)h=0;else h=1;
 457   2                             if(h==0&z>60){z=0;}
 458   2                          n=iic_write[i]&0xf0;
 459   2                              n>>=4;
 460   2                        write_byte(h,2,z,&number[n]);  //:
 461   2                        z+=8;
 462   2                                        
 463   2                              n=iic_write[i]&0x0f;
 464   2                                    write_byte(h,2,z,&number[n]);
 465   2                     z+=8;
 466   2                                      
 467   2                  }
 468   1       
 469   1                                       
 470   1      
 471   1              write_word(0,4,0,&chinese[11]);    //系统编号 
 472   1              write_word(0,4,16,&chinese[12]);
 473   1              write_word(0,4,32,&chinese[20]); 
 474   1              write_word(0,4,48,&chinese[21]);
 475   1              write_byte(1,4,0,&number[22]);  //:
 476   1                read_iic_data(1,&iic_read[0],0,1);     

⌨️ 快捷键说明

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