⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rs232.lst

📁 一个基于C51开发的计价秤
💻 LST
📖 第 1 页 / 共 5 页
字号:
 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 + -