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

📄 txd232.c

📁 该文件是232串口调试程序
💻 C
📖 第 1 页 / 共 2 页
字号:
void Initre()
{
 if (RXBUF0==0x68)
 {
  relong=1;
  reflag&=0xfc;
 }
 else
 {
  relong=0;
  reflag&=0xfc;
 }
}
////////////////////////////////////////////////
interrupt [UART0RX_VECTOR] void UART0RX(void)
{

 unsigned char temp,temp1;

 if (((unsigned int)recount)==0xff)
 {
  if(relong>7)
  {
   psave=psave-(relong-8);
   recount=recount-(relong-8);
   Initre();
  }
  else
  {   
   Initre();
  }
 } 
 else
 {
   if (relong==0)
   {
    if (RXBUF0==0x68) relong++;
    else
    {
     Initre();
    }
   }
   else if(0<relong&&relong<7)
   {
    temp1=Read_256(0x64c1-relong*2-1)*16+(Read_256(0x64c1-relong*2)%16);
    if ((reflag&0x03)==0)
    {
     if(RXBUF0==0xff)
     {
      relong++;
      reflag&=0xfc;
      reflag|=0x02;
     }
     else if(RXBUF0==temp1)
     {
      relong++;
      reflag&=0xfc;
      reflag|=0x01;
     }
     else
     {
      Initre();
     }
    }
    else if((reflag&0x03)==1)
    {
     if (RXBUF0==temp1) relong++;
     else
     {
      Initre();
     }
    }
    else if((reflag&0x03)==2)
    {
     if (RXBUF0==0xff) relong++;
     else
     {
      Initre();
     }
    }
   }
   else if(relong==7)
   {
    if (RXBUF0==0x68) relong++;
    else
    {
     Initre();
    }
   }
   else if(relong==8)
   {
    temp=RXBUF0;
    temp=temp|(reflag<<7);///////功能码
    Write_256(0x7800+psave,temp);
    recount++;
    relong++;
    psave++;
   }
   else if(relong==9)
   {
    bagcount=RXBUF0;
    Write_256(0x7800+psave,bagcount)
    recount++;
    relong++;
    psave++;
   }
   else
   {
    if (relong-10<=bagcount)
    {
     temp=RXBUF0;
     Write_256(0x7800+psave,temp);     
     recount++;
     relong++;
     psave++;
    }
    else
    {
     if (RXBUF0==0x16)
     {
      reflag+=0x04;
      Initre();
     }
     else
     {
      psave=psave-(relong-8);
      recount=recount-(relong-8);
      Initre();
     }
    }
   }
  
 }

}
///////////////////////////////////////
interrupt [UART1RX_VECTOR] void UART1RX(void)
{
 
 if (sendlong==0xff)
 {
  timeout=0;
 } 
 else
 {
  Write_256(0x7900+sendlong,RXBUF1);
  if (sendlong==0)
  {
   if (RXBUF1==0x68) 
   {
    sendlong++;
    cs=0x68;
   }
  }
  else if(sendlong==9)
  {
   re485long=RXBUF1;
   sendlong++;
   cs=cs+re485long;
  }
  else if(sendlong==re485long+10)
  {
   if (cs==RXBUF1)
    sendlong++;
   else
    timeout=0;
  }
  else if(sendlong==re485long+11)
  {
   if(RXBUF1==0x16)
   { 
    sendlong++;
    timeout|=0x40;
   }
   else
    timeout=0;
  }
  else
  {  
   sendlong++;
   cs=cs+RXBUF1;
  }
 }
}
///////////////////////////////////////
void Transmission()
{
 unsigned char temp,temp1,l;
 if((timeout&0x80)==0x80)
 {
  if ((timeout&0x40)==0x40)
  {
   Send(0,0x7900,0);
   timeout=0;
   P5OUT|=BIT5;
  }
  else if(kalendar_clk[6]>=(((kalendar_clk[6]+5)/60*60)+(timeout&0x3f)))
  {
   timeout=0;
   P5OUT|=BIT5;
   Trcom();
  }
 }
 else
 {
  if((reflag&0xfc)!=0)
  {
   temp1=Cscala();
   l=ppop+1;
   temp=Read_256(0x7800+l);
   l=ppop+temp+2;
   temp=Read_256(0x7800+l);   
   if(temp1==temp)
   {
    Tran();
   }
   else
   {
    Trcom();
   }
  }
 }
}
//////////////////////////////////////
void Sendothersys(void)
{
 unsigned char i,l,lon,temp;
 
 l=ppop+1;
 lon=Read_256(0x7800+l);
 timeout=(kalendar_clk[6]+5)%60;
 timeout|=0x80;

 P5OUT|=BIT5;
 for(i=0;i<lon;i++)
 {
  l=ppop+2+i;
  temp=Read_256(0x7800+l);
  Sendcom1(temp);
 }
 sendlong=0;
 Trdelay(1000);
 P5OUT&=~BIT5; 
}
//////////////////////////////////////
void Tran()
{
 unsigned char i=0,temp2,f,l,l1,ff;
 unsigned long temp1,tempaddr;
 unsigned int temp3;
 float temp;
 
 ff=Read_256(0x7800+ppop);
 ff&=0x7f;
 switch(ff)
 {
  case 1:
   sendlong=0x41;
   for(i=0;i<6;i++)
   {
    tempcom[i]=kalendar_clk[i];
   }
   for(i=0;i<13;i++)
   {
    temp=Read256_4(0x6400+i*4);
    temp=temp*65535.0*10;
    temp1=(unsigned int)temp;
    temp2=((temp1/10)%10)*16+temp1%10;
    Write256_4(0x7a00+i*2,temp2);
    temp2=((temp1/1000)%10)*16+(temp1/100)%10;
    Write256_4(0x7a01+i*2,temp2);
   }
   for(i=0;i<4;i++)
   {
    temp2=Read_85834(0x20);
    temp2=((temp1/10)%10)*16+temp1%10;
    Write256_4(0x7a1a+i*4,temp2);
    temp2=((temp1/1000)%10)*16+(temp1/100)%10;
    Write256_4(0x7a1b+i*4,temp2);
    temp2=((temp1/100000)%10)*16+(temp1/10000)%10;
    Write256_4(0x7a1c+i*4,temp2);
    temp2=((temp1/10000000)%10)*16+(temp1/1000000)%10;
    Write256_4(0x7a1d+i*4,temp2);
   }
   for(i=0;i<2;i++)
   {
    temp=Read256_4(0x6444+i*4);
    temp=temp*65535.0*10;
    temp1=(unsigned int)temp;
    temp2=((temp1/10)%10)*16+temp1%10;
    Write_256(0x7a2a+i*2,temp2);
    temp2=((temp1/1000)%10)*16+(temp1/100)%10;
    Write_256(0x7a2b+i*2,temp2);
   }
   for(i=0;i<13;i++)
   {
    Write_256(0x7a2e+i,Read256_4(0x644c+i));    
   }
   Send(0,0x7a00,6);
   break;
  case 2:
   sendlong=0xe8;
   l=ppop+2;
   tempcom[0]=Read_256(0x7800+l);
   l=ppop+4;
   l1=ppop+5;
   tempaddr=((Read_256(0x7800+l)-1)%2)*0x80000+((Read_256(0x7800+l1)-1)%31)*0x3000;
   f=0;
   for(i=0;i<3;i++)
   {
    l=ppop+3+i;
    l1=(Read_flash(tempaddr+i)&0x0f)+(((unsigned char)Read_flash(tempaddr+i)>>4)*10);
    temp=Read_256(0x7800+l);
    if(temp==l1)
    {
     f++;
    }
   }
   if(f==3)
   {
    for(i=0;i<3;i++)
    {
     tempcom[i+1]=Read_flash(tempaddr+i);
    }
    Send(1,tempaddr+3+tempcom[0]*0xe4,4);
   }
   else
   {
    Trcom();
   }
   break;
  case 3:
   sendlong=0xde;
   l=ppop+2;
   tempcom[0]=Read_256(0x7800+l);
   l=ppop+4;
   l1=ppop+5;
   tempaddr=((Read_256(0x7800+l)-1)%2)*0x80000+((Read_256(0x7800+l1)-1)%31)*0x3000;  
   f=0;
   for(i=0;i<3;i++)
   {
    l=ppop+3+i;
    l1=(Read_flash(tempaddr+i)&0x0f)+(((unsigned char)Read_flash(tempaddr+i)>>4)*10);
    temp=Read_256(0x7800+l);
    if(temp==l1)
    {
     f++;
    }
   }
   if(f==3)
   {
    for(i=0;i<3;i++)
    {
     tempcom[i+1]=Read_flash(tempaddr+i);
    }
    Send(1,tempaddr+0x400+tempcom[0]*218,4);
   }
   else
   {
    Trcom();
   }
   break;
  case 4:
   sendlong=0xd7;
   l=ppop+3;
   l1=ppop+4;
   tempaddr=((Read_256(0x7800+l)-1)%2)*0x80000+((Read_256(0x7800+l1)-1)%31)*0x3000;  
   f=0;
   for(i=0;i<3;i++)
   {
    l=ppop+3+i;
    l1=(Read_flash(tempaddr+i)&0x0f)+(((unsigned char)Read_flash(tempaddr+i)>>4)*10);
    temp=Read_256(0x7800+l);
    if(temp==l1)
    {
     f++;
    }
   }
   if(f==3)
   {
    for(i=0;i<3;i++)
    {
     tempcom[i]=Read_flash(tempaddr+i);
    }
    Send(1,tempaddr+0xf00,3);
   }
   else
   {
    Trcom();
   }
   break;
  case 5:
   l=ppop+3;
   l1=ppop+4;
   tempaddr=((Read_256(0x7800+l)-1)%2)*0x80000+((Read_256(0x7800+l1)-1)%31)*0x3000;  
   f=0;
   for(i=0;i<3;i++)
   {
    l=ppop+3+i;
    l1=(Read_flash(tempaddr+i)&0x0f)+(((unsigned char)Read_flash(tempaddr+i)>>4)*10);
    temp=Read_256(0x7800+l);
    if(temp==l1)
    {
     f++;
    }
   }
   if(f==3)
   {
    if(Read_flash2(tempaddr+0x1000)>=80)
    {
     sendlong=0xf3;
    }
    else
    {
     sendlong=Read_flash2(tempaddr+0x1000)*3+3;
    }
    for(i=0;i<3;i++)
    {
     tempcom[i]=Read_flash(tempaddr+i);
    }
    Send(1,tempaddr+0xf02,3);
   }
   else
   {
    Trcom();
   }
   break;
  case 7:
   sendlong=0x5b;
   Send(1,0xdd000,0);

⌨️ 快捷键说明

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