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

📄 a7102.lst

📁 A7102-433.rar
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V8.18   A7102                                                                 03/20/2010 16:53:38 PAGE 1   


C51 COMPILER V8.18, COMPILATION OF MODULE A7102
OBJECT MODULE PLACED IN A7102.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE source\A7102.c BROWSE DEBUG OBJECTEXTEND PRINT(.\A7102.lst) OBJECT(A7102.ob
                    -j)

line level    source

   1                          /***********************************************
   2                          *       copyrite (c) 2007
   3                          *文件名:          A7102.c
   4                          *作者:            larry
   5                          *当前版本:        v1.0
   6                          *建立时间:        2007-6-11 09:45
   7                          *完成日期:
   8                          
   9                          *描述:            A7102驱动抽象程序,与MCU和IO
  10                          *                 接口无关,由外部.h文件宏定义                                
  11                          ************************************************/               
  12          #include    "../header/A7102.h"
  13          /***********************************************
  14          函 数:  Byte_Write()
  15          功 能:  写8bit数据到sck和sdio
  16          输 入:  byte
  17          输 出:  /
  18          描 述:  左移位,bit7在先,sck负边缘触发 
  19          ***********************************************/
  20          void    Byte_Write(unsigned char byte)
  21          {
  22   1              unsigned char i;
  23   1              
  24   1              for(i = 0x00; i < 0x08; i++)
  25   1              {
  26   2                  if(byte&0x80)
  27   2                      iSPI_Sdi     = positive;
  28   2                  else
  29   2                      iSPI_Sdi     = negative;
  30   2                      
  31   2                  delay_A7102_us();
  32   2                  
  33   2                  iSPI_Sck         = positive;
  34   2                  
  35   2                  delay_A7102_us();
  36   2                  
  37   2                  iSPI_Sck         = negative;
  38   2                    
  39   2                  delay_A7102_us();            
  40   2                  
  41   2                  byte           <<= 0x01;
  42   2              }
  43   1      }
  44          /***********************************************
  45          函 数:  Byte_Read()
  46          功 能:  读8bit数据从sck和sdio
  47          输 入:  /
  48          输 出:  byte
  49          描 述:  左移位,bit7在先,sck负边缘触发 
  50          ***********************************************/
  51          unsigned char   Byte_Read(void)
  52          {
  53   1              unsigned char i;
  54   1              unsigned char byte;
C51 COMPILER V8.18   A7102                                                                 03/20/2010 16:53:38 PAGE 2   

  55   1              
  56   1              for(i = 0x00; i < 0x08; i++)
  57   1              {
  58   2                  byte           <<= 0x01;
  59   2                  
  60   2                  delay_A7102_us(); 
  61   2                  
  62   2                  if(iSPI_Sdo)
  63   2                      byte        |= 0x01;
  64   2                  else
  65   2                      byte        &= 0xfe;
  66   2                      
  67   2                  iSPI_Sck         = positive; 
  68   2                              
  69   2                  delay_A7102_us();
  70   2                   
  71   2                  iSPI_Sck         = negative;              
  72   2              }
  73   1              
  74   1              /* 返回读取数值 */
  75   1              return    (byte);
  76   1      }
  77          /***********************************************
  78          函 数:  Word_Write()
  79          功 能:  写16bit数据到sck和sdio
  80          输 入:  word
  81          输 出:  /
  82          描 述:  左移位,bit15在先,sck负边缘触发 
  83          ***********************************************/
  84          void    Word_Write(unsigned int word)
  85          {
  86   1              unsigned char i;
  87   1              
  88   1              for(i = 0x00; i < 0x10; i++)
  89   1              {           
  90   2                  if(word&0x8000)
  91   2                      iSPI_Sdi     = positive;
  92   2                  else
  93   2                      iSPI_Sdi     = negative;
  94   2                  
  95   2                  delay_A7102_us();
  96   2                  
  97   2                  iSPI_Sck         = positive;
  98   2                  
  99   2                  delay_A7102_us();
 100   2                  
 101   2                  iSPI_Sck         = negative;
 102   2                  
 103   2                  delay_A7102_us();            
 104   2                  
 105   2                  word           <<= 0x01;
 106   2              }
 107   1      }
 108          /***********************************************
 109          函 数:  Word_Read()
 110          功 能:  读16bit数据从sck和sdio
 111          输 入:  /
 112          输 出:  word
 113          描 述:  左移位,bit16在先,sck负边缘触发 
 114          ***********************************************/
 115          unsigned int    Word_Read(void)
 116          {
C51 COMPILER V8.18   A7102                                                                 03/20/2010 16:53:38 PAGE 3   

 117   1              unsigned char i;
 118   1              unsigned int  word;
 119   1              
 120   1              for(i = 0x00; i < 0x10; i++)
 121   1              {
 122   2                  word           <<= 0x01;
 123   2                  
 124   2                  delay_A7102_us();
 125   2                  
 126   2                  if(iSPI_Sdo)
 127   2                      word        |= 0x0001;
 128   2                  else
 129   2                      word        &= 0xfffe;
 130   2                      
 131   2                  iSPI_Sck         = positive; 
 132   2                              
 133   2                  delay_A7102_us();
 134   2                  
 135   2                  iSPI_Sck         = negative;
 136   2              }
 137   1              
 138   1              /* 返回读取数值 */
 139   1              return    (word);
 140   1      }
 141          /***********************************************
 142          函 数:  A7102_Reset_Chip()
 143          功 能:  复位A7102芯片 
 144          输 入:  /
 145          输 出:  /
 146          描 述:  /
 147          ***********************************************/
 148          void    A7102_Reset_Chip(void)
 149          {
 150   1              iSPI_Scs        = negative;  
 151   1            
 152   1              /* 写A7102-Reset命令 */
 153   1              Byte_Write(0x7a);     
 154   1         
 155   1              iSPI_Scs        = positive;
 156   1      }
 157          /***********************************************
 158          函 数:  A7102_Reset_FifoTX()
 159          功 能:  复位A7102发送FIFO指针 
 160          输 入:  /
 161          输 出:  /
 162          描 述:  /
 163          ***********************************************/
 164          void    A7102_Reset_FifoTX(void)
 165          {
 166   1              iSPI_Sck        = negative;
 167   1              iSPI_Scs        = negative;
 168   1              
 169   1              /* 写A7102-FifoTX命令 */
 170   1              Byte_Write(0x6a);
 171   1              
 172   1              iSPI_Scs        = positive;
 173   1      }
 174          /***********************************************
 175          函 数:  A7102_Reset_FifoRX()
 176          功 能:  复位A7102接收FIFO指针 
 177          输 入:  /
 178          输 出:  /
C51 COMPILER V8.18   A7102                                                                 03/20/2010 16:53:38 PAGE 4   

 179          描 述:  /
 180          ***********************************************/
 181          void    A7102_Reset_FifoRX(void)
 182          {
 183   1              iSPI_Sck        = negative;
 184   1              iSPI_Scs        = negative;
 185   1              
 186   1              /* 写A7102-FifoRX命令 */
 187   1              Byte_Write(0xea);
 188   1              
 189   1              iSPI_Scs        = positive;
 190   1      }
 191          /***********************************************
 192          函 数:  A7102_Fifo_Read()
 193          功 能:  读FIFO数据 
 194          输 入:  read_buff
 195          输 出:  /
 196          描 述:  /
 197          ***********************************************/
 198          void    A7102_Fifo_Read(unsigned char *read_buff)
 199          {
 200   1              unsigned char i;
 201   1              
 202   1              iSPI_Sck        = negative;
 203   1              iSPI_Scs        = negative;
 204   1              
 205   1              /* 读A7102-FIFO命令 */
 206   1              Byte_Write(0xca);
 207   1              
 208   1              declare_sdo_input();
 209   1              
 210   1              /* 读A7102-FIFO数据 */
 211   1              for(i = 0x00;i < C_FIFO_Byte;i++)
 212   1              {
 213   2                  *read_buff  = Byte_Read();
 214   2                  
 215   2                  read_buff ++;
 216   2              }
 217   1              
 218   1              declare_sdo_output();
 219   1              
 220   1              iSPI_Scs        = positive;
 221   1      }
 222          /***********************************************
 223          函 数:  A7102_Fifo_Write()
 224          功 能:  写FIFO数据 
 225          输 入:  write_buff
 226          输 出:  /
 227          描 述:  /
 228          ***********************************************/
 229          void    A7102_Fifo_Write(unsigned char *write_buff)
 230          {
 231   1              unsigned char i;
 232   1      
 233   1              iSPI_Sck        = negative;
 234   1              iSPI_Scs        = negative;
 235   1      
 236   1              /* 写A7102-FIFO命令 */
 237   1              Byte_Write(0x5a);
 238   1      
 239   1              /* 写A7102-FIFO数据 */
 240   1              for(i = 0x00;i < C_FIFO_Byte;i++)
C51 COMPILER V8.18   A7102                                                                 03/20/2010 16:53:38 PAGE 5   

 241   1              {
 242   2                  Byte_Write(*write_buff);
 243   2                  
 244   2                  write_buff ++;
 245   2              }
 246   1              
 247   1              iSPI_Scs        = positive;
 248   1      }
 249          /***********************************************
 250          函 数:  A7102_Id_Write()
 251          功 能:  写ID到A7102内部寄存器 
 252          输 入:  buff_id[]
 253          输 出:  /
 254          描 述:  写ID必须一次性写入 
 255          ***********************************************/
 256          void    A7102_Id_Write(unsigned char *id_buff)
 257          {
 258   1              unsigned char i;
 259   1              
 260   1              iSPI_Sck        = negative;
 261   1              iSPI_Scs        = negative;
 262   1              
 263   1              /* 写A7102-ID命令 */
 264   1              Byte_Write(0x2a);
 265   1              
 266   1              /* 写A7102-ID数据 */
 267   1              for(i = 0x00;i < 0x04;i++)
 268   1              {
 269   2                  Byte_Write(*id_buff);
 270   2                  
 271   2                  id_buff ++;
 272   2              }
 273   1              
 274   1              iSPI_Scs        = positive;
 275   1      }
 276          /***********************************************
 277          函 数:  A7102_Id_Read()
 278          功 能:  读ID从A7102内部寄存器 
 279          输 入:  /
 280          输 出:  buff_id[]
 281          描 述:  读ID必须一次性读出 
 282          ***********************************************/
 283          void    A7102_Id_Read(unsigned char *id_buff)
 284          {
 285   1              unsigned char i;
 286   1              
 287   1              iSPI_Sck        = negative;
 288   1              iSPI_Scs        = negative;
 289   1              
 290   1              /* 读A7102-ID命令 */
 291   1              Byte_Write(0xaa);
 292   1              
 293   1              declare_sdo_input();
 294   1              
 295   1              /* 读A7102-ID数据 */
 296   1              for(i = 0x00;i < 0x04;i++)
 297   1              {
 298   2                  *id_buff    = Byte_Read();
 299   2                  
 300   2                  id_buff ++;
 301   2              }
 302   1              
C51 COMPILER V8.18   A7102                                                                 03/20/2010 16:53:38 PAGE 6   

 303   1              declare_sdo_output();
 304   1              
 305   1              iSPI_Scs        = positive;
 306   1      }
 307          /***********************************************
 308          函 数:  A7102_Register_Write()
 309          功 能:  写控制数据到A7102内部寄存器 
 310          输 入:  addr,parameter
 311          输 出:  /
 312          描 述:  /
 313          ***********************************************/
 314          void    A7102_Register_Write(unsigned char addr,unsigned int parameter)
 315          {
 316   1              iSPI_Sck        = negative;
 317   1              delay_A7102_us();
 318   1              iSPI_Scs        = negative;
 319   1              
 320   1              addr           &= 0x0f;
 321   1              
 322   1              /* 写A7102-参数配置命令 */

⌨️ 快捷键说明

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