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

📄 ccc.lst

📁 C8051F020单片机内部ADC1的驱动程序的控制程序,采用C语言编写
💻 LST
字号:
C51 COMPILER V7.50   CCC                                                                   11/27/2005 19:02:35 PAGE 1   


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

line level    source

   1          #include <c8051f020.h>                 // SFR declarations
   2          #include <stdio.h>
   3          #include <INTRINS.H>
   4          #include <math.h>
   5          xdata  unsigned char zhi[4096];
   6          void SYSCLK_Init (void);
   7          void PORT_Init (void);
   8          void ADC1_Init(void);
   9          void UART0_Init (void);
  10          void Timer3_Init (int counts);
  11          void ADC1_ISR (void);
  12          sfr16 DP       = 0x82;                 // data pointer
  13          sfr16 TMR3RL   = 0x92;                 // Timer3 reload value
  14          sfr16 TMR3     = 0x94;                 // Timer3 counter
  15          sfr16 ADC0     = 0xbe;                 // ADC0 data
  16          sfr16 ADC0GT   = 0xc4;                 // ADC0 greater than window
  17          sfr16 ADC0LT   = 0xc6;                 // ADC0 less than window
  18          sfr16 RCAP2    = 0xca;                 // Timer2 capture/reload
  19          sfr16 T2       = 0xcc;                 // Timer2
  20          sfr16 RCAP4    = 0xe4;                 // Timer4 capture/reload
  21          sfr16 T4       = 0xf4;                 // Timer4
  22          sfr16 DAC0     = 0xd2;                 // DAC0 data
  23          sfr16 DAC1     = 0xd5;                 // DAC1 data
  24          void delay(unsigned char T)
  25          {
  26   1           while(T)
  27   1         {
  28   2           _nop_();
  29   2           T--;
  30   2         }
  31   1      }
  32          
  33          #define SYSCLK       22118400            // SYSCLK frequency in Hz
  34          #define BAUDRATE     115200              // Baud rate of UART in bps
  35          #define SAMPLE_RATE  500000             // ADC1 Sample frequency in Hz
  36          #define VREF1        3300                // Mv  
  37          #define AV+          3300                // Mv 
  38          sbit LED = P1^6;                         // LED='1' means ON
  39          sbit SW1 = P3^7; 
  40          unsigned int j=0;// SW1='0' means switch pressed
  41          void main(void)
  42          {
  43   1        unsigned char MUXSLECT=0;
  44   1        int ii,jk,kj;
  45   1        int i;
  46   1        float jj;
  47   1        float PI=3.141516*2; 
  48   1        WDTCN = 0xDE;
  49   1        WDTCN = 0xAD;
  50   1        EMI0CF=0x00;
  51   1        SYSCLK_Init();
  52   1        PORT_Init();
  53   1        UART0_Init();
  54   1        ADC1_Init();
  55   1        Timer3_Init (SYSCLK/SAMPLE_RATE);
C51 COMPILER V7.50   CCC                                                                   11/27/2005 19:02:35 PAGE 2   

  56   1        EA = 1;
  57   1        for(kj=0;kj<3555;kj++)
  58   1        for(jk=0;jk<3566;jk++);
  59   1          while (1) 
  60   1          {
  61   2            EA = 0;                          // disable interrupts
  62   2            zhi[i]=ADC1;
  63   2            i=i+1;
  64   2            if(i==4096)
  65   2                {
  66   3                  i=0;
  67   3                  EA=0;
  68   3                  for(kj=0;kj<3555;kj++)
  69   3                  for(jk=0;jk<3566;jk++);
  70   3                  for(i;i<4096;i++)
  71   3                   {  
  72   4                      SBUF0=zhi[i];
  73   4                      while(TI0==0);
  74   4                      TI0=0;
  75   4                   }
  76   3                 while(1);
  77   3                }
  78   2            EA = 1;                   
  79   2            while(j==0);
  80   2            j=0;     
  81   2         }
  82   1      }
*** WARNING C280 IN LINE 44 OF CCC.C: 'ii': unreferenced local variable
*** WARNING C280 IN LINE 46 OF CCC.C: 'jj': unreferenced local variable
  83          void SYSCLK_Init (void)
  84          {
  85   1         int i;                              // delay counter
  86   1         OSCXCN = 0x67;                      // start external oscillator with,   22.1184MHz crystal            
             -                         
  87   1         for (i=0; i < 256; i++);            // XTLVLD blanking interval (>1ms)
  88   1         while (!(OSCXCN & 0x80));           // Wait for crystal osc. to settle
  89   1         OSCICN = 0x88;                      // select external oscillator as SYSCLK
  90   1       }                                     // source and enable missing clock
  91                                                 // detector
  92          
  93          void PORT_Init (void)
  94          {
  95   1         XBR0    = 0x04;                     // Enable UART0
  96   1         XBR1    = 0x00;
  97   1         XBR2    = 0x40;                     // Enable crossbar and weak pull-ups
  98   1         P0MDOUT |= 0x01;                    // enable TX0 as a push-pull output
  99   1         P1MDOUT |= 0x40;                    // enable P1.6 (LED) as push-pull output
 100   1      }
 101          
 102          
 103          void UART0_Init (void)
 104          {
 105   1         SCON0   = 0x50;                     // SCON0: mode 1, 8-bit UART, enable RX
 106   1         TMOD    = 0x20;                     // TMOD: timer 1, mode 2, 8-bit reload
 107   1         TH1    = -(SYSCLK/BAUDRATE/16);     // set Timer1 reload value for baudrate
 108   1         TR1    = 1;                         // start Timer1
 109   1         CKCON |= 0x10;                      // Timer1 uses SYSCLK as time base
 110   1         PCON  |= 0x80;                      // SMOD00 = 1
 111   1         TI0    = 0;                         // Indicate TX0 ready
 112   1         RI0=0;
 113   1      }
 114          
C51 COMPILER V7.50   CCC                                                                   11/27/2005 19:02:35 PAGE 3   

 115          void ADC1_Init(void)
 116          {
 117   1         ADC1CF  = 0x19;                     // SAR转换时间<=6MHz,取5.5,放大增益为0.5
 118   1         AMX1SL  = 0x00;                     // 暂时为AIN1.0,八路中可任选
 119   1         P1MDIN  = 0x00;                     // P1口为模拟输入
 120   1         REF0CN  = 0x0a;                     // ADC0电压取于DAC0,ADC1取于AV+,TEMPE关闭,内部偏压器工作,内部电压
             -基准缓冲器关闭
 121   1         ADC1CN  = 0x82;                     // ADC1允许,一般工作方式,向ADC1BUSY写‘1’开始工作
 122   1         EIE2 |=   0x08;
 123   1      }
 124          void Timer3_Init (int counts)
 125          {
 126   1         TMR3CN = 0x02;                      // Stop Timer3; Clear TF3;
 127   1                                             // use SYSCLK as timebase
 128   1         TMR3RL  = -counts;                  // Init reload values
 129   1         TMR3    = 0xffff;                   // set to reload immediately
 130   1         EIE2   &= ~0x01;                    // disable Timer3 interrupts
 131   1         TMR3CN |= 0x04;                     // start Timer3
 132   1      }
 133          void ADC1_ISR (void) interrupt 17
 134          {
 135   1         EA = 0;
 136   1         j=1;
 137   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    336    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   4096    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      2      15
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  2 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -