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

📄 tcpip.c

📁 这是本人以前用C51做的TCP/IP协议,也是借鉴了一些前辈的东西,,,,绝对可用!
💻 C
📖 第 1 页 / 共 5 页
字号:
  ////
  tempj[0]=count2%65536%256;
  tempj[1]=count2%65536/256;
  tempj[2]=count2/65536;
  tempj[3]=0;
  ////
  for(ic=0;ic<send_sum-4;ic++)          //(send_sum)
      {
       snd1char(real_buf[ic]);
      }
  for(ic=0;ic<4;ic++)          //(send_sum)
      {
       snd1char(tempj[ic]);
      }
  pccomutm=0;       //for pc
  quitok();                    //fail,  back aa,55 ,88
  return;
}

//
void clrmen(void)   //buf8000[tt]
{uint tt;
 for(tt=0;tt<32768;tt++)
    {XBYTE[buf8000+tt]=00;
    _nop_();

    }


}
//
void delayx(uint ggg)
{uint ttt;
 for(ttt=0;ttt<ggg;ttt++)
 {_nop_();
 }
}
void delay(uint gg) reentrant
{uint tt;
 for(tt=0;tt<gg;tt++)
 {_nop_();
 }
}
/*
char serialsend(char *d,int len)
{ int i,j;

EX1=0  ;
j=dst_buf[0] ;
for(i=0;i<len;i++)
    {
    snd1char(*(dst_buf+i));
    }
snd1char(0xaa);
snd1char(0x55);
snd1char(0x33);

EX1=1  ;
}
////

void snd1char(uchar dats)
{uint data cout;
 tiflag=0;
 en489=1;
 SBUF=dats;

for(cout=0;cout<10000;cout++)
    {if(TI==1)
        {tiflag=1;
         TI=0;
         break;
        }
    }
  _nop_();
}
//
void get1char(void)
{uint data cout;
 riflag=0;
for(cout=0;cout<10000;cout++)
    {if(RI==1)
        {riflag=1;
         RI=0;
         break;
        }
    }
 _nop_();
}
void quiterror(void)    //void quitok(void)
{_nop_();
snd1char(0xaa);
 _nop_();
 snd1char(0x55);
 snd1char(0x88);

 en489=0;
 SM2=1;
 EA=1;
}
void quitok(void)
{_nop_();
snd1char(0xaa);
 _nop_();
 snd1char(0x55);
 snd1char(0x33);

 en489=0;
 SM2=1;
 EA=1;
}
////
void serialint(void) interrupt 4 //using 2
{uchar data ic,temp[3]={0};
  EA=0;
  for(ic=0;ic<2;ic++)
//address//
  {
    get1char();
      if(riflag==0)
         {//quiterror();
         en489=0;
         SM2=1;
         EA=1;
         return;
         }
      temp[ic]=SBUF;

  }

  for(ic=0;ic<(temp[0]-1);ic++)
       { get1char();
          if (riflag!=1)
          {quiterror();
          return;
          }
         recibuf[ic]=SBUF; // READ SBUF
        }
  if(temp[1]==0xf0)
      {for(ic=0;ic<64;ic++)
             {
              snd1char(0x44);
             }
      }

 // seriaddress[0]=0x55;
  snd1char(0xaa);   //snd1char(0xaa);tichar(0x88);
  _nop_();
  snd1char(0x55);

  snd1char(temp[0]); //send back address ;b0;
         en489=0;
         SM2=1;
         EA=1;

}
//  */
unsigned long int sum_Result(uchar *d,uint len) reentrant
{u_long sum_Rsult=0;
uint i;
if(len>1200)
   len=1200;
if(len<10)
   len=10;
for(i=0;i<len-10;i++)
    {//temp1bytem1=*(d+i);
    sum_Rsult+=*(d+i+6); //temp1bytem1;
    }
return sum_Rsult;
}
unsigned long int sumre_Result(uchar *d,uint len) reentrant
{u_long sumre_Rsult=0;
uint i;
if(len>1200)
   len=1200;
if(len<4)
   len=4;
for(i=0;i<len-4;i++)
    {//temp1bytem1=*(d+i);
    sumre_Rsult+=*(d+i); //temp1bytem1;
    }
return sumre_Rsult;
}
unsigned long int sumex_Result(uchar * d,uint len)
{u_long sumex_Rsult=0;
uint i;
if(len>1200)
   len=1200;
for(i=0;i<len;i++)
    {//temp1bytem1=*(d+i);
    sumex_Rsult+=*(d+i); //temp1bytem1;
    }
return sumex_Rsult;
}
///////////////////////////////////////////////////////////////
//FORMATION SOFTWARE

void startnewsch(void)
{uchar zonea,m,i;

for(zonea=0;zonea<zonex;zonea++)
 {
   if((hvnewsch(zonea)==0x01)||(hvnewsch(zonea)==0x04))   //01h=3000,04h=273ma scale;
           {//have start flag
            sleepall(zonea);
            if(hvnewsch(zonea)==0x01)
                {//scaledx[zonea]   tabgal[zn]&n|m    scale574b
                 m=scaledx[zonea];      //0xfe
                 i=scaledx[zonea+0x04];  //01
                 scale574b=scale574b&m|i;
                 XBYTE[driadds]=0xff  ;
                 XBYTE[dridata]=scale574b;  //0x80;    //d7=1=3a  scale574b
                 _nop_();
                 XBYTE[driadds]=scale574 ;//scldata;  //
                 _nop_();
                 _nop_();
                 XBYTE[driadds]=0xff  ;
                 //
 //               XBYTE[dridata]=0x80;    //d7=1=3a  scale574b
//                XBYTE[driadds]=scldata;  //
 //               _nop_();
 //               _nop_();
 //               XBYTE[driadds]=0x00;
 //               XBYTE[driadds]=0xff  ;            //0
 //               scalefg=0x80;    //d7=0=3a
                hvstarsch(zonea)=0x00|hvnewsch(zonea);  //0=3a
                }
             else    //(hvnewsch(zonea)==0x01)
                {//scaledx[zonea]   tabgal[zn]&n|m    scale574b
                 m=scaledx[zonea];      //0xfe
                // i=scaledx[zonea+0x04];  //01
                 scale574b=scale574b&m;  //|i;
                 XBYTE[driadds]=0xff  ;
                 XBYTE[dridata]=scale574b;  //0x80;    //d7=1=3a  scale574b
                 _nop_();
                 XBYTE[driadds]=scale574 ;//scldata;  //
                 _nop_();
                 _nop_();
                 XBYTE[driadds]=0xff  ;
                 //
     //           XBYTE[dridata]=0x00;    //d7=0=273
     //           XBYTE[driadds]=scldata;  //
     //           _nop_();
     //           _nop_();
     //           XBYTE[driadds]=0x00;
     //           XBYTE[driadds]=0xff  ;            //0
     //           scalefg=0x00;    //d7=1=273ma
                hvstarsch(zonea)=0x00|hvnewsch(zonea);  //3=273ma
                }
            _nop_();
            hvnewsch(zonea)=0x00;    //clr flag

            for(m=0;m<16;m++)
                pause0(zonea+m)=0x00;

            startrut(zonea);
            assemstatus(zonea);
            if((XBYTE[add245]&0x80)==0x80)
                         {
                          calcu2da(zonea);
                         }
            buildref(zonea);
            refrstatus(zonea);
            dispprg();
           // hvstarsch(zonea)=0x0f;  //sch begin fg
            schendfg(zonea)=0;     //sch begin fg
           }
   else if((hvnewsch(zonea)==0x81)||(hvnewsch(zonea)==0x84))  //calibration
      {
       if(got_2da(zonea)==0x01)
           {
             sleepall(zonea);
            if(hvnewsch(zonea)==0x81)
                {//scaledx[zonea]   tabgal[zn]&n|m    scale574b
                 m=scaledx[zonea];      //0xfe
                 i=scaledx[zonea+0x04];  //01
                 scale574b=scale574b&m|i;
                 XBYTE[driadds]=0xff  ;
                 XBYTE[dridata]=scale574b;  //0x80;    //d7=1=3a  scale574b
                 _nop_();
                 XBYTE[driadds]=scale574 ;//scldata;  //
                 _nop_();
                 _nop_();
                 XBYTE[driadds]=0xff  ;
                 //

                hvstarsch(zonea)=0x00|hvnewsch(zonea);  //0=3a
                }
             else
                {//scaledx[zonea]   tabgal[zn]&n|m    scale574b
                 m=scaledx[zonea];      //0xfe
                 scale574b=scale574b&m;   //|i;
                 XBYTE[driadds]=0xff  ;
                 XBYTE[dridata]=scale574b;  //0x80;    //d7=1=3a  scale574b
                 _nop_();
                 XBYTE[driadds]=scale574 ;//scldata;  //
                 _nop_();
                 _nop_();
                 XBYTE[driadds]=0xff  ;
                 //
                hvstarsch(zonea)=0x00|hvnewsch(zonea);  //3=273ma
                }
            _nop_();
            hvnewsch(zonea)=0x00;    //clr flag
            //hvstarsch(zonea)=0x00;  //sch begin fg
            for(m=0;m<16;m++)
                pause0(zonea+m)=0x00;
            startrut(zonea);
            assemstatus(zonea);

            buildref(zonea);
            dispprg();
    //        refrstatus(zonea);
          //  hvstarsch(zonea)=0x0f;  //sch begin fg
            schendfg(zonea)=0x88;     //sch begin fg
            got_2da(zonea)=0x00;
          } //if got 2da
       }



  _nop_();
 }
 _nop_();
}
void assemstatus(uchar zone)
{uchar i,j,n,m,zz,zq,zc,zn;
//for(zz=0;zz<4;zz++)
  zz=zone;
  if(statufg(zz)!=0x00)
 {
  n=0;
   for(j=0;j<4;j++)
    {for(i=0;i<4;i++)     //4 channel
         {if((nwstatu0(zz+j*4+i)&0x80)!=0)
            {m=0x03; //sleep=11 ;00 or 10=ccc; 01=cd ;0; //00h,01h,02h,03h;
            }
          else
            m=tabdcdc[nwstatu0(zz+j*4+i)&0x3];

         m<<=i*2;
         zq=tabmap[zz*16+j*4+i]/16; //qu hao
         zc=(tabmap[zz*16+j*4+i]%16)/4; //chstatus in zone
         zn=(tabmap[zz*16+j*4+i]%16)%4; //ch in chstatus
         n=wrstatus0(zq+zc);

         n=tabgal[zn]&n|m;     //
         wrstatus0(zq+zc)=n;     //
         n=0;
         //statufg(zz)=0x01;
       }


    }
   }   //if
  //}//zone
}
void refrstatus(uchar zone)
{uchar i,zz,j,m;
//for(zz=0;zz<4;zz++)   h
  zz=zone;
  if(zz<2)
     j=0x80;  //da7=1;da4,da3=0;
   else
     j=0x88;
   if (statufg(zz)!=0)                     //refresh flag;;
     {for(i=0;i<4;i++)
        {if((zz==0x01)||(zz==0x03))
             m=i+4;
         else
             m=i;

          _nop_();
         XBYTE[dridata]=wrstatus0(zz+i);   //0x00; //sleep
          _nop_();
         XBYTE[driadds]=m|j;              //0
         _nop_();
          _nop_();
         XBYTE[driadds]=0x00;
          _nop_();
           _nop_();
         XBYTE[driadds]=0xff  ;            //0
          _nop_();
        }
     dispprg();
     statufg(zz)=0;
     }
 // }

}
void set88346(uchar ldadds,uchar ld8chan,uchar dat2dah,uchar dat2dal)
{uchar i ,j,k;
 j=0xff;// 0xfa;
 //XBYTE[dridata]=(j&0x7f)|scalefg;  //j;   //set load h
 //XBYTE[driadds]=scldata;   //set load h
 //XBYTE[driadds]=noselect;
 XBYTE[dridata]=0x00 ;//0x00//(j&0x7f)|scalefg;  //j;   //set load h
 _nop_();
 XBYTE[driadds]=ldadds ; //scldata;   //set load h
 _nop_();
 XBYTE[driadds]=noselect;
 _nop_();
// j=j&0x3f|k;
 for(i=0;i<4;i++)

    {_nop_();
     XBYTE[dridata]=(j&0x7e) ; //j&0xfe;   //
     _nop_();
     XBYTE[driadds]=scldata;   //
     _nop_();
     XBYTE[driadds]=noselect;  //slck=0
     _nop_();
     k=(dat2dah>>2)&0x02;   //pick d6
     j=j&0xfc|k;
     XBYTE[dridata]=j;  //j;   //
     _nop_();
     XBYTE[driadds]=scldata;   //
     _nop_();
     XBYTE[driadds]=noselect;  //slck=0   and data
     _nop_();
     XBYTE[dridata]=j|0x01;  //j|0x01;   //
     _nop_();
     XBYTE[driadds]=scldata;   //
     _nop_();
     XBYTE[driadds]=noselect;  //slck=1
     _nop_();
  //   XBYTE[dridata]=(j&0x7e) ; //j&0xfe;   //
  //   _nop_();
  ///   XBYTE[driadds]=scldata;   //
  //   _nop_();
  //   XBYTE[driadds]=noselect;  //slck=0
  //   _nop_();
     dat2dah<<=1;
    }
  for(i=0;i<8;i++)

    {_nop_();
     XBYTE[dridata]=(j&0x7e) ; //j&0xfe;   //
     _nop_();
     XBYTE[driadds]=scldata;   //
     _nop_();
     XBYTE[driadds]=noselect;  //slck=0
     _nop_();
     k=(dat2dal>>6)&0x02;   //pick d6
     j=j&0xfc|k;
     XBYTE[dridata]=j;  //j;   //
     _nop_();
     XBYTE[driadds]=scldata;   //
     _nop_();
     XBYTE[driadds]=noselect;  //slck=0   and data
     _nop_();
     XBYTE[dridata]=j|0x01;  //j|0x01;   //
     _nop_();
     XBYTE[driadds]=scldata;   //
     _nop_();
     XBYTE[driadds]=noselect;  //slck=1
     _nop_();
 //    XBYTE[dridata]=(j&0x7e) ; //j&0xfe;   //
 //    _nop_();
 //    XBYTE[driadds]=scldata;   //
 //    _nop_();
 //    XBYTE[driadds]=noselect;  //slck=0
 //    _nop_();
     dat2dal<<=1;
    }
XBYTE[dridata]=l

⌨️ 快捷键说明

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