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

📄 adc.lst

📁 采用51系列单片机为控制核心
💻 LST
字号:
C51 COMPILER V7.09   ADC                                                                   08/24/2007 09:37:08 PAGE 1   


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

line level    source

   1          #include<reg51.h>
   2          #include"Config.h"
   3          #include"IOCfg.c"
   4          #include"TimeDLY.h"
   5          #include"ADC.h"
   6          
   7          //从SPI总线读2字节(16bits)数据函数:
   8          //     SPI_Read_Two()   
   9          INT16 SPI_Read_Two(void)
  10          {
  11   1              INT16 temp;
  12   1              INT8U i;
  13   1              ADCSetSCLK(0);
  14   1              for(i=0;i<16;i++)
  15   1              {
  16   2                      ADCSetSCLK(1);
  17   2                      nNop(2);
  18   2                      temp <<= 1;
  19   2                      if(ADCDATA) temp++;
  20   2                      ADCSetSCLK(0);
  21   2                      nNop(2);
  22   2                      }
  23   1              return(temp);
  24   1              }
  25          
  26          //外部非连续数据时钟,读取上一次转换数据且无同步信号模式函数:
  27          //     EXCLKSample_Pre()
  28          INT16 EXCLKSample_Pre(void)
  29          {
  30   1              INT16 temp;
  31   1              ADCSetEXINT(1);
  32   1              ADCSetRC(1);
  33   1              ADCSetRC(0);
  34   1              while(ADCBUSY);
  35   1              nNop(2);
  36   1              ADCSetRC(1);
  37   1              temp = SPI_Read_Two();
  38   1              return(temp);
  39   1              }
  40          
  41          //外部非连续数据时钟,读取当前次转换数据且无同步信号模式函数:
  42          //     EXCLKSample_Now()
  43          INT16 EXCLKSample_Now(void)
  44          {
  45   1              INT16 temp;
  46   1              ADCSetEXINT(1);
  47   1              ADCSetRC(1);
  48   1              ADCSetRC(0);
  49   1              while(ADCBUSY);
  50   1              nNop(1);
  51   1              ADCSetRC(1);
  52   1              while(!ADCBUSY);
  53   1              temp = SPI_Read_Two();
  54   1              return(temp);
  55   1              }
C51 COMPILER V7.09   ADC                                                                   08/24/2007 09:37:08 PAGE 2   

  56          
  57          //外部非连续数据时钟,读取上一次转换数据且有同步信号模式函数:
  58          //     EXCLKSample_Pre_Syn()
  59          INT16 EXCLKSample_Pre_Syn(void)
  60          {
  61   1              INT16 temp;
  62   1              ADCSetEXINT(1);
  63   1              ADCSetSCLK(0);
  64   1              ADCSetRC(1);
  65   1              ADCSetRC(0);
  66   1              ADCSetSCLK(1);
  67   1              while(ADCBUSY);
  68   1              ADCSetSCLK(0);
  69   1              nNop(1);
  70   1              ADCSetRC(1);
  71   1              ADCSetSCLK(1);
  72   1              while(!ADCSYN);
  73   1              ADCSetSCLK(0);
  74   1              temp = SPI_Read_Two();
  75   1              return(temp);
  76   1              }
  77          
  78          //外部非连续数据时钟,读取当前次转换数据且有同步信号模式函数:
  79          //     EXCLKSample_Now_Syn()
  80          INT16 EXCLKSample_Now_Syn(void)
  81          {
  82   1              INT16 temp;
  83   1              ADCSetEXINT(1);
  84   1              ADCSetSCLK(0);
  85   1              ADCSetRC(1);
  86   1              ADCSetRC(0);
  87   1              ADCSetSCLK(1);
  88   1              while(ADCBUSY);
  89   1              ADCSetSCLK(0);
  90   1              nNop(1);
  91   1              ADCSetRC(1);
  92   1              while(!ADCBUSY);
  93   1              ADCSetSCLK(1);
  94   1              while(!ADCSYN);
  95   1              ADCSetSCLK(0);
  96   1              temp = SPI_Read_Two();
  97   1              return(temp);
  98   1              }
  99          
 100          //指定方式采样以及读取数据函数:nSample()
 101          INT16 nSample(INT8U smode, INT8U sbtc)
 102          {
 103   1              INT16 temp;
 104   1              ADCSetPWRD(PWOP);
 105   1              switch(sbtc)
 106   1              {
 107   2                      case  BTC  :  ADCSetSBTC(BTC);  break;
 108   2                      case  SBIN :  ADCSetSBTC(SBIN); break;
 109   2                      default    :  break;
 110   2                      }
 111   1              switch(smode)
 112   1              {
 113   2                      case  EXDCLK_RDPRE      :  temp = EXCLKSample_Pre();            break;
 114   2                      case  EXDCLK_RDNOW      :  temp = EXCLKSample_Now();            break;
 115   2                      case  EXDCLK_RDPRE_SYN  :  temp = EXCLKSample_Pre_Syn();        break;
 116   2                      case  EXDCLK_RDNOW_SYN  :  temp = EXCLKSample_Now_Syn();        break;
 117   2                      default                         :  break;
C51 COMPILER V7.09   ADC                                                                   08/24/2007 09:37:08 PAGE 3   

 118   2                      }
 119   1              return(temp);
 120   1              }


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