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

📄 setbid.lst

📁 ASC 信号机控制程序,国内最先进的信号机控制程序
💻 LST
📖 第 1 页 / 共 5 页
字号:
 799   1        unsigned char j;
C51 COMPILER V6.02  SETBID                                                                 09/28/2006 21:46:50 PAGE 14  

 800   1        unsigned char beginbit=0;
 801   1        data_final_number=0;
 802   1        datanumber=0;
 803   1        //设置时间后用
 804   1        answer_data[0]=h_address;
 805   1        answer_data[1]=l_address;
 806   1        answer_data[2]=0xcc;
 807   1        answer_data[3]=0xc1;
 808   1        answer_data[4]=0x92;
 809   1        answer_data[5]=0x20;  //支持的最大阶段表数
 810   1        answer_data[6]=0x20;  //阶段表中最大阶段数
 811   1        answer_data[7]=0x20;  //最大控制方案数
 812   1        answer_data[8]=0x20;  //最大日计划数
 813   1        answer_data[9]=0x16;  //日计划中最大时段数
 814   1        answer_data[10]=XBYTE[0X72e2];  //开机时间  小时
 815   1        answer_data[11]=XBYTE[0X72e3];  //开机时间  分钟
 816   1        answer_data[12]=XBYTE[0X72e4];  //关机时间  小时
 817   1        answer_data[13]=XBYTE[0X72e5];  //关机时间  分钟
 818   1        answer_data[14]=XBYTE[0X72e6];  //关机后状态
 819   1        answer_data[15]=XBYTE[0X8000];  //路口编号高地址
 820   1        answer_data[16]=XBYTE[0X8001];  //路口编号低位地址
 821   1      
 822   1        //应答
 823   1        p=&answer_data[0];
 824   1        check_temp=cal_crc(p,17);
 825   1        answer_data[17]=(check_temp>>8);    //crc
 826   1        answer_data[18]=check_temp;         //crc
 827   1        answer_data[19]=0x7e;
 828   1        tempdata=0;
 829   1        for(i=0;i<20;i++){
 830   2              for(j=0;j<8;j++){
 831   3                 add_bit=(answer_data[i]>>(7-j))%2;
 832   3                 add_transparences();
 833   3                 tempdata=tempdata+(add_bit<<(7-data_final_number++));
 834   3                 if((add_transparence_valid==1) && (i!=19)){ ///////////////////////////////////
 835   4                         if(data_final_number==8)beginbit=1;
 836   4                                            else data_final_number++;
 837   4                                                }      ///////////////////////////////////
 838   3                 if(data_final_number>=8){             /////////////////////////////////
 839   4                     if(beginbit==1){                  ////////////////////
 840   5                                data_final_number=1;   ////////////////////////
 841   5                                beginbit=0;            ////////////////////
 842   5                                     }else{
 843   5                                data_final_number=0;
 844   5                                           }
 845   4                       data_final[datanumber++]=tempdata; 	  /////////////////////
 846   4      	        tempdata=0;
 847   4                                          }
 848   3                               }
 849   2                          }
 850   1              if( data_final_number!=0)data_final[datanumber++]=tempdata;
 851   1              EA=0;
 852   1              SBUF=0X7E;
 853   1              while(!TI);TI=0;
 854   1      	for(i=0;i<datanumber;i++)
 855   1      	{
 856   2      	    SBUF=data_final[i];
 857   2                  while(!TI);TI=0;
 858   2      	}
 859   1              EA=1;
 860   1      
 861   1      }
