📄 sfj1.c
字号:
receivebuf[7]=(totalmoney-receivebuf[4]*10000-receivebuf[5]*1000-receivebuf[6]*100)/10;
receivebuf[8]=totalmoney%10;
earnmoney=earnmoneytemp;
earnmoney=earnmoney+(ulong)(totalmoney);
EA=0;
ACC=STUS;
while(ACC2!=1) {ACC=STUS; }
TXBID0=0x80|nodeaddress;
TXBID1=0x08;
TXBDATA0=nodeaddress;
TXBDATA1=0x56;
TXBDATA2=receivebuf[4];
TXBDATA3=receivebuf[5];
TXBDATA4=receivebuf[6];
TXBDATA5=receivebuf[7];
TXBDATA6=receivebuf[8];
TXBDATA7=0;
COMD=0x01;
EA=1;
receiveflag=2;
keydoflag=0;
havemoney=0;
cancelstatus=0;
for(i=0;i<13;i++)
inputdata[i]=0;
write728x(0x14,0x3f);
write728x(0x14,0xbf);
}
}
else if(receiveflag!=3)
{
if(firstnumflag==0)
{inputmoney();
receivebuf[0]=setmoney/256;
receivebuf[1]=setmoney-(receivebuf[0]*256);
if(machinestatus==5)
{pointoff();
ISendStr(0xa0,2,&receivebuf,2);
spendmoney=setmoney;
dispmoney();
pointbit=1;
behindnum=0;
firstnumflag=1;
for(i=4;i<9;i++)
receivebuf[i]=0;
}
else if(machinestatus==3)
{ramaddress=10+(currentkind*2);
ISendStr(0xa0,ramaddress,&receivebuf,2);
displaybuf[0]=0x0d; displaybuf[1]=0x13; displaybuf[2]=0x2f; displaybuf[3]=0x3f;
repeatdisplay();
for(i=0;i<16;i++)
write728x(0x14,displaybuf[i]);
flashflag=1;
pointon();
enableauto=0;
}
}
}
if(receiveflag==3 && kindmoney>0)
{
earnmoney=earnmoneytemp;
earnmoney=earnmoney+kindmoney;
receivebuf[4]=kindmoney/10000;
receivebuf[5]=(kindmoney-receivebuf[4]*10000)/1000;
receivebuf[6]=(uchar)((kindmoney-receivebuf[4]*10000-receivebuf[5]*1000)/100);
receivebuf[7]=(uchar)((kindmoney-receivebuf[4]*10000-receivebuf[5]*1000-receivebuf[6]*100)/10);
receivebuf[8]=(uchar)(kindmoney%10);
EA=0;
ACC=STUS;
while(ACC2!=1) {ACC=STUS; }
TXBID0=0x80|nodeaddress;
TXBID1=0x08;
TXBDATA0=nodeaddress;
TXBDATA1=0x56;
TXBDATA2=receivebuf[4];
TXBDATA3=receivebuf[5];
TXBDATA4=receivebuf[6];
TXBDATA5=receivebuf[7];
TXBDATA6=receivebuf[8];
TXBDATA7=0x00;
COMD=0x01;
EA=1;
receiveflag=2;
kindmoney=0;
cancelstatus=0;
havemoney=0;
}
if((searchflag==1)&&(clearflag==1))
{searchflag=0;
pointoff();
receivebuf[0]=0;
receivebuf[1]=0;
receivebuf[2]=0;
ramaddress=0xd0;
ISendStr(0xa0,ramaddress,&receivebuf,3);
displaybuf[0]=0x0d;
displaybuf[1]=0x1a;
displaybuf[2]=0x2f;
displaybuf[3]=0x3f;
displaybuf[4]=0x4f;
displaybuf[5]=0x50;
displaybuf[6]=0x60;
displaybuf[7]=0x70;
repeatdisplay();
for(i=0;i<16;i++)
write728x(0x14,displaybuf[i]);
earnmoney=0;
earnmoneytemp=0;
ALARM=1;
flashflag=0;
Rst_Wdog();
for(i=0;i<3;i++)
{for(delayl=0;delayl<25000;delayl++) ;
Rst_Wdog();
}
}
}
else if(keyvalue==33)
{
if((pointbit==1)&&(flashflag==0))
{pointbit=0;
behindnum=0;
pointnum3=0;
pointoff();
if((receivebuf[3]==0x0a)&&(machinestatus==4))
{receivebuf[8]=receivebuf[8]|0x80;
}
else if(receivebuf[4]==0x0a)
{receivebuf[8]=receivebuf[8]|0x80;
}
else
{firstnumflag=0;
for(dispshift=4;dispshift<9;dispshift++) receivebuf[dispshift]=0x0f;
write728x(0x14,0x2a);
write728x(0x14,0xaa);
write728x(0x14,0x30+receivebuf[4]);
write728x(0x14,0x40+receivebuf[5]);
write728x(0x14,0x50+receivebuf[6]);
write728x(0x14,0x60+receivebuf[7]);
write728x(0x14,0xb0+receivebuf[4]);
write728x(0x14,0xc0+receivebuf[5]);
write728x(0x14,0xd0+receivebuf[6]);
write728x(0x14,0xe0+receivebuf[7]);
receivebuf[8]=0x80;
write728x(0x14,0x70);
write728x(0x14,0xf0);
cancelstatus=1;
}
if(machinestatus==4)
moneyflag=1;
write728x(0x18,0x3f);
write728x(0x18,0x7f);
}
}
else if(flashflag==0)
{numkey();
}
ALARM=1;
EA=1;
TR0=1;
}
if((SYS_STATE==0x11)&&(enablesend==1))
{EA=0;
ALARM=1;
X_Sum=Rec_xorsum(Serial_Buf,Serial_Buf_NumSum);
if(Serial_Buf[Serial_Buf_NumSum]==X_Sum)
{ Sendbuf[0]=0xf0;
Sendbuf[1]=0x02;
Sendbuf[2]=0x02;
Sendbuf[3]=0xf9;
send(Sendbuf,4);
ALARM=1;
pointoff();
flashflag=0;
T_Cnt=0;
enablesend=0;
ES=0;
TR1=0;
timeflag=0;
for(j=0;j<5;j++)
Num_Buf[j]=(Serial_Buf[2*j]<<4)|Serial_Buf[2*j+1];
sendorder=0x53;
cansend();
for(delayl=0;delayl<5000;delayl++) ;
Rst_Wdog();
receiveflag=1;
}
SYS_STATE=0;
enablesend=0;
EX0=1;
EA=1;
}
if(receiveflag==1)
{EA=0;
ACC=STUS;
if(ACC0==1)
{
canreceive();
COMD=0x0c;
ACC=STUS;
receiveflag=0;
if(ACC1==1)
{ACC=ACC&0xfd;
}
EA=1;
if(receivebuf[3]==0x55)
{ if(receivebuf[4]==0x0a){receivebuf[4]=0;}
if(receivebuf[5]==0x0a){receivebuf[5]=0;}
if(receivebuf[6]==0x0a){receivebuf[6]=0;}
if(receivebuf[7]==0x0a){receivebuf[7]=0;}
if(receivebuf[8]==0x0a){receivebuf[8]=0;}
havemoney=receivebuf[4]*10000+receivebuf[5]*1000+receivebuf[6]*100+receivebuf[7]*10+receivebuf[8];
if((receivebuf[5]==0)&&(receivebuf[4]==0)) receivebuf[5]=0x0f;
if(receivebuf[4]==0) receivebuf[4]=0x0f;
displaybuf[3]=0x30+receivebuf[4]; displaybuf[4]=0x40+receivebuf[5]; displaybuf[5]=0x50+receivebuf[6];
displaybuf[6]=0x60+receivebuf[7]; displaybuf[7]=0x70+receivebuf[8];
repeatdisplay();
for(i=0;i<16;i++)
write728x(0x14,displaybuf[i]);
write728x(0x18,0x2f);write728x(0x18,0x6f);
keydoflag=1;
workflag=1;
for(i=4;i<9;i++)
receivebuf[i]=0;
if(machinestatus==3)
{firstnumflag=1;
kindmoney=0;
receiveflag=3;
cancelstatus=0;
}
else if(machinestatus==4)
{firstnumflag=1;
totalmoney=0;
inputpoint=0;
cancelstatus=0;
for(i=0;i<13;i++)
inputdata[i]=0;
countok=1;
}
else if(machinestatus==5)
{
receivebuf[4]=spendmoney/10000;
receivebuf[5]=(spendmoney-receivebuf[4]*10000)/1000;
receivebuf[6]=(spendmoney-receivebuf[4]*10000-receivebuf[5]*1000)/100;
receivebuf[7]=(spendmoney-receivebuf[4]*10000-receivebuf[5]*1000-receivebuf[6]*100)/10;
receivebuf[8]=spendmoney%10;
EA=0;
ACC=STUS;
while(ACC2!=1) {ACC=STUS; }
TXBID0=0x80|nodeaddress;
TXBID1=0x08;
TXBDATA0=nodeaddress;
TXBDATA1=0x56;
TXBDATA2=receivebuf[4];
TXBDATA3=receivebuf[5];
TXBDATA4=receivebuf[6];
TXBDATA5=receivebuf[7];
TXBDATA6=receivebuf[8];
TXBDATA7=0x00;
COMD=0x01;
EA=1;
receiveflag=2;
for(i=0;i<3;i++)
{for(delayl=0;delayl<20000;delayl++) ;
Rst_Wdog();
}
}
}
else if(receivebuf[3]==0x54)
{receivebuf[8]=receivebuf[4]&0x0f;
displaybuf[3]=0x3f; displaybuf[4]=0x4f; displaybuf[5]=0x5b;
displaybuf[6]=0x6a; displaybuf[7]=0x70+receivebuf[8];
repeatdisplay();
for(i=0;i<16;i++)
write728x(0x14,displaybuf[i]);
receiveflag=0;
flashcount=1;
SYS_STATE=0;
pointbit=1;
firstnumflag=1;
ALARM=0;
for(delayl=0;delayl<20000;delayl++) ;
Rst_Wdog();
ALARM=1;
if(machinestatus==5)
{
dispmoney();
enablesend=1;
ES=1;
TR1=1;
}
else {timeflag=1; TR0=1;}
}
}
}
else if(receiveflag==2)
{for(delayl=0;delayl<25000;delayl++) ;
Rst_Wdog();
EA=0;
ACC=STUS;
if(ACC0==1)
{canreceive();
COMD=0x04;
ACC=STUS;
receiveflag=0;
workflag=0;
if(ACC1==1)
{ACC=ACC&0xfd;
}
EA=1;
if(receivebuf[3]==0x57)
{ if(receivebuf[4]==0x0a){receivebuf[4]=0;}
if(receivebuf[5]==0x0a){receivebuf[5]=0;}
if(receivebuf[6]==0x0a){receivebuf[6]=0;}
if(receivebuf[7]==0x0a){receivebuf[7]=0;}
if(receivebuf[8]==0x0a){receivebuf[8]=0;}
pointoff();
if(receivebuf[9]!=0x30)
{receivebuf[8]=receivebuf[9]&0x0f;
displaybuf[3]=0x3f; displaybuf[4]=0x4f; displaybuf[5]=0x5b;
displaybuf[6]=0x6a; displaybuf[7]=0x70+receivebuf[8];
repeatdisplay();
for(i=0;i<16;i++)
write728x(0x14,displaybuf[i]);
ALARM=0;
}
else
{if((receivebuf[5]==0)&&(receivebuf[4]==0)) receivebuf[5]=0x0f;
if(receivebuf[4]==0) receivebuf[4]=0x0f;
displaybuf[3]=0x30+receivebuf[4]; displaybuf[4]=0x40+receivebuf[5]; displaybuf[5]=0x50+receivebuf[6];
displaybuf[6]=0x60+receivebuf[7]; displaybuf[7]=0x70+receivebuf[8];
repeatdisplay();
for(i=0;i<16;i++)
write728x(0x14,displaybuf[i]);
write728x(0x18,0x2f);write728x(0x18,0x6f);
if(machinestatus==5)
{earnmoney=earnmoneytemp;
earnmoney=earnmoney+(ulong)(spendmoney);
}
earnmoneytemp=earnmoney;
receivebuf[0]=(uchar)(earnmoneytemp/65536);
earnmoneytemp1=(uint)(earnmoneytemp-receivebuf[0]*65536);
receivebuf[1]=(uchar)(earnmoneytemp1/256);
receivebuf[2]=(uchar)(earnmoneytemp1-receivebuf[1]*256);
ramaddress=0xd0;
ISendStr(0xa0,ramaddress,&receivebuf,3);
}
for(delayl=0;delayl<25000;delayl++) ;
Rst_Wdog();
ALARM=1;
}
receiveflag=0;
flashcount=1;
if(machinestatus==5)
{pointbit=1;
firstnumflag=1;
for(delayl=0;delayl<25000;delayl++) ; for(delayl=0;delayl<20000;delayl++) ;
Rst_Wdog();
write728x(0x14,0x3f);
write728x(0x14,0xbf);
write728x(0x18,0xaf);write728x(0x18,0xef);
dispmoney();
enablesend=1;
ES=1;
TR1=1;
for(delayl=0;delayl<15000;delayl++) ;
}
else
{timeflag=1;
TR0=1;
}
}
}
}
}
void dispmoney(void)
{ lightflag=0;
displaybuf[3]=(uchar)(spendmoney/10000);
displaybuf[4]=(uchar)((spendmoney-displaybuf[3]*10000)/1000);
displaybuf[5]=(uchar)((spendmoney-displaybuf[3]*10000-displaybuf[4]*1000)/100);
displaybuf[6]=(uchar)((spendmoney-displaybuf[3]*10000-displaybuf[4]*1000-displaybuf[5]*100)/10);
displaybuf[7]=(uchar)(spendmoney%10);
if((displaybuf[3]==0)&&(displaybuf[4]==0)) displaybuf[4]=0x0f;
if(displaybuf[3]==0) displaybuf[3]=0x0f;
if((displaybuf[6]==0)&&(displaybuf[7]==0))
{for(dispshift=7;dispshift>5;dispshift--)
{displaybuf[dispshift]=displaybuf[dispshift-2];
}
displaybuf[4]=0x0f;displaybuf[5]=0x0f;
write728x(0x18,0x3f); write728x(0x18,0x7f);
lightflag=1;
}
if((displaybuf[7]==0)&&(lightflag==0))
{for(dispshift=7;dispshift>3;dispshift--)
{displaybuf[dispshift]=displaybuf[dispshift-1];
}
if (lightflag==0)
{write728x(0x18,0x37); write728x(0x18,0x77);
lightflag=1;
}
}
if (lightflag==0) { write728x(0x18,0x2f); write728x(0x18,0x6f);}
displaybuf[3]=0x30+displaybuf[3]; displaybuf[4]=0x40+displaybuf[4]; displaybuf[5]=0x50+displaybuf[5];
displaybuf[6]=0x60+displaybuf[6]; displaybuf[7]=0x70+displaybuf[7];
repeatdisplay();
for(i=0;i<16;i++)
write728x(0x14,displaybuf[i]);
}
void numkey(void)
{if((machinestatus==5)||(flagkeyd==1))
{
if(numkeyvalue<10)
{for(j=0;j<8;j++)
{write728x(0x18,pointoffvalue[j]);
}
receivebuf[4]=0x0a;
if(firstnumflag==1)
{firstnumflag=0;
for(dispshift=5;dispshift<9;dispshift++) receivebuf[dispshift]=0x0f;
}
else
{if(pointbit==0) behindnum=behindnum+1;
if((behindnum<3)||(pointbit==1))
{for(dispshift=5;dispshift<9;dispshift++)
receivebuf[dispshift-1]=receivebuf[dispshift];
}
}
receivebuf[8]=numkeyvalue;
for(i=5;i<9;i++)
{if((receivebuf[i]&0x80)!=0x00)
{write728x(0x18,pointonvalue[i-5]);
write728x(0x18,pointonvalue[i-1]);
}
}
displaybuf[3]=0x30+(receivebuf[4]&0x0f); displaybuf[4]=0x40+(receivebuf[5]&0x0f); displaybuf[5]=0x50+(receivebuf[6]&0x0f);
displaybuf[6]=0x60+(receivebuf[7]&0x0f); displaybuf[7]=0x70+numkeyvalue;
repeatdisplay();
for(i=0;i<16;i++)
write728x(0x14,displaybuf[i]);
numkeyvalue=20;
}
}
else if((machinestatus==4)&&(keydoflag==1))
{
cancelstatus=1;
if(numkeyvalue<10)
{pointoff();
if(firstnumflag==1)
{firstnumflag=0;
for(dispshift=4;dispshift<9;dispshift++) receivebuf[dispshift]=0x0f;
}
else
{if(pointbit==0) behindnum=behindnum+1;
if((behindnum<3)||(pointbit==1))
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -