📄 txd232.c
字号:
break;
case 8:
sendlong=0xe7;
l=ppop+3;
l1=ppop+4;
tempaddr=((Read_256(0x7800+l)-1)%2)*0x80000+((Read_256(0x7800+l1)-1)%31)*0x3000;
f=0;
for(i=0;i<3;i++)
{
l=ppop+3+i;
l1=(Read_flash(tempaddr+i)&0x0f)+(((unsigned char)Read_flash(tempaddr+i)>>4)*10);
temp=Read_256(0x7800+l);
if(temp==l1)
{
f++;
}
}
if(f==3)
{
for(i=0;i<3;i++)
{
tempcom[i]=Read_flash(tempaddr+i);
}
Send(1,tempaddr+0x2800,3);
}
else
{
Trcom();
}
break;
case 9:
sendlong=0x6f;
l=ppop+3;
l1=ppop+4;
tempaddr=((Read_256(0x7800+l)-1)%2)*0x80000+((Read_256(0x7800+l1)-1)%31)*0x3000;
f=0;
for(i=0;i<3;i++)
{
l=ppop+3+i;
l1=(Read_flash(tempaddr+i)&0x0f)+(((unsigned char)Read_flash(tempaddr+i)>>4)*10);
temp=Read_256(0x7800+l);
if(temp==l1)
{
f++;
}
}
if(f==3)
{
for(i=0;i<3;i++)
{
tempcom[i]=Read_flash(tempaddr+i);
}
Send(1,tempaddr+0x2900,3);
}
else
{
Trcom();
}
break;
case 0x0a:
l=ppop+4;
l1=ppop+5;
tempaddr=((Read_256(0x7800+l)-1)%2)*0x80000+((Read_256(0x7800+l1)-1)%31)*0x3000;
f=0;
for(i=0;i<3;i++)
{
l=ppop+3+i;
l1=(Read_flash(tempaddr+i)&0x0f)+(((unsigned char)Read_flash(tempaddr+i)>>4)*10);
temp=Read_256(0x7800+l);
if(temp==l1)
{
f++;
}
}
l=ppop+2;
tempcom[0]=Read_256(0x7800+l);
if(f==3)
{
if(Read_flash2(tempaddr+0x2980)>=tempcom[0]*24)
{
sendlong=0x8a;
}
else
{
sendlong=(tempcom[0]*24-Read_flash2(tempaddr+0x2980))*8+4;
}
for(i=0;i<3;i++)
{
tempcom[i+1]=Read_flash(tempaddr+i);
}
Send(1,tempaddr+0x2982+tempcom[0]*24,4);
}
else
{
Trcom();
}
break;
case 0x12:
temp3=Read256(0x7800+ppop+2);
Write_256(0x6508+i,temp3);
temp3=Inttobcd2(temp3);
Write_flash(0xdd008,temp3);
temp=Read_256(0x7800+ppop);
if((temp&0x80)==0x80)
{
sendlong=0x02;
Send(0,0x6508,0);
}
else
{
Trcom();
}
break;
case 0x13:
temp3=Read256(0x7802+ppop);
Write_256(0x650a+i,temp3);
temp3=Inttobcd2(temp3);
Write_flash(0xdd00a,temp3);
temp3=Read256(0x7804+ppop);
Write_256(0x650c+i,temp3);
temp3=Inttobcd2(temp3);
Write_flash(0xdd00c,temp3);
temp=Read_256(0x7800+ppop);
if((temp&0x80)==0x80)
{
sendlong=0x04;
Send(0,0x650a,0);
}
else
{
Trcom();
}
break;
case 0x14:
temp3=Read256(0x7802+ppop);
Write_256(0x650e+i,temp3);
temp3=Inttobcd2(temp3);
Write_flash(0xdd00e,temp3);
temp=Read_256(0x7800+ppop);
if((temp&0x80)==0x80)
{
sendlong=0x02;
Send(0,0x650e,0);
}
else
{
Trcom();
}
break;
case 0x15:
temp3=Read256(0x7802+ppop);
Write_256(0x6510+i,temp3);
temp3=Inttobcd2(temp3);
Write_flash(0xdd010,temp3);
temp3=Read256(0x7804+ppop);
Write_256(0x6512+i,temp3);
Write_flash(0xdd012,temp3);
temp=Read_256(0x7800+ppop);
if((temp&0x80)==0x80)
{
sendlong=0x04;
Send(0,0x6510,0);
}
else
{
Trcom();
}
case 0x18:
for(i=0;i<6;i++)
{
l=ppop+i+2;
temp=Read_256(0x7800+l);
kalendar_clk[i]=(unsigned char)(((temp/10)%10)*16)+(unsigned char)(temp%10);
}
Inittime();
temp=Read_256(0x7800+ppop);
if((temp&0x80)==0x80)
{
sendlong=0x08;
for (i=0;i<6;i++)
{
tempcom[i]=((unsigned char)kalendar_clk[i])/16*10+(kalendar_clk[i]&0x0f);
}
tempcom[6]=0;
tempcom[7]=0;
Send(0,0x651b,8);
}
else
{
Trcom();
}
break;
case 0x19:
temp3=Read256(0x7802+ppop)*Read256(0x6508);
Write256(0x6516+i,temp3);
temp3=Inttobcd2(temp3);
Write_flash2(0xdd016,temp3);
temp=Read_256(0x7800+ppop);
if((temp&0x80)==0x80)
{
sendlong=0x02;
Send(0,0x6516,0);
}
else
{
Trcom();
}
break;
case 0x1a:
temp3=Read256(0x7802+ppop)*Read256(0x6508);
Write256(0x6519+i,temp3);
temp3=Inttobcd2(temp3);
Write_flash(0xdd019,temp3);
temp=Read_256(0x7800+ppop);
if((temp&0x80)==0x80)
{
sendlong=0x02;
Send(0,0x6519,0);
}
else
{
Trcom();
}
break;
case 0x1b:
l=ppop+6;
temp=Read_256(0x7800+l);
Write_85834(20+(temp-1)*4,Read256_4(0x7802+ppop));
temp=Read_256(0x7800+ppop);
if((temp&0x80)==0x80)
{
temp=Read_256(0x7800+l);
sendlong=0x08;
for(i=0;i<4;i++)
{
tempcom[i]=Read_8583(20+(temp-1)*4+i);
}
tempcom[4]=temp;
tempcom[5]=0;
tempcom[6]=0;
tempcom[7]=0;
Send(0,0x6519,8);
}
else
{
Trcom();
}
break;
case 0x1f:
temp3=Read256(0x7802+ppop);
Write_256(0x6518+i,(unsigned char)temp3);
temp3=Inttobcd2(temp3);
Write_flash(0xdd018,(unsigned char)temp3);
temp=Read_256(0x7800+ppop);
if((temp&0x80)==0x80)
{
sendlong=0x02;
tempcom[0]=Read_256(0x7800+ppop+2);
tempcom[1]=0;
Send(0,0x6518,2);
}
else
{
Trcom();
}
break;
case 0x21:
l=ppop+i+2;
temp=Read_256(0x7800+l);
for(i=0;i<6;i++)
{
temp2=(temp/10)%10;
Write_256(0x64b6+i*2,temp2);
temp2=(temp%10);
Write_256(0x64b7+i*2,temp2);
}
for(i=0;i<6;i++)
{
Write_flash(0xdd156+i*2,((temp/10)%10));
Write_flash(0xdd157+i*2,(temp%10));
}
temp=Read_256(0x7800+ppop);
if((temp&0x80)==0x80)
{
sendlong=0x00;
Send(0,0x7800,0);
}
else
{
Trcom();
}
break;
case 0x22:
Sendothersys();
break;
case 0x23:
Sendothersys();
break;
default:
Trcom();
break;
}
}
//////////////////////////////////////
void Sendcom1(unsigned char temp)
{
int i=0;
TXBUF1=temp;
while((IFG2&UTXIFG1)==0)
{
if (i==0xfff) break;
i++;
}
}
//////////////////////////////////////
void Send(char type,long sendaddr,char count)
{
unsigned char i,temp,temp1,temp2;
Sendcom(0xfe);
Sendcom(0xfe);
Sendcom(0xfe);
Sendcom(0xfe);
Sendcom(0x68);
temp1=0x68;
for (i=0;i<6;i++)
{
Sendcom(id[i]);
temp1=temp1+id[i];
}
Sendcom(0x68);
temp1=temp1+0x68;
temp2=Read_256(0x7800+ppop);
Sendcom(temp2);
temp1=temp1+temp2;
Sendcom(sendlong);
temp1=temp1+sendlong;
for(i=0;i<count;i++)
{
Sendcom(tempcom[i]);
temp1=temp1+tempcom[i];
}
for (i=0;i<sendlong-count;i++)
{
temp=Selecttype(type,sendaddr+i);
Sendcom(temp);
temp1=temp1+temp;
}
Sendcom(temp1);
Sendcom(0x16);
Trcom();
}
//////////////////////////////////////
char Selecttype(char type,long sendaddr)
{
char temp;
if(type==0)
{
temp=Read_256((unsigned int)sendaddr);
}
else
{
temp=Read_flash(sendaddr);
}
return(temp);
}
//////////////////////////////////////
void Sendcom(unsigned char temp)
{
int i=0;
TXBUF0=temp;
while((IFG1&UTXIFG0)==0)
{
if (i==0xfff) break;
i++;
}
}
//////////////////////////////////////
unsigned char Cscala()
{
unsigned char i,temp1,l,ll,temp;
temp=Read_256(0x7800+ppop);
if ((temp&0x80)==0)
{
temp1=0xca;
}
else
{
temp1=0;
for(i=0;i<6;i++)
{
temp1=temp1+id[i];
}
temp1=temp1+0xd0;
}
temp1=temp1+(temp&0x7f);
ll=ppop+1;
temp=Read_256(0x7800+ll);
for (i=0;i<(temp+1);i++)
{
l=ppop+1+i;
temp=Read_256(0x7800+l);
temp1=temp1+temp;
}
return(temp1);
}
///////////////////////////////////////////
void Trcom()
{
unsigned char l,temp;
l=ppop+1;
temp=Read_256(0x7800+l);
recount=recount-temp-3;
ppop=ppop+temp+3;
reflag-=0x04;
}
//////////////////////////
void Trdelay(int l)
{
int i=0;
while(i<l)
{
i++;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -