📄 rs232.lst
字号:
191 2 }
192 1 }
193
194 VOID Print_Sold_Quantity(WORD temp)
195 {
196 1 INT8 data i;
197 1 BYTE temp_buf[6];
198 1 DWORD divisor=100000;
199 1 for(i=5;i>=0;i--)
200 1 {
201 2 temp_buf[i]=temp/divisor;
202 2 temp=temp-temp_buf[i]*divisor;
203 2 divisor=divisor/10;
204 2 }
205 1 for(i=2;i>=0;i--)
206 1 {
207 2 Record_buf[0]=temp_buf[i*2+1];
208 2 Record_buf[0]=Record_buf[0]<<4;
209 2 Record_buf[0]+=temp_buf[i*2];
210 2 Put_Byte(Record_buf[0]);
211 2 }
212 1 }
213
214 VOID Print_Sum_Price(DWORD temp)
215 {
216 1 INT8 data i;
217 1 BYTE temp_buf[8];
218 1 DWORD divisor=10000000;
219 1 for(i=7;i>=0;i--)
220 1 {
221 2 temp_buf[i]=temp/divisor;
222 2 temp=temp-temp_buf[i]*divisor;
223 2 divisor=divisor/10;
224 2 }
225 1 for(i=3;i>=0;i--)
226 1 {
227 2 Record_buf[0]=temp_buf[i*2+1];
228 2 Record_buf[0]=Record_buf[0]<<4;
229 2 Record_buf[0]+=temp_buf[i*2];
230 2 Put_Byte(Record_buf[0]);
231 2 }
232 1 }
233
234 VOID Print_Record(BYTE print_type)
235 {
236 1 switch(print_type)
237 1 {
238 2 case PW:
239 2 Put_Byte(0xb1);
240 2 Print_PLU_no(PLU_no);
241 2 Put_Byte(0xb2);
242 2 Print_Unit_Price(Unit_Price);
243 2 Put_Byte(0xb3);
244 2 Print_Weight(Weight);
245 2 Put_Byte(0xb4);
246 2 Put_Byte(0x00);
247 2 Put_Byte(0x00);
248 2 Put_Byte(0xb5);
C51 COMPILER V7.50 RS232 05/27/2006 14:01:03 PAGE 12
249 2 Print_Total_Price(Total_Price);
250 2 break;
251 2 case PN:
252 2 Put_Byte(0xb1);
253 2 Print_PLU_no(PLU_no);
254 2 Put_Byte(0xb2);
255 2 Print_Unit_Price(Unit_Price);
256 2 Put_Byte(0xb3);
257 2 Put_Byte(0x00);
258 2 Put_Byte(0x00);
259 2 Put_Byte(0x00);
260 2 Put_Byte(0xb4);
261 2 Print_Quantity(Quantity);
262 2 Put_Byte(0xb5);
263 2 Print_Total_Price(Total_Price);
264 2 break;
265 2 case MW:
266 2 Put_Byte(0xb1);
267 2 Print_PLU_no(0);
268 2 Put_Byte(0xb2);
269 2 Print_Unit_Price(Unit_Price);
270 2 Put_Byte(0xb3);
271 2 Print_Weight(Weight);
272 2 Put_Byte(0xb4);
273 2 Put_Byte(0x00);
274 2 Put_Byte(0x00);
275 2 Put_Byte(0xb5);
276 2 Print_Total_Price(Total_Price);
277 2 break;
278 2 case MN:
279 2 Put_Byte(0xb1);
280 2 Print_PLU_no(0);
281 2 Put_Byte(0xb2);
282 2 Print_Unit_Price(Unit_Price);
283 2 Put_Byte(0xb3);
284 2 Put_Byte(0x00);
285 2 Put_Byte(0x00);
286 2 Put_Byte(0x00);
287 2 Put_Byte(0xb4);
288 2 Print_Quantity(Quantity);
289 2 Put_Byte(0xb5);
290 2 Print_Total_Price(Total_Price);
291 2 break;
292 2 case TOTAL:
293 2 Put_Byte(0xc1);
294 2 Print_Date();
295 2 Put_Byte(0xc2);
296 2 Print_Time();
297 2 Put_Byte(0xc3);
298 2 Print_Sold_Quantity(Sold_Quantity);
299 2 Put_Byte(0xc4);
300 2 Print_Sum_Price(Sum_Price);
301 2 break;
302 2 }
303 1 }
304
305 VOID Print_Cancel_Record(WORD temp)
306 {
307 1 Record_Load(temp);
308 1 if(Record_buf[0]==PW||Record_buf[0]==MW)
309 1 {
310 2 Put_Byte(0xa1);
C51 COMPILER V7.50 RS232 05/27/2006 14:01:03 PAGE 13
311 2 Put_Byte(Record_buf[PLU_no_Save_address]);
312 2 Put_Byte(Record_buf[PLU_no_Save_address+1]);
313 2 Put_Byte(0xa2);
314 2 Put_Byte(Record_buf[Unit_Price_Save_address]);
315 2 Put_Byte(Record_buf[Unit_Price_Save_address+1]);
316 2 Put_Byte(Record_buf[Unit_Price_Save_address+2]);
317 2 Put_Byte(0xa3);
318 2 Put_Byte(Record_buf[Weight_Save_address]);
319 2 Put_Byte(Record_buf[Weight_Save_address+1]);
320 2 Put_Byte(Record_buf[Weight_Save_address+2]);
321 2 Put_Byte(0xa4);
322 2 Put_Byte(0x00);
323 2 Put_Byte(0x00);
324 2 Put_Byte(0xa5);
325 2 Put_Byte(Record_buf[Total_Price_Save_address]);
326 2 Put_Byte(Record_buf[Total_Price_Save_address+1]);
327 2 Put_Byte(Record_buf[Total_Price_Save_address+2]);
328 2 Put_Byte(Record_buf[Total_Price_Save_address+3]);
329 2 }
330 1 else if(Record_buf[0]==PN||Record_buf[0]==MN)
331 1 {
332 2 Put_Byte(0xa1);
333 2 Put_Byte(Record_buf[PLU_no_Save_address]);
334 2 Put_Byte(Record_buf[PLU_no_Save_address+1]);
335 2 Put_Byte(0xa2);
336 2 Put_Byte(Record_buf[Unit_Price_Save_address]);
337 2 Put_Byte(Record_buf[Unit_Price_Save_address+1]);
338 2 Put_Byte(Record_buf[Unit_Price_Save_address+2]);
339 2 Put_Byte(0xa3);
340 2 Put_Byte(0x00);
341 2 Put_Byte(0x00);
342 2 Put_Byte(0x00);
343 2 Put_Byte(0xa4);
344 2 Put_Byte(Record_buf[Quantity_Save_address]);
345 2 Put_Byte(Record_buf[Quantity_Save_address+1]);
346 2 Put_Byte(0xa5);
347 2 Put_Byte(Record_buf[Total_Price_Save_address]);
348 2 Put_Byte(Record_buf[Total_Price_Save_address+1]);
349 2 Put_Byte(Record_buf[Total_Price_Save_address+2]);
350 2 Put_Byte(Record_buf[Total_Price_Save_address+3]);
351 2 }
352 1 }
353
354 BOOL Package_Header_Check()
355 {
356 1 INT8 data i;
357 1 while(Get_Byte()!=0xbb);
358 1 for(i=0;i<5;i++)
359 1 {
360 2 if(Get_Byte()!=0xbb)
361 2 return FALSE;
362 2 }
363 1 return TRUE;
364 1 }
365
366 VOID Receive_PLU_Data_from_PC()
367 {
368 1 while(Get_Byte()!=0xb1);
369 1 PLU_buf[0]=Get_Byte();
370 1 //Put_Byte(PLU_buf[0]);
371 1 PLU_buf[1]=Get_Byte();
372 1 //Put_Byte(PLU_buf[1]);
C51 COMPILER V7.50 RS232 05/27/2006 14:01:03 PAGE 14
373 1 while(Get_Byte()!=0xb2);
374 1 PLU_buf[2]=Get_Byte();
375 1 //Put_Byte(PLU_buf[2]);
376 1 PLU_buf[3]=Get_Byte();
377 1 //Put_Byte(PLU_buf[3]);
378 1 PLU_buf[4]=Get_Byte();
379 1 //Put_Byte(PLU_buf[4]);
380 1 PLU_buf[5]=Get_Byte();
381 1 //Put_Byte(PLU_buf[5]);
382 1 PLU_buf[6]=Get_Byte();
383 1 //Put_Byte(PLU_buf[6]);
384 1 PLU_buf[7]=Get_Byte();
385 1 //Put_Byte(PLU_buf[7]);
386 1 PLU_buf[8]=Get_Byte();
387 1 //Put_Byte(PLU_buf[8]);
388 1 PLU_buf[9]=Get_Byte();
389 1 //Put_Byte(PLU_buf[9]);
390 1 PLU_buf[10]=Get_Byte();
391 1 //Put_Byte(PLU_buf[10]);
392 1 PLU_buf[11]=Get_Byte();
393 1 //Put_Byte(PLU_buf[11]);
394 1 PLU_buf[12]=Get_Byte();
395 1 //Put_Byte(PLU_buf[12]);
396 1 PLU_buf[13]=Get_Byte();
397 1 //Put_Byte(PLU_buf[13]);
398 1 PLU_buf[14]=Get_Byte();
399 1 //Put_Byte(PLU_buf[14]);
400 1 PLU_buf[15]=Get_Byte();
401 1 //Put_Byte(PLU_buf[15]);
402 1 PLU_buf[16]=Get_Byte();
403 1 //Put_Byte(PLU_buf[16]);
404 1 PLU_buf[17]=Get_Byte();
405 1 //Put_Byte(PLU_buf[17]);
406 1 while(Get_Byte()!=0xb3);
407 1 PLU_buf[18]=Get_Byte();
408 1 //Put_Byte(PLU_buf[18]);
409 1 PLU_buf[19]=Get_Byte();
410 1 //Put_Byte(PLU_buf[19]);
411 1 PLU_buf[20]=Get_Byte();
412 1 //Put_Byte(PLU_buf[20]);
413 1 }
414
415 BOOL Package_EOF_Check()
416 {
417 1 INT8 data i;
418 1 while(Get_Byte()!=0xcc);
419 1 for(i=0;i<5;i++)
420 1 {
421 2 if(Get_Byte()!=0xcc)
422 2 return FALSE;
423 2 }
424 1 return TRUE;
425 1 }
C51 COMPILER V7.50 RS232 05/27/2006 14:01:03 PAGE 15
ASSEMBLY LISTING OF GENERATED OBJECT CODE
; FUNCTION Com0069 (BEGIN)
0000 L?0106:
0000 EF MOV A,R7
0001 F0 MOVX @DPTR,A
0002 120000 R LCALL Get_Byte
0005 A3 INC DPTR
0006 EF MOV A,R7
0007 F0 MOVX @DPTR,A
0008 120000 R LCALL Get_Byte
000B A3 INC DPTR
000C EF MOV A,R7
000D F0 MOVX @DPTR,A
000E 120000 R LCALL Get_Byte
0011 A3 INC DPTR
0012 EF MOV A,R7
0013 F0 MOVX @DPTR,A
0014 120000 R LCALL Get_Byte
0017 A3 INC DPTR
0018 EF MOV A,R7
0019 F0 MOVX @DPTR,A
001A 120000 R LCALL Get_Byte
001D A3 INC DPTR
001E L?0107:
001E EF MOV A,R7
001F F0 MOVX @DPTR,A
0020 120000 R LCALL Get_Byte
0023 A3 INC DPTR
0024 L?0108:
0024 EF MOV A,R7
0025 F0 MOVX @DPTR,A
0026 120000 R LCALL Get_Byte
0029 A3 INC DPTR
002A EF MOV A,R7
002B F0 MOVX @DPTR,A
002C 22 RET
002D L?0112:
002D 7FB2 MOV R7,#0B2H
002F 120000 R LCALL _Put_Byte
0032 900000 E MOV DPTR,#Unit_Price
0035 L?0113:
0035 E0 MOVX A,@DPTR
0036 FC MOV R4,A
0037 A3 INC DPTR
0038 E0 MOVX A,@DPTR
0039 FD MOV R5,A
003A A3 INC DPTR
003B E0 MOVX A,@DPTR
003C FE MOV R6,A
003D A3 INC DPTR
003E E0 MOVX A,@DPTR
003F FF MOV R7,A
0040 22 RET
0041 L?0114:
0041 FF MOV R7,A
0042 E4 CLR A
0043 FC MOV R4,A
0044 FD MOV R5,A
0045 FE MOV R6,A
0046 L?0115:
C51 COMPILER V7.50 RS232 05/27/2006 14:01:03 PAGE 16
0046 E0 MOVX A,@DPTR
0047 F8 MOV R0,A
0048 A3 INC DPTR
0049 E0 MOVX A,@DPTR
004A F9 MOV R1,A
004B A3 INC DPTR
004C E0 MOVX A,@DPTR
004D FA MOV R2,A
004E A3 INC DPTR
004F E0 MOVX A,@DPTR
0050 FB MOV R3,A
0051 22 RET
0052 L?0116:
0052 L?0117:
0052 EF MOV A,R7
0053 33 RLC A
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -