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

📄 t905.lst

📁 无线遥控副机程序
💻 LST
📖 第 1 页 / 共 2 页
字号:
 220   1              SpiWrite(WTP);                          // Write payload command
 221   1              for (i=0;i<SEND_LEN_RF;i++)
 222   1              {           
 223   2                      SpiWrite(Rs232RxBuf[i]);// Write 32 bytes Tx data      
 224   2              }
 225   1              CSN=1;                                          // Spi disable                                          
 226   1              Delay(1);
 227   1              CSN=0;                                          // Spi enable for write a spi command   
 228   1              SpiWrite(WTA);                          // Write address command
 229   1              for (i=0;i<4;i++)                       // Write 4 bytes address
 230   1              {
 231   2                      SpiWrite(RxTxConf.buf[i+5]);
 232   2              }       
 233   1              CSN=1;                                          // Spi disable
 234   1              TRX_CE=1;                                       // Set TRX_CE high,start Tx data transmission
 235   1              Delay(1);                                       // while (DR!=1);
 236   1              TRX_CE=0;                                       // Set TRX_CE low
 237   1      }
 238          
 239          /*
 240          void TxPacket_special(void)
 241          {
C51 COMPILER V7.01  T905                                                                   08/01/2006 10:05:32 PAGE 5   

 242                  uchar i;
 243                  //Config905();                          
 244                  CSN=0;                                          // Spi enable for write a spi command   
 245                  SpiWrite(WTP);                          // Write payload command
 246                  for (i=0;i<7;i++)
 247                  {           
 248                          SpiWrite(Rs232RxBuf[rs232rxpoint_tail]);                // Write 32 bytes Tx data
 249                  rs232rxpoint_tail++;
 250                          if(     rs232rxpoint_tail>RXBUFF_LEN)rs232rxpoint_tail=0;
 251                  }
 252          
 253                  SpiWrite(0);
 254                  SpiWrite(0);
 255                  SpiWrite(0);
 256                  SpiWrite(0);
 257                  SpiWrite(0);
 258          
 259                  CSN=1;                                          // Spi disable                                          
 260                  Delay(1);
 261                  CSN=0;                                          // Spi enable for write a spi command   
 262                  SpiWrite(WTA);                          // Write address command
 263                  for (i=0;i<4;i++)                       // Write 4 bytes address
 264                  {
 265                          SpiWrite(RxTxConf.buf[i+5]);
 266                  }       
 267                  CSN=1;                                          // Spi disable
 268                  TRX_CE=1;                                       // Set TRX_CE high,start Tx data transmission
 269                  Delay(1);                                       // while (DR!=1);
 270                  TRX_CE=0;                                       // Set TRX_CE low
 271          }
 272          */
 273          
 274          /*******************************************************************************************/
 275          //function RxPacket();
 276          /*******************************************************************************************/
 277          void RxPacket(void)
 278          {
 279   1              uchar i;        
 280   1              TRX_CE=0;                                       // Set nRF905 in standby mode   
 281   1              CSN=0;                                          // Spi enable for write a spi command
 282   1              SpiWrite(RRP);                          // Read payload command 
 283   1              for(i=0;i<RECEIVE_LEN_RF;i++)
 284   1              {                               
 285   2                      Rs232TxBuf[i]=SpiRead();        // Read data and save to buffer                         
 286   2              }
 287   1              rs232_send_flag=1;
 288   1      
 289   1              CSN=1;                                          // Disable spi
 290   1              while(DR||AM);
 291   1              TRX_CE=1;                                       
 292   1      }
 293          
 294          /*******************************************************************************************/
 295          //function SetTxMode();
 296          /*******************************************************************************************/
 297          void SetTxMode(void)                            
 298          {       
 299   1              TX_EN=1;
 300   1              TRX_CE=0;
 301   1              Delay(1);                                       // delay for mode change(>=650us)
 302   1      }                               
 303          /*******************************************************************************************/
C51 COMPILER V7.01  T905                                                                   08/01/2006 10:05:32 PAGE 6   

 304          //function SetRxMode();
 305          /*******************************************************************************************/
 306          void SetRxMode(void)
 307          {
 308   1              TX_EN=0;
 309   1              TRX_CE=1;
 310   1              Delay(1);                                       // delay for mode change(>=650us)                               
 311   1      }
 312          /*******************************************************************************************/
 313          //Functon Scankey();
 314          /*******************************************************************************************/   
 315          /*
 316          void Scankey()
 317          {
 318                  uchar Temp,xx;
 319                  P0=0xff;
 320                  Temp=P0&0x0f;                           // Read key value from port P0
 321                  if (Temp!=0x0f)
 322                  {       Delay(10);
 323                          Temp=P0&0x0f;                   // Read key value from port P0
 324                          if (Temp!=0x0f)
 325                          {
 326                                  xx=Temp;        
 327                                  Temp=Temp<<4;           // Left shift 4 bits    
 328                                  TxBuf[0]=Temp;          // Turn On the LED
 329                                  P0=Temp;                        // Save to Tx buffer[0]
 330                                  SetTxMode();            // Set Tx Mode
 331                                  TxPacket();                     // Transmit Tx buffer data
 332                                  TxData (xx);
 333                                  Delay(500);                     // Delay for LED light                  
 334                                  P0=0xff;                        // Close LED display
 335                                  SetRxMode();            // Set Rx Mode
 336                                  while((P0&0x0f)!=0x0f);
 337                           }
 338                  }
 339          }
 340           */
 341          
 342          void rf_send_pakage(void)
 343          {
 344   1              if(rf_send_flag==1)   
 345   1              {  
 346   2                      rf_send_flag=0;
 347   2                      EA=0;
 348   2                      SetTxMode();                            // Set Tx Mode
 349   2                      TxPacket();                             // Transmit Tx buffer data
 350   2                      SetRxMode();                            // Set Rx Mode
 351   2                      EA=1;
 352   2                      return;
 353   2              } 
 354   1      }
 355           
 356          /*******************************************************************************************/
 357          //Function TxData ();
 358          /*******************************************************************************************/
 359          void rs232_tx_pakage(void)
 360          {
 361   1              uchar i;
 362   1              if( rs232_send_flag==1)
 363   1              {
 364   2                      rs232_send_flag=0;      
 365   2                      TI=0;
C51 COMPILER V7.01  T905                                                                   08/01/2006 10:05:32 PAGE 7   

 366   2                      for (i=0;i<RECEIVE_LEN_RF;i++)   
 367   2                      {
 368   3                              SBUF=Rs232TxBuf[i];
 369   3                      while(!TI);
 370   3                              TI=0;   
 371   3                      } 
 372   2              }  
 373   1      }
 374          
 375          /*******************************************************************************************/
 376          void rs232_interrupt(void)  interrupt 4  using 1
 377          { 
 378   1              int j;
 379   1              uchar flag,i,sum;
 380   1         
 381   1          if(RI)
 382   1          {
 383   2                 RI=0;
 384   2                 if(rf_send_flag==0)
 385   2                 {
 386   3                              Rs232RxBuf[0]=SBUF;sum=1;
 387   3                      for(i=1;i<SEND_LEN_RF;i++)
 388   3                      {   
 389   4                                      sum++;
 390   4                              flag=1;
 391   4                      j=0;
 392   4      
 393   4                              while(flag==1)
 394   4                              {  
 395   5                                              j++;
 396   5                                      if(RI!=0)   flag=0;
 397   5                                      if(j>=5000) flag=0;                             
 398   5                      }
 399   4                                      if(j>5000)
 400   4                                      { 
 401   5                                              rf_send_flag=0;sum=0;
 402   5                                              return;
 403   5                                      }        
 404   4               
 405   4                              RI=0;
 406   4                                      Rs232RxBuf[i]=SBUF;
 407   4                              }
 408   3                              if(sum==SEND_LEN_RF) rf_send_flag=1;                
 409   3              }       
 410   2              }
 411   1      }
 412          
 413          void init_rxbuf(void)
 414          {
 415   1              uchar i;
 416   1              rf_send_flag=0;rs232_send_flag=0;
 417   1       
 418   1              //      rs232_send_sum=0;
 419   1              for( i=0;i< TXBUFF_LEN;i++)
 420   1              {
 421   2                      Rs232TxBuf[i]=0;
 422   2              }
 423   1      
 424   1              for( i=0;i< RXBUFF_LEN;i++)
 425   1              {
 426   2                      Rs232RxBuf[i]=0;
 427   2              }
C51 COMPILER V7.01  T905                                                                   08/01/2006 10:05:32 PAGE 8   

 428   1      }
 429           


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    507    ----
   CONSTANT SIZE    =     11    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      1       1
   IDATA SIZE       =     42    ----
   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 + -