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

📄 鱼探仪.c

📁 温度采集显示与PID控制
💻 C
📖 第 1 页 / 共 2 页
字号:

}
 uint scsj()//判别深度设置参数
{
uint d; 
 clp_dog();
   switch(caijisendud)//深度设定
      {
       case 0x00: d=suk+10; break;
       case 0x01: d=suk+20; break;
       case 0x02: d=suk+30; break;
       case 0x03: d=suk+40; break;
       case 0x04: d=suk+50; break;
       case 0x05: d=suk+60; break;
       case 0x06: d=suk+70; break;
       case 0x07: d=suk+80; break;
       case 0x08: d=suk+90; break;
       case 0x09: d=suk+100; break;
       case 0x0A: d=suk+120; break;
       case 0x0B: d=suk+140; break;
       case 0x0C: d=suk+160; break;
       case 0x0D: d=suk+200; break;
       case 0x0E: d=suk+250; break;
       case 0x0F: d=suk+300; break;
       case 0x10: d=suk+350; break;
       case 0x11: d=suk+400; break;
       case 0x12: d=suk+450; break;
       case 0x13: d=suk+500; break;
       case 0x14: d=suk+550; break;
       case 0x15: d=suk+600; break;
       default:d=suk+600; 
        }
   return(d); 
 }
 void scsjq()//判别微调点参数
{clp_dog();
 
   switch(caijisendu)//深度设定
      {
       case 0x00: cm=1; break;
       case 0x01: cm=2; break;
       case 0x02: cm=3; break;
       case 0x03: cm=4; break;
       case 0x04: cm=5; break;
       case 0x05: cm=6; break;
       case 0x06: cm=7; break;
       case 0x07: cm=8; break;
       case 0x08: cm=9; break;
       case 0x09: cm=10; break;
       case 0x0A: cm=12; break;
       case 0x0B: cm=14; break;
       case 0x0C: cm=16; break;
       case 0x0D: cm=20; break;
       case 0x0E: cm=25; break;
       case 0x10: cm=35; break;
       case 0x11: cm=40; break;
       case 0x12: cm=45; break;
       case 0x13: cm=50; break;
       case 0x14: cm=55; break;
       case 0x15: cm=60; break;
       default:cm=60; 
        }
   
 }

 


void zdpbsa()//自动
{

                sdset22();//自动判别
               if(caijisendue==0x00)//深度设定
               	      sdset1();
               else if(caijisendue==0x01)
                      sdset2();
               else if(caijisendue==0x02)
                      sdset3();
               else if(caijisendue==0x03)
                      sdset4();
               else if(caijisendue==0x04)
                      sdset5();
               else if(caijisendue==0x05)
                      sdset6();
               else if(caijisendue==0x06)
                      sdset7();
               else if(caijisendue==0x07)
                      sdset8();
               else if(caijisendue==0x08)
                      sdset9();
               else if(caijisendue==0x09) 
                      sdset10();
               else if(caijisendue==0x0a)
                      sdset11();
               else if(caijisendue==0x0b)
                      sdset12();
               else if(caijisendue==0x0c)
                      sdset13();
               else if(caijisendue==0x0d)
                      sdset14();
               else if(caijisendue==0x0e)
                      sdset15();
               else if(caijisendue==0x0f)
                      sdset16();
               else if(caijisendue==0x10)
                      sdset17();
               else if(caijisendue==0x11)
                      sdset18();
               else if(caijisendue==0x12)
                      sdset19();
               else if(caijisendue==0x13)
                      sdset20();
               else sdset21();
            clp_dog();

}
void pbhd(uint f)
{
if(f<=20)
   sdset1(); 
else if(f<=30)
      sdset2();  
else if(f<=40)
        sdset3();
else if(f<=50)
        sdset4();
else if(f<=60)
        sdset5();
else if(f<=70)
        sdset6();
else if(f<=80)
        sdset7();
else if(f<=90)
        sdset8();
else if(f<=100)
        sdset9();
else if(f<=120)
        sdset10();
else if(f<=140)
        sdset11();
else if(f<=160)
        sdset12();
else if(f<=200)
        sdset13();
else if(f<=250)
        sdset14();
else if(f<=300)
        sdset15();
else if(f<=350)
        sdset16();
else if(f<=400)
        sdset17();
else if(f<=450)
        sdset18();
else if(f<=500)
        sdset19();
else if(f<=550)
        sdset20();
else sdset21();
clp_dog();
}
/*********************************/
//海底数值判别
/*********************************/
void sujucle()//数据处理
{ 
 
  
  yasue();//数据压缩成500个数
   zdpe(); //判断最大值
  if(trp>5)
  	{
  	 if(trp<480)
  	 	{
              xlpe(); //判断最大斜率
              haidisendu=haidewz();//海底值确定
              if(trp<10)
              	{
                if(zenyi==0x08)
  	           {    
  	            zenyia++;
  	            if(zenyia>0x07)
  	        	   zenyia=0x07;
                   }
              	}
                if(trp>50)
              	{
                if(zenyi==0x08)
  	           {    
  	             {   
  	           if(zenyia>0x00)
  	           	  zenyia--;
  	             }
                   }
              	}
  	       	}
  	 else {haidisendu=0x0000;
  	          if(zenyi==0x08)
  	           {   
  	           if(zenyia>0x00)
  	           	  zenyia--;
  	             }
  	 	}
  	}
  else {haidisendu=0xffff;
          if(zenyi==0x08)
  	      {    
  	       zenyia++;
  	       if(zenyia>0x07)
  	       	   zenyia=0x07;
          	}
  
  	}
  clp_dog();
}

void yasue()
{
  uint i;
  uchar o;
  uchar k;
  uint g;
  uchar xdata *fg;
  clp_dog();
  g=0;
  fg=adcjs;
 for(i=0;i<350;i++)//数据压缩成500个数
 {  
   g=*fg;
          
   for(o=1;o<cmb;o++)
   	{
   	fg++;
   	g=g+*fg;
    }
     k=g/cmb;
     if(k<=zaibao)
        k=0;
     yssu[i]=k;
     fg++;
     g=0;
   }

}


void  zdpe() //判断最大值
{
  uint i;
  
  
 trp=0;
  clp_dog();
 for(i=2;i<350;i++) //判断最大值
    {
     if(yssu[i]>=0xf0)
        {
        haidea[trp]=i;
        trp++;
        }
      
    }
}


 void xlpe() //判断最大斜率,数据分组   
 {
  int i;
  int dc;
  uint n;
  uint m;//一组有几个数
  dc=trp-1;
  n=haidea[dc];
  t=0;
  m=1;
  for(i=trp-2;i>=0;i--)
  	{
  	 if(n-haidea[i]==1)
  	 	m++;
  	 else
  	 	{
  	 	   haier[t]=m;
  	 		dc=i+1;
  	 		haief[t]=haidea[dc];
  	 		t++;m=1;
  	 	 }
     n=haidea[i];
  	}
  clp_dog();
 }

uint haidewz()//海底值确定
{
 uint i;
 uint n;                                                                                                                                                                                                                                                                                      
 uint m;
 uint h;
 uint k;

uchar w,b,j;

 
 uint ds[9];
 uint pu;
 n=haier[0];
  m=0;
  for(i=1;i<t;i++)
     {
       
       if(haier[i]>=n)
       	{
           m=i;          
           n=haier[i];   
       	}
     }
  
  h=haief[m]*cmb*2;//5次海底值平均
  ak=al;
  al=az;
  az=ax;
  ax=av;
  av=as;
  as=ad;
  ad=ar;
  ar=ay;
  ay=h;
  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;
   for(b=0;b<8;b++)
  	{
  	w=b;
  	for(j=b+1;j<9;j++)
  		
  	if(ds[j]<ds[w])w=j;
        k=ds[w];ds[w]=ds[b];ds[b]=k;
  	}
   pu=(ds[3]+ds[4]+ds[5])/3;
  clp_dog();
  return(pu);

}




/*********************************/
void  sujuclf()//无海底扩大数据处理压缩
{
yasud();//数据压缩成500个数
clp_dog();
yasuf();//数据压缩成250个数
}
void yasud()
{
  uint i;
  uchar o;
  uchar k;
  uint g;
  uchar xdata *fg;
  g=0;
  fg=adcjs;
  fg=fg+suk*50;
 for(i=0;i<350;i++)//上传数据压缩成500个数
 {  
   g=*fg;
          
   for(o=1;o<cm;o++)
   	{
   	fg++;
   	g=g+*fg;
    }
     k=g/cm;
     if(k<=zaibao)
        k=0;
     yssu[i]=k;
     fg++;
     g=0;
   }


}

void yasuf()//数据压缩成250个数
{
  uchar i;
  uchar n;
  uchar xdata *fg;
   fg=yssu;
   for(i=0;i<=174;i++)
        {
         
         n=(*fg&0xf0)>>4;
         fg++;
         suju[i]=n|(*fg&0xf0);
          fg++;
        }

}



/*************************/
void sujuclg()//有海底扩大数据处理压缩

⌨️ 快捷键说明

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