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

📄 freq.lst

📁 自己写的几个ADC抓换与DAC转换程序
💻 LST
字号:
C51 COMPILER V6.23a  FREQ                                                                  12/12/2008 00:51:37 PAGE 1   


C51 COMPILER V6.23a, COMPILATION OF MODULE FREQ
OBJECT MODULE PLACED IN freq.OBJ
COMPILER INVOKED BY: E:\Keil\C51\BIN\C51.EXE freq.c BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1          #include <reg52.h>
   2          #include <absacc.h>
   3          #include <math.h>
   4          
   5          #define dac     XBYTE[0xa000]
   6          #define pi      3.14
   7          
   8          sbit set =P3^3;
   9          sbit add =P3^4;
  10          sbit dec =P3^5;
  11          unsigned int current[2]={127,127};
  12          
  13          unsigned int    dot=127;
  14          unsigned char   TS=100;
  15          unsigned char   KT=0;
  16          unsigned char   ms=0;
  17          
  18          unsigned char xdata dacval[500];
  19          
  20          void Delayms(unsigned int t)
  21          {
  22   1              unsigned char i;
  23   1              while(--t)
  24   1                      for(i=0;i<125;i++)
  25   1                      {       ;       }
  26   1      }
  27          
  28          void Sin_val(void) reentrant
  29          {
  30   1              unsigned char i;
  31   1              for(i=0;i<dot;i++)
  32   1              {
  33   2                      dacval[i]=(unsigned char)(127.5*sin(2*pi*(i/dot))+127.5);
  34   2              }
  35   1              
  36   1      }
  37          
  38          void Sin_wave(void)
  39          {
  40   1              static unsigned int i=0;
  41   1              if(++i>dot)     i=0;    
  42   1              else    dac=dacval[i];
  43   1      
  44   1      }
  45          
  46          
  47          void    set_(void)
  48          {
  49   1              KT++;
  50   1              if(KT>=3)KT=0;
  51   1      }
  52          
  53          void    add_(void)
  54          {
  55   1              switch(KT)
C51 COMPILER V6.23a  FREQ                                                                  12/12/2008 00:51:37 PAGE 2   

  56   1              {
  57   2                      case 1:if(TS>250)TS=10;
  58   2                                 else TS=TS+10;
  59   2                                 break;
  60   2                      case 2:if(dot>=500)dot=128;
  61   2                                 else dot=dot+5;
  62   2                                 current[0]=dot;
  63   2                                 if(current[1]!=current[0])
  64   2                                 Sin_val();
  65   2                                 current[1]=current[0];
  66   2                                 break;
  67   2                      default:break;
  68   2              }
  69   1      }
  70          
  71          void    dec_(void)
  72          {
  73   1              switch(KT)
  74   1              {
  75   2                      case 1:if(TS<10)TS=10;
  76   2                                 else TS=TS-10;
  77   2                                 break;
  78   2                      case 2:if(dot<128)dot=128;
  79   2                                 else dot=dot-5;
  80   2                                 current[0]=dot;
  81   2                                 if(current[1]!=current[0])
  82   2                                 Sin_val();
  83   2                                 current[1]=current[0];
  84   2                                 break;
  85   2                      default:break;
  86   2              }
  87   1      }
  88          
  89          void Key_Scan(void)
  90          {
  91   1      
  92   1              if(set==0)
  93   1              {
  94   2                      Delayms(20);
  95   2                      if(set==0)
  96   2                      {  set_();      }
  97   2              }while(set==0);
  98   1      
  99   1              if(add==0)
 100   1              {
 101   2                      Delayms(20);
 102   2                      if(add==0)
 103   2                      {  add_();      }
 104   2              }while(add==0);
 105   1      
 106   1              if(dec==0)
 107   1              {
 108   2                      Delayms(20);
 109   2                      if(dec==0)
 110   2                      {  dec_();      }
 111   2              }while(dec==0);
 112   1      
 113   1      }
 114          
 115          void Time_init(void)
 116          {
 117   1              TMOD=0x12;
C51 COMPILER V6.23a  FREQ                                                                  12/12/2008 00:51:37 PAGE 3   

 118   1              PT0 =1;
 119   1              TH0 =(-TS);
 120   1              TH1 =(-10000)>>8;
 121   1              TL1 =(-10000);
 122   1              ET0=1;
 123   1              ET1=1;
 124   1              TR0=1;
 125   1              TR1=1;
 126   1      }
 127          
 128          void main(void)
 129          {
 130   1              Time_init();
 131   1              EA=1;
 132   1              Sin_val();
 133   1              while(1)
 134   1              {       ;       }
 135   1      }
 136          void Time_int0(void) interrupt 1
 137          {
 138   1              ET0=0;TR0=0;TH0 =(-TS);TR0=1;
 139   1              Sin_wave();
 140   1              ET0=1;
 141   1      }
 142          
 143          void Time_int1(void) interrupt 3
 144          {
 145   1              TL1 =(-10000);
 146   1              TH1 =(-10000)>>8;
 147   1              ms++;
 148   1              if(ms==15)
 149   1              {
 150   2                      ms=0;
 151   2                      Key_Scan();
 152   2              }
 153   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    533    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =    500    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     11    ----
   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 + -