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

📄 analog.lst

📁 本程序使用C8051F040芯片与CP2200实现单片机与以太网互联。
💻 LST
字号:
C51 COMPILER V7.50   ANALOG                                                                12/14/2006 13:34:42 PAGE 1   


C51 COMPILER V7.50, COMPILATION OF MODULE ANALOG
OBJECT MODULE PLACED IN ANALOG.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE ANALOG.C LARGE OPTIMIZE(9,SPEED) BROWSE DEBUG OBJECTEXTEND

line level    source

   1          //-----------------------------------------------------------------------------
   2          // 这部分程序是利用040内部温度传感器采集出温度值及电压的值,然后通过
   3          //以太网将这些值发送出去的.
   4          //-----------------------------------------------------------------------------
   5          #include <string.h>
   6          
   7          #include "C8051f040.h"
   8          #include "net.h"
   9          #include "analog.h"
  10          
  11          extern char xdata text[];
  12          UINT idata cpu_temperature, air_temperature, cpu_voltage;
  13          UCHAR idata mux_select;
  14          
  15          sfr16 ADC0     = 0xbe;                
  16          
  17          //--------------------------------------------------------------------------
  18          // 初始化ADC
  19          //--------------------------------------------------------------------------
  20          void init_adc(void)
  21          {
  22   1         char SFRPAGE_SAVE=SFRPAGE;
  23   1         SFRPAGE = ADC0_PAGE;
  24   1              ADC0CN = 0x81;                     
  25   1              REF0CN = 0x07;                     
  26   1                                              
  27   1         mux_select = MUX_CPU_TEMP;                   
  28   1         AMX0SL = MUX_CPU_TEMP;       
  29   1         ADC0CF = (SYSCLK/2500000) << 3;    
  30   1         EIE2 &= ~0x02;                      
  31   1         EIE1 &= ~0x04;                      
  32   1         SFRPAGE = SFRPAGE_SAVE;
  33   1      }
  34          
  35          
  36          
  37          //--------------------------------------------------------------------------
  38          // This function is a little state machine which reads one analog
  39          // inputs at a time, out of the 3 possible inputs
  40          //  1. On-chip temperature      片内温度
  41          //  2. External air temperature
  42          //  3. CPU operating voltage    CPu的工作电压
  43          //--------------------------------------------------------------------------
  44          void read_analog_inputs(void)
  45          {
  46   1               ULONG idata temp_long;
  47   1           char SFRPAGE_SAVE = SFRPAGE;
  48   1               SFRPAGE = ADC0_PAGE;
  49   1           AD0INT = 0;                      
  50   1           AD0BUSY = 1;                     
  51   1           while (AD0INT == 0);             
  52   1              switch (mux_select)
  53   1                 {
  54   2                      case MUX_CPU_TEMP:
  55   2                      temp_long = ADC0*2 - 42380;
C51 COMPILER V7.50   ANALOG                                                                12/14/2006 13:34:42 PAGE 2   

  56   2                          temp_long= (temp_long * 100L) / 156;
  57   2                              cpu_temperature=temp_long;
  58   2                              AMX0SL = MUX_CPU_VOLTS;         
  59   2                              mux_select = MUX_CPU_VOLTS;
  60   2                      break;
  61   2      
  62   2                      case MUX_CPU_VOLTS:
  63   2                              temp_long = ADC0;
  64   2                              temp_long = 24*temp_long/655;
  65   2                              cpu_voltage = temp_long;
  66   2                              AMX0SL = MUX_AIR_TEMP;          
  67   2                              mux_select = MUX_AIR_TEMP;
  68   2                      break;
  69   2      
  70   2                      case MUX_AIR_TEMP:
  71   2                              temp_long = ADC0;
  72   2                              temp_long = 24*temp_long/655;
  73   2                              air_temperature = temp_long;
  74   2                              AMX0SL = MUX_CPU_TEMP;   
  75   2                              mux_select = MUX_CPU_TEMP;
  76   2                      break;
  77   2      
  78   2                      default:
  79   2                              AMX0SL = MUX_CPU_TEMP;
  80   2                              mux_select = MUX_CPU_TEMP;
  81   2                      break;
  82   2                  }
  83   1              SFRPAGE = SFRPAGE_SAVE;
  84   1      }
  85           
  86          
  87           


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    216    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----       1
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----    ----
   IDATA SIZE       =      7       4
   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 + -