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

📄 123.lst

📁 /************************** 0 1 2 3 4 5 6 7 8 9 . CLR + - = CLR ***************************
💻 LST
📖 第 1 页 / 共 2 页
字号:
 270   3                }
 271   2                if(key==14)             //-
 272   2                {
 273   3                      addflag=2;
 274   3                      flag=2;
 275   3                }
 276   2                
 277   2                if((key==15)&&(flag==1))         //做加法的结果
 278   2                {
 279   3                      do
 280   3                      {       
 281   4                              show(end);
 282   4                              addflag=3;
 283   4                              P2=0x0f;
 284   4                              temp=P2;
 285   4                      }
 286   3                  while(temp!=0x0f);
 287   3                      addflag=3;
 288   3                      if(buf1[1]<=9&&buf2[1]<=9)
 289   3                  {
 290   4                              end[0]=buf1[0]+buf2[0];
 291   4                              end[1]=buf1[1]+buf2[1];
 292   4                              end[2]=buf1[2]+buf2[2];
 293   4                              end[3]=buf1[3]+buf2[3];
 294   4                              if(end[0]>9)        //有进位的整数加法
 295   4                              {
 296   5                                      end[0]=end[0]-10;
 297   5                          end[1]++;
 298   5                          }
 299   4                              if(end[1]>9)
 300   4                              {
 301   5                                      end[1]=end[1]-10;
 302   5                                      end[2]++;
 303   5                              }
C51 COMPILER V8.02   123                                                                   12/30/2008 11:30:31 PAGE 6   

 304   4                              if(end[2]>9)
 305   4                              {
 306   5                                      end[2]=end[2]-10;
 307   5                                      end[3]++;
 308   5                          }
 309   4                          if(end[3]>9)
 310   4                              {
 311   5                                      for(i=0;i<4;i++)
 312   5                                         buf1[i]=0;
 313   5                              }       
 314   4                  }
 315   3              
 316   3                      else if(buf1[1]>9&&buf2[1]>9)  //两个带小数点的计算
 317   3                      { 
 318   4                            end[0]=buf1[0]+buf2[0];
 319   4                    end[1]=buf1[1]+buf2[1]-10;
 320   4                    end[2]=buf1[2]+buf2[2];
 321   4                                end[3]=buf1[3]+buf2[3];
 322   4                                if(end[0]>9)   //考虑进位
 323   4                            {
 324   5                                  end[0]=end[0]-10;
 325   5                      end[1]++;
 326   5                                }
 327   4                                if(end[1]>19)
 328   4                                {
 329   5                                        end[1]=end[1]-10;
 330   5                                        end[2]++;
 331   5                    }
 332   4                                if(end[2]>9)
 333   4                                {
 334   5                                        end[2]=end[2]-10;
 335   5                                        end[3]++;
 336   5                                }
 337   4                                if(end[3]>9)
 338   4                                {
 339   5                                       for(i=0;i<4;i++)
 340   5                                              buf1[i]=0;
 341   5                                }     
 342   4                      }
 343   3              else if(buf1[1]>9&&buf2[0]<=9&&buf2[1]<=9)  //带小数点的和整数相加
 344   3                      {     end[0]=buf1[0];
 345   4                    end[1]=buf1[1]+buf2[0];
 346   4                    end[2]=buf1[2]+buf2[1];
 347   4                                end[3]=buf1[3]+buf2[2];
 348   4                                if(end[1]>19)
 349   4                                {
 350   5                                      end[1]=end[1]-10;
 351   5                                      end[2]++;
 352   5                                 }
 353   4                                      if(end[2]>9)
 354   4                                        {
 355   5                                           end[2]=end[2]-10;
 356   5                                               end[3]++;
 357   5                                         }
 358   4                                               if(end[3]>9)
 359   4                                               {
 360   5                                                  for(i=0;i<4;i++)
 361   5                                                      buf1[i]=0;
 362   5                                               }        
 363   4                      }
 364   3                      else if(buf1[0]<=9&&buf1[1]<=9&&buf2[1]>9)  //整数和带小数点的相加
 365   3                      {     end[0]=buf2[0];
C51 COMPILER V8.02   123                                                                   12/30/2008 11:30:31 PAGE 7   

 366   4                    end[1]=buf1[0]+buf2[1];
 367   4                    end[2]=buf1[1]+buf2[2];
 368   4                                end[3]=buf1[2]+buf2[3];
 369   4                                if(end[1]>19)
 370   4                                {
 371   5                                       end[1]=end[1]-10;
 372   5                                       end[2]++;
 373   5                                }
 374   4                                if(end[2]>9)
 375   4                                {
 376   5                                        end[2]=end[2]-10;
 377   5                                        end[3]++;
 378   5                                }
 379   4                                if(end[3]>9)
 380   4                                {
 381   5                                       for(i=0;i<4;i++)
 382   5                                              buf1[i]=0;
 383   5                                }
 384   4                  }
 385   3                      //EEPROM_Eares(0x2000);
 386   3                  //EEPROM_Write(0x2000+end[5],end[5]);   //起始地址为2000
 387   3               }
 388   2                                 
 389   2                 if((key==15)&&(flag==2))       //做减法的结果
 390   2                 {
 391   3                    do
 392   3                        {
 393   4                           show(end);
 394   4                               addflag=3;
 395   4                               P2=0x0f;
 396   4                               temp=P2;
 397   4                        }
 398   3                        while (temp!=0x0f);
 399   3                        addflag=3;
 400   3                        if(buf1[1]<=9&&buf2[1]<=9)
 401   3                        {
 402   4                        end[0]=buf1[0]-buf2[0];
 403   4                        end[1]=buf1[1]-buf2[1];
 404   4                        end[2]=buf1[2]-buf2[2];
 405   4                        end[3]=buf1[3]-buf2[3];
 406   4                        if(buf1[0]<buf2[0])  //考虑有借位的两整数相减
 407   4                         {
 408   5                           end[0]=buf1[0]+(10-buf2[0]);
 409   5                              end[1]--;
 410   5                   buf1[1]--;
 411   5                              }
 412   4                               if(buf1[1]<buf2[1])
 413   4                               {
 414   5                                   end[1]=buf1[1]+(10-buf2[1]);
 415   5                       end[2]--;
 416   5                                   buf1[2]--;
 417   5                    }
 418   4                                       if(buf1[2]<buf2[2])
 419   4                                       {
 420   5                                          end[2]=buf1[2]+(10-buf2[2]);
 421   5                                              end[3]--;
 422   5                                       }
 423   4                                              if(buf1[3]<buf2[3])
 424   4                                              {
 425   5                                                 for(i=0;i<4;i++)
 426   5                                                buf1[i]=0;
 427   5                                              }
C51 COMPILER V8.02   123                                                                   12/30/2008 11:30:31 PAGE 8   

 428   4                      }
 429   3                      else if (buf1[1]>9&&buf2[1]>9)  //考虑两带小数点的两数相减
 430   3                      {
 431   4                                end[0]=buf1[0]-buf2[0];
 432   4                                end[1]=buf1[1]-buf2[1]+10;
 433   4                                end[2]=buf1[2]-buf2[2];
 434   4                                end[3]=buf1[3]-buf2[3];
 435   4                                if(buf1[0]<buf2[0])
 436   4                                {
 437   5                                   end[0]=buf1[0]+(10-buf2[0]);
 438   5                                       end[1]--;
 439   5                                       buf1[1]--;
 440   5                                }
 441   4                                       if(buf1[1]<buf2[1])
 442   4                                       {
 443   5                                           end[1]=buf1[1]+20-buf2[1];
 444   5                                           end[2]--;
 445   5                                               buf1[2]--;
 446   5                                        }
 447   4                                               if(buf1[2]<buf2[2])
 448   4                                               {
 449   5                                                  end[2]=buf1[2]+(10-buf2[2]);
 450   5                                              end[3]--;
 451   5                                               }
 452   4                                                      if(buf1[3]<buf2[3])
 453   4                                                      {
 454   5                                                         for(i=0;i<4;i++)
 455   5                                                    buf1[i]=0;
 456   5                                                      }
 457   4                       }
 458   3                       else if(buf1[1]>9&&buf2[0]<=9&&buf2[1]<=9)  //带小数点的减整数
 459   3               {
 460   4                                 end[0]=buf1[0];
 461   4                                 end[1]=buf1[1]-buf2[0];
 462   4                                 end[2]=buf1[2]-buf2[1];
 463   4                                 end[3]=buf1[3]-buf2[2];
 464   4                                 if(buf1[1]<buf2[0]+10)
 465   4                                 {
 466   5                                           end[1]=buf1[1]+10-buf2[0];
 467   5                                           end[2]--;
 468   5                                               buf1[2]--;
 469   5                                  }
 470   4                                               if(buf1[2]<buf2[1])
 471   4                                               {
 472   5                                                  end[2]=buf1[2]+10-buf2[1];
 473   5                                              end[3]--;
 474   5                                               }
 475   4                                                      if(buf1[3]<buf1[3])
 476   4                                                      {
 477   5                                                         for(i=0;i<4;i++)
 478   5                                                    buf1[i]=0;
 479   5                                                      }         
 480   4                   }
 481   3               else if(buf1[0]<=9&&buf1[1]<=9&&buf2[1]>9)  //整数减带小数点的
 482   3                       {
 483   4                          end[0]=10-buf2[0];
 484   4                          end[1]=buf1[0]-buf2[1]+19;
 485   4                          end[2]=buf1[1]-buf2[2];
 486   4                          end[3]=buf1[2]-buf2[3];
 487   4                              if(buf1[0]<buf2[1]-10)
 488   4                              {
 489   5                                   end[1]=buf1[0]+29-buf2[1];
C51 COMPILER V8.02   123                                                                   12/30/2008 11:30:31 PAGE 9   

 490   5                                   end[2]--;
 491   5                                       buf1[1]--;
 492   5                              }
 493   4                              if(buf1[1]<buf2[2])
 494   4                          {
 495   5                                  end[2]=buf1[1]+10-buf2[1];
 496   5                                      end[3]--;
 497   5                  }
 498   4                          if(buf1[3]<buf1[3])
 499   4                          {
 500   5                                 for(i=0;i<4;i++)
 501   5                                       buf1[i]=0;
 502   5                          }   
 503   4                       }
 504   3                      // EEPROM_Eares(0x2000);
 505   3                  // EEPROM_Write(0x2000+end[5],end[5]);
 506   3                }
 507   2               
 508   2                if(key==12||key==16)  //清0键
 509   2                {
 510   3               for(i=0;i<4;i++)
 511   3                          buf1[i]=0;
 512   3                       for(i=0;i<4;i++)
 513   3                          buf2[i]=0;
 514   3               for(i=0;i<4;i++)
 515   3                          end[i]=0;
 516   3                              addflag=1;
 517   3                }     
 518   2           /* while(1)
 519   2                {   
 520   2                              EEPROM_Write(0x2000,end[5]);//起始地址为2000
 521   2                                      ISP_DATA=0;
 522   2                                      dat=0;
 523   2                                      dat=EEPROM_Read(0x200+end[5]-1);  //一个扇区与下一个扇区相差200
 524   2                                      show(end);              
 525   2                }     */      
 526   2         }
 527   1      }  
 528          
 529          
 530          
 531          
 532          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   1665    ----
   CONSTANT SIZE    =     20    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     17       5
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -