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

📄 setbid.lst

📁 最先进的信号机程序,经过很多重要场合测试通过
💻 LST
📖 第 1 页 / 共 5 页
字号:
 522   3                               }
 523   2                          }
 524   1              if( data_final_number!=0)data_final[datanumber++]=tempdata;
 525   1              EA=0;
 526   1              SBUF=0X7E;
 527   1              while(!TI);TI=0;
 528   1      	for(i=0;i<datanumber;i++)
 529   1      	{
 530   2      	    SBUF=data_final[i];
 531   2                  while(!TI);TI=0;
 532   2      	}
 533   1              EA=1;
 534   1              tran_fpag(0x9f,9);
 535   1      }
 536          //设置日计划
 537          set_datesch()
 538          {
 539   1        unsigned char *p;
 540   1        unsigned short check_temp;
 541   1        unsigned int i;
 542   1        unsigned int j;
 543   1        unsigned char beginbit=0;
 544   1        data_final_number=0;
 545   1        datanumber=0;
 546   1        //设置
 547   1        j=(checkdata[5]-1)*74;
 548   1        for(i=0;i<74;i++)XBYTE[0X63a2+i+j]=checkdata[5+i];  //一个方案表写入
 549   1      
 550   1        //应答
 551   1        answer_data[0]=h_address;
C51 COMPILER V6.02  SETBID                                                                 08/02/2006 14:44:14 PAGE 10  

 552   1        answer_data[1]=l_address;
 553   1        answer_data[2]=0xcc;
 554   1        answer_data[3]=0xc1;
 555   1        answer_data[4]=0xd8;
 556   1        p=&answer_data[0];
 557   1        check_temp=cal_crc(p,5);
 558   1        answer_data[5]=(check_temp>>8);    //crc
 559   1        answer_data[6]=check_temp;         //crc
 560   1        answer_data[7]=0x7e;
 561   1        for(i=0;i<8;i++){
 562   2              for(j=0;j<8;j++){
 563   3                 add_bit=(answer_data[i]>>(7-j))%2;
 564   3                 add_transparences();
 565   3                 tempdata=tempdata+(add_bit<<(7-data_final_number++));
 566   3                 if((add_transparence_valid==1) && (i!=7)){ ///////////////////////////////////
 567   4                         if(data_final_number==8)beginbit=1;
 568   4                                            else data_final_number++;
 569   4                                                }      ///////////////////////////////////
 570   3                 if(data_final_number>=8){             /////////////////////////////////
 571   4                     if(beginbit==1){                  ////////////////////
 572   5                                data_final_number=1;   ////////////////////////
 573   5                                beginbit=0;            ////////////////////
 574   5                                     }else{
 575   5                                data_final_number=0;
 576   5                                           }
 577   4                       data_final[datanumber++]=tempdata; 	  /////////////////////
 578   4      	        tempdata=0;
 579   4                                          }
 580   3                               }
 581   2                          }
 582   1              if( data_final_number!=0)data_final[datanumber++]=tempdata;
 583   1              EA=0;
 584   1              SBUF=0X7E;
 585   1              while(!TI);TI=0;
 586   1      	for(i=0;i<datanumber;i++)
 587   1      	{
 588   2      	    SBUF=data_final[i];
 589   2                  while(!TI);TI=0;
 590   2      	}
 591   1              EA=1;
 592   1               tran_fpag(0x98,75);
 593   1      }
 594          //设置日计划调度表
 595          set_datadis()
 596          {
 597   1        unsigned char *p;
 598   1        unsigned short check_temp;
 599   1        unsigned int i;
 600   1        unsigned int j;
 601   1        unsigned char beginbit=0;
 602   1        data_final_number=0;
 603   1        datanumber=0;
 604   1        //设置日计划调度表
 605   1      
 606   1        for(i=0;i<60;i++)XBYTE[0X6ce2+i]=checkdata[5+i];  //一个日计划调度表写入
 607   1      
 608   1        //应答
 609   1        answer_data[0]=h_address;
 610   1        answer_data[1]=l_address;
 611   1        answer_data[2]=0Xcc;
 612   1        answer_data[3]=0XC1;
 613   1        answer_data[4]=0XD9;
C51 COMPILER V6.02  SETBID                                                                 08/02/2006 14:44:14 PAGE 11  

 614   1        p=&answer_data[0];
 615   1        check_temp=cal_crc(p,5);
 616   1        answer_data[5]=(check_temp>>8);    //crc
 617   1        answer_data[6]=check_temp;         //crc
 618   1        answer_data[7]=0x7e;
 619   1      
 620   1        for(i=0;i<8;i++){
 621   2              for(j=0;j<8;j++){
 622   3                 add_bit=(answer_data[i]>>(7-j))%2;
 623   3                 add_transparences();
 624   3                 tempdata=tempdata+(add_bit<<(7-data_final_number++));
 625   3                 if((add_transparence_valid==1) && (i!=7)){ ///////////////////////////////////
 626   4                         if(data_final_number==8)beginbit=1;
 627   4                                            else data_final_number++;
 628   4                                                }      ///////////////////////////////////
 629   3                 if(data_final_number>=8){             /////////////////////////////////
 630   4                     if(beginbit==1){                  ////////////////////
 631   5                                data_final_number=1;   ////////////////////////
 632   5                                beginbit=0;            ////////////////////
 633   5                                     }else{
 634   5                                data_final_number=0;
 635   5                                	data_final[datanumber++]=tempdata;
 636   5      				tempdata=0;
 637   5                                          }
 638   4                                          }
 639   3                               }
 640   2                          }
 641   1              if( data_final_number!=0)data_final[datanumber++]=tempdata;
 642   1              EA=0;
 643   1              SBUF=0X7E;
 644   1              while(!TI);TI=0;
 645   1      	for(i=0;i<datanumber;i++)
 646   1      	{
 647   2      	    SBUF=data_final[i];
 648   2                  while(!TI);TI=0;
 649   2      	}
 650   1              EA=1;
 651   1               tran_fpag(0x99,61);
 652   1      }
 653          //设置当前控制方案
 654          set_nowsch()
 655          {
 656   1      }
 657          //设置统计周期
 658          set_caperiod()
 659          {
 660   1      }
 661          //查询信号机标志
 662          bid_flag()
 663          {
 664   1        unsigned char *p=0;
 665   1        unsigned short check_temp;
 666   1        unsigned char i;
 667   1        unsigned char j;
 668   1        unsigned char beginbit=0;
 669   1        data_final_number=0;
 670   1        datanumber=0;
 671   1      
 672   1        answer_data[0]=h_address;
 673   1        answer_data[1]=l_address;
 674   1        answer_data[2]=0xcc;
 675   1        answer_data[3]=0xc1;
C51 COMPILER V6.02  SETBID                                                                 08/02/2006 14:44:14 PAGE 12  

 676   1        answer_data[4]=0xf1;
 677   1      
 678   1        answer_data[5]=0x10;
 679   1        answer_data[6]=0x20;  //支持的最大阶段表数
 680   1        answer_data[7]=0x20;  //阶段表中最大阶段数
 681   1        answer_data[8]=0x20;  //最大控制方案数
 682   1        answer_data[9]=0x20;  //最大日计划数
 683   1        answer_data[10]=0x18;  //日计划中最大时段数
 684   1        answer_data[11]=XBYTE[0X72e2];  //开机时间  小时
 685   1        answer_data[12]=XBYTE[0X72e3];  //开机时间  分钟
 686   1        answer_data[13]=XBYTE[0X72e4];  //关机时间  小时
 687   1        answer_data[14]=XBYTE[0X72e5];  //关机时间  分钟
 688   1        answer_data[15]=XBYTE[0X72e6];  //关机后状态
 689   1        answer_data[16]=XBYTE[0X8000];  //路口编号高地址
 690   1        answer_data[17]=XBYTE[0X8001];  //路口编号低位地址
 691   1      
 692   1        //应答
 693   1       // p=&answer_data[0];
 694   1        check_temp=cal_crc(&answer_data[0],18);
 695   1        answer_data[18]=(check_temp>>8);    //crc
 696   1        answer_data[19]=check_temp;         //crc
 697   1        answer_data[20]=0x7e;
 698   1        tempdata=0;
 699   1       	for(i=0;i<21;i++)
 700   1      	{
 701   2      		for(j=0;j<8;j++)
 702   2      		{
 703   3      			add_bit=(answer_data[i]>>(7-j))%2;
 704   3      			add_transparences();
 705   3      			tempdata=tempdata+(add_bit<<(7-data_final_number++));
 706   3      			if((add_transparence_valid==1) && (i!=20))
 707   3      			{
 708   4      				if(data_final_number==8)beginbit=1;
 709   4      				else data_final_number++;
 710   4      			}
 711   3      			if(data_final_number>=8)
 712   3      			{
 713   4      				if(beginbit==1){
 714   5      				  data_final_number=1;
 715   5                                             beginbit=0;
 716   5      			           }
 717   4      			    else
 718   4                                          data_final_number=0;
 719   4      				data_final[datanumber++]=tempdata;
 720   4      				tempdata=0;
 721   4      			}
 722   3      		}
 723   2      	}
 724   1      	if(data_final_number!=0)
 725   1      	{
 726   2      		data_final[datanumber++]=tempdata;
 727   2      	}
 728   1              EA=0;
 729   1              SBUF=0X7E;
 730   1              while(!TI);TI=0;
 731   1      	for(i=0;i<datanumber;i++)
 732   1      	{
 733   2      	    SBUF=data_final[i];
 734   2                  while(!TI);TI=0;
 735   2      	}
 736   1              EA=1;
 737   1      }
