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

📄 ad7705.lst

📁 用于远程控制系统下位机的设置程序
💻 LST
字号:
C51 COMPILER V7.06   AD7705                                                                09/18/2007 10:26:10 PAGE 1   


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

stmt level    source

   1          #include <AT898252.H>
   2          #include <intrins.h>
   3          
   4          #define uchar unsigned char 
   5          #define uint  unsigned int 
   6          
   7          sbit  DIN7705=P3^4; /*数据输入输出为同一端口*/
   8          sbit  DOUT7705=P3^4;
   9          sbit  CLK7705=P3^5;
  10          sbit  AD7705_DRDY=P1^5;
  11          
  12          /*全局变量定义*/
  13          extern uchar ADH_1;
  14          extern uchar ADL_1;
  15          extern uchar ADH_2;
  16          extern uchar ADL_2;
  17          
  18          /*写AD7705函数*/
  19          void writetoreg7705(uchar dat)
  20          {
  21   1        uchar  i;
  22   1        for(i=0;i<8;i++)
  23   1        {
  24   2           CLK7705=0;
  25   2               DOUT7705=(bit)(dat&0x80);
  26   2               dat<<=1;
  27   2      
  28   2               _nop_();
  29   2               
  30   2           CLK7705=1;
  31   2               _nop_();
  32   2               _nop_();
  33   2         }
  34   1      }
  35          
  36          /*读AD7705函数,参数ff=0表示读写1通道,1表示读写2通道*/
  37          
  38          void readfromda7705(bit ff)
  39          {
  40   1        uchar  i,tmp,tt;
  41   1        bit cc;
  42   1        tmp=0;
  43   1        if(!ff)
  44   1        {
  45   2          writetoreg7705(0x38);    /*写通信寄存器,下一次为读数据寄存器通道1*/
  46   2              AD7705_DRDY=1;
  47   2              while(AD7705_DRDY);
  48   2              for(i=0;i<8;i++)
  49   2              {
  50   3                tmp<<=1;
  51   3                DIN7705=1;
  52   3                _nop_();
  53   3                _nop_();
  54   3                _nop_();
  55   3                CLK7705=0;
C51 COMPILER V7.06   AD7705                                                                09/18/2007 10:26:10 PAGE 2   

  56   3                _nop_();
  57   3                _nop_();
  58   3                _nop_();
  59   3                CLK7705=1;
  60   3                _nop_();
  61   3                cc=DIN7705;
  62   3                tt=(uchar )cc;
  63   3                tmp=tmp|tt;
  64   3              }
  65   2      
  66   2              ADH_1=tmp;
  67   2              tmp=0;
  68   2              for(i=0;i<8;i++)
  69   2              {
  70   3                tmp<<=1;
  71   3                DIN7705=1;
  72   3                _nop_();
  73   3                _nop_();
  74   3                _nop_();
  75   3                CLK7705=0;
  76   3                _nop_();
  77   3                _nop_();
  78   3                _nop_();
  79   3                CLK7705=1;
  80   3                _nop_();
  81   3                cc=DIN7705;
  82   3                tt=(uchar )cc;
  83   3                tmp=tmp|tt;
  84   3              }
  85   2          ADL_1=tmp;
  86   2         }
  87   1         else
  88   1         {
  89   2            writetoreg7705(0x39);    /*写通信寄存器,下一次为读数据寄存器通道1*/
  90   2              AD7705_DRDY=1;
  91   2              while(AD7705_DRDY);
  92   2              for(i=0;i<8;i++)
  93   2              {
  94   3                tmp<<=1;
  95   3                DIN7705=1;
  96   3                _nop_();
  97   3                _nop_();
  98   3                _nop_();
  99   3                CLK7705=0;
 100   3                _nop_();
 101   3                _nop_();
 102   3                _nop_();
 103   3                CLK7705=1;
 104   3                _nop_();
 105   3                cc=DIN7705;
 106   3                tt=(uchar )cc;
 107   3                tmp=tmp|tt;
 108   3              }
 109   2      
 110   2              ADH_2=tmp;
 111   2              tmp=0;
 112   2              for(i=0;i<8;i++)
 113   2              {
 114   3                tmp<<=1;
 115   3                DIN7705=1;
 116   3                _nop_();
 117   3                _nop_();
C51 COMPILER V7.06   AD7705                                                                09/18/2007 10:26:10 PAGE 3   

 118   3                _nop_();
 119   3                CLK7705=0;
 120   3                _nop_();
 121   3                _nop_();
 122   3                _nop_();
 123   3                CLK7705=1;
 124   3                _nop_();
 125   3                cc=DIN7705;
 126   3                tt=(uchar )cc;
 127   3                tmp=tmp|tt;
 128   3              }
 129   2          ADL_2=tmp;
 130   2         }
 131   1      }
 132          
 133          /*AD7705初始化*/
 134          void AD7705_init(bit ff)
 135          {
 136   1        uchar  i;
 137   1        CLK7705=1;
 138   1        DIN7705=1; /*数据拉高,为复位做准备*/
 139   1        for(i=0;i<40;i++)
 140   1        {
 141   2          CLK7705=0;
 142   2               CLK7705=0; /*32周期以上的写1,保证通信寄存器回等待状态*/
 143   2        }
 144   1      
 145   1        if(!ff)
 146   1        {
 147   2          writetoreg7705(0x20);
 148   2               writetoreg7705(0x04);
 149   2                writetoreg7705(0x10);
 150   2                 writetoreg7705(0x44);
 151   2         }
 152   1         else
 153   1         {
 154   2           writetoreg7705(0x21);
 155   2               writetoreg7705(0x04);
 156   2                writetoreg7705(0x11);
 157   2                 writetoreg7705(0x44);
 158   2              }
 159   1        AD7705_DRDY=1;
 160   1        while(AD7705_DRDY);
 161   1      }
 162          
 163          
 164          
 165          
 166          
 167          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    270    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----    ----
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----       3
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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