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

📄 setbid.lst

📁 最先进的信号机程序,经过很多重要场合测试通过
💻 LST
📖 第 1 页 / 共 5 页
字号:
 257   3                 add_transparences();
 258   3                 tempdata=tempdata+(add_bit<<(7-data_final_number++));
 259   3                 if((add_transparence_valid==1) && (i!=7)){ ///////////////////////////////////
 260   4                         if(data_final_number==8)beginbit=1;
 261   4                                            else data_final_number++;
 262   4                                                }      ///////////////////////////////////
 263   3                 if(data_final_number>=8){             /////////////////////////////////
 264   4                     if(beginbit==1){                  ////////////////////
 265   5                                data_final_number=1;   ////////////////////////
 266   5                                beginbit=0;            ////////////////////
 267   5                                     }else{
 268   5                                data_final_number=0;
 269   5                                           }
 270   4                       data_final[datanumber++]=tempdata; 	  /////////////////////
 271   4      	        tempdata=0;
 272   4                                          }
 273   3                               }
 274   2                          }
 275   1              if( data_final_number!=0)data_final[datanumber++]=tempdata;
 276   1              EA=0;
 277   1              SBUF=0X7E;
 278   1              while(TI==0);TI=0;
 279   1      	for(i=0;i<datanumber;i++)
 280   1      	{
 281   2      	    SBUF=data_final[i];
 282   2                  while(TI==0);TI=0;
 283   2      
 284   2      	}EA=1;
 285   1      
 286   1      }
 287          //设置相位
 288          set_phase()
 289          {
 290   1        unsigned char *p;
 291   1        unsigned short check_temp;
 292   1        unsigned int i;
 293   1        unsigned int j;
 294   1        unsigned char beginbit=0;
 295   1        datanumber=0;
 296   1        data_final_number=0;
 297   1        //设置相位  0X5000
 298   1        if(checkdata[5]==0){
 299   2           for(i=0;i<289;i++)XBYTE[0X5000+i]=checkdata[5+i];
 300   2                        }else{
 301   2                for(i=0;i<289;i++)XBYTE[0X5121+i]=checkdata[5+i];
 302   2                              }
 303   1        //应答
C51 COMPILER V6.02  SETBID                                                                 08/02/2006 14:44:14 PAGE 6   

 304   1        answer_data[0]=h_address;
 305   1        answer_data[1]=l_address;
 306   1        answer_data[2]=0xcc;
 307   1        answer_data[3]=0xc1;
 308   1        answer_data[4]=0xd4;
 309   1      
 310   1        p=&answer_data[0];
 311   1        check_temp=cal_crc(p,5);
 312   1        answer_data[5]=(check_temp>>8);    //crc
 313   1        answer_data[6]=check_temp;         //crc
 314   1        answer_data[7]=0x7e;
 315   1      
 316   1        for(i=0;i<8;i++){
 317   2              for(j=0;j<8;j++){
 318   3                 add_bit=(answer_data[i]>>(7-j))%2;
 319   3                 add_transparences();
 320   3                 tempdata=tempdata+(add_bit<<(7-data_final_number++));
 321   3                 if((add_transparence_valid==1) && (i!=7)){ ///////////////////////////////////
 322   4                         if(data_final_number==8)beginbit=1;
 323   4                                            else data_final_number++;
 324   4                                                }      ///////////////////////////////////
 325   3                 if(data_final_number>=8){             /////////////////////////////////
 326   4                     if(beginbit==1){                  ////////////////////
 327   5                                data_final_number=1;   ////////////////////////
 328   5                                beginbit=0;            ////////////////////
 329   5                                     }else{
 330   5                                data_final_number=0;
 331   5                                           }
 332   4                       data_final[datanumber++]=tempdata; 	  /////////////////////
 333   4      	        tempdata=0;
 334   4                                          }
 335   3                               }
 336   2                          }
 337   1              if( data_final_number!=0)data_final[datanumber++]=tempdata;
 338   1              EA=0;
 339   1              SBUF=0X7E;
 340   1              while(!TI);TI=0;
 341   1      	for(i=0;i<datanumber;i++)
 342   1      	{
 343   2      	   SBUF=data_final[i];
 344   2                  while(!TI);TI=0;
 345   2      	}
 346   1               EA=1;
 347   1         //更改FPGA数据内容
 348   1            tran_fpag(0x94,290);
 349   1      }
 350          //设置阶段表
 351          set_stage()
 352          {
 353   1        unsigned char *p;
 354   1        unsigned short check_temp;
 355   1      
 356   1        unsigned int i;
 357   1        unsigned int j;
 358   1        unsigned char beginbit=0;
 359   1        datanumber=0;
 360   1        data_final_number=0;
 361   1        //设置阶段表
 362   1        j=(checkdata[5]-1)*98;
 363   1        for(i=0;i<98;i++)XBYTE[0X5242+i+j]=checkdata[5+i];  //一个阶段表写入
 364   1      
 365   1        //应答
C51 COMPILER V6.02  SETBID                                                                 08/02/2006 14:44:14 PAGE 7   

 366   1        answer_data[0]=h_address;
 367   1        answer_data[1]=l_address;
 368   1        answer_data[2]=0XCC;
 369   1        answer_data[3]=0XC1;
 370   1        answer_data[4]=0XD5;
 371   1        p=&answer_data[0];
 372   1        check_temp=cal_crc(p,5);
 373   1        answer_data[5]=(check_temp>>8);    //crc
 374   1        answer_data[6]=check_temp;         //crc
 375   1        answer_data[7]=0x7e;
 376   1      
 377   1        for(i=0;i<8;i++){
 378   2              for(j=0;j<8;j++){
 379   3                 add_bit=(answer_data[i]>>(7-j))%2;
 380   3                 add_transparences();
 381   3                // if((add_transparence_valid==1) && (i!=17))data_final_number++;
 382   3                 tempdata=tempdata+(add_bit<<(7-data_final_number++));
 383   3                 if((add_transparence_valid==1) && (i!=7)){ ///////////////////////////////////
 384   4                         if(data_final_number==8)beginbit=1;
 385   4                                            else data_final_number++;
 386   4                                                }      ///////////////////////////////////
 387   3                 if(data_final_number>=8){             /////////////////////////////////
 388   4                     if(beginbit==1){                  ////////////////////
 389   5                                data_final_number=1;   ////////////////////////
 390   5                                beginbit=0;            ////////////////////
 391   5                                     }else{
 392   5                                data_final_number=0;
 393   5                                           }
 394   4                       data_final[datanumber++]=tempdata; 	  /////////////////////
 395   4      	        tempdata=0;
 396   4                                          }
 397   3                               }
 398   2                          }
 399   1              if( data_final_number!=0)data_final[datanumber++]=tempdata;
 400   1              EA=0;
 401   1              SBUF=0X7E;
 402   1              while(!TI);TI=0;
 403   1      	for(i=0;i<datanumber;i++)
 404   1      	{
 405   2      	    SBUF=data_final[i];
 406   2                  while(!TI);TI=0;
 407   2      	}
 408   1              EA=1;
 409   1              tran_fpag(0x95,99);
 410   1      }
 411          //设置当前方案
 412          set_project()
 413          {
 414   1        unsigned char *p;
 415   1        unsigned short check_temp;
 416   1      
 417   1        unsigned int i;
 418   1        unsigned int j;
 419   1        unsigned char beginbit=0;
 420   1        data_final_number=0;
 421   1        datanumber=0;
 422   1        //设置当前方案
 423   1        j=(checkdata[5]-1)*41;
 424   1        for(i=0;i<41;i++)XBYTE[0X5e82+i+j]=checkdata[5+i];  //一个方案表写入
 425   1      
 426   1        //应答
 427   1        answer_data[0]=h_address;
C51 COMPILER V6.02  SETBID                                                                 08/02/2006 14:44:14 PAGE 8   

 428   1        answer_data[1]=l_address;
 429   1        answer_data[2]=0xcc;
 430   1        answer_data[3]=0xc1;
 431   1        answer_data[4]=0xd6;
 432   1        p=&answer_data[0];
 433   1        check_temp=cal_crc(p,5);
 434   1        answer_data[5]=(check_temp>>8);    //crc
 435   1        answer_data[6]=check_temp;         //crc
 436   1        answer_data[7]=0x7e;
 437   1      
 438   1        for(i=0;i<8;i++){
 439   2              for(j=0;j<8;j++){
 440   3                 add_bit=(answer_data[i]>>(7-j))%2;
 441   3                 add_transparences();
 442   3                // if((add_transparence_valid==1) && (i!=17))data_final_number++;
 443   3                 tempdata=tempdata+(add_bit<<(7-data_final_number++));
 444   3                 if((add_transparence_valid==1) && (i!=7)){ ///////////////////////////////////
 445   4                         if(data_final_number==8)beginbit=1;
 446   4                                            else data_final_number++;
 447   4                                                }      ///////////////////////////////////
 448   3                 if(data_final_number>=8){             /////////////////////////////////
 449   4                     if(beginbit==1){                  ////////////////////
 450   5                                data_final_number=1;   ////////////////////////
 451   5                                beginbit=0;            ////////////////////
 452   5                                     }else{
 453   5                                data_final_number=0;
 454   5                                           }
 455   4                       data_final[datanumber++]=tempdata; 	  /////////////////////
 456   4      	        tempdata=0;
 457   4                                          }
 458   3                               }
 459   2                          }
 460   1              if( data_final_number!=0)data_final[datanumber++]=tempdata;
 461   1              EA=0;
 462   1              SBUF=0X7E;
 463   1              while(!TI);TI=0;
 464   1      	for(i=0;i<datanumber;i++)
 465   1      	{
 466   2      	    SBUF=data_final[i];
 467   2                  while(!TI);TI=0;
 468   2      	}
 469   1              EA=1;
 470   1              tran_fpag(0x96,42);
 471   1      }
 472          //上位机直接控制
 473          set_uppc()
 474          {
 475   1      
 476   1      }
 477          set_remote()
 478          {
 479   1          unsigned char *p;
 480   1        unsigned short check_temp;
 481   1      
 482   1        unsigned int i;
 483   1        unsigned int j;
 484   1        unsigned char beginbit=0;
 485   1        data_final_number=0;
 486   1        datanumber=0;
 487   1        //遥控数据包保存到NVRAM  
 488   1        for(i=0;i<8;i++)XBYTE[0X6D20+i]=checkdata[5+i];  //一个方案表写入
 489   1      
C51 COMPILER V6.02  SETBID                                                                 08/02/2006 14:44:14 PAGE 9   

 490   1        //接收成功后应答
 491   1        answer_data[0]=h_address;
 492   1        answer_data[1]=l_address;
 493   1        answer_data[2]=0xcc;
 494   1        answer_data[3]=0xc1;
 495   1        answer_data[4]=0xdf;
 496   1        p=&answer_data[0];
 497   1        check_temp=cal_crc(p,5);
 498   1        answer_data[5]=(check_temp>>8);    //crc
 499   1        answer_data[6]=check_temp;         //crc
 500   1        answer_data[7]=0x7e;
 501   1      
 502   1        for(i=0;i<8;i++){
 503   2              for(j=0;j<8;j++){
 504   3                 add_bit=(answer_data[i]>>(7-j))%2;
 505   3                 add_transparences();
 506   3                // if((add_transparence_valid==1) && (i!=17))data_final_number++;
 507   3                 tempdata=tempdata+(add_bit<<(7-data_final_number++));
 508   3                 if((add_transparence_valid==1) && (i!=7)){ ///////////////////////////////////
 509   4                         if(data_final_number==8)beginbit=1;
 510   4                                            else data_final_number++;
 511   4                                                }      ///////////////////////////////////
 512   3                 if(data_final_number>=8){             /////////////////////////////////
 513   4                     if(beginbit==1){                  ////////////////////
 514   5                                data_final_number=1;   ////////////////////////
 515   5                                beginbit=0;            ////////////////////
 516   5                                     }else{
 517   5                                data_final_number=0;
 518   5                                           }
 519   4                       data_final[datanumber++]=tempdata; 	  /////////////////////
 520   4      	        tempdata=0;
 521   4                                          }

⌨️ 快捷键说明

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