C51 COMPILER V6.02  SETBID                                                                 09/28/2006 21:46:50 PAGE 15  

 862          //查询时间
 863          bid_time()
 864          {
 865   1        unsigned char *p;
 866   1        unsigned short check_temp;
 867   1        unsigned char i;
 868   1        unsigned char j;
 869   1        unsigned char beginbit=0;
 870   1        data_final_number=0;
 871   1        datanumber=0;
 872   1        //设置时间后用
 873   1        answer_data[0]=h_address;
 874   1        answer_data[1]=l_address;
 875   1        answer_data[2]=0xcc;
 876   1        answer_data[3]=0xc1;
 877   1        answer_data[4]=0xc3;
 878   1        answer_data[5]=XBYTE[0XC009];  //year
 879   1        answer_data[6]=XBYTE[0XC008];  //month
 880   1        answer_data[7]=XBYTE[0XC007];  //date
 881   1        answer_data[8]=XBYTE[0XC004];  //hour
 882   1        answer_data[9]=XBYTE[0XC002];  //min
 883   1        answer_data[10]=XBYTE[0XC000];  //sec
 884   1        answer_data[11]=XBYTE[0XC006];  //day
 885   1        //应答
 886   1        p=&answer_data[0];
 887   1        check_temp=cal_crc(p,12);
 888   1        answer_data[12]=(check_temp>>8);    //crc
 889   1        answer_data[13]=check_temp;         //crc
 890   1        answer_data[14]=0x7e;
 891   1        tempdata=0;
 892   1        for(i=0;i<15;i++){
 893   2              for(j=0;j<8;j++){
 894   3                 add_bit=(answer_data[i]>>(7-j))%2;
 895   3                 add_transparences();
 896   3                 tempdata=tempdata+(add_bit<<(7-data_final_number++));
 897   3                 if((add_transparence_valid==1) && (i!=14)){ ///////////////////////////////////
 898   4                         if(data_final_number==8)beginbit=1;
 899   4                                            else data_final_number++;
 900   4                                                }      ///////////////////////////////////
 901   3                 if(data_final_number>=8){             /////////////////////////////////
 902   4                     if(beginbit==1){                  ////////////////////
 903   5                                data_final_number=1;   ////////////////////////
 904   5                                beginbit=0;            ////////////////////
 905   5                                     }else{
 906   5                                data_final_number=0;
 907   5                                           }
 908   4                       data_final[datanumber++]=tempdata; 	  /////////////////////
 909   4      	        tempdata=0;
 910   4                                          }
 911   3                               }
 912   2                          }
 913   1              if( data_final_number!=0)data_final[datanumber++]=tempdata;
 914   1              EA=0;
 915   1              SBUF=0X7E;
 916   1              while(!TI);TI=0;
 917   1      	for(i=0;i<datanumber;i++)
 918   1      	{
 919   2      	    SBUF=data_final[i];
 920   2                  while(!TI);TI=0;
 921   2      	}
 922   1              EA=1;
 923   1      }
