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

📄 main.lst

📁 采用AD9851设计的一个产生50M 方波
💻 LST
📖 第 1 页 / 共 3 页
字号:
 420   1              (*ichar)++;
 421   1              if ((*ichar) > 8)
 422   1                      (*ichar) = 8;
 423   1              if (((*ichar) == 1)&&(memdis[0] == 0))
 424   1                      *ichar = 0;
 425   1      /*    if(Key_Code == 0x0A)
 426   1           {
 427   1                 p_num = 7-(*ichar);   
C51 COMPILER V8.08   MAIN                                                                  05/04/2009 15:04:02 PAGE 8   

 428   1                 p1 = (*ichar);
 429   1               }*/
 430   1              if (*ichar > 0)
 431   1              {
 432   2                      for (i = 0; i < (*ichar); i++)
 433   2                      {
 434   3                              Data = Data*10+memdis[i];
 435   3                      }
 436   2             /* for(i = 0; i < p_num; i++)
 437   2                      {
 438   2                              Data = Data/10;
 439   2                      }*/
 440   2              }
 441   1              else Data = 0;
 442   1                              
 443   1      //      display(ad,"        ");
 444   1          c1 = (*ichar);
 445   1              for (i = (*ichar); i >0; i--)
 446   1              {
 447   2                      cnt = memdis[(*ichar)-i];
 448   2                      if (cnt <=9)
 449   2                              cnt += 0x30;
 450   2                      else break;
 451   2                      Dischar[0] = cnt;
 452   2              //      Dischar[1] = '\0';
 453   2                      display(ad-i,Dischar);          
 454   2              }
 455   1              return Data;
 456   1      }
 457          //
 458          /************************************************************************
 459          *作者:    杨乐                                                         *
 460          *函数名:  UpDown                                                       *
 461          *功能:    增加和减小                                                   *
 462          *入口参数:无                                                           *
 463          *返回值:  无                                                           *
 464          *日期:    2009年1月21日                                                *
 465          ************************************************************************/
 466          unsigned char UpDown(unsigned char * memdis,  double * Data, unsigned char updown)
 467          {
 468   1              unsigned long tmp1;
 469   1              unsigned char cnt;
 470   1              display(0x80,"       ");
 471   1      /*      unsigned char i;
 472   1              unsigned long j;
 473   1              for(i=0;i<(c1-1);i++)
 474   1              c *= 10;
 475   1      /*      if(p_bit>1)
 476   1              {
 477   1               for(i=0;i<(p_bit-1);i++)
 478   1               j *= 10;
 479   1              }
 480   1              c =c/j;*/
 481   1              tmp1 = * Data;
 482   1      
 483   1              if (updown == 1)                
 484   1                       tmp1 +=c;
 485   1              else 
 486   1                      if ((tmp1>1)&&(tmp1>c)) 
 487   1                      tmp1 -=c;
 488   1              
 489   1              * Data = tmp1;
C51 COMPILER V8.08   MAIN                                                                  05/04/2009 15:04:02 PAGE 9   

 490   1              cnt=0;
 491   1              while (tmp1>0)
 492   1              {
 493   2                      tmp1 /= 10;
 494   2                      cnt++;
 495   2              }
 496   1              tmp1 = *Data;
 497   1              memset(memdis,0,8);
 498   1      
 499   1              for (i = 0; i < cnt; i++)
 500   1              {
 501   2                      memdis[cnt-i-1] = tmp1%10;
 502   2                      tmp1 /= 10;
 503   2              }
 504   1              return cnt;
 505   1      }
 506          /************************************************************************
 507          *作者:    杨乐                                                         *
 508          *函数名:  unit                                                         *
 509          *功能:    增加和减小单位换算                                           *
 510          *入口参数无  :                                                         *
 511          *返回值:  无                                                           *
 512          *日期:    2009年1月21日                                                *
 513          ************************************************************************/
 514          void unit(unsigned char u)
 515          {
 516   1        switch(u)
 517   1        {
 518   2          case 1:c = 10000000;break;
 519   2              case 2:c = 1000000;break;
 520   2          case 3:c = 100000;break;
 521   2              case 4:c = 10000;break;
 522   2              case 5:c = 1000;break;
 523   2              case 6:c = 100;break;
 524   2              case 7:c = 10;break;
 525   2              case 8:c = 1;break;
 526   2              default:break;
 527   2        }
 528   1      }
 529          /************************************************************************
 530          *作者:    杨乐                                                         *
 531          *函数名:  num_renew                                                    *
 532          *功能:    光标显示位数据更新                                           *
 533          *入口参数:无                                                           *
 534          *返回值:  无                                                           *
 535          *日期:    2009年1月21日                                                *
 536          ************************************************************************/
 537          void num_renew(unsigned char * memdis)
 538          {
 539   1        unsigned long fd,i,j,k,cod;
 540   1        unsigned long x;
 541   1        j = 0;
 542   1        unit(p_bit);
 543   1        fd = f;
 544   1       //  memdis[i-1] = Key_Code;
 545   1       /*  if (c1 > 0)
 546   1              {
 547   1                      for (i = 0; i < c1; i++)
 548   1                      Data = Data*10+memdis[i];       
 549   1              }*/
 550   1                      while (fd>0)
 551   1              {
C51 COMPILER V8.08   MAIN                                                                  05/04/2009 15:04:02 PAGE 10  

 552   2                      fd /= 10;
 553   2                      j++;
 554   2              }
 555   1              fd = f;
 556   1        if((p_bit<=j)&&(Key_Code<10)&&(Key_Code>0))
 557   1         { 
 558   2           fd /= c;
 559   2              while(fd>10)fd %= 10;
 560   2           f = (f-fd*c)+(Key_Code*c);
 561   2         }
 562   1        else if((p_bit>j)&&(Key_Code<10))
 563   1          {
 564   2                 k = 0;
 565   2              while (fd>0)
 566   2                {
 567   3               k++;
 568   3              if(k==(9-p_bit))
 569   3                      {
 570   4                        x = fd%10;
 571   4                        break;
 572   4                      }
 573   3              else
 574   3                      fd /= 10;
 575   3                } 
 576   2           f = (f-(x*c))+(Key_Code*c);
 577   2          } 
 578   1       else;
 579   1       memset(memdis,0,8);
 580   1        fd = f;
 581   1         k = 0;
 582   1        while (fd>0)
 583   1              {
 584   2                      fd /= 10;
 585   2                      k++;
 586   2              }
 587   1       fd = f;
 588   1              for (i = 0; i < k; i++)
 589   1              {
 590   2                      memdis[k-i-1] = fd%10;
 591   2                      fd /= 10;
 592   2              }
 593   1              display(0x80,"        ");
 594   1              for (i = k; i >0; i--)
 595   1              {
 596   2                      cod = memdis[k-i];
 597   2                      if (cod <=9)
 598   2                              cod += 0x30;
 599   2                      else break;
 600   2                      Dischar[0] = cod;
 601   2              //      Dischar[1] = '\0';
 602   2                      display(0x88-i,Dischar);                
 603   2              }
 604   1                      if (f>72000000)
 605   1            {
 606   2                      freq = 72000000;
 607   2                }
 608   1              if (f<1)
 609   1                      {
 610   2                       f = 1;
 611   2                      }
 612   1                       freq = f*mul;
 613   1                        SetFreq(freq,0);
C51 COMPILER V8.08   MAIN                                                                  05/04/2009 15:04:02 PAGE 11  

 614   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   3322    ----
   CONSTANT SIZE    =     63    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     57      53
   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 + -