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

📄 鱼探仪.lst

📁 温度采集显示与PID控制
💻 LST
📖 第 1 页 / 共 3 页
字号:
 538   1              sdset9();
 539   1      else if(f<=120)
 540   1              sdset10();
 541   1      else if(f<=140)
 542   1              sdset11();
 543   1      else if(f<=160)
 544   1              sdset12();
 545   1      else if(f<=200)
 546   1              sdset13();
 547   1      else if(f<=250)
 548   1              sdset14();
 549   1      else if(f<=300)
 550   1              sdset15();
 551   1      else if(f<=350)
C51 COMPILER V7.01  _鉥揭_                                                                 05/09/2003 11:49:36 PAGE 10  

 552   1              sdset16();
 553   1      else if(f<=400)
 554   1              sdset17();
 555   1      else if(f<=450)
 556   1              sdset18();
 557   1      else if(f<=500)
 558   1              sdset19();
 559   1      else if(f<=550)
 560   1              sdset20();
 561   1      else sdset21();
 562   1      clp_dog();
 563   1      }
 564          /*********************************/
 565          //海底数值判别
 566          /*********************************/
 567          void sujucle()//数据处理
 568          { 
 569   1       
 570   1        
 571   1        yasue();//数据压缩成500个数
 572   1         zdpe(); //判断最大值
 573   1        if(trp>5)
 574   1              {
 575   2               if(trp<480)
 576   2                      {
 577   3                    xlpe(); //判断最大斜率
 578   3                    haidisendu=haidewz();//海底值确定
 579   3                    if(trp<10)
 580   3                      {
 581   4                      if(zenyi==0x08)
 582   4                         {    
 583   5                          zenyia++;
 584   5                          if(zenyia>0x07)
 585   5                                 zenyia=0x07;
 586   5                         }
 587   4                      }
 588   3                      if(trp>50)
 589   3                      {
 590   4                      if(zenyi==0x08)
 591   4                         {    
 592   5                           {   
 593   6                         if(zenyia>0x00)
 594   6                                zenyia--;
 595   6                           }
 596   5                         }
 597   4                      }
 598   3                      }
 599   2               else {haidisendu=0x0000;
 600   3                        if(zenyi==0x08)
 601   3                         {   
 602   4                         if(zenyia>0x00)
 603   4                                zenyia--;
 604   4                           }
 605   3                      }
 606   2              }
 607   1        else {haidisendu=0xffff;
 608   2                if(zenyi==0x08)
 609   2                    {    
 610   3                     zenyia++;
 611   3                     if(zenyia>0x07)
 612   3                         zenyia=0x07;
 613   3                      }
C51 COMPILER V7.01  _鉥揭_                                                                 05/09/2003 11:49:36 PAGE 11  

 614   2        
 615   2              }
 616   1        clp_dog();
 617   1      }
 618          
 619          void yasue()
 620          {
 621   1        uint i;
 622   1        uchar o;
 623   1        uchar k;
 624   1        uint g;
 625   1        uchar xdata *fg;
 626   1        clp_dog();
 627   1        g=0;
 628   1        fg=adcjs;
 629   1       for(i=0;i<350;i++)//数据压缩成500个数
 630   1       {  
 631   2         g=*fg;
 632   2                
 633   2         for(o=1;o<cmb;o++)
 634   2              {
 635   3              fg++;
 636   3              g=g+*fg;
 637   3          }
 638   2           k=g/cmb;
 639   2           if(k<=zaibao)
 640   2              k=0;
 641   2           yssu[i]=k;
 642   2           fg++;
 643   2           g=0;
 644   2         }
 645   1      
 646   1      }
 647          
 648          
 649          void  zdpe() //判断最大值
 650          {
 651   1        uint i;
 652   1        
 653   1        
 654   1       trp=0;
 655   1        clp_dog();
 656   1       for(i=2;i<350;i++) //判断最大值
 657   1          {
 658   2           if(yssu[i]>=0xf0)
 659   2              {
 660   3              haidea[trp]=i;
 661   3              trp++;
 662   3              }
 663   2            
 664   2          }
 665   1      }
 666          
 667          
 668           void xlpe() //判断最大斜率,数据分组   
 669           {
 670   1        int i;
 671   1        int dc;
 672   1        uint n;
 673   1        uint m;//一组有几个数
 674   1        dc=trp-1;
 675   1        n=haidea[dc];
C51 COMPILER V7.01  _鉥揭_                                                                 05/09/2003 11:49:36 PAGE 12  

 676   1        t=0;
 677   1        m=1;
 678   1        for(i=trp-2;i>=0;i--)
 679   1              {
 680   2               if(n-haidea[i]==1)
 681   2                      m++;
 682   2               else
 683   2                      {
 684   3                         haier[t]=m;
 685   3                              dc=i+1;
 686   3                              haief[t]=haidea[dc];
 687   3                              t++;m=1;
 688   3                       }
 689   2           n=haidea[i];
 690   2              }
 691   1        clp_dog();
 692   1       }
 693          
 694          uint haidewz()//海底值确定
 695          {
 696   1       uint i;
 697   1       uint n;                                                                                                  
             -                                                                                                                        
             -                                                            
 698   1       uint m;
 699   1       uint h;
 700   1       uint k;
 701   1      
 702   1      uchar w,b,j;
 703   1      
 704   1       
 705   1       uint ds[9];
 706   1       uint pu;
 707   1       n=haier[0];
 708   1        m=0;
 709   1        for(i=1;i<t;i++)
 710   1           {
 711   2             
 712   2             if(haier[i]>=n)
 713   2              {
 714   3                 m=i;          
 715   3                 n=haier[i];   
 716   3              }
 717   2           }
 718   1        
 719   1        h=haief[m]*cmb*2;//5次海底值平均
 720   1        ak=al;
 721   1        al=az;
 722   1        az=ax;
 723   1        ax=av;
 724   1        av=as;
 725   1        as=ad;
 726   1        ad=ar;
 727   1        ar=ay;
 728   1        ay=h;
 729   1        ds[0]=ak;ds[1]=al;ds[2]=az;ds[3]=ax;ds[4]=av; ds[5]=as;ds[6]=ad;ds[7]=ar;ds[8]=ay;
 730   1         for(b=0;b<8;b++)
 731   1              {
 732   2              w=b;
 733   2              for(j=b+1;j<9;j++)
 734   2                      
 735   2              if(ds[j]<ds[w])w=j;
C51 COMPILER V7.01  _鉥揭_                                                                 05/09/2003 11:49:36 PAGE 13  

 736   2              k=ds[w];ds[w]=ds[b];ds[b]=k;
 737   2              }
 738   1         pu=(ds[3]+ds[4]+ds[5])/3;
 739   1        clp_dog();
 740   1        return(pu);
 741   1      
 742   1      }
 743          
 744          
 745          
 746          
 747          /*********************************/
 748          void  sujuclf()//无海底扩大数据处理压缩
 749          {
 750   1      yasud();//数据压缩成500个数
 751   1      clp_dog();
 752   1      yasuf();//数据压缩成250个数
 753   1      }
 754          void yasud()
 755          {
 756   1        uint i;
 757   1        uchar o;
 758   1        uchar k;
 759   1        uint g;
 760   1        uchar xdata *fg;
 761   1        g=0;
 762   1        fg=adcjs;
 763   1        fg=fg+suk*50;
 764   1       for(i=0;i<350;i++)//上传数据压缩成500个数
 765   1       {  
 766   2         g=*fg;
 767   2                
 768   2         for(o=1;o<cm;o++)
 769   2              {
 770   3              fg++;
 771   3              g=g+*fg;
 772   3          }
 773   2           k=g/cm;
 774   2           if(k<=zaibao)
 775   2              k=0;
 776   2           yssu[i]=k;
 777   2           fg++;
 778   2           g=0;
 779   2         }
 780   1      
 781   1      
 782   1      }
 783          
 784          void yasuf()//数据压缩成250个数
 785          {
 786   1        uchar i;
 787   1        uchar n;
 788   1        uchar xdata *fg;
 789   1         fg=yssu;
 790   1         for(i=0;i<=174;i++)
 791   1              {
 792   2               
 793   2               n=(*fg&0xf0)>>4;
 794   2               fg++;
 795   2               suju[i]=n|(*fg&0xf0);
 796   2                fg++;
 797   2              }
C51 COMPILER V7.01  _鉥揭_                                                                 05/09/2003 11:49:36 PAGE 14  

 798   1      
 799   1      }
 800          
 801          
 802          
 803          /*************************/
 804          void sujuclg()//有海底扩大数据处理压缩

⌨️ 快捷键说明

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