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

📄 keyprocess._c

📁 AVR单片机用C语言编写的包括时钟
💻 _C
📖 第 1 页 / 共 2 页
字号:
	SysP[28].Min_N=0;
    break;
   }
   
   if( keyv>=0 && keyv<=4)
   {
    Hb[3]=keyv;
	wdm164(Hb);
   } 
  }
 }
}

void timer1_ISR(void)
{
 
 
 if(TbSample!=13)
 {
  SysP[28].Int_N=SysP[28].Int_N+ICR1;
  TCCR1B=0x00;
  TCNT1=0;
  TCCR1B=0xc6;
 }
  
 if(TbSample==4 )
 TbSample=5;

 AutPrintC=AutPrintC+1;
 AutCompC=AutCompC+1;
 Counter2=Counter2+1;
 switch(TbSample)
 {
  case 1://measure box tempeture
  {
   TCCR3B=0x00;
   SysP[45].Int_N=TCNT3;
   if(SysP[45].Int_N>=2930)
   {
     TbSample=10;
	 MarkOk=1;
	 TCCR3B=0x00;
   }
   else
   {
   TCNT3=0;
   TCCR3B=0x07;
   }
   break;
  } 
  case 2://jiaozheng
  {
   if( TCCR3B!=0x00)
   Counter=Counter+1;
   
   TCCR3B=0x00;
   if(Counter>1)
   SysP[16].Int_N=SysP[16].Int_N+ TCNT3;
   
   if(Counter==11)
   { 
    syst_parm[16]=SysP[16].Int_N;
	syst_parm[16]=syst_parm[16]/10000;
	SysP[16].Int_N=syst_parm[16];
    SysP[16].Min_N=syst_parm[16]*10-SysP[16].Int_N*10;
   
	Counter=0;
	MFlage=1;
	PORTE=(PORTE & 0xfb)|0x08;
   }	
   else
    {
    TCNT3=0;
    TCCR3B=0x07;
    }
    break;
   }	
   case 3:
   {
    if( TCCR3B!=0x00)
    Counter=Counter+1;
	
	TCCR3B=0x00;
	if(Counter>1)
    SysP[17].Int_N=SysP[17].Int_N+ TCNT3;
	
	if(Counter==3)
   { 
    syst_parm[17]=SysP[17].Int_N;
	syst_parm[17]=syst_parm[17]/2000;
    SysP[17].Int_N=syst_parm[17];
    SysP[17].Min_N=syst_parm[17]*10-SysP[17].Int_N*10;
	TbSample=4;
	Counter=0;
	TFlage=1;
   }	
   else
    {
    TCNT3=0;
    TCCR3B=0x07;
    }
	break;
   }
  case 6://celiang
  {
   if( TCCR3B!=0x00)
   Counter1=Counter1+1;
   
   TCCR3B=0x00;
   if(Counter1>1)
   SysP[39].Int_N=SysP[39].Int_N+ TCNT3;
   
   if(Counter1==11)
   { 
    syst_parm[39]=SysP[39].Int_N;
    SysP[39].Int_N=syst_parm[39]/10000;
    SysP[39].Min_N=(syst_parm[39]*10-SysP[39].Int_N*10)*100;
	TbSample=7;
	Counter1=0;
	PORTE=(PORTE & 0xfb)|0x08;
   }	
   else
    {
    TCNT3=0;
    TCCR3B=0x07;
    }
   break;
  } 
 case 7:
 {  
    if( TCCR3B!=0x00)
    Counter1=Counter1+1;
	TCCR3B=0x00;
	if(Counter1>1)
    SysP[40].Int_N=SysP[40].Int_N+ TCNT3;
	
	if(Counter1==3)
   { 
     syst_parm[40]=SysP[40].Int_N;
	 syst_parm[40]=syst_parm[40]/2000;
	 syst_parm[43]=syst_parm[40];
    SysP[40].Int_N=syst_parm[40];
    SysP[40].Min_N=(syst_parm[40]*10-SysP[40].Int_N*10)*100;
	SysP[43].Int_N=syst_parm[40];
    SysP[43].Min_N=syst_parm[40]*10-SysP[40].Int_N*10;
	TbSample=8;
	Counter1=0;
   }	
   else
    {
    TCNT3=0;
    TCCR3B=0x07;
    }
  break;
 } 
 case 11://caisample M
 {
   if( TCCR3B!=0x00)
   {
    SysP[42].Int_N=TCNT3;
	SysP[42].Int_N=TCNT3/1000;
	SysP[42].Min_N=(TCNT3/100)-SysP[42].Int_N*10;
	TbSample=10;
	TCNT3=0;
	Counter1=Counter1+1;
   }
   else
   {
   TCNT3=0;
   TCCR3B=0x07;
   } 
  break;
 } 
 case 12://caiyang T
 {
   if( TCCR3B!=0x00  )
   {
    TCCR3B=0x00;
	SysP[47].Int_N=TCNT3;
	SysP[43].Int_N=TCNT3/1000;
	SysP[43].Min_N=(TCNT3/100)-SysP[43].Int_N*10;
	TbSample=10;
	TCNT3=0;
	Counter1=Counter1+1;
   }
   else
   {
   TCNT3=0;
   TCCR3B=0x07;
   }
  
  break;
 }
 case 13://caisample V
 {
   if(Counter1==0)
   {
    SysP[48].Int_N=0;
	Counter1=Counter1+1;
   }	
   else
   {
    SysP[48].Int_N=SysP[48].Int_N+ICR1;
	TCCR1B=0x00;
	TCNT1=0;
	TCCR1B=0xc6;
    if(Counter1==10)
    {
	 TbSample=10;
	 Counter1=0;
	}
	else
	{
	 Counter1=Counter1+1;
	 
	} 
   }
   
  break;
 } 
 case 14:
 {
   if(TCCR3B!=0x00)
   {
    TCCR3B=0x00;
    SysP[47].Int_N=TCNT3;
	SysP[45].Int_N=TCNT3/1000;
    SysP[45].Min_N=(TCNT3/100)-SysP[45].Int_N*10;
	TbSample=10;
   }
   else
   {
    TCNT3=0;
    TCCR3B=0x07;
   } 	
  break;
 }
 /*case 15:
 {
   if( TCCR3B!=0x00)
   Counter1=Counter1+1;
   TCCR3B=0x00;
   if(Counter1>1)
   {
    
    SysP[39].Int_N=SysP[39].Int_N+ TCNT3;
   }
   if(Counter1==2)
   { 
    syst_parm[39]=SysP[39].Int_N;
	syst_parm[39]=syst_parm[39]/1000;
    SysP[39].Int_N=syst_parm[39];
    SysP[39].Min_N=(syst_parm[39]*10-SysP[39].Int_N*10)*100;
	TbSample=16;
	Counter1=0;
	//PORTE=PORTE &0xef;
	//PORTE=(PORTE & 0xfb)|0x08;
	PORTE=PORTE|0x98;
    PORTE=PORTE & 0xfb;
	TimeBuffer[0]=PORTE;
	TCCR3B=0x00;
	//PORTE=PORTE|0x94;
	//PORTE=PORTE & 0xf7;
   }	
   else
    {
    TCNT3=0;
    TCCR3B=0x07;
    }
  break;
 } 
 case 16:
 {
   if( TCCR3B!=0x00)
    Counter1=Counter1+1;
	
	TCCR3B=0x00;
	if(Counter1>1)
    SysP[40].Int_N=SysP[40].Int_N+ TCNT3;
	
	if(Counter1==3)
   { 
    syst_parm[40]=SysP[40].Int_N;
    syst_parm[40]=syst_parm[40]/2000;
	syst_parm[43]=syst_parm[40];
    SysP[40].Int_N=syst_parm[40];
    SysP[40].Min_N=(syst_parm[40]*10-SysP[40].Int_N*10)*100;
	SysP[43].Int_N=syst_parm[40];
    SysP[43].Min_N=syst_parm[40]*10-SysP[40].Int_N*10;
	TbSample=10;
	Counter1=0;
   }	
   else
    {
    TCNT3=0;
    TCCR3B=0x07;
    }
  break;
 }*/
 default:
  break;
 }  	
 
 k=ReadTime( TimeBuffer);
 syst_parm[24]=((TimeBuffer[3]& 0xf0)>>4)*10+(TimeBuffer[3]& 0x0f);
 syst_parm[23]=((TimeBuffer[4]& 0xf0)>>4)*10+(TimeBuffer[4]& 0x0f);
 syst_parm[22]=(((TimeBuffer[5]& 0x3f)& 0xf0)>>4)*10+((TimeBuffer[5]& 0x3f)& 0x0f);
 syst_parm[21]=(((TimeBuffer[6]& 0x1f)&0xf0)>>4)*10+((TimeBuffer[6]& 0x1f)&0x0f);
 syst_parm[20]=syst_parm[20]+((TimeBuffer[5]& 0xc0)>>6);
 SysP[24].Int_N=syst_parm[24];
 SysP[24].Min_N=0;
 SysP[23].Int_N=syst_parm[23];
 SysP[23].Min_N=0;
 SysP[22].Int_N=syst_parm[22];
 SysP[22].Min_N=0;
 SysP[21].Int_N=syst_parm[21];
 SysP[21].Min_N=0;
 SysP[20].Int_N=syst_parm[20];
 SysP[20].Min_N=0;
}

