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

📄 ad7705.lst

📁 1
💻 LST
字号:
C51 COMPILER V8.02   AD7705                                                                05/17/2009 18:24:26 PAGE 1   


C51 COMPILER V8.02, COMPILATION OF MODULE AD7705
OBJECT MODULE PLACED IN ad7705.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE ad7705.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include <reg51.h>
   2          #include"intrins.h"
   3          
   4          #define Ain1 0x00
   5          #define Ain2 0x01
   6          
   7          sbit sclk = P1^7;
   8          sbit drdy = P1^3;
   9          sbit din  = P1^5;
  10          sbit dout = P1^6;
  11          sbit CS_AD7705 = P1^4;
  12          
  13          void Writetoreg(unsigned char byteword);
  14          unsigned int Read_16bitdata(void);
  15          void Init_AD7705( unsigned char Channel );
  16          unsigned int Average_Sample(unsigned int Num_Sample);
  17          void Reset_AD7705(void);
  18          
  19          void Writetoreg(unsigned char byteword)
  20          {
  21   1              
  22   1              unsigned char i;
  23   1      
  24   1              while( !drdy );
  25   1              sclk = 1;
  26   1              CS_AD7705 = 0;
  27   1              
  28   1              for(i = 0; i < 8; i++)
  29   1              {
  30   2                      sclk = 0;
  31   2                      din = (bit)(byteword & 0x80);
  32   2                      sclk = 1;
  33   2                      byteword <<= 1;
  34   2              }
  35   1      
  36   1              CS_AD7705 = 1;  
  37   1      
  38   1      }
  39          
  40          unsigned int Read_16bitdata(void)
  41          {
  42   1              
  43   1              unsigned char i;
  44   1              unsigned int Sample = 0;
  45   1      
  46   1              while( drdy );
  47   1      
  48   1              sclk = 1;
  49   1              CS_AD7705 = 0;
  50   1      
  51   1              for(i = 0; i < 16; i++)
  52   1              {
  53   2                      Sample <<= 1;
  54   2                      sclk = 0;               
  55   2                      Sample += (0x0001 & (unsigned int)dout);
C51 COMPILER V8.02   AD7705                                                                05/17/2009 18:24:26 PAGE 2   

  56   2                      sclk = 1;
  57   2              }
  58   1      
  59   1              CS_AD7705 = 1;
  60   1      
  61   1              while( !drdy );
  62   1      
  63   1              return Sample;
  64   1      
  65   1      }
  66          
  67          void Init_AD7705( unsigned char Channel )
  68          {
  69   1              
  70   1              CS_AD7705 = 1;
  71   1              
  72   1              Writetoreg(0x21|Channel); /* Active Channel is Ain1(+)/Ain1(.), next operation as write to the clock regi
             -ster */
  73   1              Writetoreg(0x08); /* master clock enabled, 2.0000MHz Clock(CLKDIV = 1), set output rate to 200Hz*/
  74   1              Writetoreg(0x11|Channel); /* Active Channel is Ain1(+)/Ain1(.), next operation as write to the setup regi
             -ster */
  75   1              Writetoreg(0x7c); /* gain = 128, bipolar mode, buffer on, clear FSYNC and perform a Self Calibration*/  
  76   1      
  77   1      }
  78          
  79          unsigned int Average_Sample(unsigned int Num_Sample)
  80          {
  81   1              
  82   1              unsigned int i;
  83   1              unsigned long int result = 0;
  84   1      
  85   1              for(i = 0; i < Num_Sample; i++)
  86   1              {
  87   2      //              Init_AD7705();
  88   2                      Writetoreg(0x39);
  89   2                      result += Read_16bitdata();
  90   2              }
  91   1      
  92   1              result = result / Num_Sample;
  93   1      
  94   1              return (unsigned int)result;
  95   1      }
  96          
  97          void Reset_AD7705(void)
  98          {
  99   1          unsigned char i;
 100   1      
 101   1              sclk = 1;
 102   1          for(i = 0;i < 40; i++)
 103   1          {  
 104   2              sclk = 0; 
 105   2              din = 1; 
 106   2              sclk = 1; 
 107   2          }
 108   1      
 109   1      }
 110          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    216    ----
   CONSTANT SIZE    =   ----    ----
C51 COMPILER V8.02   AD7705                                                                05/17/2009 18:24:26 PAGE 3   

   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----       6
   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 + -