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

📄 adc.lst

📁 基于c8051f020的应用
💻 LST
字号:
C51 COMPILER V7.06   ADC                                                                   06/25/2008 15:44:08 PAGE 1   


C51 COMPILER V7.06, COMPILATION OF MODULE ADC
OBJECT MODULE PLACED IN ADC.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\c51.exe ADC.C DB OE

stmt level    source

   1          //********************************************************************************************************
             -******************
   2          #include <c8051F020.h>
   3          #include <stdio.h>
   4          #include "HEAD.H"
   5          //********************************************************************************************************
             -******************
   6          void ADC_Init(void)
   7          {
   8   1              ADC0CN = 0xC0;                                  // ADC0 Enable,正常跟踪模式, ,右对齐
   9   1              REF0CN = 0x02;                  // 基准电压由外部提供(2.5V),
  10   1          ADC0CF = (SYSCLK/2500000) << 3; // ADC转换时钟2.5MHz  
  11   1          ADC0CF &= ~0x07;                            // PGA增益 = 1
  12   1              //EIE2 |= 0x02;                                 // 使能ADC0中断
  13   1      }
  14          //********************************************************************************************************
             -******************
  15          unsigned int ADC_Average(unsigned char n) //返回采集n次ad的平均值,输入n为通道值,
  16          {
  17   1              xdata unsigned char i;
  18   1              xdata unsigned long temp_sum=0;
  19   1      
  20   1          if(n<10)
  21   1                      AMX0SL = n;
  22   1              else
  23   1                      AMX0SL = 0;
  24   1              
  25   1              AD0INT = 0;                                             //软件置零
  26   1              for(i = 0;i < 2;i++)
  27   1              {
  28   2                      AD0BUSY = 1;                                    //启动转换,抛弃前5个数据        
  29   2                  while(AD0INT == 0);
  30   2                      AD0INT = 0;
  31   2              }
  32   1      
  33   1              for(i = 0;i < SAM_NUM; i++)                     //选用后20个数据
  34   1              {
  35   2                      AD0BUSY = 1;
  36   2                  while(AD0INT == 0);
  37   2                      temp_sum += (ADC0H*256+ADC0L);
  38   2                      AD0INT = 0;
  39   2      
  40   2              }
  41   1      
  42   1              return temp_sum / SAM_NUM;
  43   1      }
  44          //********************************************************************************************************
             -******************
  45          void ADC_Work(void)
  46          {
  47   1              xdata unsigned char i;
  48   1              xdata unsigned int ad[9];
  49   1      
  50   1              LED3_ON;
  51   1      
C51 COMPILER V7.06   ADC                                                                   06/25/2008 15:44:08 PAGE 2   

  52   1              for(i=0;i<9;i++)
  53   1              {
  54   2                      ad[i]=ADC_Average(i);
  55   2                      RTUaddress4[10+i*2]=ad[i]>>8;
  56   2                      RTUaddress4[10+i*2+1]=ad[i];
  57   2              }
  58   1              
  59   1              LED3_OFF;
  60   1      }
  61          //********************************************************************************************************
             -******************
  62          // The End
  63          //********************************************************************************************************
             -******************
  64          
  65          
  66          


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