void IntSysP(void)
{
 unsigned char i,j;
 unsigned char Par[6];
 
 for(i=0;i<50;i++)
 {
   EEPROMReadBytes(i*6,Par,6);
   EEPROMWriteBytes(i*6,Par,6);
   if(Par[5]!=0xff)
   {
    for(j=0;j<(NumBit[i+1].PartNumB+NumBit[i+1].IntNumB);j++)
    {
     if(j<NumBit[i+1].IntNumB)
     SysP[i+1].Int_N=SysP[i+1].Int_N*10+Par[5-j]&0x7f;
     else
     SysP[i+1].Min_N=SysP[i+1].Min_N*10+Par[5-j]&0x7f;
    }
   }	
   else
   {
    SysP[i+1].Int_N=0;
	SysP[i+1].Min_N=0;
   }
 }
 
}

void biaoding35(void)
{
  uchar i,keyv; 
  uchar Te[6]={14,14,14,0,0,11};
  float  ReT1,ReT2,M1;
  
   
  //PORTE=PORTE|0x80;
  PORTE=(PORTE|0x94)& 0xf7;
  //PORTE=(PORTE|0x94)& 0xf7;
  Counter1=0;
  PORTB=(PORTB | 0x0f)& 0xfb; 
  while(Counter1<=7)
 { 
   TbSample=11;
  }
  SysP[39].Int_N=SysP[42].Int_N;
  SysP[39].Min_N=SysP[42].Min_N*100;
  TbSample=10;
  PORTE=PORTE|0x98;
  PORTE=PORTE & 0xfb;
  Counter1=0;
  while(Counter1<=4)
  {
  TbSample=12;
  }
  TbSample=10;
  SysP[40].Int_N=SysP[43].Int_N;
  SysP[40].Min_N=SysP[43].Min_N*100;
  PORTB=PORTB | 0x0f; 
 syst_parm[35]=Comunpter();
	SysP[35].Int_N=fabs(syst_parm[35]);
	SysP[35].Min_N=(fabs(syst_parm[35]))*10-SysP[35].Int_N*10;
	if(syst_parm[35]<0)
	SysP[35].PNC=1;
	else
	SysP[35].PNC=0;
    FloatToUchar(35,Te);
	Te[0]=14;//f
	Te[1]=14;
	Te[2]=14;
	Te[2]=Te[3];
	Te[3]=Te[5];
	Te[5]=Te[2];
	Te[2]=14;
	wdm164(Te);
	 while(1)
	 {
	  if(keypressed())
      {
	   keyv=keyscan();
	   if(keyv==14)
	   break;
	  }
	 }
}

void biaoding36(void)
{
   uchar i,keyv; 
   uchar Te[6]={14,14,14,0,0,11};
   float  ReT1,ReT2,M1;
  
    //PORTB=(PORTB | 0x0f)& 0xfb; 
   // PORTE=(PORTE|0x94)& 0xf7;
  //PORTE=(PORTE|0x94)& 0xf7;
  PORTB=(PORTB | 0x0f)& 0xfb;
  Counter1=0;
  PORTE=(PORTE|0x94)& 0xf7;
  while(Counter1<=7)
  {
   TbSample=11;
  }
  SysP[39].Int_N=SysP[42].Int_N;
  SysP[39].Min_N=SysP[42].Min_N*100;
  TbSample=10;
  PORTE=PORTE|0x98;
  PORTE=PORTE & 0xfb;
  Counter1=0;
  
  while(Counter1<=4)
  {
   TbSample=12;
  }
  TbSample=10;
  SysP[40].Int_N=SysP[43].Int_N;
  SysP[40].Min_N=SysP[43].Min_N*100;
    PORTB=PORTB | 0x0f; 
    syst_parm[36]=Comunpter();
	SysP[36].Int_N=fabs(syst_parm[36]);
	SysP[36].Min_N=fabs(syst_parm[36])*10-(SysP[36].Int_N)*10;
    if(syst_parm[36]<0)
	SysP[36].PNC=1;
	else
	SysP[36].PNC=0;
	FloatToUchar(36,Te);
	Te[0]=14;//f
	Te[1]=14;
	Te[2]=14;
	Te[2]=Te[3];
	Te[3]=Te[5];
	Te[5]=Te[2];
	Te[2]=14;
	wdm164(Te);
	 while(1)
	 {
	  if(keypressed())
      {
	   keyv=keyscan();
	   if(keyv==14)
	   break;
	  }
	 }
}

void biaoding37(void)
{
   uchar i,keyv; 
   uchar Te[6]={14,14,14,0,0,11};
   float  ReT1,ReT2,M1;
   
    FloatToUchar(37,Te);
	Te[0]=14;
	Te[1]=14;
	Te[2]=14;
	Te[2]=Te[5];
	Te[5]=Te[3];
	Te[3]=Te[2];
	Te[2]=14;
	wdm164(Te);
    i=3;
    while(1)
    {
	 if(keypressed())
     {
	  keyv=keyscan();
	  if( keyv>=0 && keyv<=9 )
	  {
	   Te[i+2]=Te[i+1]& 0x7f;
	   Te[i+1]=Te[i]| 0x80;
	   Te[i]=keyv;
	   wdm164(Te);
      } 
	  if(keyv==14)
	  {
	   UcharToFloat(Te,37);
	   break; 
	  }  
	 }
	}  
}

void biaoding38(void)
{
   uchar i,keyv; 
   uchar Te[6]={14,14,14,0,0,11};
   float  ReT1,ReT2,M1;
   
    FloatToUchar(38,Te);
	Te[0]=14;
	Te[1]=14;
	Te[2]=14;
	Te[2]=Te[5];
	Te[5]=Te[3];
	Te[3]=Te[2];
	Te[2]=14;
	wdm164(Te);
    i=3;
    while(1)
    {
	 if(keypressed())
     {
	  keyv=keyscan();
	  if( keyv>=0 && keyv<=9 )
	  {
	   Te[i+2]=Te[i+1]& 0x7f;
	   Te[i+1]=Te[i]|0x80;
	   Te[i]=keyv;
	   wdm164(Te);
      } 
	  
	  if(keyv==14)
	  {
	   UcharToFloat(Te,38);
	   break; 
	  } 
	 }  
   }

}

void biaoding1(void)
{
  uchar i,keyv; 
   uchar Te[6]={14,14,14,0,0,11};
   float  ReT1,ReT2,M1;
   
	syst_parm[1]=syst_parm[1]*(syst_parm[37]-syst_parm[38] )/( syst_parm[35]-syst_parm[36]);
	if(syst_parm[1]<0)
	{
	 SysP[1].PNC=1;
	 SysP[1].Int_N=0-syst_parm[1];
	 SysP[1].Min_N=((0-syst_parm[1])*10-(SysP[1].Int_N*10))*10;
	} 
	else
	{
	 SysP[1].PNC=0;
     SysP[1].Int_N=syst_parm[1];
	 SysP[1].Min_N=((syst_parm[1]*10)-(SysP[1].Int_N*10))*10;
	} 
	FloatToUchar(1,Te);
	Te[0]=14;
	Te[1]=14;
	Te[2]=14;
	Te[2]=Te[5];
	Te[5]=Te[3];
	Te[3]=Te[2];
	Te[2]=14;
	wdm164(Te);
	while(1)
	 {
	  if(keypressed())
      {
	   keyv=keyscan();
	   if(keyv==14)
	   break;
	  }
	 }
	SysP[1].Int_N=fabs(syst_parm[1]);
	SysP[1].Min_N=(fabs(syst_parm[1])-SysP[1].Int_N)*100;
	if(syst_parm[1]<0)
	SysP[1].PNC=1;
	else
	SysP[1].PNC=0;
	
    SysPTosyst();
    ReT1=syst_parm[1]*(syst_parm[39]-syst_parm[16])+syst_parm[2];
    ReT2=syst_parm[5]*( syst_parm[40]-syst_parm[17])+(syst_parm[6]-syst_parm[7]);
    M1=ReT1+syst_parm[9]*(syst_parm[8]-ReT2)*ReT2/10;
    M1=M1/syst_parm[12];
	syst_parm[2]=syst_parm[2]+(syst_parm[38]-M1);
	//SysP[2].Int_N=fabs(syst_parm[2]);
	//SysP[2].Min_N=(fabs(syst_parm[2]))*10-(SysP[2].Int_N*10);
	if(syst_parm[2]<0)
	{
	 SysP[2].PNC=1;
	 SysP[2].Int_N=0-syst_parm[2];
	 SysP[2].Min_N=(0-syst_parm[2])*10-(SysP[2].Int_N*10);
	} 
	else
	{
	 SysP[2].PNC=0;
     SysP[2].Int_N=syst_parm[2];
	 SysP[2].Min_N=(syst_parm[2]*10)-(SysP[2].Int_N*10);
	} 
	FloatToUchar(2,Te);
	Te[0]=14;
	Te[1]=14;
	Te[2]=14;
	Te[2]=Te[5];
	Te[5]=Te[3];
	Te[3]=Te[2];
	Te[2]=14;
	wdm164(Te);
	while(1)
   {
	  if(keypressed())
      {
	   keyv=keyscan();
	   if(keyv==14)
	   break;
	  }
   }
	
}

