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

📄 main.lst

📁 自己写的测试程序,调试已通过,可以直接使用, 而且有的还有详细的注释.红外测试软件
💻 LST
📖 第 1 页 / 共 5 页
字号:
 473   2                             if(h==0&z>60){z=0;}
 474   2                          n=iic_write[i]&0xf0;
 475   2                              n>>=4;
 476   2                        write_byte(h,2,z,&number[n]);  //:
 477   2                        z+=8;
 478   2                                        
 479   2                              n=iic_write[i]&0x0f;
 480   2                                    write_byte(h,2,z,&number[n]);
 481   2                     z+=8;
 482   2                                      
 483   2                  }
 484   1       
C51 COMPILER V7.06   MAIN                                                                  03/26/2008 16:30:50 PAGE 9   

 485   1                                       
 486   1      
 487   1              write_word(0,4,0,&chinese[11]);    //系统编号 
 488   1              write_word(0,4,16,&chinese[12]);
 489   1              write_word(0,4,32,&chinese[20]); 
 490   1              write_word(0,4,48,&chinese[21]);
 491   1              write_byte(1,4,0,&number[22]);  //:
 492   1                read_iic_data(1,&iic_read[0],0,1);     
 493   1              n=iic_read[0]/8;
 494   1                      z=iic_read[0]%8;
 495   1      
 496   1      
 497   1      
 498   1             write_byte(1,4,8,&number[n+10]);
 499   1                 write_byte(1,4,16,&number[25]); // -
 500   1             write_byte(1,4,24,&number[z]);  
 501   1        
 502   1        
 503   1               
 504   1             write_word(0,6,0,&chinese[25]);     //  传感器总数:      
 505   1             write_word(0,6,16,&chinese[26]); 
 506   1             write_word(0,6,32,&chinese[17]);    
 507   1             write_word(0,6,48,&chinese[58]);    
 508   1             write_word(1,6,0,&chinese[59]);    
 509   1             write_byte(1,6,16,&number[22]);
 510   1             n=iic_read[0]/10;
 511   1                 z=iic_read[0]%10;
 512   1                 write_byte(1,6,24,&number[n]);
 513   1                 write_byte(1,6,32,&number[z]);
 514   1         gg:     delay_1s(30000);
 515   1         
 516   1             ds18b20_number(&num);
 517   1                  delay_iic();
 518   1                if(num[0]==0x28|num[0]==0x26) goto gg;
 519   1            xx: delay_1s(100);
 520   1           }
 521             
 522          //************** finding *********************************************/
 523            bit finding(void)
 524              {
 525   1               unsigned int hhhh;
 526   1               unsigned char y;
 527   1               int w,r,u,n;
 528   1              
 529   1               bit f;                             ES=0;
 530   1               f=0; hhhh=0;
 531   1               w=0;r=0;n=0;
 532   1                       ds18b20_number(&iic_write);
 533   1              for(y=0;y<8;y++)
 534   1                          {
 535   2                        u=(int)iic_write[y];n+=u;
 536   2                  }
 537   1                                                          ES=0;
 538   1                                 
 539   1                                 delay_1s(4000);      ES=0;
 540   1               ds18b20_number(&iic_write);
 541   1                       for(y=0;y<8;y++)
 542   1                          {
 543   2                        u=(int)iic_write[y];w+=u;
 544   2                  }                                  ES=0;
 545   1                                          delay_1s(1000);    ES=0;
 546   1                                                              ds18b20_number(&iic_write);
C51 COMPILER V7.06   MAIN                                                                  03/26/2008 16:30:50 PAGE 10  

 547   1               for(y=0;y<8;y++)
 548   1                          {
 549   2                        u=(int)iic_write[y];r+=u; 
 550   2                  }                                ES=0;
 551   1                                      delay_1s(1000);
 552   1                                                   ES=0;
 553   1                                
 554   1              if((n==w&w==r&(iic_write[0]==0x28|iic_write[0]==0x26))&(n<1028))
 555   1                              { f=1;
 556   2                                                           
 557   2                                 
 558   2                               clear_lcd_screen();
 559   2                                                 //  找到新硬件
 560   2                                 
 561   2                                
 562   2                                write_word(0,3,16,&chinese[37]);           
 563   2                    write_word(0,3,32,&chinese[38]);
 564   2                    write_word(0,3,48,&chinese[39]);
 565   2                    write_word(1,3,0,&chinese[40]);
 566   2                    write_word(1,3,16,&chinese[41]);
 567   2                                write_byte(1,3,32,&number[23]);
 568   2                                                     ES=0;
 569   2                        delay_1s(30000);         ES=0;
 570   2                                  
 571   2                               }  
 572   1                               
 573   1          return f;
 574   1                   }
 575          
 576          // ***************   error ************************************//
 577          void error(void)
 578          {             clear_lcd_screen();
 579   1                    write_word(0,3,26,&chinese[11]);           
 580   1                    write_word(0,3,42,&chinese[12]);
 581   1                    write_word(0,3,58,&chinese[51]);
 582   1                    write_word(1,3,10,&chinese[52]);
 583   1                                write_byte(1,3,26,&number[23]);
 584   1             while(1);
 585   1           
 586   1                           
 587   1                                
 588   1       }
 589          void memery_error(void)
 590           {
 591   1       clear_lcd_screen();
 592   1      write_word(0,3,16,&chinese[27]);
 593   1      write_word(0,3,32,&chinese[28]);
 594   1      write_word(0,3,48,&chinese[17]);
 595   1      write_word(1,3,0,&chinese[51]);
 596   1      write_word(1,3,16,&chinese[52]);
 597   1      write_byte(1,3,32,&number[23]);
 598   1                                                                                                                
             -                                                                                                                        
             -                                                                                                                        
             -                                                                                                                        
             -                                                                                                                        
             -                                                                                                                        
             -                                                                                                                        
             -                                         while(1); 
 599   1      }
 600          
 601          /*************    display temperature  *********************************/
