📄 sfj1.lst
字号:
1002 3 displaybuf[6]=0x60+(receivebuf[7]&0x0f); displaybuf[7]=0x70+numkeyvalue;
1003 3 repeatdisplay();
1004 3 for(i=0;i<16;i++)
1005 3 write728x(0x14,displaybuf[i]);
1006 3 numkeyvalue=20;
1007 3 }
1008 2 }
1009 1 else if((machinestatus==4)&&(keydoflag==1))
1010 1 {
1011 2 cancelstatus=1;
1012 2 if(numkeyvalue<10)
1013 2 {pointoff();
1014 3 if(firstnumflag==1)
1015 3 {firstnumflag=0;
1016 4 for(dispshift=4;dispshift<9;dispshift++) receivebuf[dispshift]=0x0f;
1017 4 }
1018 3 else
1019 3 {if(pointbit==0) behindnum=behindnum+1;
1020 4 if((behindnum<3)||(pointbit==1))
1021 4 {for(dispshift=5;dispshift<9;dispshift++)
1022 5 receivebuf[dispshift-1]=receivebuf[dispshift];
1023 5 }
1024 4 }
1025 3 receivebuf[3]=0x0a;
1026 3 receivebuf[8]=numkeyvalue;
1027 3 for(i=4;i<9;i++)
1028 3 {if((receivebuf[i]&0x80)!=0x00)
1029 4 {write728x(0x18,pointonvalue[i-5]);
1030 5 write728x(0x18,pointonvalue[i-1]);
1031 5 }
1032 4 }
1033 3 displaybuf[2]=0x20+(receivebuf[3]&0x0f);
1034 3 displaybuf[3]=0x30+(receivebuf[4]&0x0f); displaybuf[4]=0x40+(receivebuf[5]&0x0f); displaybuf[5]=0x50+(re
-ceivebuf[6]&0x0f);
1035 3 displaybuf[6]=0x60+(receivebuf[7]&0x0f); displaybuf[7]=0x70+numkeyvalue;
1036 3 repeatdisplay();
C51 COMPILER V7.50 SFJ1 04/01/2007 13:44:18 PAGE 18
1037 3 for(i=0;i<16;i++)
1038 3 write728x(0x14,displaybuf[i]);
1039 3 numkeyvalue=20;
1040 3 }
1041 2 else if((keyvalue==20)&&(flagkeyd==0))
1042 2 {inputmoney();
1043 3 firstnumflag=1;
1044 3 pointbit=1;
1045 3 inputdata[inputpoint]=setmoney;
1046 3 inputpoint=inputpoint+1;
1047 3 inputdata[inputpoint]=1;
1048 3 inputpoint=inputpoint+1;
1049 3 }
1050 2 else if((keyvalue==28)&&(flagkeyd==0))
1051 2 {inputmoney();
1052 3 firstnumflag=1;
1053 3 pointbit=1;
1054 3 inputdata[inputpoint]=setmoney;
1055 3 inputpoint=inputpoint+1;
1056 3
1057 3 }
1058 2 }
1059 1 else if(machinestatus==3)
1060 1 {if(enableauto!=0)
1061 2 {for(j=0;j<8;j++)
1062 3 {write728x(0x18,pointoffvalue[j]);
1063 4 }
1064 3 }
1065 2 if(enableauto==1)
1066 2 {enableauto=2;
1067 3 currentkind=numkeyvalue;
1068 3 ramaddress=10+(currentkind*2);
1069 3 pointbit=1;
1070 3 firstnumflag=1;
1071 3 IRcvStr(0xa0,ramaddress,&receivebuf,2);
1072 3 spendmoney=(uint)(receivebuf[0]*256+receivebuf[1]);
1073 3
1074 3 dispmoney();
1075 3 write728x(0x14,0x2f);
1076 3 write728x(0x14,0x30+numkeyvalue);
1077 3 write728x(0x14,0xaf);
1078 3 write728x(0x14,0xb0+numkeyvalue);
1079 3 firstnumflag=1;
1080 3 }
1081 2 else if(enableauto==2)
1082 2 {receivebuf[4]=0x0a;
1083 3 if(firstnumflag==1)
1084 3 {firstnumflag=0;
1085 4 for(dispshift=5;dispshift<9;dispshift++) receivebuf[dispshift]=0x0f;
1086 4 }
1087 3
1088 3 else
1089 3 {if(pointbit==0) pointnum3=pointnum3+1;
1090 4 if((pointnum3<3)||(pointbit==1))
1091 4 {for(dispshift=6;dispshift<9;dispshift++)
1092 5 receivebuf[dispshift-1]=receivebuf[dispshift];
1093 5 }
1094 4 }
1095 3
1096 3 receivebuf[8]=numkeyvalue;
1097 3 for(i=5;i<9;i++)
1098 3 {if((receivebuf[i]&0x80)!=0x00)
C51 COMPILER V7.50 SFJ1 04/01/2007 13:44:18 PAGE 19
1099 4 {write728x(0x18,pointonvalue[i-5]);
1100 5 write728x(0x18,pointonvalue[i-1]);
1101 5 }
1102 4 }
1103 3 displaybuf[2]=0x2f;
1104 3 displaybuf[3]=0x30+(receivebuf[4]&0x0f); displaybuf[4]=0x40+(receivebuf[5]&0x0f); displaybuf[5]=0x50
-+(receivebuf[6]&0x0f);
1105 3 displaybuf[6]=0x60+(receivebuf[7]&0x0f); displaybuf[7]=0x70+numkeyvalue;
1106 3 repeatdisplay();
1107 3 for(i=0;i<16;i++)
1108 3 write728x(0x14,displaybuf[i]);
1109 3 }
1110 2 if(receiveflag==3)
1111 2 {cancelstatus=1;
1112 3 pointbit=0;
1113 3 currentkind=numkeyvalue;
1114 3 ramaddress=10+(currentkind*2);
1115 3 IRcvStr(0xa0,ramaddress,&receivebuf,2);
1116 3 kindmoney=kindmoney+(uint)(receivebuf[0]*256+receivebuf[1]);
1117 3 receivebuf[5]=(uchar)(kindmoney/1000);
1118 3 receivebuf[6]=(uchar)((kindmoney-receivebuf[5]*1000)/100);
1119 3 receivebuf[7]=(uchar)((kindmoney-receivebuf[5]*1000-receivebuf[6]*100)/10);
1120 3 receivebuf[8]=(uchar)(kindmoney%10);
1121 3
1122 3 write728x(0x18,0x2f);write728x(0x18,0x6f);
1123 3 if (receivebuf[5]==0)
1124 3 receivebuf[5]=0x0f;
1125 3 displaybuf[3]=0x3f; displaybuf[4]=0x40+receivebuf[5]; displaybuf[5]=0x50+receivebuf[6];
1126 3 displaybuf[6]=0x60+receivebuf[7]; displaybuf[7]=0x70+receivebuf[8];
1127 3 repeatdisplay();
1128 3 for(i=0;i<16;i++)
1129 3 write728x(0x14,displaybuf[i]);
1130 3 }
1131 2 }
1132 1 }
1133 void inputmoney(void)
1134 { pointwhere=8;
1135 1 for(i=4;i<9;i++)
1136 1 {if((receivebuf[i]&0x80)!=0x00)
1137 2 {pointwhere=i;
1138 3 receivebuf[i]=receivebuf[i]&0x7f;
1139 3 }
1140 2 if(receivebuf[i]==0x0f) receivebuf[i]=0;
1141 2 }
1142 1 if((machinestatus==3)||(machinestatus==5)) receivebuf[4]=0;
1143 1 switch (pointwhere)
1144 1 { case 8: setmoney=(uint)(receivebuf[6]*10000+receivebuf[7]*1000+receivebuf[8]*100);
1145 2 break;
1146 2 case 7: setmoney=receivebuf[5]*10000+receivebuf[6]*1000+receivebuf[7]*100+receivebuf[8]*10;
1147 2 break;
1148 2 case 6: setmoney=receivebuf[4]*10000+receivebuf[5]*1000+receivebuf[6]*100+receivebuf[7]*10+receive
-buf[8];
1149 2 break;
1150 2 }
1151 1
1152 1 }
1153
1154 uchar Rec_xorsum(uchar buf[],uchar len)
1155 { uchar data i,sum;
1156 1 sum=buf[0];
1157 1 for(i=1;i<len;i++)
1158 1 sum=sum^buf[i];
C51 COMPILER V7.50 SFJ1 04/01/2007 13:44:18 PAGE 20
1159 1 sum=sum&0x0f;
1160 1 return sum;
1161 1 }
1162 void send(uchar buf[],uchar len)
1163 {
1164 1 uchar data i ;
1165 1 EA=0;
1166 1 for(i=0;i<len;i++)
1167 1 { TI=0;
1168 2 SBUF=buf[i];
1169 2 while(!TI);
1170 2 }
1171 1 TI=0;
1172 1 EA=1;
1173 1 }
1174 void cansend(void)
1175 { EA=0;
1176 1 ACC=STUS;
1177 1
1178 1 while(ACC2!=1) {
1179 2
1180 2 ACC=STUS; }
1181 1 TXBID0=0x80|nodeaddress;
1182 1 TXBID1=0x08;
1183 1 TXBDATA0=nodeaddress;
1184 1 TXBDATA1=sendorder;
1185 1 TXBDATA2=Num_Buf[1];
1186 1 TXBDATA3=Num_Buf[2];
1187 1 TXBDATA4=Num_Buf[3];
1188 1 TXBDATA5=Num_Buf[4];
1189 1 TXBDATA6=Serial_Buf_NumSum;
1190 1 TXBDATA7=0x00;
1191 1 COMD=0x01;
1192 1 EA=1;
1193 1
1194 1 }
1195 void canreceive(void)
1196 { receivebuf[0]=RXR0;
1197 1 receivebuf[1]=RXR1;
1198 1 receivebuf[2]=RXRDATA1;
1199 1 receivebuf[3]=RXRDATA2;
1200 1 receivebuf[4]=RXRDATA3;
1201 1 receivebuf[5]=RXRDATA4;
1202 1 receivebuf[6]=RXRDATA5;
1203 1 receivebuf[7]=RXRDATA6;
1204 1 receivebuf[8]=RXRDATA7;
1205 1 receivebuf[9]=RXRDATA8;
1206 1
1207 1 }
1208 void timer0() interrupt 1 using 0
1209 {
1210 1
1211 1 TH0=0x3c;
1212 1 TL0=0xb0;
1213 1 inttimer0 =1;
1214 1 }
1215
1216 void Receive_Serial() interrupt 4 using 2
1217 {EA=0;
1218 1
1219 1 if(RI)
1220 1 { Serial_Buf[Serial_Buf_Num]=SBUF;
C51 COMPILER V7.50 SFJ1 04/01/2007 13:44:18 PAGE 21
1221 2 RI=0;
1222 2 Serial_Buf_Num++;
1223 2 if((!Find_Head)&&(Serial_Buf_Num==1))
1224 2 { if(Serial_Buf[0]==0xf0)
1225 3 { TR0=0;
1226 4 EX0=0;
1227 4 Serial_Buf_Num=0;
1228 4 Serial_Buf_NumSum=0;
1229 4 Find_Head=1;//TRUE;
1230 4 ALARM=0;
1231 4 }
1232 3
1233 3 else {Serial_Buf[0]=7; Serial_Buf_Num=0;}
1234 3
1235 3 }
1236 2 else
1237 2 {
1238 3 if((Serial_Buf_Num>1)&&(Find_Head))
1239 3 {
1240 4 if(Serial_Buf[Serial_Buf_Num-1]==0xF9)
1241 4 {
1242 5 SYS_STATE=0x11;
1243 5 Serial_Buf_NumSum=Serial_Buf_Num-2;
1244 5 Serial_Buf_Num=0;
1245 5 enablesend=1;
1246 5 Find_Head=0;
1247 5
1248 5 ALARM=1;
1
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -