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

📄 main.lst

📁 自己写的测试程序,调试已通过,可以直接使用, 而且有的还有详细的注释.红外采集器软件
💻 LST
📖 第 1 页 / 共 5 页
字号:
 477   1              n=iic_read[0]/8;
 478   1                      z=iic_read[0]%8;
 479   1      
 480   1      
 481   1      
 482   1             write_byte(1,4,8,&number[n+10]);
 483   1                 write_byte(1,4,16,&number[25]); // -
 484   1             write_byte(1,4,24,&number[z]);  
C51 COMPILER V7.08   MAIN                                                                  06/13/2007 16:48:08 PAGE 9   

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

 547   2                    write_word(0,3,32,&chinese[38]);
 548   2                    write_word(0,3,48,&chinese[39]);
 549   2                    write_word(1,3,0,&chinese[40]);
 550   2                    write_word(1,3,16,&chinese[41]);
 551   2                                write_byte(1,3,32,&number[23]);
 552   2                                                     ES=0;
 553   2                        delay_1s(30000);         ES=1;
 554   2                                  
 555   2                               }  
 556   1                               
 557   1          return f;
 558   1                   }
 559          
 560          // ***************   error ************************************//
 561          void error(void)
 562          {             clear_lcd_screen();
 563   1                    write_word(0,3,26,&chinese[11]);           
 564   1                    write_word(0,3,42,&chinese[12]);
 565   1                    write_word(0,3,58,&chinese[51]);
 566   1                    write_word(1,3,10,&chinese[52]);
 567   1                                write_byte(1,3,26,&number[23]);
 568   1             while(1);
 569   1           
 570   1                           
 571   1                                
 572   1       }
 573          void memery_error(void)
 574           {
 575   1       clear_lcd_screen();
 576   1      write_word(0,3,16,&chinese[27]);
 577   1      write_word(0,3,32,&chinese[28]);
 578   1      write_word(0,3,48,&chinese[17]);
 579   1      write_word(1,3,0,&chinese[51]);
 580   1      write_word(1,3,16,&chinese[52]);
 581   1      write_byte(1,3,32,&number[23]);
 582   1                                                                                                                
             -                                                                                                                        
             -                                                                                                                        
             -                                                                                                                        
             -                                                                                                                        
             -                                                                                                                        
             -                                                                                                                        
             -                                         while(1); 
 583   1      }
 584          
 585          /*************    display temperature  *********************************/
 586          void display_temp(unsigned i,unsigned char j,short int temp)
 587          {
 588   1       unsigned char y,z,h,w0,w1;
 589   1       signed char up,down;
 590   1       bit err,qq;
 591   1       err=0;
 592   1       qq=0;
 593   1       w0=28;w1=31;
 594   1        
 595   1       z=0;
 596   1       if(j==1|j==5){y=0;}
 597   1       if(j==2|j==6){y=2;}
 598   1       if(j==3|j==7){y=4;}
 599   1       if(j==4|j==8){y=6;}
 600   1                            
 601   1         if(temp<-880|temp>2000|temp==-1)
C51 COMPILER V7.08   MAIN                                                                  06/13/2007 16:48:08 PAGE 11  

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

 664   4         write_byte(1,y,w1,&number[h]);}
 665   3        z=(temp-(h*100))/10;
 666   3         write_byte(1,y,w1+7,&number[z]);
 667   3        z=temp%10;
 668   3         write_byte(1,y,w1+14,&number[z]);
 669   3         }}
 670   1      
 671   1            // SEND RS485
 672   1         if(err){t_buf[(i*8+j)*2-1]=i*8+j; t_buf[(i*8+j)*2]=0xfe;}
 673   1           else {t_buf[(i*8+j)*2-1]=i*8+j; t_buf[(i*8+j)*2]=temp&0xff; } 
 674   1       }
 675          
 676          /*************    display temperature  *********************************/
 677          void display_temp_6(unsigned i,unsigned char j,short int temp)
 678          {
 679   1       unsigned char y,z,h,w0,w1;
 680   1       signed char down,up;
 681   1       bit err,qq;                                                            
 682   1       err=0;
 683   1       qq=0;
 684   1       w0=28;w1=31;
 685   1        
 686   1       z=0;
 687   1       if(j==1|j==4){y=2;}
 688   1       if(j==2|j==5){y=4;}
 689   1       if(j==3|j==6){y=6;}
 690   1      // if(j==4|j==8){y=6;}
 691   1         
 692   1         if(temp<-880|temp>2000|temp==-1)
 693   1                         {if(j<=3){write_word(0,y,28,&chinese[51]);
 694   3                                                write_word(0,y,44,&chinese[52]);}
 695   2                                               else{write_word(1,y,28,&chinese[51]);
 696   3                                                write_word(1,y,44,&chinese[52]);}      
 697   2                                                    err=1;                 // err control r ,l
 698   2                                                  }
 699   1         if(temp<0){temp*=(-1);qq=1;}                 // qq control z ,f
 700   1         temp*=0.0625;                  
 701   1                                                   if(~err)
 702   1                                                                                                  {
 703   2                                                                                                       read_iic_data(1,&iic_read,0,8);        //继电器
 704   2                                                                                                         if(iic_read[3]==1){down=iic_read[1]*(-1);}
 705   2                                                                                                             else down=iic_read[1];
 706   2                                                                                                          if(iic_read[4]==1){up=iic_read[2]*(-1);}
 707   2                                                                                                              else {up=iic_read[2];}
 708   2                                                       if(temp<=down|temp>=up)
 709   2                                                                                                         {
 710   3                                                                                                          call=0;
 711   3                                                                                                         }
 712   2                                                                                                   }
 713   1       

⌨️ 快捷键说明

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