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

📄 f350_adc_buffered_2.lst

📁 cs8051f350资料 内有如何使用说明,和寄存器配置等 注意是PDF格式
💻 LST
📖 第 1 页 / 共 2 页
字号:
 166   1      }
 167          
 168          
 169          //-----------------------------------------------------------------------------
 170          // SYSCLK_Init
 171          //-----------------------------------------------------------------------------
 172          //
 173          // This routine initializes the system clock to use the internal 24.5MHz
 174          // oscillator as its clock source, with x 2 multiply for
 175          // 49 MHz operation. Also enables missing clock detector reset.
 176          //
 177          void SYSCLK_Init (void)
 178          {
 179   1                      unsigned i;
C51 COMPILER V7.00  F350_ADC_BUFFERED_2                                                    02/08/2009 08:08:02 PAGE 4   

 180   1      
 181   1                       OSCICN = 0x80;                         // enable intosc
 182   1                       CLKSEL = 0x00;                         // select intosc as sysclk source
 183   1      
 184   1      // INTOSC configure
 185   1      
 186   1                      OSCICN = 0x83;
 187   1      
 188   1      // PLL configure
 189   1      
 190   1                      CLKMUL = 0x00;                         // Reset Clock Multiplier
 191   1      
 192   1                      CLKMUL &= ~0x03;                       // select INTOSC / 2 as PLL source
 193   1      
 194   1                      CLKMUL |= 0x80;                        // Enable 4x Multipler (MULEN = 1)
 195   1      
 196   1                      for (i = 0; i < 125; i++);             // Delay for at least 5us
 197   1      
 198   1                      CLKMUL |= 0xC0;                        // Initialize Multiplier
 199   1      
 200   1                      while (!(CLKMUL & 0x20));              // Poll for Multiply Ready
 201   1      
 202   1      // SYSCLK configure
 203   1      
 204   1                      VDM0CN = 0x80;                         // enable VDD monitor
 205   1                      RSTSRC = 0x06;                         // enable missing clock detector
 206   1                                                // and VDD monitor reset sources
 207   1                      CLKSEL = 0x02;                         // select PLL as clock source
 208   1      }
 209          
 210          //-----------------------------------------------------------------------------
 211          // PORT_Init
 212          //-----------------------------------------------------------------------------
 213          //
 214          // Configure the Crossbar and GPIO ports.
 215          // P0.4 - TX0 (push-pull)
 216          // P0.5 - RX0
 217          
 218          void PORT7_Init (void)
 219          {
 220   1                      XBR0     |= 0x01;                       // UART0 Selected
 221   1                      XBR1     |= 0x40;                       // Enable crossbar and weak pull-ups
 222   1                      P0MDOUT |= 0xD0;                       // TX, LEDs = Push-pull
 223   1      }
 224          
 225          //-----------------------------------------------------------------------------
 226          // ADC0_Init extVREF Bipolar AIN0.1-AIN0.0
 227          //-----------------------------------------------------------------------------
 228          //
 229          // This function initializes the ADC to measure across AIN0.1 and AIN0.0 
 230          // on the Target Board (Differential measurements, Bipolar codes)
 231          
 232          void ADC0_Init (void)
 233          {
 234   1                      unsigned ADC0_decimation;
 235   1      
 236   1              REF0CN &= ~0x01;                       // disable internal vref
 237   1      
 238   1      //      REF0CN |= 0x01;                        // (enable if using internal vref)
 239   1      
 240   1      
 241   1      //      ADC0CN = 0x00;                         // unipolar output codes, GAIN=1
C51 COMPILER V7.00  F350_ADC_BUFFERED_2                                                    02/08/2009 08:08:02 PAGE 5   

 242   1                      ADC0CN = 0x10;                         // Bipolar output codes, GAIN=1
 243   1      
 244   1      //      ADC0CF = 0x00;                         // interrupts upon SINC3 filter output
 245   1                                                // and uses internal VREF
 246   1      
 247   1              ADC0CF = 0x04;                         // interrupts upon SINC3 filter output
 248   1                                                // and uses external VREF
 249   1      
 250   1         
 251   1                      ADC0CLK = (SYSCLK/MDCLK)-1;            // Ideally, MDCLK = 2.4576 MHz
 252   1                                                
 253   1                                                // Generate MDCLK for modulator.
 254   1                                     
 255   1      
 256   1      
 257   1         // program decimation rate for desired OWR
 258   1      
 259   1                      ADC0_decimation = (unsigned long) SYSCLK/ (unsigned long) OWR / 
 260   1                           (unsigned long) (ADC0CLK+1)/(unsigned long)128;
 261   1      
 262   1                      ADC0_decimation--;
 263   1      
 264   1                  ADC0DEC = ADC0_decimation;
 265   1      
 266   1      
 267   1                  ADC0BUF = 0x00;                        // 关闭输入缓冲
 268   1      
 269   1      
 270   1              ADC0MUX = 0x01;                       // 差分输入
 271   1                                                // AIN+ => AIN0.0
 272   1                                                // AIN- => AIN0.1 
 273   1                                                
 274   1      
 275   1      
 276   1      
 277   1      
 278   1              ADC0MD |= 0x80;                      // 使能(IDLE Mode)
 279   1      }
 280          
 281          //-----------------------------------------------------------------------------
 282          // UART0_Init
 283          //-----------------------------------------------------------------------------
 284          //
 285          // Configure the UART0 using Timer1, for <BAUDRATE> and 8-N-1.
 286          //
 287          void UART0_Init (void)
 288          {
 289   1                      SCON0 = 0x10;                          // 8-bit variable bit rate
 290   1                                                // level of STOP bit is ignored
 291   1                                                // RX enabled
 292   1                                                // ninth bits are zeros
 293   1                                                // clear RI0 and TI0 bits
 294   1                      if (SYSCLK/BAUDRATE/2/256 < 1)
 295   1              {
 296   2              TH1 = -(SYSCLK/BAUDRATE/2);
 297   2               CKCON |=  0x08;                     // T1M = 1; SCA1:0 = xx
 298   2              } 
 299   1                      else if (SYSCLK/BAUDRATE/2/256 < 4)
 300   1                      {
 301   2              TH1 = -(SYSCLK/BAUDRATE/2/4);
 302   2              CKCON &= ~0x0B;                     // T1M = 0; SCA1:0 = 01                  
 303   2              CKCON |=  0x01;
C51 COMPILER V7.00  F350_ADC_BUFFERED_2                                                    02/08/2009 08:08:02 PAGE 6   

 304   2                      } 
 305   1                      else if (SYSCLK/BAUDRATE/2/256 < 12) 
 306   1                      {
 307   2              TH1 = -(SYSCLK/BAUDRATE/2/12);
 308   2              CKCON &= ~0x0B;                     // T1M = 0; SCA1:0 = 00
 309   2                      } 
 310   1                      else 
 311   1                      {
 312   2              TH1 = -(SYSCLK/BAUDRATE/2/48);
 313   2              CKCON &= ~0x0B;                     // T1M = 0; SCA1:0 = 10
 314   2              CKCON |=  0x02;
 315   2                       }
 316   1      
 317   1                      TL1 = TH1;                             // init Timer1
 318   1                      TMOD &= ~0xf0;                         // TMOD: timer 1 in 8-bit autoreload
 319   1                      TMOD |=  0x20;                       
 320   1                      TR1 = 1;                               // START Timer1
 321   1                      TI0 = 1;                               // Indicate TX0 ready
 322   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    972    ----
   CONSTANT SIZE    =    134    ----
   XDATA SIZE       =    512    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      6      14
   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 + -