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

📄 setbid.lst

📁 ASC 信号机控制程序,国内最先进的信号机控制程序
💻 LST
📖 第 1 页 / 共 5 页
字号:
 261   3                 add_transparences();
 262   3                 tempdata=tempdata+(add_bit<<(7-data_final_number++));
 263   3                 if((add_transparence_valid==1) && (i!=7)){ ///////////////////////////////////
 264   4                         if(data_final_number==8)beginbit=1;
 265   4                                            else data_final_number++;
 266   4                                                }      ///////////////////////////////////
 267   3                 if(data_final_number>=8){             /////////////////////////////////
 268   4                     if(beginbit==1){                  ////////////////////
 269   5                                data_final_number=1;   ////////////////////////
 270   5                                beginbit=0;            ////////////////////
 271   5                                     }else{
 272   5                                data_final_number=0;
 273   5                                           }
 274   4                       data_final[datanumber++]=tempdata; 	  /////////////////////
 275   4      	        tempdata=0;
 276   4                                          }
 277   3                               }
 278   2                          }
 279   1              if( data_final_number!=0)data_final[datanumber++]=tempdata;
 280   1              EA=0;
 281   1              SBUF=0X7E;
 282   1              while(TI==0);TI=0;
 283   1      	for(i=0;i<datanumber;i++)
 284   1      	{
 285   2      	    SBUF=data_final[i];
 286   2                  while(TI==0);TI=0;
 287   2      
 288   2      	}EA=1;
 289   1      
 290   1      }
 291          //设置相位
 292          set_phase()
 293          {
 294   1        unsigned char *p;
 295   1        unsigned short check_temp;
 296   1        unsigned int i;
 297   1        unsigned int j,k;
 298   1        unsigned char beginbit=0;
 299   1        datanumber=0;
 300   1        data_final_number=0;
 301   1        //设置相位  0X5000
 302   1       // EA=0;
 303   1      
C51 COMPILER V6.02  SETBID                                                                 09/28/2006 21:46:50 PAGE 6   

 304   1        if(checkdata[5]==0){
 305   2           for(i=0;i<289;i++){
 306   3                 XBYTE[0X5000+i]=checkdata[5+i];
 307   3                 k=eeprom_addr;
 308   3                 k=k+i;
 309   3                 XBYTE[k]=checkdata[5+i];
 310   3                 k=0;
 311   3                 do{k++;WatchDog = !WatchDog;}while(k<800);
 312   3                 }
 313   2                        }else{
 314   2                for(i=0;i<289;i++){
 315   3                   XBYTE[0X5121+i]=checkdata[5+i];
 316   3                   k=eeprom_addr;
 317   3                   k=k+0x121+i;
 318   3                   XBYTE[k]=checkdata[5+i];
 319   3                   k=0;
 320   3                   do{k++;WatchDog = !WatchDog;}while(k<800);
 321   3                                   }
 322   2                              }
 323   1        //EA=1;
 324   1        //应答
 325   1        answer_data[0]=h_address;
 326   1        answer_data[1]=l_address;
 327   1        answer_data[2]=0xcc;
 328   1        answer_data[3]=0xc1;
 329   1        answer_data[4]=0xd4;
 330   1      
 331   1        p=&answer_data[0];
 332   1        check_temp=cal_crc(p,5);
 333   1        answer_data[5]=(check_temp>>8);    //crc
 334   1        answer_data[6]=check_temp;         //crc
 335   1        answer_data[7]=0x7e;
 336   1      
 337   1        for(i=0;i<8;i++){
 338   2              for(j=0;j<8;j++){
 339   3                 add_bit=(answer_data[i]>>(7-j))%2;
 340   3                 add_transparences();
 341   3                 tempdata=tempdata+(add_bit<<(7-data_final_number++));
 342   3                 if((add_transparence_valid==1) && (i!=7)){ ///////////////////////////////////
 343   4                         if(data_final_number==8)beginbit=1;
 344   4                                            else data_final_number++;
 345   4                                                }      ///////////////////////////////////
 346   3                 if(data_final_number>=8){             /////////////////////////////////
 347   4                     if(beginbit==1){                  ////////////////////
 348   5                                data_final_number=1;   ////////////////////////
 349   5                                beginbit=0;            ////////////////////
 350   5                                     }else{
 351   5                                data_final_number=0;
 352   5                                           }
 353   4                       data_final[datanumber++]=tempdata; 	  /////////////////////
 354   4      	        tempdata=0;
 355   4                                          }
 356   3                               }
 357   2                          }
 358   1              if( data_final_number!=0)data_final[datanumber++]=tempdata;
 359   1              EA=0;
 360   1              SBUF=0X7E;
 361   1              while(!TI);TI=0;
 362   1      	for(i=0;i<datanumber;i++)
 363   1      	{
 364   2      	   SBUF=data_final[i];
 365   2                  while(!TI);TI=0;
C51 COMPILER V6.02  SETBID                                                                 09/28/2006 21:46:50 PAGE 7   

 366   2      	}
 367   1               EA=1;
 368   1         //更改FPGA数据内容
 369   1            tran_fpag(0x94,290);
 370   1      }
 371          //设置阶段表
 372          set_stage()
 373          {
 374   1        unsigned char *p;
 375   1        unsigned short check_temp;
 376   1      
 377   1        unsigned int i;
 378   1        unsigned int j,k;
 379   1        unsigned char beginbit=0;
 380   1        datanumber=0;
 381   1        data_final_number=0;
 382   1        //设置阶段表
 383   1        j=(checkdata[5]-1)*98;
 384   1        for(i=0;i<98;i++){
 385   2                XBYTE[0X5242+i+j]=checkdata[5+i];  //一个阶段表写入
 386   2                k=eeprom_addr;
 387   2                k=k+0x242+i+j;
 388   2                XBYTE[k]=checkdata[5+i];
 389   2                k=0;
 390   2                do{k++;WatchDog = !WatchDog;}while(k<800);
 391   2                          }
 392   1        //应答
 393   1        answer_data[0]=h_address;
 394   1        answer_data[1]=l_address;
 395   1        answer_data[2]=0XCC;
 396   1        answer_data[3]=0XC1;
 397   1        answer_data[4]=0XD5;
 398   1        p=&answer_data[0];
 399   1        check_temp=cal_crc(p,5);
 400   1        answer_data[5]=(check_temp>>8);    //crc
 401   1        answer_data[6]=check_temp;         //crc
 402   1        answer_data[7]=0x7e;
 403   1      
 404   1        for(i=0;i<8;i++){
 405   2              for(j=0;j<8;j++){
 406   3                 add_bit=(answer_data[i]>>(7-j))%2;
 407   3                 add_transparences();
 408   3                // if((add_transparence_valid==1) && (i!=17))data_final_number++;
 409   3                 tempdata=tempdata+(add_bit<<(7-data_final_number++));
 410   3                 if((add_transparence_valid==1) && (i!=7)){ ///////////////////////////////////
 411   4                         if(data_final_number==8)beginbit=1;
 412   4                                            else data_final_number++;
 413   4                                                }      ///////////////////////////////////
 414   3                 if(data_final_number>=8){             /////////////////////////////////
 415   4                     if(beginbit==1){                  ////////////////////
 416   5                                data_final_number=1;   ////////////////////////
 417   5                                beginbit=0;            ////////////////////
 418   5                                     }else{
 419   5                                data_final_number=0;
 420   5                                           }
 421   4                       data_final[datanumber++]=tempdata; 	  /////////////////////
 422   4      	        tempdata=0;
 423   4                                          }
 424   3                               }
 425   2                          }
 426   1              if( data_final_number!=0)data_final[datanumber++]=tempdata;
 427   1              EA=0;
C51 COMPILER V6.02  SETBID                                                                 09/28/2006 21:46:50 PAGE 8   

 428   1              SBUF=0X7E;
 429   1              while(!TI);TI=0;
 430   1      	for(i=0;i<datanumber;i++)
 431   1      	{
 432   2      	    SBUF=data_final[i];
 433   2                  while(!TI);TI=0;
 434   2      	}
 435   1              EA=1;
 436   1              tran_fpag(0x95,99);
 437   1      }
 438          //设置当前方案
 439          set_project()
 440          {
 441   1        unsigned char *p;
 442   1        unsigned short check_temp;
 443   1      
 444   1        unsigned int i,k;
 445   1        unsigned int j;
 446   1        unsigned char beginbit=0;
 447   1        data_final_number=0;
 448   1        datanumber=0;
 449   1        //设置当前方案
 450   1        j=(checkdata[5]-1)*41;
 451   1        for(i=0;i<41;i++){
 452   2            XBYTE[0X5e82+i+j]=checkdata[5+i];  //一个方案表写入
 453   2            k=eeprom_addr;
 454   2            k=k+0xe82+i+j;
 455   2            XBYTE[k]=checkdata[5+i];
 456   2            k=0;
 457   2            do{k++;WatchDog = !WatchDog;}while(k<800);
 458   2            }
 459   1      
 460   1        //应答
 461   1        answer_data[0]=h_address;
 462   1        answer_data[1]=l_address;
 463   1        answer_data[2]=0xcc;
 464   1        answer_data[3]=0xc1;
 465   1        answer_data[4]=0xd6;
 466   1        p=&answer_data[0];
 467   1        check_temp=cal_crc(p,5);
 468   1        answer_data[5]=(check_temp>>8);    //crc
 469   1        answer_data[6]=check_temp;         //crc
 470   1        answer_data[7]=0x7e;
 471   1      
 472   1        for(i=0;i<8;i++){
 473   2              for(j=0;j<8;j++){
 474   3                 add_bit=(answer_data[i]>>(7-j))%2;
 475   3                 add_transparences();
 476   3                // if((add_transparence_valid==1) && (i!=17))data_final_number++;
 477   3                 tempdata=tempdata+(add_bit<<(7-data_final_number++));
 478   3                 if((add_transparence_valid==1) && (i!=7)){ ///////////////////////////////////
 479   4                         if(data_final_number==8)beginbit=1;
 480   4                                            else data_final_number++;
 481   4                                                }      ///////////////////////////////////
 482   3                 if(data_final_number>=8){             /////////////////////////////////
 483   4                     if(beginbit==1){                  ////////////////////
 484   5                                data_final_number=1;   ////////////////////////
 485   5                                beginbit=0;            ////////////////////
 486   5                                     }else{
 487   5                                data_final_number=0;
 488   5                                           }
 489   4                       data_final[datanumber++]=tempdata; 	  /////////////////////
C51 COMPILER V6.02  SETBID                                                                 09/28/2006 21:46:50 PAGE 9   

 490   4      	        tempdata=0;
 491   4                                          }
 492   3                               }
 493   2                          }
 494   1              if( data_final_number!=0)data_final[datanumber++]=tempdata;
 495   1              EA=0;
 496   1              SBUF=0X7E;
 497   1              while(!TI);TI=0;
 498   1      	for(i=0;i<datanumber;i++)
 499   1      	{
 500   2      	    SBUF=data_final[i];
 501   2                  while(!TI);TI=0;
 502   2      	}
 503   1              EA=1;
 504   1              tran_fpag(0x96,42);
 505   1      }
 506          //上位机直接控制
 507          set_uppc()
 508          {
 509   1      
 510   1      }
 511          set_remote()
 512          {
 513   1          unsigned char *p;
 514   1        unsigned short check_temp;
 515   1      
 516   1        unsigned int i,k;
 517   1        unsigned int j;
 518   1        unsigned char beginbit=0;
 519   1        data_final_number=0;
 520   1        datanumber=0;
 521   1        //遥控数据包保存到NVRAM
 522   1        for(i=0;i<8;i++){
 523   2                         XBYTE[0X6D20+i]=checkdata[5+i];  //一个方案表写入
 524   2                         k=eeprom_addr;
 525   2                         k=k+0x1d20+i;
 526   2                         XBYTE[k]=checkdata[5+i];
 527   2                         k=0;
 528   2                         do{k++;WatchDog = !WatchDog;}while(k<800);
 529   2                         }

⌨️ 快捷键说明

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