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

📄 350_adc0.lst

📁 C8051F350单片机的24位AD程序
💻 LST
字号:
C51 COMPILER V7.50   350_ADC0                                                              12/22/2006 14:50:25 PAGE 1   


C51 COMPILER V7.50, COMPILATION OF MODULE 350_ADC0
OBJECT MODULE PLACED IN 350_adc0.OBJ
COMPILER INVOKED BY: h:\Keil\C51\BIN\C51.EXE 350_adc0.c ROM(SMALL) BROWSE DEBUG OBJECTEXTEND

line level    source

   1          //-----------------------------------------------------------------------------
   2          // 包含文件
   3          //-----------------------------------------------------------------------------
   4          //
   5          #include "C8051F350.H"
   6          #include "c8051f350_command.h"
   7          #include <intrins.h>
   8          
   9          //-----------------------------------------------------------------------------
  10          // 外部全局变量声明区
  11          //-----------------------------------------------------------------------------
  12          //
  13          extern unsigned char GCV_received_command_buf;
  14          //-----------------------------------------------------------------------------
  15          // 调用外部函数声明区
  16          //-----------------------------------------------------------------------------
  17          //
  18          void Save_calibrate_parameter(void);
  19          void Load_calibrate_parameter(void);
  20          
  21          
  22          void _350_ADC0_startup(void)
  23          {
  24   1              unsigned char TCV_temp_command;
  25   1              
  26   1              _nop_();
  27   1              _nop_();
  28   1              _nop_();
  29   1              _nop_();
  30   1              _nop_();
  31   1              _nop_();
  32   1              _nop_();
  33   1      
  34   1              //满足命令字条件,则执行ADC0启动命令
  35   1              if( GCV_received_command_buf < 0xa0 )                    
  36   1              {
  37   2                      //使ADC0进入空闲状态
  38   2                      COM_ADC0_idle;
  39   2                      //判断进入哪一路校准                                                     
  40   2                      TCV_temp_command = GCV_received_command_buf;
  41   2                      TCV_temp_command &= 0x0f;                                        
  42   2                      if     ( TCV_temp_command == 0x01 )
  43   2                      {
  44   3                              COM_ADC0_channels_1;
  45   3                      }
  46   2                      else if( TCV_temp_command == 0x02 )
  47   2                      {
  48   3                              COM_ADC0_channels_2;
  49   3                      }
  50   2                      else if( TCV_temp_command == 0x03 )
  51   2                      {
  52   3                              COM_ADC0_channels_3;
  53   3                      }
  54   2                      else if( TCV_temp_command == 0x04 )
  55   2                      {
C51 COMPILER V7.50   350_ADC0                                                              12/22/2006 14:50:25 PAGE 2   

  56   3                              COM_ADC0_channels_4;
  57   3                      }
  58   2                       
  59   2                      TCV_temp_command = GCV_received_command_buf;
  60   2                      TCV_temp_command &= 0xf0;
  61   2                      //判断命令操作                                   
  62   2                      if ( TCV_temp_command == 0x10 )                          
  63   2                      {       
  64   3                              //执行系统自动偏移校正
  65   3                              COM_ADC0_system_offset_calibrate;                
  66   3                      }
  67   2                      else if( TCV_temp_command == 0x20 )                      
  68   2                      {
  69   3                              //执行系统自动增益校正
  70   3                              COM_ADC0_system_gain_calibrate;                  
  71   3                      }
  72   2      
  73   2                      else if( GCV_received_command_buf == 0x35 )      
  74   2                      {
  75   3                              //执行系统偏移手动加
  76   3                              ADC0COM++;
  77   3                      }
  78   2                      else if( GCV_received_command_buf == 0x45 )      
  79   2                      {
  80   3                              //执行系统偏移手动减
  81   3                              ADC0COM--;
  82   3                      }
  83   2                      else if( GCV_received_command_buf == 0x55 )      
  84   2                      {
  85   3                              //执行系统增益手动加
  86   3                              ADC0CGH++;
  87   3                      }
  88   2                      else if( GCV_received_command_buf == 0x66 )      
  89   2                      {       
  90   3                              //执行系统增益手动减                                                    
  91   3                              ADC0CGH--;
  92   3                      }
  93   2                      else if( GCV_received_command_buf == 0x77 )      
  94   2                      {
  95   3                              //执行保存校准参数命令
  96   3                              Save_calibrate_parameter();     
  97   3                      }
  98   2                      else if( GCV_received_command_buf == 0x88 )   
  99   2                      {
 100   3                              //执行读取校准参数命令
 101   3                              Load_calibrate_parameter();
 102   3                      }
 103   2                      else if( GCV_received_command_buf == 0x99 )   
 104   2                      {
 105   3                              //执行全内部校准
 106   3                              COM_ADC0_all_inside_calibrate;
 107   3                      }
 108   2                      
 109   2                      //禁止AD0中断
 110   2                      EIE1 = 0x00;
 111   2                      _nop_();
 112   2                      _nop_();
 113   2                      _nop_();
 114   2                      _nop_();
 115   2                      _nop_();
 116   2                      _nop_();
 117   2      
C51 COMPILER V7.50   350_ADC0                                                              12/22/2006 14:50:25 PAGE 3   

 118   2                      //等待校准完毕
 119   2                      while( AD0CBSY )
 120   2                      {
 121   3                              _nop_();
 122   3                              _nop_();
 123   3                              _nop_();
 124   3                      }
 125   2                      _nop_();
 126   2                      _nop_();
 127   2                      _nop_();
 128   2                      _nop_();
 129   2                      _nop_();
 130   2                      _nop_();
 131   2      
 132   2                      //清除中断标志
 133   2                      AD0INT = 0;
 134   2                      //清除校准中断标志
 135   2                      AD0CALC = 0;
 136   2                      //允许AD0中断
 137   2                      EIE1 = 0x08;
 138   2                      //清空命令字
 139   2                      GCV_received_command_buf = 0xff;        
 140   2                      //强制进入ADC0中断,再次启动ADC0         
 141   2                      AD0INT = 1;
 142   2                      _nop_();
 143   2                      _nop_();
 144   2                      _nop_();
 145   2                      _nop_();
 146   2                      _nop_();
 147   2                      _nop_();
 148   2                      _nop_();
 149   2                                                               
 150   2              }
 151   1              
 152   1              _nop_();
 153   1              _nop_();
 154   1              _nop_();
 155   1              _nop_();
 156   1              _nop_();
 157   1              _nop_();
 158   1              _nop_();
 159   1                      
 160   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    195    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   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 + -