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

📄 protocol.lst

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

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

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

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

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

⌨️ 快捷键说明

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