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

📄 nrf905.lst

📁 nrf905串口收发等资源代码
💻 LST
📖 第 1 页 / 共 2 页
字号:
 195   4                                    case LED4:TxData('D');break;
 196   4                                        //default:P0=0xff;TxBuf[0]=0xff; 
 197   4                                       } 
 198   3                          //===============NRF905发送相应的按键         
 199   3                          SetTxMode();                        // Set Tx Mode
 200   3                          TxPacket();                         // Transmit Tx buffer data
 201   3                              TxBuf[0] = 0xff;
 202   3                              SetRxMode();                            // Set nRF905 in Rx mode
 203   3                              tf=0;
 204   3                              Delay(500);
 205   3                              P0=0xff;
 206   3                       }
 207   2      
 208   2               //=====================等待NRF905接收
 209   2                 if (DR)                      // If recive data ready... 
 210   2                 RxPacket();                  // ... recive data
 211   2               //=====================从串口接收到数据
 212   2               if (rsbrf!=0)
 213   2                {
 214   3                       switch(rsbrf)
 215   3                         {
 216   4                           case 'A':P0=LED1;TxBuf[0]=LED1;delayf=1;break;
 217   4                               case 'B':P0=LED2;TxBuf[0]=LED2;delayf=1;break;
 218   4                               case 'C':P0=LED3;TxBuf[0]=LED3;delayf=1;break;
 219   4                               case 'D':P0=LED4;TxBuf[0]=LED4;delayf=1;break;
 220   4                               //default:P0=0xff;TxBuf[0]=0xff; 
 221   4                              }
 222   3                //====================NRF905发送串口接收到的相应的字符 
 223   3                 if(TxBuf[0]!=0xff)
 224   3                   if(TxBuf[0]!=0x00)
 225   3                        {
 226   4                          SetTxMode();                                // Set Tx Mode
 227   4                          TxPacket();                                 // Transmit Tx buffer data
 228   4                              TxBuf[0] = 0xff;
 229   4                              SetRxMode();                            // Set nRF905 in Rx mode
 230   4                        }                                             
 231   3               //=====================
 232   3                       if(delayf==1)
 233   3                         {
 234   4                           Delay(500);
 235   4                               delayf = 0 ;
 236   4                               P0 = 0xff ;
 237   4                         }
 238   3                 }
 239   2               //=====================
 240   2               if(rsbrf!=0)
 241   2                 {
C51 COMPILER V7.06   NRF905                                                                03/24/2007 09:42:31 PAGE 5   

 242   3                   TxData(rsbrf);
 243   3                       rsbrf = 0 ;
 244   3                 }
 245   2               //=====================
 246   2      
 247   2      
 248   2      }
 249   1      }
 250          /*******************************************************************************************/
 251          /*******************************************************************************************/
 252          //function Config905();
 253          /*******************************************************************************************/
 254          void Config905(void)
 255          {
 256   1              unsigned char  i;                                       
 257   1              CSN=0;                                          // Spi enable for write a spi command
 258   1              SpiWrite(WC);                           // Write config command写放配置命令
 259   1              for (i=0;i<RxTxConf.n;i++)      // Write configration words  写放配置字
 260   1              {
 261   2                      SpiWrite(RxTxConf.buf[i]);
 262   2              }
 263   1              CSN=1;                                          // Disable Spi
 264   1      }
 265          /*******************************************************************************************/
 266          //function SpiWrite();
 267          /*******************************************************************************************/
 268          void SpiWrite(unsigned char   byte)
 269          {
 270   1              unsigned char  i;       
 271   1              DATA_BUF=byte;                          // Put function's parameter into a bdata variable               
 272   1              for (i=0;i<8;i++)                       // Setup byte circulation bits
 273   1              {       
 274   2                      
 275   2                      if (flag)                               // Put DATA_BUF.7 on data line
 276   2                              MOSI=1;
 277   2                      else
 278   2                              MOSI=0;
 279   2                      SCK=1;                                  // Set clock line high
 280   2                      DATA_BUF=DATA_BUF<<1;   // Shift DATA_BUF
 281   2                      SCK=0;                                  // Set clock line low 
 282   2              }       
 283   1      }
 284          /*******************************************************************************************/
 285          //function SpiRead();
 286          /*******************************************************************************************/
 287          unsigned char  SpiRead(void)
 288          {
 289   1              unsigned char  i;       
 290   1              for (i=0;i<8;i++)                       // Setup byte circulation bits
 291   1              {       
 292   2                      DATA_BUF=DATA_BUF<<1;   // Right shift DATA_BUF
 293   2                      SCK=1;                                  // Set clock line high
 294   2                      if (MISO)
 295   2                              flag1=1;                        // Read data
 296   2                      else
 297   2                              flag1=0;
 298   2                                                              
 299   2                      
 300   2                      SCK=0;                                  // Set clock line low
 301   2              }
 302   1              return DATA_BUF;                        // Return function parameter
 303   1      }
C51 COMPILER V7.06   NRF905                                                                03/24/2007 09:42:31 PAGE 6   

 304          /*******************************************************************************************/
 305          //function TxPacket();
 306          /*******************************************************************************************/
 307          void TxPacket(void)
 308          {
 309   1              unsigned char  i;
 310   1              //Config905();                          
 311   1              CSN=0;                                          // Spi enable for write a spi command   
 312   1              SpiWrite(WTP);                          // Write payload command
 313   1              for (i=0;i<32;i++)
 314   1              {
 315   2                      SpiWrite(TxBuf[i]);             // Write 32 bytes Tx data
 316   2              }
 317   1              CSN=1;                                          // Spi disable                                          
 318   1              Delay(1);
 319   1              CSN=0;                                          // Spi enable for write a spi command   
 320   1              SpiWrite(WTA);                          // Write address command
 321   1              for (i=0;i<4;i++)                       // Write 4 bytes address
 322   1              {
 323   2                      SpiWrite(RxTxConf.buf[i+5]);
 324   2              }       
 325   1              CSN=1;                                          // Spi disable
 326   1              TRX_CE=1;                                       // Set TRX_CE high,start Tx data transmission
 327   1              Delay(1);                                       // while (DR!=1);
 328   1              TRX_CE=0;                                       // Set TRX_CE low
 329   1      }
 330          /*******************************************************************************************/
 331          //function RxPacket();
 332          /*******************************************************************************************/
 333          void RxPacket(void)
 334          {
 335   1              unsigned char  i;       
 336   1              TRX_CE=0;                                       // Set nRF905 in standby mode   
 337   1              CSN=0;                                          // Spi enable for write a spi command
 338   1              SpiWrite(RRP);                          // Read payload command 
 339   1              for (i=0;i<32;i++)
 340   1              {
 341   2                      RxBuf[i]=SpiRead();             // Read data and save to buffer         
 342   2              }
 343   1              CSN=1;                                          // Disable spi
 344   1              while(DR||AM);  
 345   1              P0=     RxBuf[0];                               // Buffer[0] output from P0 port...
 346   1              TRX_CE=1;
 347   1              //xx=(RxBuf[0]>>4)&0x0f;
 348   1              //TxData(xx);
 349   1               //=====================
 350   1               //temp1=P0;
 351   1              switch(P0)
 352   1                  {
 353   2                    case LED1:TxData('A');;break;
 354   2                        case LED2:TxData('B');;break;
 355   2                        case LED3:TxData('C');;break;
 356   2                        case LED4:TxData('D');;break;
 357   2                        //default:P0=0xff;TxBuf[0]=0xff; 
 358   2                       } 
 359   1               //=====================
 360   1                
 361   1              Delay(500);                                     // ...light led
 362   1              P0=0xff;                                        // Close led                                                            
 363   1      }
 364          /*******************************************************************************************/
 365          //function SetTxMode();
C51 COMPILER V7.06   NRF905                                                                03/24/2007 09:42:31 PAGE 7   

 366          /*******************************************************************************************/
 367          void SetTxMode(void)                            
 368          {       
 369   1              TX_EN=1;
 370   1              TRX_CE=0;
 371   1              Delay(1);                                       // delay for mode change(>=650us)
 372   1      }                               
 373          /*******************************************************************************************/
 374          //function SetRxMode();
 375          /*******************************************************************************************/
 376          void SetRxMode(void)
 377          {
 378   1              TX_EN=0;                    //
 379   1              TRX_CE=1;                   //
 380   1              Delay(1);                                       // delay for mode change(>=650us)                               
 381   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    608    ----
   CONSTANT SIZE    =     11    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     70       5
   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 + -