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

📄 ad7705.lst

📁 KEILC RTX51tiny开发的程序
💻 LST
字号:
C51 COMPILER V8.08   AD7705                                                                11/16/2007 18:23:56 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 COMPACT BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include<STC12C5410AD.H>
   2          #include<MATH.H>
   3          #define byte unsigned char
   4          
   5            //函数声明 
   6          void initspi(void);
   7          void send(byte s);
   8          void reset7705(void);
   9          long zero(void);
  10          unsigned int get(unsigned char chanNo);  //读取AD7705的采样值 
  11          void delay();
  12          void adInit(void); //AD转换初始化 
  13          void selectChan0(void);   //选择通道0
  14          void selectChan1(void);   //选择通道1
  15          
  16            //管脚定义 
  17          sbit cs=P1^4;   //AD7705片选 
  18          sbit dr=P3^3;  //AD7705转换标志 
  19          
  20          
  21          
  22          //AD转换初始化 
  23          void adInit(void)
  24          {
  25   1          initspi();
  26   1          reset7705();//连续40个串行周期写入1,复位7705的数据接口
  27   1          send(0x20);
  28   1          send(0x0C);
  29   1              send(0x21);
  30   1          send(0x0C);
  31   1              send(0x10);
  32   1              send(0x44);
  33   1              send(0x11);
  34   1              send(0x44);
  35   1      }
  36          //选择通道0
  37          void selectChan0(void)
  38          {
  39   1          send(0x20);
  40   1          send(0x0C);
  41   1              send(0x10);
  42   1              send(0x44);
  43   1      }          
  44          //选择通道1
  45          void selectChan1(void)
  46          {
  47   1          send(0x21);
  48   1          send(0x0C);
  49   1              send(0x11);
  50   1              send(0x44);
  51   1      }
  52          void initspi(void)
  53          {
  54   1          SPCTL=0xDE;//主机,先传MSB,允许工作 ,时钟频率(1/64)CPUclock)
  55   1          SPSTAT=0xC0;//清零 
C51 COMPILER V8.08   AD7705                                                                11/16/2007 18:23:56 PAGE 2   

  56   1              P1M0=P1M0&(0xEF);  //CS(P1.4)设置为输出 
  57   1              P1M1=P1M1|(0x10);
  58   1              P3M0=P3M0|(0x08);   //DRDY(P3.3)设置为输入 
  59   1              P3M1=P3M1&(0xF7);
  60   1      }
  61          void send(byte s)
  62          {
  63   1          cs=0;
  64   1          SPDAT=s;
  65   1          while(!(SPSTAT&0x80))
  66   1          {;}
  67   1              SPSTAT=0xC0;
  68   1              cs=1;
  69   1      }
  70          unsigned int get(unsigned char chanNo)
  71          {
  72   1          byte a1,b1;
  73   1              while(!dr)
  74   1          {;}
  75   1          while(dr)
  76   1          {;}
  77   1      
  78   1              switch(chanNo)
  79   1          {
  80   2              case 0: send(0x38);break; 
  81   2              case 1: send(0x39);break; 
  82   2          } 
  83   1              cs=0;
  84   1              SPDAT=0;
  85   1          while(!(SPSTAT&0x80))
  86   1          {;}
  87   1              a1=SPDAT;
  88   1          SPSTAT=0xC0;
  89   1              SPDAT=0;
  90   1          while(!(SPSTAT&0x80))
  91   1          {;}
  92   1              b1=SPDAT;
  93   1          SPSTAT=0xC0;
  94   1              cs=1;
  95   1          return(a1*256+b1);
  96   1      }
  97          void reset7705(void)
  98          {
  99   1          cs=0;
 100   1          SPDAT=0xFF;
 101   1          while(!(SPSTAT&0x80))
 102   1          {;}                                  
 103   1              SPSTAT=0xC0;
 104   1          SPDAT=0xFF;
 105   1          while(!(SPSTAT&0x80))
 106   1          {;}
 107   1              SPSTAT=0xC0;
 108   1          SPDAT=0xFF;
 109   1          while(!(SPSTAT&0x80))
 110   1          {;}
 111   1              SPSTAT=0xC0;
 112   1          SPDAT=0xFF;
 113   1          while(!(SPSTAT&0x80))
 114   1          {;}
 115   1              SPSTAT=0xC0;
 116   1          SPDAT=0xFF;
 117   1          while(!(SPSTAT&0x80))
C51 COMPILER V8.08   AD7705                                                                11/16/2007 18:23:56 PAGE 3   

 118   1          {;}
 119   1              SPSTAT=0xC0;
 120   1              cs=1;
 121   1      } 
 122          
 123          
 124          
 125          
 126          


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