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

📄 protocol.lst

📁 这是一个
💻 LST
📖 第 1 页 / 共 4 页
字号:
 244   2                      Trs_Buf[7]=0;
 245   2                      Trs_Buf[8]=Trs_Comm;
 246   2                      Trs_Buf[9]=Station;
 247   2                      Trs_Buf[10]=0;
 248   2                      Trs_Buf[11]=House_R;
 249   2                      Trs_Buf[12]=Start;
 250   2                      Trs_Buf[13]=0;
 251   2                      i=Read1B(240+(House_R-1)/8,0);
 252   2                      if(i & (1<<((House_R-1)%8)) )
 253   2                        Trs_Buf[13]|=0x04;     //Short
 254   2                      i=Read1B(245+(House_R-1)/8,0);
 255   2                      if(i & (1<<((House_R-1)%8)) )
 256   2                        Trs_Buf[13]|=0x10;     //Break
 257   2                      i=Read1B(160+(House_R-1)/8,1);
 258   2                      if(i & (1<<((House_R-1)%8)) )
 259   2                        Trs_Buf[13]|=0x40;     //Power
 260   2                      Trs_Buf[14]=0;
 261   2                      Trs_Buf[15]=0;
 262   2                      if(Alarm_Select&0x04)
 263   2                       {
 264   3                        i=Short_New[(House_R-1)/8];
 265   3                        if(i & (1<<((House_R-1)%8)) )
 266   3                        Trs_Buf[15]|=0x04;     //Short
 267   3                        i=Read1B(170+(House_R-1)/8,0);
 268   3                        if(i & (1<<((House_R-1)%8)) )
 269   3                        Trs_Buf[15]|=0x08;     //Short_Bak
 270   3                       }
 271   2                      if(Alarm_Select&0x10)
 272   2                       {
 273   3                        i=Break_New[(House_R-1)/8];
 274   3                        if(i & (1<<((House_R-1)%8)) )
 275   3                        Trs_Buf[15]|=0x10;     //Break
 276   3                        i=Read1B(175+(House_R-1)/8,0);
 277   3                        if(i & (1<<((House_R-1)%8)) )
 278   3                        Trs_Buf[15]|=0x20;     //Break
 279   3                       }
 280   2                      Trs_Buf[16]=0;
 281   2                      Trs_Check=0;
 282   2                      for(i=8;i<17;i++)
 283   2                       {
 284   3                         Trs_Check+=Trs_Buf[i];
 285   3                       }
 286   2                   Trs_Buf[17]=Trs_Check;
 287   2                   Trs_Wp=18;
 288   2      
 289   2                break;
 290   2      
 291   2        case (0xe0):
 292   2      
 293   2                        eb90();
 294   2                    	  Trs_Length=6;
 295   2                        Trs_Buf[6]=Trs_Length;
 296   2                        Trs_Buf[7]=0;
 297   2                        Trs_Buf[8]=Trs_Comm;
 298   2                        Trs_Buf[9]=Station;
 299   2                        Trs_Buf[10]=0;
 300   2                        Trs_Buf[11]=House_R;
 301   2                        Trs_Buf[12]=Read1B(200+(House_R-1),1);
 302   2                        Trs_Check=0;
 303   2                        for(i=8;i<13;i++)
C51 COMPILER V6.12  PROTOCOL                                                               01/03/2005 12:08:20 PAGE 6   

 304   2                         {
 305   3                           Trs_Check+=Trs_Buf[i];
 306   3                         }
 307   2                       Trs_Buf[13]=Trs_Check;
 308   2                       Trs_Wp=14;
 309   2      
 310   2      
 311   2              default:
 312   2                break;
 313   2             }
 314   1             DIR485=0;
 315   1             if(Trs_Buf[0]==0xeb && Trs_Buf[1]==0x90)
 316   1              {
 317   2               SBUF=0xfe;
 318   2               Trs_Rp=0;
 319   2              }
 320   1              else
 321   1              {
 322   2               SBUF=Trs_Buf[0];
 323   2               Trs_Rp=1;
 324   2              }
 325   1      }
 326          
 327          void Rcv_Pro(void)
 328          {
 329   1        BYTE i;//,YkNo,YkHf;
 330   1        BYTE Rcv_Check,Rcv_Length,Rcv_Tmp,Tmp;
 331   1        if((Rcv_Wp-Rcv_Rp)>(Rcv_Buf[Rcv_Rp+4]+5) && Rcv_Wp>11)
 332   1         {
 333   2         	Rcv_Flag=0;
 334   2         	Rcv_Wp=0;
 335   2         	Rcv_Length=Rcv_Buf[Rcv_Rp+4];
 336   2         	Rcv_Check=0;
 337   2         	for(i=Rcv_Rp+6;i<Rcv_Rp+Rcv_Length+5;i++)
 338   2         	 {
 339   3         	 	Rcv_Check+=Rcv_Buf[i];
 340   3         	 }
 341   2               Rcv_Comm=0;
 342   2         	if(Rcv_Check==Rcv_Buf[Rcv_Rp+5+Rcv_Length])
 343   2         	 {
 344   3         	 	Rcv_Comm=Rcv_Buf[Rcv_Rp+6];
 345   3      
 346   3         	 }
 347   2         	switch (Rcv_Comm)
 348   2         	 {
 349   3         	 	case (0x20):
 350   3                       if(Rcv_Buf[Rcv_Rp+7]==Station
 351   3                          ||(Rcv_Buf[Rcv_Rp+7]==0xff&&Rcv_Buf[Rcv_Rp+8]==0xff)&&(!Key))
 352   3      
 353   3                         {
 354   4      
 355   4                           Trs_Comm=0xaa;
 356   4                           Trs_Comm_Bak=0xa0;
 357   4                           Trs_Flag=1;
 358   4      
 359   4                         }
 360   3         	 	break;
 361   3                     case (0x21):
 362   3                       if(!Key)
 363   3                         {
 364   4                          Station=Rcv_Buf[Rcv_Rp+7];
 365   4                          Write1B(Station,164,0);
C51 COMPILER V6.12  PROTOCOL                                                               01/03/2005 12:08:20 PAGE 7   

 366   4                          Trs_Comm=0xaa;
 367   4                          Trs_Comm_Bak=0xa1;
 368   4                          Trs_Flag=1;
 369   4                         }
 370   3         	 	break;
 371   3                     case (0x24):
 372   3                      if(Rcv_Buf[Rcv_Rp+7]==Station
 373   3                          ||(Rcv_Buf[Rcv_Rp+7]==0xff&&Rcv_Buf[Rcv_Rp+8]==0xff))
 374   3                         {
 375   4                          Start=Rcv_Buf[Rcv_Rp+9];
 376   4                          if((Start&0x80)==0x80)
 377   4                            Write1B(0x80,255,0);
 378   4                            else
 379   4                            Write1B(0x00,255,0);
 380   4                            Flash=0;
 381   4                            for(i=0;i<5;i++)
 382   4                             {
 383   5                              Short_New[i]=0;
 384   5                              Break_New[i]=0;
 385   5                             }
 386   4                           Alarm_Check=1;
 387   4                         }
 388   3                       if(Rcv_Buf[Rcv_Rp+7]==Station)
 389   3                        {
 390   4                           Trs_Comm=0xaa;
 391   4                           Trs_Comm_Bak=0xa4;
 392   4                           Trs_Flag=1;
 393   4                        }
 394   3      
 395   3         	 	break;
 396   3                     case (0x30):
 397   3                       if(Rcv_Buf[Rcv_Rp+7]==Station)
 398   3                         {
 399   4                          Trs_Comm=0xb0;
 400   4                          House_R=Rcv_Buf[Rcv_Rp+9];
 401   4                          Trs_Flag=1;
 402   4                         }
 403   3         	 	break;
 404   3                     case (0x31):
 405   3                      if(Rcv_Buf[Rcv_Rp+7]==Station)
 406   3                         {
 407   4                          House_R=Rcv_Buf[Rcv_Rp+9];
 408   4                          Alarm_Check=1;
 409   4                          if(House_R!=0xff)
 410   4                            {
 411   5                              if(Rcv_Buf[Rcv_Rp+10]!=0xff)
 412   5                              {
 413   6                                Hdd_En=Read1B(250+(House_R-1)/8,0);
 414   6                                Short_Bak=Read1B(170+(House_R-1)/8,0);
 415   6                                Break_Bak=Read1B(175+(House_R-1)/8,0);
 416   6                                if (Rcv_Buf[Rcv_Rp+10]&0x80)
 417   6                                 {
 418   7                                  Hdd_En|=(1<<((House_R-1)%8));
 419   7                                 }
 420   6                                 else
 421   6                                 {
 422   7                                  Hdd_En&=~(1<<((House_R-1)%8));
 423   7                                  Short_Bak&=~(1<<((House_R-1)%8));
 424   7                                  Break_Bak&=~(1<<((House_R-1)%8));
 425   7                                  Short_New[(House_R-1)/8]=0;
 426   7                                  Break_New[(House_R-1)/8]=0;
 427   7                                 }
C51 COMPILER V6.12  PROTOCOL                                                               01/03/2005 12:08:20 PAGE 8   

 428   6                                Write1B(Hdd_En,250+(House_R-1)/8,0);
 429   6                                Write1B(Short_Bak,170+(House_R-1)/8,0);
 430   6                                Write1B(Break_Bak,175+(House_R-1)/8,0);
 431   6                                     //Type
 432   6                                 Rcv_Tmp=Rcv_Buf[Rcv_Rp+10]&0x0f;
 433   6                                 i=Read1B((House_R-1)+200,0);
 434   6                                 i&=0xf0;
 435   6                                 Rcv_Tmp|=i;
 436   6                                 Write1B(Rcv_Tmp,(House_R-1)+200,0);
 437   6                              }
 438   5                              if(Rcv_Buf[Rcv_Rp+11]!=0xff)
 439   5                                {
 440   6                                 Write1B(Rcv_Buf[Rcv_Rp+11],(House_R-1)*3,1);
 441   6                                }
 442   5                              if(Rcv_Buf[Rcv_Rp+12]!=0xff)
 443   5                                {
 444   6                                  Write1B(Rcv_Buf[Rcv_Rp+12],(House_R-1)*3+1,1);
 445   6                                }
 446   5                              if(Rcv_Buf[Rcv_Rp+13]!=0xff)
 447   5                                {
 448   6                                 Write1B(Rcv_Buf[Rcv_Rp+13],(House_R-1)*3+2,1);
 449   6                                }
 450   5                                 //Point
 451   5                              if(Rcv_Buf[Rcv_Rp+16]!=0xff)
 452   5                                {
 453   6                                 Rcv_Tmp=Rcv_Buf[Rcv_Rp+16];
 454   6                                 Rcv_Tmp<<=4;
 455   6                                 i=Read1B((House_R-1)+200,0);
 456   6                                 i&=0x0f;
 457   6                                 Rcv_Tmp|=i;
 458   6                                 Write1B(Rcv_Tmp,(House_R-1)+200,0);
 459   6                                }
 460   5      
 461   5                                  //CONST
 462   5                              if(Rcv_Buf[Rcv_Rp+14]!=0xff)
 463   5                              {
 464   6                               Rcv_Tmp=Rcv_Buf[Rcv_Rp+14];
 465   6                               Rcv_Tmp<<=4;
 466   6                               i=Read1B((House_R-1)+120,1);
 467   6                               i&=0x0f;
 468   6                               Rcv_Tmp|=i;
 469   6                                Write1B(Rcv_Tmp,(House_R-1)+120,1);
 470   6                               }
 471   5                                 //RANGE
 472   5                               if(Rcv_Buf[Rcv_Rp+15]!=0xff)
 473   5                                {
 474   6                                 Rcv_Tmp=Rcv_Buf[Rcv_Rp+15]&0x0f;
 475   6                                 i=Read1B((House_R-1)+120,1);
 476   6                                 i&=0xf0;
 477   6                                 Rcv_Tmp|=i;
 478   6                                 Write1B(Rcv_Tmp,(House_R-1)+120,1);
 479   6                                }
 480   5                              Rcv_Tmp=Rcv_Buf[Rcv_Rp+17];
 481   5                              if(Rcv_Tmp!=0xff)
 482   5                              {
 483   6                                Short_En=Read1B(240+(House_R-1)/8,0);
 484   6                                Short_Bak=Read1B(170+(House_R-1)/8,0);
 485   6                                if (Rcv_Tmp&0x04)
 486   6                                 {
 487   7                                   Short_En|=(1<<((House_R-1)%8));
 488   7                                 }
 489   6                                 else
C51 COMPILER V6.12  PROTOCOL                                                               01/03/2005 12:08:20 PAGE 9   

 490   6                                 {
 491   7                                  Short_En&=~(1<<((House_R-1)%8));
 492   7                                  Short_Bak&=~(1<<((House_R-1)%8));
 493   7                                  Short_New[(House_R-1)/8]=0;
 494   7                                 }
 495   6                                 Write1B(Short_En,240+(House_R-1)/8,0);

⌨️ 快捷键说明

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