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

📄 nrf905_reference_firmware.lst

📁 nRF905无线收发模块的应用
💻 LST
📖 第 1 页 / 共 3 页
字号:
C51 COMPILER V8.02   NRF905_REFERENCE_FIRMWARE                                             05/12/2006 12:50:33 PAGE 1   


C51 COMPILER V8.02, COMPILATION OF MODULE NRF905_REFERENCE_FIRMWARE
OBJECT MODULE PLACED IN nRF905_reference_firmware.OBJ
COMPILER INVOKED BY: D:\Program Files\Keil\C51\BIN\C51.EXE nRF905_reference_firmware.C BROWSE DEBUG OBJECTEXTEND

line level    source

   1          /************************************************************************************
   2          *                                       NOTICE:                                         
   3          *        NAME:            CRT905ANC.C                                                                   
   4          *        USE:               The nRF905 RF Module Test Board(both transmit and receive function)                                 
   5          *        VERSION:       V0.1                                                                                            
   6          *        MCU:                  AT89C2051 DIP20 (Atmel)                                                          
   7          *        CRYSTAL:          4.00MHz
   8          *        CHANNEL:          
   9          *        FREQUENCY:      433MHz
  10          *        FUNCTION DESCRIPTION:  
  11                                  1. CRC16
  12                                  2. Address length:     40Bit  (5Byte)
  13                                  3. Address:            AA,BB,CC,DD,EE(H->L)
  14                                  4. Payload length:     64Bit (8 Bytes,Max 25 Bytes)  
  15                                  5. Out Power:          0dBm                                                             
  16                                  6. DATA RATE:          100KBps  
  17          ************************************************************************************/
  18          #include <At89x051.h>
  19          #include <intrins.h>
  20          //AT89C2051 pins define
  21          #define START_SW     P3_2
  22          #define STOP_SW P3_2
  23          #define LED1    P3_4
  24          #define LED2    P3_3
  25           
  26          #define TRX_CE P1_3
  27          #define TXEN P1_2                
  28          #define PWR_UP P1_1         
  29          #define AM P1_0 
  30          #define CD P3_7              
  31          #define MISO P1_6   
  32          #define DR P3_5      
  33          #define SCK P1_7
  34          #define MOSI P1_5           
  35          #define CSN P1_4
  36          
  37          //The const nRF905 config register define
  38          const unsigned char config_reg_buf[10]={
  39                          0x4c,//0b01001100,      //CH_NO[7:0]=76,RF freq=422.4+76/10=430MHz
  40                          0x0c,//0b00001100,      //bit[7:6]:not used/bit5:AUTO_RETRAN='0'
  41                                                  //bit4:RX_RED_PWR='0'/bit[3:2]:PA_PWR='11' +10dBm
  42                                                  //bit1:HFREQ_PLL=0,PLL=433MHz/bit0:CH_N0[8]='0'
  43                          0x44,//0b01000100, //bit7:not used/bit[6:4]:TX_AFW='100' 4Bytes
  44                                                  //bit3:not used/bit[2:0]:RX_AFW='100' 4Bytes
  45                          0x20,//0b00100000, //bit[7:6]:not use/bit[5:0]:RX_PW='100000' 32Bytes
  46                          0x20,//0b00100000, //bit[7:6]:not use/bit[5:0]:TX_PW='100000' 32Bytes
  47                          0xa5,           //RX_ADDRESS_BYTE0=TX_ADDRESS_BYTE0
  48                          0xb5,           //RX_ADDRESS_BYTE1=TX_ADDRESS_BYTE1
  49                          0xc5,           //RX_ADDRESS_BYTE2=TX_ADDRESS_BYTE2
  50                          0xd5,           //RX_ADDRESS_BYTE3=TX_ADDRESS_BYTE3
  51                          0xc3        // //0xc3---4M  //0xdb --16m       
  52                             //0b11011011 //bit7:CRC_MODE='1' CRC16/bit6:CRC_EN='1' CRC Enable
  53                                                  //bit[5:3]:XOF='011' 16MHz/bit[2]UP_CLK_EN='0' Disable
  54                                                  //bit[1:0]:UP_CLK_FRE='11' 500KHz
  55                                                  };
C51 COMPILER V8.02   NRF905_REFERENCE_FIRMWARE                                             05/12/2006 12:50:33 PAGE 2   

  56          
  57          //The const nRF905 TX address register define
  58          const unsigned char tx_address_reg_buf[4]={
  59                          0xa5,           //TX_ADDRESS_BYTE0=RX_ADDRESS_BYTE0
  60                          0xb5,           //TX_ADDRESS_BYTE1=RX_ADDRESS_BYTE1
  61                          0xc5,           //TX_ADDRESS_BYTE2=RX_ADDRESS_BYTE2
  62                          0xd5            //TX_ADDRESS_BYTE3=RX_ADDRESS_BYTE3
  63                                                  };
  64          
  65          //The address and data of TX and the data of RX buffer define 
  66          //unsigned char tx_address_buf[4];
  67          unsigned char tx_data_buf[3]={0x41,0x0a,0x0d};
  68          unsigned char rx_data_buf[32];
  69                                                                                          
  70          unsigned char task_switch;
  71          
  72          void system_init();
  73          void write_spi_one_byte(unsigned char data_buf);
  74          unsigned char read_spi_one_byte(void);
  75          void write_config();
  76          void read_config();
  77          void write_tx_payload(unsigned char tx_payload_bytes_num);
  78          //void read_tx_payload(unsigned char tx_payload_bytes_num);
  79          void write_tx_address(unsigned char tx_address_bytes_num);
  80          //void read_tx_address(unsigned char tx_address_bytes_num);
  81          void read_rx_payload(unsigned char rx_payload_bytes_num);
  82          //void fast_channel_config(unsigned char freq_value,unsigned char ch_no_value);
  83          void send_rx_data_to_pc(void);
  84          void send_rf_data(void);
  85          void transmit_mode(void);
  86          void receive_mode(void);
  87          void delay_ms(unsigned int delay_counter);
  88          void main(void);
  89          /****************************************************************************/
  90          
  91          
  92          void Delay100ms(unsigned char x)
  93          {   
  94   1        unsigned char i,j;
  95   1        
  96   1        while(x-- != 0)
  97   1        {//dog=!dog;
  98   2              for (j = 0;j < 114; j++)for (i = 0;i < 88; i++){_nop_() ;_nop_() ;_nop_() ;_nop_() ;_nop_() ;_nop_() ;
  99   3              _nop_() ;_nop_() ;_nop_() ;_nop_() ;_nop_() ;_nop_() ;_nop_() ;_nop_() ;_nop_() ;_nop_() ;_nop_() ;_nop_(
             -) ;
 100   3              _nop_() ;_nop_() ;_nop_() ;_nop_() ;_nop_() ;_nop_() ;_nop_() ;_nop_() ;_nop_() ;_nop_() ;_nop_() ;_nop_(
             -) ;
 101   3              _nop_() ;_nop_() ;_nop_() ;};
 102   2        }
 103   1      }
 104          /*********************************************************************************
 105          * function:         myinit()                                                      
 106          * use:               initilize some normal parameter                    
 107          * input parameter:  none                                                        
 108          * output parameter: none                                                
 109          *********************************************************************************/
 110          
 111          void system_init()
 112          {       
 113   1              unsigned char i;
 114   1      
 115   1              delay_ms(10);
C51 COMPILER V8.02   NRF905_REFERENCE_FIRMWARE                                             05/12/2006 12:50:33 PAGE 3   

 116   1              task_switch=2;  //Set the test board default mode as receive mode
 117   1              LED1=0;                 //Turn on the led indicate the system is already for receive data
 118   1                      
 119   1              PWR_UP=1;
 120   1              TRX_CE=0;
 121   1              TXEN=0;
 122   1              CSN=1;
 123   1              SCK=0;
 124   1              
 125   1              i=0;
 126   1              for(i=0;i<32;i++)                               //Clear the data buffer
 127   1              {
 128   2                      rx_data_buf[i]=0;
 129   2              }       
 130   1              
 131   1              write_config();
 132   1              
 133   1              if(START_SW==0)                         //For the RF frequency test
 134   1              {                                               //If the start_button is pressed during the power on                                                 
 135   2                      delay_ms(50);
 136   2                      if(START_SW==0)
 137   2                      {
 138   3                              TXEN=1;
 139   3                              delay_ms(1);
 140   3                              write_tx_address(4);
 141   3                              write_tx_payload(32);
 142   3                              TRX_CE=1;
 143   3                              while(1);
 144   3                      }       
 145   2              }
 146   1              
 147   1              TMOD=0x20;                                              //config UART rate
 148   1              SCON=0x50;                                              //19.2kbps(max 20kbps)
 149   1              PCON=0x80;
 150   1              TH1=0xfd;
 151   1              TL1=0xfd;
 152   1              TR1=1;
 153   1              EA=0;
 154   1              ES=0;
 155   1      } 
 156          /***********************************myinit() END*************************************/
 157          
 158          
 159          
 160          /***********************************************************************************
 161          * function:         write_spi_one_byte()                                                                                
 162          * use:                          
 163          * input parameter:                                                                              
 164          * output parameter:                                                             
 165          ***********************************************************************************/
 166          
 167          void write_spi_one_byte(unsigned char data_buf)
 168          {
 169   1              unsigned char i;
 170   1              unsigned char j;
 171   1      
 172   1              j=0x80;//0b10000000
 173   1              while(j>0)
 174   1              {
 175   2                      i=data_buf&j;
 176   2                      if(i==0)
 177   2                      {
C51 COMPILER V8.02   NRF905_REFERENCE_FIRMWARE                                             05/12/2006 12:50:33 PAGE 4   

⌨️ 快捷键说明

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