C51 COMPILER V6.02  SETBID                                                                 09/28/2006 21:46:50 PAGE 16  

 924          //查询相位时间
 925          bid_phase()
 926          {
 927   1        unsigned char *p;
 928   1        unsigned short check_temp;
 929   1        unsigned int i;
 930   1        unsigned int j;
 931   1        unsigned char beginbit=0;
 932   1        datanumber=0;
 933   1        data_final_number=0;
 934   1        answer_data[0]=h_address;
 935   1        answer_data[1]=l_address;
 936   1        answer_data[2]=0xcc;
 937   1        answer_data[3]=0xc1;
 938   1        answer_data[4]=0xc4;
 939   1        if(checkdata[5]==0){//应答相位表1
 940   2               for(i=0;i<289;i++)answer_data[5+i]=XBYTE[0x5000+i];
 941   2                            }else{       //应答相位表2
 942   2                      for(i=0;i<289;i++)answer_data[5+i]=XBYTE[0x5121+i];
 943   2                                }
 944   1        //应答
 945   1        p=&answer_data[0];
 946   1        check_temp=cal_crc(p,294);
 947   1      //  check_temp=(check_temp>>8);
 948   1        answer_data[294]=(check_temp>>8);    //crc
 949   1        answer_data[295]=check_temp;         //crc
 950   1        answer_data[296]=0x7e;
 951   1        tempdata=0;
 952   1        for(i=0;i<297;i++){
 953   2              for(j=0;j<8;j++){
 954   3                 add_bit=(answer_data[i]>>(7-j))%2;
 955   3                 add_transparences();
 956   3                 tempdata=tempdata+(add_bit<<(7-data_final_number++));
 957   3                 if((add_transparence_valid==1) && (i!=296)){ ///////////////////////////////////
 958   4                         if(data_final_number==8)beginbit=1;
 959   4                                            else data_final_number++;
 960   4                                                }      ///////////////////////////////////
 961   3                 if(data_final_number>=8){             /////////////////////////////////
 962   4                     if(beginbit==1){                  ////////////////////
 963   5                                data_final_number=1;   ////////////////////////
 964   5                                beginbit=0;            ////////////////////
 965   5                                     }else{
 966   5                                data_final_number=0;
 967   5                                           }
 968   4                       data_final[datanumber++]=tempdata; 	  /////////////////////
 969   4      	        tempdata=0;
 970   4                                          }
 971   3                               }
 972   2                          }
 973   1              if( data_final_number!=0)data_final[datanumber++]=tempdata;
 974   1              EA=0;
 975   1              SBUF=0X7E;
 976   1              while(!TI);TI=0;
 977   1      	for(i=0;i<datanumber;i++)
 978   1      	{
 979   2      	    SBUF=data_final[i];
 980   2                  while(!TI);TI=0;
 981   2      	}
 982   1              EA=1;
 983   1      
 984   1      
 985   1      
C51 COMPILER V6.02  SETBID                                                                 09/28/2006 21:46:50 PAGE 17  

 986   1      }
 987          //查询阶段表
 988          bid_stage()
 989          {
 990   1        unsigned char *p;
 991   1        unsigned short check_temp;
 992   1        unsigned int i;
 993   1        unsigned int j;
 994   1        unsigned char beginbit=0;
 995   1        data_final_number=0;
 996   1        datanumber=0;
 997   1        //应答
 998   1        answer_data[0]=h_address;
 999   1        answer_data[1]=l_address;
1000   1        answer_data[2]=0xcc;
1001   1        answer_data[3]=0xc1;
1002   1        answer_data[4]=0xc5;
1003   1      
1004   1        j=checkdata[5];
1005   1        j=(j-1)*98;
1006   1        for(i=0;i<98;i++){
1007   2               answer_data[5+i]=XBYTE[0X5242+i+j];
1008   2                          }
1009   1        p=&answer_data[0];
1010   1        check_temp=cal_crc(p,103);
1011   1        answer_data[103]=(check_temp>>8);    //crc
1012   1        answer_data[104]=check_temp;         //crc
1013   1        answer_data[105]=0x7e;
1014   1        tempdata=0;
1015   1        for(i=0;i<106;i++){
1016   2              for(j=0;j<8;j++){
1017   3                 add_bit=(answer_data[i]>>(7-j))%2;
1018   3                 add_transparences();
1019   3                 tempdata=tempdata+(add_bit<<(7-data_final_number++));
1020   3                 if((add_transparence_valid==1) && (i!=105)){ ///////////////////////////////////
1021   4                         if(data_final_number==8)beginbit=1;
1022   4                                            else data_final_number++;
1023   4                                                }      ///////////////////////////////////
1024   3                 if(data_final_number>=8){             /////////////////////////////////
1025   4                     if(beginbit==1){                  ////////////////////
1026   5                                data_final_number=1;   ////////////////////////
1027   5                                beginbit=0;            ////////////////////
1028   5                                     }else{
1029   5                                data_final_number=0;
1030   5                                           }
1031   4                       data_final[datanumber++]=tempdata; 	  /////////////////////
1032   4      	        tempdata=0;
1033   4                                          }
1034   3                               }
1035   2                          }
1036   1              if( data_final_number!=0)data_final[datanumber++]=tempdata;
1037   1              EA=0;
1038   1              SBUF=0X7E;
1039   1              while(!TI);TI=0;
1040   1      	for(i=0;i<datanumber;i++)
1041   1      	{
1042   2      	    SBUF=data_final[i];
1043   2                  while(!TI);TI=0;
1044   2      	}
1045   1              EA=1;
1046   1      }
1047          //查询当前控制方案信息
C51 COMPILER V6.02  SETBID                                                                 09/28/2006 21:46:50 PAGE 18  

1048          bid_consch()
1049          {
1050   1        unsigned char *p;
1051   1        unsigned short check_temp;
1052   1        unsigned int i;
1053   1        unsigned int j;
1054   1        unsigned char beginbit=0;
1055   1        data_final_number=0;
1056   1        datanumber=0;
1057   1        answer_data[0]=h_address;
1058   1        answer_data[1]=l_address;
1059   1        answer_data[2]=0xcc;
1060   1        answer_data[3]=0xc1;
1061   1        answer_data[4]=0xc6;
1062   1      
1063   1        j=(checkdata[5]-1)*41;
1064   1        for(i=0;i<41;i++){
1065   2               answer_data[5+i]=XBYTE[0X5e82+i+j];

⌨️ 快捷键说明

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