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

📄 新建 文本文档.txt

📁 ASC 信号机控制程序,国内最先进的信号机控制程序
💻 TXT
字号:
 unsigned char *p;
  unsigned short check_temp;
  unsigned char i;
  unsigned char j;

  data_final_number=0;
  datanumber=0;
  //设置时间后用
  answer_data[0]=0x00;
  answer_data[1]=0x40;
  answer_data[2]=0xcc;
  answer_data[3]=0xc1;
  answer_data[4]=0xf0;
  answer_data[5]=0x20;  //支持的最大阶段表数
  answer_data[6]=0x20;  //阶段表中最大阶段数
  answer_data[7]=0x20;  //最大控制方案数
  answer_data[8]=0x20;  //最大日计划数
  answer_data[9]=0x16;  //日计划中最大时段数
  answer_data[10]=XBYTE[0X72e2];  //开机时间  小时 
  answer_data[11]=XBYTE[0X72e3];  //开机时间  分钟
  answer_data[12]=XBYTE[0X72e4];  //关机时间  小时
  answer_data[13]=XBYTE[0X72e5];  //关机时间  分钟
  answer_data[14]=XBYTE[0X72e6];  //关机后状态
  answer_data[15]=XBYTE[0X8000];  //路口编号高地址 
  answer_data[16]=XBYTE[0X8001];  //路口编号低位地址
 
  //应答
  p=&answer_data[0];
  check_temp=cal_crc(p,17);
  answer_data[17]=(check_temp>>8);    //crc
  answer_data[18]=check_temp;         //crc
  answer_data[19]=0x7e;

  for(i=0;i<20;i++){
        for(j=0;j<8;j++){
           add_bit=(answer_data[i]>>(7-j))%2;
           add_transparences();
           tempdata=tempdata+(add_bit<<(7-data_final_number++));
           if((add_transparence_valid==1) && (i!=19))data_final_number++;
           if(data_final_number==8){
                 data_final[datanumber++]=tempdata;
		 data_final_number=0;
		 tempdata=0;
                                    }
                         }
                    }
        if(data_final_number!=0)data_final[datanumber++]=tempdata;
        SBUF=0X7E;
        while(!TI);TI=0;
	for(i=0;i<datanumber;i++)
	{
	    SBUF=data_final[i];
            while(!TI);TI=0;
	}EA=0;
        head=0;tail=0;
         EA=1;


unsigned char tran_fpag(unsigned char flag)
{
  unsigned int i;
  unsigned char j;      

  for(i=0;i<6;i++){
      re_flagaddr=0XA030+5*i;
      flag=XBYTE[re_flagaddr];
      if(flag==0x87){
                    XBYTE[re_flagaddr]=0x01;
                    XBYTE[0XA01F]=data_address>>8;      //  此处data_address来自何处
                    XBYTE[0XA020]=data_address;
                    break;
                    }
                   }
   switch(flag){
     case 0x94:if(checkdata[5]==0){
                    XBYTE[data_address]=0x94;       //  标识
                    data_address++;if(data_address>0xa7f0)data_address=0xa080;
                    for(i=0;i<289;i++)XBYTE[data_address]=XBYTE[0X5000+i];
                             data_address++;if(data_address>0xa7f0)data_address=0xa080;
                                   }else{
                    XBYTE[data_address]=0x94;
                    data_address++;if(data_address>0xa7f0)data_address=0xa080;
                       for(i=0;i<289;i++)XBYTE[data_address]=XBYTE[0X5121+i];
                             data_address++;if(data_address>0xa7f0)data_address=0xa080;
                                         }
                data_address--;
                if(data_address<0xa080)data_address=0xa7f0;
                XBYTE[0XA01F]=data_address>>8;
                XBYTE[0XA020]=data_address;
                break;
     case 0x95: j=checkdata[5];
                j=(j-1)*98;
                XBYTE[data_address]=0x95;       //  标识
                data_address++;if(data_address>0xa7f0)data_address=0xa080;
                for(i=0;i<98;i++){
                             XBYTE[data_address]=XBYTE[0X5242+i+j];
                             data_address++;if(data_address>0xa7f0)data_address=0xa080;
                                   }
                data_address--;
                if(data_address<0xa080)data_address=0xa7f0;
                XBYTE[0XA01F]=data_address>>8;
                XBYTE[0XA020]=data_address;
                break;
     case 0x96: j=checkdata[5];
                j=(j-1)*41;
                XBYTE[data_address]=0x96;       //  标识
                data_address++;if(data_address>0xa7f0)data_address=0xa080;
                for(i=0;i<41;i++){
                             XBYTE[data_address]=XBYTE[0X5e82+i+j];
                             data_address++;if(data_address>0xa7f0)data_address=0xa080;
                                   }
                data_address--;
                if(data_address<0xa080)data_address=0xa7f0;
                XBYTE[0XA01F]=data_address>>8;
                XBYTE[0XA020]=data_address;
                break;
     case 0x97: break;
     case 0x98:j=checkdata[5];
                j=(j-1)*74;
                XBYTE[data_address]=0x96;       //  标识
                data_address++;if(data_address>0xa7f0)data_address=0xa080;
                for(i=0;i<41;i++){
                             XBYTE[data_address]=XBYTE[0X63a2+i+j];
                             data_address++;if(data_address>0xa7f0)data_address=0xa080;
                                   }
                data_address--;
                if(data_address<0xa080)data_address=0xa7f0;
                XBYTE[0XA01F]=data_address>>8;
                XBYTE[0XA020]=data_address;
                break;
     case 0x99: XBYTE[data_address]=0x99;       //  标识
                data_address++;if(data_address>0xa7f0)data_address=0xa080;
                for(i=0;i<60;i++){
                             XBYTE[data_address]=XBYTE[0X6ce2+i];
                             data_address++;if(data_address>0xa7f0)data_address=0xa080;
                                   }
                data_address--;
                if(data_address<0xa080)data_address=0xa7f0;
                XBYTE[0XA01F]=data_address>>8;
                XBYTE[0XA020]=data_address;
                break;
     case 0x9a: break;
     case 0x9b: break;
     case 0x9c:break;
     default:break;
            }
     return 0;

}

⌨️ 快捷键说明

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