C51 COMPILER V7.06   MAIN                                                                  03/26/2008 16:30:50 PAGE 11  

 602          void display_temp(unsigned i,unsigned char j,short int temp)
 603          {
 604   1       unsigned char y,z,h,w0,w1;
 605   1       signed char up,down;
 606   1       bit err,qq;
 607   1       err=0;
 608   1       qq=0;
 609   1       w0=28;w1=31;
 610   1        
 611   1       z=0;
 612   1       if(j==1|j==5){y=0;}
 613   1       if(j==2|j==6){y=2;}
 614   1       if(j==3|j==7){y=4;}
 615   1       if(j==4|j==8){y=6;}
 616   1                            
 617   1         if(temp<-880|temp>2000|temp==-1)
 618   1                           {if(j<=4){write_word(0,y,28,&chinese[51]);
 619   3                                                write_word(0,y,44,&chinese[52]);}
 620   2                                               else{write_word(1,y,28,&chinese[51]);
 621   3                                                write_word(1,y,44,&chinese[52]);}      
 622   2                                                    err=1;                     
 623   2                                                  }
 624   1         if(temp<0){temp*=(-1);qq=1;}
 625   1         temp*=0.0625;                   
 626   1                                                   if(~err)
 627   1                                                                                                  {
 628   2                                                                                                       read_iic_data(1,&iic_read,0,8);        //继电器
 629   2                                                                                                         if(iic_read[3]==1){down=iic_read[1]*(-1);}
 630   2                                                                                                             else down=iic_read[1];
 631   2                                                                                                          if(iic_read[4]==1){up=iic_read[2]*(-1);}
 632   2                                                                                                              else {up=iic_read[2];}
 633   2                                                       if(temp<=down|temp>=up)
 634   2                                                                                                         {
 635   3                                                                                                          call=0;
 636   3                                                                                                         }
 637   2                                                                                                   }
 638   1           h=temp/100;                     
 639   1        if(j<=4){ if(h==0){w0-=7;}  
 640   2      
 641   2         write_byte(0,y,7,&number[25]);
 642   2         write_byte(0,y,18,&number[22]);
 643   2      
 644   2         
 645   2       
 646   2       if(~err){if(qq){write_byte(0,y,23,&number[25]);}   //负号!
 647   3                write_byte(0,y,w0+18,&number[26]);
 648   3                write_byte(0,y,w0+26,&number[12]);}
 649   2        
 650   2        write_byte(0,y,0,&number[i+10]);                               //light this setup 
 651   2        write_byte(0,y,12,&number[j]);    
 652   2         if(~err){               
 653   3        if(h==1)
 654   3           {
 655   4         write_byte(0,y,w0,&number[h]);}
 656   3        z=(temp-(h*100))/10;
 657   3         write_byte(0,y,w0+7,&number[z]);
 658   3        z=temp%10;
 659   3         write_byte(0,y,w0+14,&number[z]);
 660   3         }}
 661   1        else
 662   1        {
 663   2           if(h==0){w1-=7;}
C51 COMPILER V7.06   MAIN                                                                  03/26/2008 16:30:50 PAGE 12  

 664   2        write_byte(1,y,10,&number[25]);
 665   2        write_byte(1,y,21,&number[22]);    //:
 666   2        if(~err){if(qq){write_byte(1,y,26,&number[25]);}   //负号!
 667   3                write_byte(1,y,w1+26,&number[12]);  
 668   3                write_byte(1,y,w1+18,&number[26]);
 669   3                }
 670   2      
 671   2      
 672   2       
 673   2        write_byte(1,y,3,&number[i+10]);                     //right this
 674   2        write_byte(1,y,15,&number[j]);
 675   2      
 676   2        if(~err)
 677   2          {                         
 678   3        
 679   3        if(h==1){
 680   4         write_byte(1,y,w1,&number[h]);}
 681   3        z=(temp-(h*100))/10;
 682   3         write_byte(1,y,w1+7,&number[z]);
 683   3        z=temp%10;
 684   3         write_byte(1,y,w1+14,&number[z]);
 685   3         }}
 686   1      
 687   1            // SEND RS485
 688   1         if(err){t_buf[(i*8+j)*2-1]=i*8+j; t_buf[(i*8+j)*2]=0xfe;}
 689   1           else {t_buf[(i*8+j)*2-1]=i*8+j; t_buf[(i*8+j)*2]=temp&0xff; } 
 690   1       }
 691          
 692          /*************    display temperature  *********************************/
 693          void display_temp_6(unsigned i,unsigned char j,short int temp)
 694          {
 695   1       unsigned char y,z,h,w0,w1;
 696   1       signed char down,up;
 697   1       bit err,qq;                                                            
 698   1       err=0;
 699   1       qq=0;
 700   1       w0=28;w1=31;
 701   1        
 702   1       z=0;
 703   1       if(j==1|j==4){y=2;}
 704   1       if(j==2|j==5){y=4;}
 705   1       if(j==3|j==6){y=6;}
 706   1      // if(j==4|j==8){y=6;}
 707   1         

⌨️ 快捷键说明

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