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

📄 repeater.lst

📁 adf4118频率合成器编程
💻 LST
字号:
C51 COMPILER V7.50   REPEATER                                                              11/09/2006 12:44:08 PAGE 1   


C51 COMPILER V7.50, COMPILATION OF MODULE REPEATER
OBJECT MODULE PLACED IN repeater.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE repeater.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          //CPU:C8051F330
   2          //FUNCTION: microrepeater programe for select band 
   3          ///         there are eight key to select frequency
   4          //time 2006-7-4
   5          
   6          
   7          #include "c8051f330.h"
   8          #include "main.h"
   9          
  10          
  11          
  12          
  13          
  14          //define bit
  15          sbit PLL_DATA = P0^5;
  16          sbit PLL_CLK = P0^4;
  17          sbit PLL_LE = P0^6;
  18          sbit muxdut = P0^7;
  19          
  20          // Peripheral specific initialization functions,
  21          // Called from the Init_Device() function
  22          void Reset_Sources_Init()
  23          {
  24   1          int i = 0;
  25   1          VDM0CN    = 0x80;
  26   1          for (i = 0; i < 350; i++);  // Wait 100us for initialization
  27   1          RSTSRC    = 0x06;
  28   1      }
  29          
  30          void PCA_Init()
  31          {
  32   1          PCA0MD    &= ~0x40;
  33   1          PCA0MD    = 0x02;
  34   1          PCA0CPL2  = 0xff;
  35   1        
  36   1      }
  37          
  38          void Port_IO_Init()
  39          {
  40   1          // P0.0  -  Unassigned,  Open-Drain, Digital
  41   1          // P0.1  -  Unassigned,  Open-Drain, Digital
  42   1          // P0.2  -  Unassigned,  Open-Drain, Digital
  43   1          // P0.3  -  Unassigned,  Open-Drain, Digital
  44   1          // P0.4  -  Unassigned,  Push-Pull,  Digital
  45   1          // P0.5  -  Unassigned,  Push-Pull,  Digital
  46   1          // P0.6  -  Unassigned,  Push-Pull,  Digital
  47   1          // P0.7  -  Unassigned,  Open-Drain, Digital
  48   1      
  49   1          // P1.0  -  Unassigned,  Open-Drain, Digital
  50   1          // P1.1  -  Unassigned,  Open-Drain, Digital
  51   1          // P1.2  -  Unassigned,  Open-Drain, Digital
  52   1          // P1.3  -  Unassigned,  Open-Drain, Digital
  53   1          // P1.4  -  Unassigned,  Open-Drain, Digital
  54   1          // P1.5  -  Unassigned,  Open-Drain, Digital
  55   1          // P1.6  -  Unassigned,  Open-Drain, Digital
C51 COMPILER V7.50   REPEATER                                                              11/09/2006 12:44:08 PAGE 2   

  56   1          // P1.7  -  Unassigned,  Open-Drain, Digital
  57   1      
  58   1          P0MDOUT   = 0x70;
  59   1      //      P1MDIN    = 0x00;
  60   1          XBR1      = 0xC0;
  61   1              
  62   1      }
  63          
  64          void Oscillator_Init()
  65          {
  66   1          OSCICN    = 0x82;
  67   1      }
  68          /*
  69          void Timer_Init()
  70          {
  71              TMR2CN    = 0x20;
  72                  TMR2RLL   = 0x00;
  73              TMR2RLH   = 0x00;
  74              TMR2L     = 0x0f;
  75              TMR2H     = 0x00;
  76          }
  77          */
  78          /*
  79          void Interrupts_Init()
  80          {
  81              IE        = 0xA0;
  82          }
  83          */
  84          // Initialization function for device,
  85          // Call Init_Device() from your main program
  86          void Init_Device(void)
  87          {
  88   1          Reset_Sources_Init();
  89   1          PCA_Init();
  90   1          Port_IO_Init();
  91   1          Oscillator_Init();
  92   1         // Timer_Init();
  93   1          //Interrupts_Init();
  94   1      }
  95          
  96          
  97          
  98          /************************************************************************************/
  99          /*FNCTION:PLL CONTROL                                                               */
 100          /************************************************************************************/
 101          //PLL send data
 102          void send_data(unsigned long PLL_REGG)
 103          {
 104   1              unsigned char i;
 105   1              for (i=0;i<21;i++)
 106   1              {
 107   2                      PLL_CLK = 1;
 108   2                      if ((PLL_REGG & 0X100000) ==0)
 109   2                      {
 110   3                              PLL_DATA = 0;
 111   3                      }
 112   2                      else
 113   2                      {
 114   3                              PLL_DATA = 1;
 115   3                      }
 116   2                      PLL_CLK = 0;
 117   2                      PLL_REGG = PLL_REGG << 1;
C51 COMPILER V7.50   REPEATER                                                              11/09/2006 12:44:08 PAGE 3   

 118   2              }
 119   1              PLL_CLK = 1;
 120   1      }
 121          
 122          //PLL data prepare
 123          void prepare_PLL(unsigned long freqq,unsigned long *AB_REG)
 124          {
 125   1              unsigned long B;
 126   1              unsigned int A;
 127   1              B = freqq / 32;
 128   1              A = freqq % 32;
 129   1              A = A << 2;
 130   1              A= A & 0x7c;
 131   1              B= B <<7;
 132   1              B= B & 0xfff80;
 133   1              *AB_REG= 0x1;
 134   1              *AB_REG= A + B +*AB_REG;
 135   1      }
 136          
 137          
 138          //-----------------------------------------------------------------------------
 139          // Timer2_Init SYSCLK no Interrupt
 140          //-----------------------------------------------------------------------------
 141          //
 142          // Configure Timer2 to auto-reload at interval specified by <counts> (no 
 143          // interrupt generated) using SYSCLK as its time base.
 144          //
 145          /*
 146          void t2ISR() interrupt 5
 147          {
 148                  TMR2CN &= ~BIT7;
 149                  PCA0CPH2 = 0X55;
 150          
 151          }
 152          */
 153          
 154          unsigned char chang_high_to_low(unsigned char key_data)
 155          {
 156   1              unsigned char i,j;
 157   1              PCA0MD    &= ~0x40;
 158   1              for (i=0;i<8;i++)
 159   1              {
 160   2                      j = j << 1;
 161   2                      if ((key_data & 0x01) ==0)
 162   2                      {
 163   3                              j &= ~BIT0;
 164   3                      }
 165   2                      else
 166   2                      {
 167   3                              j |= BIT0;
 168   3                      }
 169   2                      key_data = key_data >> 1;
 170   2              }
 171   1              PCA0MD    |= 0x40;
 172   1              return(j);
 173   1      }
 174          void delay(unsigned char i)
 175          {
 176   1              unsigned char j,k;
 177   1              for (j=0;j<i;j++)
 178   1              {
 179   2                      for (k=0;k<i;k++)
C51 COMPILER V7.50   REPEATER                                                              11/09/2006 12:44:08 PAGE 4   

 180   2                      {
 181   3                              ;
 182   3                      }
 183   2                      PCA0CPH2 = 0X55;
 184   2              }
 185   1      }
 186          //main function
 187          void main()
 188          {
 189   1              unsigned char key_in,key_old = 0xff;
 190   1              unsigned long freq;
 191   1              unsigned long PLL_REG[3]={0x0093,0x0200,0x0000};
 192   1              unsigned long *PLL_point;
 193   1          unsigned char j,i=0,num_mark=0;
 194   1              PCA0MD    &= ~0x40; 
 195   1              Init_Device();
 196   1              PLL_point = &PLL_REG;
 197   1              //TMR2CN |= BIT2;
 198   1              num_mark = 0;
 199   1              key_old = 0xff;
 200   1              for(;;)
 201   1              {
 202   2                      PCA0MD    |= 0x40;
 203   2                      PCA0CPH2 = 0X55;
 204   2                      key_in = ~P1;
 205   2                      key_in = chang_high_to_low(key_in);
 206   2                      freq = FREQ_BASE + key_in;
 207   2                      if (key_in != key_old)
 208   2                      {
 209   3                              PCA0MD    &= ~0x40;
 210   3                              i=0xff;
 211   3                              prepare_PLL(freq,(PLL_point+2));
 212   3                              
 213   3                              for(j=0;j<3;j++)
 214   3                              {
 215   4                                      PLL_LE = 0;
 216   4                                      send_data(PLL_REG[j]);
 217   4                                      PLL_LE = 1;
 218   4                                      PLL_LE = 0;
 219   4                              }
 220   3                              PCA0MD    |= 0x40;
 221   3                              num_mark = 0;
 222   3                              key_old = key_in;
 223   3                              PCA0CPH2 = 0X55;
 224   3                              
 225   3                      }
 226   2                      delay(100);
 227   2              //      if ( (muxdut == 0)  )
 228   2                      if ( (muxdut == 0) &&(num_mark == 0x00) )
 229   2                      {
 230   3                              PCA0MD    &= ~0x40;
 231   3                              prepare_PLL(freq,(PLL_point+2));
 232   3                              
 233   3                              for(j=0;j<3;j++)
 234   3                              {
 235   4                                      PLL_LE = 0;
 236   4                                      send_data(PLL_REG[j]);
 237   4                                      PLL_LE = 1;
 238   4                                      PLL_LE = 0;
 239   4                              }
 240   3                              PCA0MD    |= 0x40;
 241   3                              PCA0CPH2 = 0X55;
C51 COMPILER V7.50   REPEATER                                                              11/09/2006 12:44:08 PAGE 5   

 242   3                              i = i+1;
 243   3                      }
 244   2                      PCA0CPH2 = 0X55;
 245   2                      delay(255);
 246   2                      if (i >10)
 247   2                      {
 248   3                              num_mark = 0xff;
 249   3                      }
 250   2              }
 251   1                      
 252   1                      
 253   1              
 254   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    580    ----
   CONSTANT SIZE    =     12    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----      42
   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 + -