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

📄 fasong.lst

📁 NRF905无线收发模块详细资料
💻 LST
📖 第 1 页 / 共 2 页
字号:
 142   1      }
 143          //-----------------------------------------------------发送数据打包---------------------------------------
             -------------
 144          void TxPacket(uchar *TxRxBuf)
 145          {
 146   1              uchar i;
 147   1              //Config905();
 148   1              CSN=0;
 149   1              SpiWrite(WTP);                          // Write payload command
 150   1              for (i=0;i<4;i++)
 151   1              {
 152   2                      SpiWrite(TxRxBuf[i]);           // Write 32 bytes Tx data
 153   2              }// Spi enable for write a spi command
 154   1              CSN=1;
 155   1              Delay(1);                                               // Spi disable
 156   1              CSN=0;                                          // Spi enable for write a spi command
 157   1              SpiWrite(WTA);                          // Write address command
 158   1              for (i=0;i<4;i++)                       // Write 4 bytes address
 159   1              {
 160   2                      SpiWrite(TxAddress[i]);
 161   2              }
 162   1              CSN=1;                                          // Spi disable
C51 COMPILER V7.06   FASONG                                                                08/12/2008 12:43:43 PAGE 4   

 163   1              TRX_CE=1;                                       // Set TRX_CE high,start Tx data transmission
 164   1              Delay(1);                                       // while (DR!=1);
 165   1              TRX_CE=0;                                       // Set TRX_CE low
 166   1      }
 167          //----------------------------------------------------------设置发送状态----------------------------------
             ------------
 168          void SetTxMode(void)
 169          {
 170   1              TRX_CE=0;
 171   1              TXEN=1;
 172   1              Delay(1);                                       // delay for mode change(>=650us)
 173   1      }
 174          //-----------------------------------------------设置发送状态---------------------------------------------
             -------
 175          void SetRxMode(void)
 176          {
 177   1              TXEN=0;
 178   1              TRX_CE=1;
 179   1              Delay(1);                                       // delay for mode change(>=650us)
 180   1      }
 181          //-------------------------------------------------判断数据接收状态---------------------------------------
             ---------------
 182          unsigned char CheckDR(void)             //检查是否有新数据传入 Data Ready
 183          {
 184   1              if (DR=1&&TRX_CE==1 && TXEN==0)
 185   1              {
 186   2             // Delay(50)  ;
 187   2                      return 1;
 188   2              }
 189   1              else
 190   1              {
 191   2                      return 0;
 192   2              }
 193   1      }
 194          //----------------------------------------------------读NRF905接收数据------------------------------------
             -------------------------
 195          void RxPacket(void)                                             
 196          {
 197   1              uchar i;
 198   1          Delay(1);
 199   1      //      TRX_CE=0;                                       // Set nRF905 in standby mode
 200   1          Delay(100);
 201   1          TRX_CE=0;
 202   1              CSN=0;                                          // Spi enable for write a spi command
 203   1          Delay(1);
 204   1              SpiWrite(RRP);
 205   1              for (i = 0 ;i < 4 ;i++)
 206   1              { 
 207   2                      TxRxBuf[i]=SpiRead();           // Read data and save to buffer       
 208   2              }
 209   1              CSN=1;
 210   1          Delay(10);
 211   1              TRX_CE=1;                                                       
 212   1      }
 213          //--------------------------------------------------------数据接收----------------------------------------
             ---------
 214          void  RX(void)
 215          {
 216   1                SetRxMode();                  // Set nRF905 in Rx mode
 217   1                while (CheckDR()==0);
 218   1                        Delay(10);
 219   1                        RxPacket();
C51 COMPILER V7.06   FASONG                                                                08/12/2008 12:43:43 PAGE 5   

 220   1                        if(TxRxBuf[0]==0x29)
 221   1                        {
 222   2                                      P0= seg[3];
 223   2                                      led0=0;
 224   2                                      led1=0;
 225   2                                      led2=0;
 226   2                                      led3=0;
 227   2                        }
 228   1                        if(TxRxBuf[0]==0x30)
 229   1                        {
 230   2                                      P0= seg[4];
 231   2                                      led0=0;
 232   2                                      led1=0;
 233   2                                      led2=0;
 234   2                                  led3=0;
 235   2                        }
 236   1      }
 237          //--------------------------------------------------------------------------------------------------------
             ----------
 238          void main(void)
 239          {
 240   1              nRF905Init();
 241   1              Config905();
 242   1                              P0= seg[0];
 243   1                              led0=0;
 244   1                              led1=0;
 245   1                              led2=0;
 246   1                              led3=0;
 247   1              while(1)
 248   1                      {
 249   2                              RX();
 250   2                         if(KEY0 ==0 )
 251   2                               {      
 252   3                                      tf = 1 ;
 253   3                                      TxRxBuf[0]=0x29;
 254   3                                      TxRxBuf[1]=0x30;
 255   3                                      TxRxBuf[2]=0x31;
 256   3                                      TxRxBuf[3]=0x32;  
 257   3                                      P0= seg[1];
 258   3                                      led0=0;
 259   3                                      led1=0;
 260   3                                      led2=0;
 261   3                                      led3=0;
 262   3                                       }
 263   2                         if(KEY1 ==0 )
 264   2                               {      tf = 1 ; 
 265   3                                      TxRxBuf[0]=0x30;
 266   3                                      TxRxBuf[1]=0x31;
 267   3                                      TxRxBuf[2]=0x32;
 268   3                                      TxRxBuf[3]=0x29;  
 269   3                                      P0= seg[2];
 270   3                                      led0=0;
 271   3                                      led1=0;
 272   3                                      led2=0;
 273   3                                      led3=0;
 274   3                                      }
 275   2                     if (tf==1)
 276   2                              {
 277   3                      SetTxMode();// Set nRF905 in Tx mode
 278   3                                  TxPacket(TxRxBuf);// Send data by nRF905
 279   3                                      tf = 0; 
 280   3                              }       
C51 COMPILER V7.06   FASONG                                                                08/12/2008 12:43:43 PAGE 6   

 281   2      }
 282   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    448    ----
   CONSTANT SIZE    =      8    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     16       3
   IDATA SIZE       =     11    ----
   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 + -