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

📄 ad7705.lst

📁 0-30v
💻 LST
字号:
C51 COMPILER V8.08   AD7705                                                                11/20/2008 22:02:46 PAGE 1   


C51 COMPILER V8.08, 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"reg52.h"
   2          #include"IOCfg.c"
   3          #include"delay.h"
   4          #include"Config.h"
   5          #include"AD7705.h"
   6          #include "intrins.h"
   7           
   8          
   9          /************************************************************************************
  10                                        复位AD7705 
  11          ************************************************************************************/
  12          void rst_ad()
  13          {
  14   1              AD_DRDY = 1;
  15   1              AD_CLK  = 1;
  16   1              AD_DIN  = 1;
  17   1              AD_DOUT = 1;
  18   1              //AD_RST  = 0;
  19   1              delay(300);
  20   1              AD_RST  = 1;    
  21   1              write_ad(0xff);
  22   1              write_ad(0xff);
  23   1              write_ad(0xff);
  24   1              write_ad(0xff);
  25   1              write_ad(0xff); 
  26   1              delay(500); 
  27   1      }
  28          
  29          /************************************************************************************
  30                                        写1字节到AD7705
  31          ************************************************************************************/
  32          write_ad(uchar i)
  33          {
  34   1              uchar a;
  35   1              for(a = 8;a > 0;a--)
  36   1              {
  37   2                      
  38   2                      if((i & 0x80) == 0)
  39   2                      {
  40   3                              AD_DIN = 0;
  41   3                      }
  42   2                      else
  43   2                      {
  44   3                              AD_DIN = 1;
  45   3                      }
  46   2                      i <<= 1;
  47   2                      AD_CLK = 0;
  48   2                      _nop_();
  49   2                      _nop_();
  50   2                      _nop_();
  51   2                      AD_CLK = 1;      
  52   2              }
  53   1      }
  54          
  55          /************************************************************************************
C51 COMPILER V8.08   AD7705                                                                11/20/2008 22:02:46 PAGE 2   

  56                                        设置AD7705通道 
  57          *  0 为第一通道 
  58          *  1 为第二通道  
  59          
  60              //MD1(0)  工 作 模 式 
  61                  //MD0(0)      工 作 模 式   
  62                  //G2(0)       增益选择    0     0     0        0        1        1    1        1
  63                  //G1(0)       增益选择        0         0             1        1        0        0    1        1
  64                  //G0(0)       增益选择        0         1             0        1        0        1    0        1
  65                  //                                              1         2             4        8        16   32       64       128
  66              //B/U(0)  单极性/双极性工作。“0”表示选择双极性操作,“1”表示选择单极性工作  
  67                  //BUF(0)      缓冲器控制。“0”表示片内缓冲器短路,缓冲器短路后,电源电流降低  
  68                  //          此位处于高电平时,缓冲器与模拟输入串联,输入端允许处理高阻抗源  
  69                  //FSYNC(1) 滤波器同步  
  70                    
  71                  //设置40H 双极性方式 44H 单极性方式  
  72                  //-----短路滤波器后线性也好了  
  73          ************************************************************************************/
  74          
  75          void set_7705_ch(bit a)
  76          {
  77   1          if(a == 0)
  78   1              {
  79   2                      write_ad(0x20);//write_ad(0x20);
  80   2                      write_ad(0x05);
  81   2                      write_ad(0x10);//write_ad(0x10);
  82   2                      write_ad(0x44);//write_ad(0x46);
  83   2              }
  84   1              else
  85   1              {
  86   2                      write_ad(0x20);//write_ad(0x20);
  87   2                      write_ad(0x05);
  88   2                      write_ad(0x10);//write_ad(0x10);
  89   2                      write_ad(0x44);//write_ad(0x46);
  90   2              }       
  91   1      }
  92          
  93          
  94          /************************************************************************************
  95                                        读1字节到AD7705   
  96          ************************************************************************************/
  97          uchar read_ad()
  98          {
  99   1          uchar temp2;
 100   1              uchar a;
 101   1              for(a = 8;a > 0;a--)
 102   1              {
 103   2                      AD_CLK = 0;
 104   2                      _nop_();
 105   2                      _nop_();
 106   2                      _nop_();
 107   2                      AD_CLK = 1;
 108   2              _nop_();
 109   2                      _nop_();
 110   2                      _nop_();
 111   2                      temp2 <<= 1;
 112   2                      if(AD_DOUT == 0)
 113   2                      {
 114   3                              temp2 &= 0xfe;
 115   3                      }
 116   2                      else
 117   2                      {
C51 COMPILER V8.08   AD7705                                                                11/20/2008 22:02:46 PAGE 3   

 118   3                              temp2 |= 0x01;
 119   3                      }
 120   2               }
 121   1               return temp2;
 122   1      }
 123          
 124          /************************************************************************************
 125          
 126                            读AD7705转换后的数据  ,不检测DRDY
 127          
 128          ************************************************************************************/
 129          
 130          uint readAD_data()
 131          {
 132   1          uint  temp;
 133   1              uchar i;
 134   1              for(i = 16;i > 0;i--)
 135   1              {
 136   2                      AD_CLK = 0;
 137   2                      _nop_();
 138   2                      _nop_();
 139   2                      _nop_();
 140   2                      AD_CLK = 1;
 141   2              _nop_();
 142   2                      _nop_();
 143   2                      _nop_();
 144   2                      temp <<= 1;
 145   2                      if(AD_DOUT == 0)
 146   2                      {
 147   3                              temp &= 0xfffe;
 148   3                      }
 149   2                      else
 150   2                      {
 151   3                              temp |= 0x0001;
 152   3                      }
 153   2         }
 154   1         return temp;                 
 155   1      }
 156          
 157          /************************************************************************************
 158                           AD的16位整形数转换成浮点电压或电流值  
 159          ************************************************************************************/
 160          float adjisuan_U(uint x)
 161          {
 162   1              idata float temp1;
 163   1              temp1 = 11.990 / 0x5e1f;
 164   1              temp1 = x * temp1;
 165   1              return temp1;
 166   1      }
 167          
 168          float adjisuan_I(uint x)  //
 169          {
 170   1          idata float temp1;
 171   1              temp1 = (1.059 + 0.009) / 0x2c03;
 172   1              //temp1 = (x * temp1) - 0.0039;   
 173   1              temp1 = (x * temp1) - 0.0069 ;
 174   1              return temp1;   
 175   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    262    ----
C51 COMPILER V8.08   AD7705                                                                11/20/2008 22:02:46 PAGE 4   

   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----    ----
   IDATA SIZE       =   ----       8
   BIT SIZE         =   ----       1
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -