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

📄 jzht.lst

📁 利用高速da通过查表法进行正弦波,方波,三角波产生的stc89c51程序和波形码表生成的c程序
💻 LST
📖 第 1 页 / 共 3 页
字号:
 372   3                              P1=wave_add;//选择地址
 373   3                      }
 374   2                      //插入频率设定程序       
 375   2                      //根据wave_ff频率数值,计算定时器2的装入值
 376   2                      set_f.lword=1500000/wave_ff;
 377   2                      set_f.lword=65536-set_f.lword;
 378   2                      TR2=0;
 379   2                      RCAP2H=set_f.byte[2];
 380   2                      RCAP2L=set_f.byte[3];
 381   2                      TR2=1;
 382   2                      disp_statu=8;
 383   2              }
 384   1              else if(j==11)//幅值加0.1V
 385   1              {
 386   2                              if(disp_statu==1)//容许调整幅值
 387   2                              {
 388   3                                      if((wave_aa>=10)&&(wave_aa<50))
 389   3                                      {
 390   4                                              wave_aa=wave_aa+1;
 391   4                                      }
 392   3                                      display_table[6]=wave_aa/10;
 393   3                                      display_table[7]=wave_aa%10;
 394   3                              dispz();
 395   3                              }
 396   2              }
 397   1              else if(j==14)//幅值减0.1V
 398   1              {
 399   2                              if(disp_statu==1)//容许调整幅值
 400   2                              {
 401   3                                      if((wave_aa>10)&&(wave_aa<=50))
 402   3                                      {
 403   4                                              wave_aa=wave_aa-1;
 404   4                                      }
 405   3                                      display_table[6]=wave_aa/10;
 406   3                                      display_table[7]=wave_aa%10;
 407   3                              dispz();
 408   3                              }
 409   2              }
 410   1              else
 411   1              {
 412   2         }
 413   1      }
 414          void delay_1s(void)  //1秒延时子程
 415          {
 416   1              unsigned int idata i,j;
 417   1                 for(i=0;i<150;i++)
 418   1                 {
 419   2                      for(j=0;j<900;j++)
 420   2                    {
 421   3                    }
 422   2                 }
 423   1      }
 424          void dispz(void)//显示函数
 425          {
 426   1         COM=0x87;
 427   1         DAT=table[display_table[7]];
C51 COMPILER V7.50   JZHT                                                                  09/05/2007 18:16:47 PAGE 8   

 428   1         COM=0x86;
 429   1         DAT=table[display_table[6]];
 430   1         COM=0x85;
 431   1         DAT=table[display_table[5]];
 432   1         COM=0x84;
 433   1         DAT=table[display_table[4]];
 434   1         COM=0x83;
 435   1         DAT=table[display_table[3]];
 436   1         COM=0x82;
 437   1         DAT=table[display_table[2]]|0x08;
 438   1         COM=0x81;
 439   1         DAT=table[display_table[1]];
 440   1         COM=0x80;
 441   1         DAT=table[display_table[0]];
 442   1      }
 443          void main(void)
 444          {
 445   1              unsigned int temp;
 446   1                      for(temp=0;temp<20000;temp++)
 447   1                      {}
 448   1                 COM=0x00;
 449   1              COM=0x3f;//键盘显示方式,时钟分频
 450   1                      EX0=1;
 451   1                      IT0=1;
 452   1                      T2CON=0;
 453   1                      T2MOD=2;
 454   1                      TR2=0;
 455   1                      RCAP2H=0xff;
 456   1                      RCAP2L=0x00;
 457   1                      TR2=1;
 458   1                 EA=1;
 459   1                 display_table[0]=8;
 460   1                 display_table[1]=8;
 461   1                 display_table[2]=8;
 462   1                 display_table[3]=8;
 463   1                 display_table[4]=8;
 464   1                 display_table[5]=8;
 465   1                 display_table[6]=8;
 466   1                 display_table[7]=8;
 467   1                 dispz();
 468   1                      wave_kind=0;
 469   1                      wave_ff=100;
 470   1                      wave_aa=10;
 471   1                      disp_statu=8;
 472   1                      for(;;)
 473   1                 {
 474   2                                      if(disp_statu==8)//显示频率
 475   2                                      {
 476   3                                              if(wave_kind==0)
 477   3                                              {
 478   4                                                      display_table[0]=5;
 479   4                                              }
 480   3                                              else if(wave_kind==1)
 481   3                                              {
 482   4                                                      display_table[0]=0x0f;
 483   4                                              }
 484   3                                              else if(wave_kind==2)
 485   3                                              {
 486   4                                                      display_table[0]=0x0a;
 487   4                                              }
 488   3                                              else if(wave_kind==3)
 489   3                                              {
C51 COMPILER V7.50   JZHT                                                                  09/05/2007 18:16:47 PAGE 9   

 490   4                                                      display_table[0]=18;
 491   4                                              }
 492   3                                              display_table[1]=0x0f;
 493   3                                              display_table[2]=wave_ff/100000;
 494   3                                              disp_temp1=wave_ff%100000;
 495   3                                              display_table[3]=disp_temp1/10000;
 496   3                                              disp_temp1=disp_temp1%10000;
 497   3                                              display_table[4]=disp_temp1/1000;
 498   3                                              disp_temp1=disp_temp1%1000;
 499   3                                              display_table[5]=disp_temp1/100;
 500   3                                              disp_temp1=disp_temp1%100;
 501   3                                              display_table[6]=disp_temp1/10;
 502   3                                              disp_temp1=disp_temp1%10;
 503   3                                              display_table[7]=disp_temp1;
 504   3                                      dispz();
 505   3                                      delay_1s();
 506   3                                              if(disp_statu==8)
 507   3                                              {disp_statu=2;}
 508   3                                      }
 509   2                                      else if(disp_statu==2)//显示幅值
 510   2                                      {
 511   3                                              if(wave_kind==0)
 512   3                                              {
 513   4                                                      display_table[0]=5;
 514   4                                              }
 515   3                                              else if(wave_kind==1)
 516   3                                              {
 517   4                                                      display_table[0]=0x0f;
 518   4                                              }
 519   3                                              else if(wave_kind==2)
 520   3                                              {
 521   4                                                      display_table[0]=0x0a;
 522   4                                              }
 523   3                                              else if(wave_kind==3)
 524   3                                              {
 525   4                                                      display_table[0]=18;
 526   4                                              }
 527   3                                              display_table[1]=0x0a;
 528   3                                              display_table[2]=19;
 529   3                                              display_table[3]=17;
 530   3                                              display_table[4]=17;
 531   3                                              display_table[5]=17;
 532   3                                              display_table[6]=wave_aa/10;
 533   3                                              display_table[7]=wave_aa%10;
 534   3                                      dispz();
 535   3                                 delay_1s();
 536   3                                              if(disp_statu==2)
 537   3                                              {disp_statu=8;}
 538   3                                      }
 539   2                                      else
 540   2                                      {
 541   3                                 delay_1s();
 542   3                                      }
 543   2      
 544   2                 }
 545   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   1782    ----
   CONSTANT SIZE    =     20    ----
   XDATA SIZE       =   ----    ----
C51 COMPILER V7.50   JZHT                                                                  09/05/2007 18:16:47 PAGE 10  

   PDATA SIZE       =   ----    ----
   DATA SIZE        =     37       5
   IDATA SIZE       =   ----       4
   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 + -