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

📄 adc.lst

📁 nRF24E1多发单收
💻 LST
字号:
C51 COMPILER V7.50   ADC                                                                   08/30/2008 09:17:28 PAGE 1   


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

line level    source

   1          #include "reg24e1.h"
   2          #include "radio.h"
   3          #include "delay.h"
   4          #include "spi.h"
   5          
   6          tRadioParm RadioParm;
   7          tComParm ComParm;
   8          
   9          #define RADIO_PACKET_SIZE 3 
  10          const unsigned char RFConfigBuf[15] =
  11          {
  12                  0x08,RADIO_PACKET_SIZE<<3,  //initial data packet size in bits
  13                  0x00,0x00,0x00,0x00,0x06,   //RX channel 2 address
  14                  0x00,0x00,0x00,0x00,0x05,   //RX channel 1 address
  15                  0x83,                       //32 address bits, 16 bit CRC
  16                  0xEF,                       //power set to 0dBm
  17                  0x05                        //RF channel set to #25, RX on
  18          };
  19          //********************************************************
  20          // Delay
  21          void Delay100us(volatile unsigned char n)
  22          {
  23   1              unsigned char i;
  24   1              while(n--)
  25   1              for (i=0;i<35;i++) ;
  26   1      }
  27          void Delay5us(void)
  28          {
  29   1              unsigned char i;
  30   1              for (i=0;i<2;i++) ;
  31   1      }
  32          //********************************************************
  33          // SpiRadio
  34          void SpiRadio(void)
  35          {
  36   1              SPICLK = 0;                     // Max SPI clock (XTAL/8)
  37   1              P0_DIR &= ~0x20;                // Set P0.5 as output
  38   1              P0 |= 0x20;                     // Set P0.5 high to disable spi netburner chip select
  39   1              SPI_CTRL = 0x02;                // Connect internal SPI controller to Radio
  40   1      }
  41          //********************************************************
  42          // SpiReadWrite
  43          unsigned char SpiReadWrite(unsigned char b)
  44          {
  45   1              EXIF &= ~0x20;                  
  46   1              SPI_DATA = b;                   
  47   1              while((EXIF & 0x20) == 0x00)  ;
  48   1              return SPI_DATA;
  49   1      }
  50          
  51          //********************************************************
  52          // SpiWriteBuf
  53          //  SpiWriteBuf(&TXbuf,n);
  54          void SpiWriteBuf(unsigned char* buf, unsigned char n)
  55          {
C51 COMPILER V7.50   ADC                                                                   08/30/2008 09:17:28 PAGE 2   

  56   1              unsigned char i;
  57   1              for (i=0;i<n;i++)
  58   1              {
  59   2                      SpiReadWrite(*buf);
  60   2                      buf++;
  61   2              }
  62   1      }
  63          //********************************************************
  64          // RadioInit
  65          void RadioInit(void)
  66          {
  67   1              unsigned char i;
  68   1              unsigned char *cpt;
  69   1              unsigned char *bpt;
  70   1              cpt = &RFConfigBuf[0];
  71   1              bpt = RadioCfgBufPt;
  72   1              for (i=0;i<15;i++)
  73   1              {
  74   2                      *bpt = *cpt;
  75   2                      bpt++;
  76   2                      cpt++;
  77   2              }
  78   1      }
  79          //********************************************************
  80          // RadioOn
  81          void RadioOn(void)
  82          {
  83   1              PWR_UP = 1;
  84   1              Delay100us(30);
  85   1              SpiRadio();
  86   1      }
  87          //********************************************************
  88          // RadioCfg
  89          void RadioCfg(void)
  90          {
  91   1              CE = 0;
  92   1              CS = 1;
  93   1              Delay5us();
  94   1              SpiWriteBuf(RadioCfgBufPt,RADIO_CFG_BYTES);
  95   1              CS = 0;
  96   1              CE = 1;
  97   1              Delay5us();
  98   1      }
  99          //********************************************************
 100          // RadioTXBuf
 101          
 102          void RadioTXBuf(unsigned char *bufPt, unsigned char bytes)
 103          {
 104   1              CE = 0;
 105   1              Delay100us(3);
 106   1      //      RadioParm.ChnRxTx &= ~0x01;
 107   1                CS = 1;
 108   1      //        SpiReadWrite(RadioParm.ChnRxTx);
 109   1                      SpiReadWrite(0x04);
 110   1                CS = 0;
 111   1                Delay5us();
 112   1              CE = 1;
 113   1              Delay5us();
 114   1              SpiWriteBuf(bufPt, bytes);
 115   1              CE = 0;
 116   1              Delay100us(5);
 117   1      }
C51 COMPILER V7.50   ADC                                                                   08/30/2008 09:17:28 PAGE 3   

 118          
 119          //********************************************************
 120          // AdcInit
 121          void AdcInit(void)
 122          {
 123   1              ADCCON = 0X30;
 124   1              EXIF &= ~0x10;
 125   1              ADCSTATIC |= 0x21; //8 bit
 126   1      }
 127          /*unsigned int AdcRead(unsigned char channel)
 128          {
 129                  unsigned int i;
 130                  ADCCON = 0x20 + channel;
 131                  Delay5us();
 132                  ADCCON |= 0X80;
 133                  Delay5us();
 134                  while((EXIF & 0X10) == 0) ;
 135                  EXIF &= ~0x10; 
 136                  i = ADCDATAL + (((unsigned int) ADCDATAH)<<8);
 137                  return i;
 138          }
 139          
 140          */
 141           unsigned char AdcRead(unsigned char channel)
 142          {
 143   1              unsigned char i;
 144   1              ADCCON = 0x20 + channel;
 145   1              Delay5us();
 146   1              ADCCON |= 0X80;
 147   1              Delay5us();
 148   1              while((EXIF & 0X10) == 0) ;
 149   1              EXIF &= ~0x10; 
 150   1              i = ADCDATAH;
 151   1              return i;
 152   1      }
 153          void Transmitter(void)
 154          {
 155   1              unsigned int i;
 156   1      
 157   1              ComParm.TXAddress3 = 0x00;   // Set up transmit address
 158   1              ComParm.TXAddress2 = 0x00;
 159   1              ComParm.TXAddress1 = 0x00;
 160   1              ComParm.TXAddress0 = 0x05;
 161   1      
 162   1              for(;;)
 163   1              {
 164   2                      AdcInit();
 165   2                      i = AdcRead(1);
 166   2                      ComParm.adcData1 = i;
 167   2                      AdcInit();
 168   2                      i = AdcRead(2);
 169   2                      ComParm.adcData2 = i;
 170   2                      AdcInit();
 171   2                      i = AdcRead(4);
 172   2                      ComParm.adcData3 = i;
 173   2                      
 174   2      
 175   2                      RadioTXBuf(ComTXBufPt,COM_TX_BYTES);  // Transmit data
 176   2                      Delay100us(13);
 177   2              }
 178   1      }
 179          void Init(void)
C51 COMPILER V7.50   ADC                                                                   08/30/2008 09:17:28 PAGE 4   

 180          {
 181   1              P0_DIR = 0x40;                  // P0.6 is input, the rest output
 182   1              P0 = 0x10;                      // P0.4 = 1 for the rec/tran selection
 183   1              RadioInit();
 184   1              RadioOn();
 185   1              RadioCfg();
 186   1      }
 187          void main(void)
 188          {
 189   1              AdcInit();
 190   1              Init();
 191   1      
 192   1              for(;;)
 193   1              {
 194   2                      Transmitter();
 195   2              }
 196   1      }


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