void biaoding3(void)
{
   uchar i,keyv; 
   uchar Te[6]={14,14,14,0,0,11};
   float  ReT1,ReT2,M1;
   
   
	syst_parm[3]=syst_parm[3]*(syst_parm[37]-syst_parm[38] )/( syst_parm[35]-syst_parm[36]);
    SysP[3].Int_N=fabs(syst_parm[3]);
	SysP[3].Min_N=(fabs(syst_parm[3])-SysP[3].Int_N)*100;
	if(syst_parm[3]<0)
	SysP[1].PNC=1;
	else
	SysP[1].PNC=0;
	
	 FloatToUchar(3,Te);

	Te[0]=14;//f
	Te[1]=14;
	Te[2]=14;
	Te[2]=Te[5];
	Te[5]=Te[3];
	Te[3]=Te[2];
	Te[2]=14;
	wdm164(Te);
	 while(1)
	 {
	  if(keypressed())
      {
	   keyv=keyscan();
	   if(keyv==14)
	   break;
	  }
	 }
	while(1)
	 {
	  if(keypressed())
      {
	   keyv=keyscan();
	   if(keyv==14)
	   break;
	  }
	 }
	SysPTosyst();
    ReT1=syst_parm[1]*(syst_parm[39]-syst_parm[16])+syst_parm[2];
    ReT2=syst_parm[5]*( syst_parm[40]-syst_parm[17])+(syst_parm[6]-syst_parm[7]);
    M1=ReT1+syst_parm[9]*(syst_parm[8]-ReT2)*ReT2/10;
    M1=M1/syst_parm[12];
	
	syst_parm[4]=syst_parm[4]+(syst_parm[37]-M1);
    SysP[4].Int_N=fabs(syst_parm[4]);
	SysP[4].Min_N=(fabs(syst_parm[4])-SysP[4].Int_N)*10;
	
	if(syst_parm[4]<0)
	{
	// SysP[4].Int_N=0-syst_parm[4];
	// SysP[4].Min_N=( 0-syst_parm[4])*10-SysP[4].Int_N*10;
	 SysP[4].PNC=1;
	} 
	else
	{
	// SysP[4].Int_N=syst_parm[4];
	 //SysP[4].Min_N= syst_parm[4]*10-SysP[4].Int_N*10;
	 SysP[4].PNC=0;
    }
	FloatToUchar(4,Te);
	Te[0]=14;//f
	Te[1]=14;
	Te[2]=14;
	Te[2]=Te[5];
	Te[5]=Te[3];
	Te[3]=Te[2];
	Te[2]=14;
	wdm164(Te);
	while(1)
	 {
	  if(keypressed())
      {
	   keyv=keyscan();
	   if(keyv==14)
	   break;
	  }
	 }
}

void SysPTosyst(void)
{
 unsigned char i;
 
 for(i=1;i<50;i++)
 {
  if(SysP[i].PNC<0)
  syst_parm[i]=0-(SysP[i].Int_N+SysP[i].Min_N*pow(0.1,NumBit[i].PartNumB));
  else
  syst_parm[i]=SysP[i].Int_N+SysP[i].Min_N*pow(0.1,NumBit[i].PartNumB);
 } 
 
}


void jiaozheng1(void)
{
  uchar jz[6]={0x08,0x08,0x08,0x08,0x08,0x08};
  uchar ml,h,PO;
  wdm164(jz);
  Counter1=0;
  Counter2=0;
  Counter=0;
  PORTE=(PORTE & 0x7f)&0xef;
  PO=PORTE;
  PORTB=PORTB | 0x0f; 
  TbSample=0;
  while(1)
  {
   if(TbSample==0)
   {
    PORTE=(PORTE & 0xf7)|0x04;
	TbSample=2;
   }
   if(MFlage==1)
   { 
    FloatToUchar(16,jz);
	jz[0]=14;
	 ml=jz[1];
	 jz[1]=jz[5];
	 jz[5]=ml;
	 ml=jz[2];
	 jz[2]=jz[4];
	 jz[4]=ml;
	PORTB=(PORTB | 0x0f)& 0xf7; 
    wdm164(jz);
	TbSample=3;
	Counter=0;
	MFlage=0;
   }
   if(TFlage==1)
   {
    FloatToUchar(17,jz);
	jz[0]=14;
	
	 ml=jz[1];
	 jz[1]=jz[5];
	 jz[5]=ml;
	 ml=jz[2];
	 jz[2]=jz[4];
	 jz[4]=ml;
	PORTB=(PORTB | 0x0f)& 0xfe; 
    wdm164(jz);
	TFlage=0;
   } 
   if(TbSample==5)
   {
   TbSample=10;
    break;
   }	
  } 
  
  
   while(1)
  {
   if(keypressed())
   {
	 ml=keyscan();
	 if(ml==14)
	 {
	  PORTB=PORTB | 0x0f; 
	  break;
	 }
    }
  }
}
void Clear(void)
{
  uchar ShowBuff[6],keyv;
  DDRB=0xff; 
  PORTB=PORTB | 0x0f ; 
  
  for(keyv=0;keyv<6;keyv++)
  ShowBuff[keyv]=14;
  wdm164(ShowBuff);
}
void celiang(void)
{

}

void ShowNSta(void)
{
 
}

⌨️ 快捷键说明

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