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

📄 nrf905.lst

📁 nRF905Soft是nRF905开发板的调试程序
💻 LST
📖 第 1 页 / 共 2 页
字号:
 177   2                {
 178   3                       switch(rsbrf)
 179   3                         {
C51 COMPILER V8.02   NRF905                                                                08/28/2006 20:53:29 PAGE 4   

 180   4                               case 'A':P0=0xef;TxBuf[0]=0xef;delayf=1;break;
 181   4                               case 'B':P0=0xdf;TxBuf[0]=0xdf;delayf=1;break;
 182   4                               case 'C':P0=0xbf;TxBuf[0]=0xbf;delayf=1;break;
 183   4                               case 'D':P0=0x7f;TxBuf[0]=0x7f;delayf=1;break;
 184   4                               //default:P0=0xff;TxBuf[0]=0xff; 
 185   4                              }
 186   3                //====================NRF905发送串口接收到的相应的字符 
 187   3                 if(TxBuf[0]!=0xff)
 188   3                   if(TxBuf[0]!=0x00)
 189   3                        {
 190   4                          SetTxMode();                                // Set Tx Mode
 191   4                          TxPacket();                                 // Transmit Tx buffer data
 192   4                              TxBuf[0] = 0xff;
 193   4                              SetRxMode();                            // Set nRF905 in Rx mode
 194   4                        }                                             
 195   3               //=====================
 196   3                       if(delayf==1)
 197   3                         {
 198   4                           Delay(500);
 199   4                               delayf = 0 ;
 200   4                               P0 = 0xff ;
 201   4                         }
 202   3                 }
 203   2               //=====================
 204   2               if(rsbrf!=0)
 205   2                 {
 206   3                   TxData(rsbrf);
 207   3                       rsbrf = 0 ;
 208   3                 }
 209   2               //=====================
 210   2      
 211   2      
 212   2      }
 213   1      }
 214          /*******************************************************************************************/
 215          /*******************************************************************************************/
 216          //function Config905();
 217          /*******************************************************************************************/
 218          void Config905(void)
 219          {
 220   1              uchar i;                                        
 221   1              CSN=0;                                          // Spi enable for write a spi command
 222   1              SpiWrite(WC);                           // Write config command写放配置命令
 223   1              for (i=0;i<RxTxConf.n;i++)      // Write configration words  写放配置字
 224   1              {
 225   2                      SpiWrite(RxTxConf.buf[i]);
 226   2              }
 227   1              CSN=1;                                          // Disable Spi
 228   1      }
 229          /*******************************************************************************************/
 230          //function SpiWrite();
 231          /*******************************************************************************************/
 232          void SpiWrite(uchar  byte)
 233          {
 234   1              uchar i;        
 235   1              DATA_BUF=byte;                          // Put function's parameter into a bdata variable               
 236   1              for (i=0;i<8;i++)                       // Setup byte circulation bits
 237   1              {       
 238   2                      
 239   2                      if (flag)                               // Put DATA_BUF.7 on data line
 240   2                              MOSI=1;
 241   2                      else
C51 COMPILER V8.02   NRF905                                                                08/28/2006 20:53:29 PAGE 5   

 242   2                              MOSI=0;
 243   2                      SCK=1;                                  // Set clock line high
 244   2                      DATA_BUF=DATA_BUF<<1;   // Shift DATA_BUF
 245   2                      SCK=0;                                  // Set clock line low 
 246   2              }       
 247   1      }
 248          /*******************************************************************************************/
 249          //function SpiRead();
 250          /*******************************************************************************************/
 251          uchar SpiRead(void)
 252          {
 253   1              uchar i;        
 254   1              for (i=0;i<8;i++)                       // Setup byte circulation bits
 255   1              {       
 256   2                      DATA_BUF=DATA_BUF<<1;   // Right shift DATA_BUF
 257   2                      SCK=1;                                  // Set clock line high
 258   2                      if (MISO)
 259   2                              flag1=1;                        // Read data
 260   2                      else
 261   2                              flag1=0;
 262   2                                                              
 263   2                      
 264   2                      SCK=0;                                  // Set clock line low
 265   2              }
 266   1              return DATA_BUF;                        // Return function parameter
 267   1      }
 268          /*******************************************************************************************/
 269          //function TxPacket();
 270          /*******************************************************************************************/
 271          void TxPacket(void)
 272          {
 273   1              uchar i;
 274   1              //Config905();                          
 275   1              CSN=0;                                          // Spi enable for write a spi command   
 276   1              SpiWrite(WTP);                          // Write payload command
 277   1              for (i=0;i<32;i++)
 278   1              {
 279   2                      SpiWrite(TxBuf[i]);             // Write 32 bytes Tx data
 280   2              }
 281   1              CSN=1;                                          // Spi disable                                          
 282   1              Delay(1);
 283   1              CSN=0;                                          // Spi enable for write a spi command   
 284   1              SpiWrite(WTA);                          // Write address command
 285   1              for (i=0;i<4;i++)                       // Write 4 bytes address
 286   1              {
 287   2                      SpiWrite(RxTxConf.buf[i+5]);
 288   2              }       
 289   1              CSN=1;                                          // Spi disable
 290   1              TRX_CE=1;                                       // Set TRX_CE high,start Tx data transmission
 291   1              Delay(1);                                       // while (DR!=1);
 292   1              TRX_CE=0;                                       // Set TRX_CE low
 293   1      }
 294          /*******************************************************************************************/
 295          //function RxPacket();
 296          /*******************************************************************************************/
 297          void RxPacket(void)
 298          {
 299   1              uchar i;        
 300   1              TRX_CE=0;                                       // Set nRF905 in standby mode   
 301   1              CSN=0;                                          // Spi enable for write a spi command
 302   1              SpiWrite(RRP);                          // Read payload command 
 303   1              for (i=0;i<32;i++)
C51 COMPILER V8.02   NRF905                                                                08/28/2006 20:53:29 PAGE 6   

 304   1              {
 305   2                      RxBuf[i]=SpiRead();             // Read data and save to buffer         
 306   2              }
 307   1              CSN=1;                                          // Disable spi
 308   1              while(DR||AM);  
 309   1              P0=     RxBuf[0];                               // Buffer[0] output from P0 port...
 310   1              TRX_CE=1;
 311   1              //xx=(RxBuf[0]>>4)&0x0f;
 312   1              //TxData(xx);
 313   1               //=====================
 314   1                        switch(P0)
 315   1                  {
 316   2                    case 0xef:TxData('A');;break;
 317   2                        case 0xdf:TxData('B');;break;
 318   2                        case 0xbf:TxData('C');;break;
 319   2                        case 0x7f:TxData('D');;break;
 320   2                        //default:P0=0xff;TxBuf[0]=0xff; 
 321   2                       } 
 322   1               //=====================
 323   1                
 324   1              Delay(500);                                     // ...light led
 325   1              P0=0xff;                                        // Close led                                                            
 326   1      }
 327          /*******************************************************************************************/
 328          //function SetTxMode();
 329          /*******************************************************************************************/
 330          void SetTxMode(void)                            
 331          {       
 332   1              TX_EN=1;
 333   1              TRX_CE=0;
 334   1              Delay(1);                                       // delay for mode change(>=650us)
 335   1      }                               
 336          /*******************************************************************************************/
 337          //function SetRxMode();
 338          /*******************************************************************************************/
 339          void SetRxMode(void)
 340          {
 341   1              TX_EN=0;
 342   1              TRX_CE=1;
 343   1              Delay(1);                                       // delay for mode change(>=650us)                               
 344   1      }


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