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

📄 adc.lst

📁 这是一种温度变送器的源代码
💻 LST
字号:
C51 COMPILER V7.06   ADC                                                                   01/03/2008 17:28:43 PAGE 1   


C51 COMPILER V7.06, COMPILATION OF MODULE ADC
OBJECT MODULE PLACED IN ADC.OBJ
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE ADC.c BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1          
   2          #include<c8051f350.h>
   3          #include"adc.h"
   4          #include"variable.h"
   5          
   6          /********************************************
   7          函数名: Adc_init
   8          功能: ADC初始化
   9          形式参数:无
  10          返回值:无
  11          ********************************************/
  12          void Adc_init(void)
  13          {
  14   1              ADC0CN  =0x10;//双极性输入,PGA增益=1
  15   1              REF0CN = 0x03; // 基准电压控制寄存器                                                                     
             -                                       
  16   1          ADC0CF  =0x04;//使用外部电压源
  17   1          ADC0MD  =0x80;//ADC0使能
  18   1              ADC0BUF =0x00;
  19   1              ADC0CLK =0x00;
  20   1          ADC0DECH=0x04;//抽取比
  21   1          ADC0DECL=0x00;
  22   1              ADC0STA = 0x00; // 清ADC0状态寄存器
  23   1              EIE1 &= ~0x08; // 禁止ADC0中断(查询采样时使用)
  24   1              ADC0MD |= 0x01;//  全内部校准(偏移、斜率)
  25   1              while (!AD0CALC);// 等待转换完成
  26   1              ADC0MD &= ~0x07;//  ADC0 为理想模式 
  27   1              AD0INT = 0; //clear pending sample indication
  28   1          ADC0MD |= 0x83; // 启动连续转换     
  29   1              deg=0;//采样次数
  30   1      }
  31          /********************************************
  32          函数名: Dac_init
  33          功能: DAC初始化
  34          形式参数:无
  35          返回值:无
  36          ********************************************/
  37          void Dac_init(void)
  38          {
  39   1              IDA1CN    = 0xF3;
  40   1      }
  41          /********************************************
  42          函数名: Adc0_hdl
  43          功能: 数据采样处理
  44          形式参数:channel-通道代码
  45          返回值:经过平均滤波后的采样值(补码表示)
  46          ********************************************/
  47          int Adc0_hdl(unsigned char channel)
  48          {
  49   1              unsigned char i;
  50   1              int temp,ret_value;//,min_value,max_value
  51   1              long temp_value=0;
  52   1              ADC0MD=0x83;
  53   1              ADC0MUX=channel;//通道选择
  54   1              //AD0BUSY=1;
C51 COMPILER V7.06   ADC                                                                   01/03/2008 17:28:43 PAGE 2   

  55   1              while(!AD0INT);
  56   1              AD0INT=0;       
  57   1              temp=ADC0H;//ret_value=ADC0;
  58   1              temp<<=8;
  59   1              temp+=ADC0M;
  60   1              Adc0_buffer[deg]=temp;
  61   1              //max_value=temp;
  62   1              //min_value=temp;
  63   1              for(i=0;i<8;i++)
  64   1              {
  65   2                      //if(Adc0_buffer[i]>max_value)
  66   2                      //      max_value=Adc0_buffer[i];
  67   2                      //if(Adc0_buffer[i]<min_value)
  68   2                      //      min_value=Adc0_buffer[i];
  69   2                      temp_value+=Adc0_buffer[i];
  70   2              }
  71   1              //temp_value=temp_value-max_value-min_value+2;
  72   1              temp_value=temp_value+4;
  73   1              temp_value/=8;
  74   1              ret_value=(int)temp_value;
  75   1              deg++;
  76   1              if(deg==8)
  77   1                      deg=0;
  78   1              return ret_value;       
  79   1      }
  80          
  81          int Adc0_hdl_f(unsigned char channel)
  82          {
  83   1              unsigned char i;
  84   1              int s;
  85   1              for(i=0;i<8;i++)
  86   1                      s=Adc0_hdl(channel);
  87   1              return s;
  88   1      }
  89          /********************************************
  90          函数名: Dac0_hdl
  91          功能: DAC输出处理
  92          形式参数:无
  93          返回值:无
  94          ********************************************/
  95          void Dac_hdl(unsigned char Daout)
  96          {
  97   1              IDA1=Daout;
  98   1      }


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