C51 COMPILER V6.02  SETBID                                                                 08/02/2006 14:44:14 PAGE 13  

 738          //查询信号机特征参数
 739          bid_mark()
 740          {
 741   1        unsigned char *p;
 742   1        unsigned short check_temp;
 743   1        unsigned char i;
 744   1        unsigned char j;
 745   1        unsigned char beginbit=0;
 746   1        data_final_number=0;
 747   1        datanumber=0;
 748   1        //设置时间后用
 749   1        answer_data[0]=h_address;
 750   1        answer_data[1]=l_address;
 751   1        answer_data[2]=0xcc;
 752   1        answer_data[3]=0xc1;
 753   1        answer_data[4]=0x92;
 754   1        answer_data[5]=0x20;  //支持的最大阶段表数
 755   1        answer_data[6]=0x20;  //阶段表中最大阶段数
 756   1        answer_data[7]=0x20;  //最大控制方案数
 757   1        answer_data[8]=0x20;  //最大日计划数
 758   1        answer_data[9]=0x16;  //日计划中最大时段数
 759   1        answer_data[10]=XBYTE[0X72e2];  //开机时间  小时
 760   1        answer_data[11]=XBYTE[0X72e3];  //开机时间  分钟
 761   1        answer_data[12]=XBYTE[0X72e4];  //关机时间  小时
 762   1        answer_data[13]=XBYTE[0X72e5];  //关机时间  分钟
 763   1        answer_data[14]=XBYTE[0X72e6];  //关机后状态
 764   1        answer_data[15]=XBYTE[0X8000];  //路口编号高地址
 765   1        answer_data[16]=XBYTE[0X8001];  //路口编号低位地址
 766   1      
 767   1        //应答
 768   1        p=&answer_data[0];
 769   1        check_temp=cal_crc(p,17);
 770   1        answer_data[17]=(check_temp>>8);    //crc
 771   1        answer_data[18]=check_temp;         //crc
 772   1        answer_data[19]=0x7e;
 773   1        tempdata=0;
 774   1        for(i=0;i<20;i++){
 775   2              for(j=0;j<8;j++){
 776   3                 add_bit=(answer_data[i]>>(7-j))%2;
 777   3                 add_transparences();
 778   3                 tempdata=tempdata+(add_bit<<(7-data_final_number++));
 779   3                 if((add_transparence_valid==1) && (i!=19)){ ///////////////////////////////////
 780   4                         if(data_final_number==8)beginbit=1;
 781   4                                            else data_final_number++;
 782   4                                                }      ///////////////////////////////////
 783   3                 if(data_final_number>=8){             /////////////////////////////////
 784   4                     if(beginbit==1){                  ////////////////////
 785   5                                data_final_number=1;   ////////////////////////
 786   5                                beginbit=0;            ////////////////////

⌨️ 快捷键说明

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