📄 新建 文本文档.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 + -