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

📄 ad7791.lst

📁 这是ad7791的驱动程序,AD7791是24位的高精度AD
💻 LST
字号:
C51 COMPILER V7.50   AD7791                                                                08/11/2006 13:17:52 PAGE 1   


C51 COMPILER V7.50, COMPILATION OF MODULE AD7791
OBJECT MODULE PLACED IN AD7791.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE AD7791.C BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include <at89x52.h>
   2          #include <stdio.h>
   3          
   4          /***********************************AD7791*************************************************/
   5          sbit DIN = P0^0; 
   6          sbit DOUT_RDY = P0^1;
   7          sbit SCLK = P0^2;
   8          sbit CS = P0^3;
   9          /*******************************************************************************************/
  10          //function Inituart();
  11          /*******************************************************************************************/
  12          void delay ( unsigned int i )
  13          { 
  14   1              while ( --i ) ;
  15   1      }
  16          void Inituart(void)
  17          {
  18   1              SCON = 0x50 ;
  19   1              TMOD = 0x20 ;
  20   1              TCON = 0x40 ;
  21   1              TH1  = 0xFD ;
  22   1              TL1  = 0xFD ; //11.0592MHz :9600
  23   1              TI = 1;
  24   1              TR1 = 1;
  25   1      }
  26          /*******************************************************************************************/
  27          //function spi_write();
  28          //communications register
  29          //0x4c  , continuous read 24bit data
  30          /*******************************************************************************************/
  31          spi_write( unsigned char sw )
  32          {
  33   1         unsigned char i;
  34   1         CS=0;
  35   1         SCLK=1;
  36   1      
  37   1         for (i=0;i<8;i++)
  38   1          {
  39   2                 SCLK = 0 ;                             
  40   2                 DIN = (bit)(sw&0x80);           
  41   2                 sw<<=1;                                         
  42   2                 SCLK = 1 ;                              
  43   2                 
  44   2              }
  45   1         CS=1;
  46   1         SCLK=0;
  47   1      }
  48          /*******************************************************************************************/
  49          //function ad7791();
  50          /*******************************************************************************************/
  51          unsigned long spi_read ( void )
  52          {
  53   1         unsigned long addata = 0 ;
  54   1         unsigned char i ;
  55   1         CS=0;
C51 COMPILER V7.50   AD7791                                                                08/11/2006 13:17:52 PAGE 2   

  56   1         SCLK=1;
  57   1         for (i=0;i<24;i++)
  58   1          { 
  59   2            SCLK=0;                                   
  60   2            addata*=2;                                
  61   2            if(DOUT_RDY) addata++;    
  62   2            SCLK=1;                                   
  63   2          }
  64   1          CS=1;
  65   1              return(addata); 
  66   1      /*******************************************************************************************/
  67   1      }
  68          void main(void)
  69          {       
  70   1              unsigned long ad;
  71   1              Inituart();                                     // initialize 232 uart
  72   1      
  73   1                      
  74   1                      spi_write( 0x20 ) ;
  75   1                      delay(100);
  76   1                      spi_write( 0x37 ) ;     
  77   1                      delay(100);
  78   1                      spi_write( 0x3c ) ;
  79   1      
  80   1              while(1)                                
  81   1              {       
  82   2                  
  83   2                      //CS = 0 ;                              
  84   2      
  85   2                  //spi_write( 0x82 ) ; 
  86   2      
  87   2                      delay ( 50000 ) ;
  88   2                      
  89   2                      if(DOUT_RDY)
  90   2                         ad = spi_read(); 
  91   2                      //CS = 1 ;
  92   2                      //P2_5 = ~P2_5 ;
  93   2                      printf ( "%ld\n\r" , ad ) ;
  94   2      
  95   2                              
  96   2      
  97   2              }       
  98   1      }


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