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

📄 nrf905.lst

📁 红外rf905的的应用
💻 LST
📖 第 1 页 / 共 2 页
字号:
 145   3                              LED2 = 1;
 146   3                        }
 147   2      
 148   2               //=====================等待NRF905接收
 149   2                 if (DR)                      // If recive data ready... 
 150   2                 RxPacket();                  // ... recive data
 151   2      
 152   2      }
 153   1      
 154   1      }
 155          /*******************************************************************************************/
 156          /*******************************************************************************************/
 157          //function Config905();
 158          /*******************************************************************************************/
 159          void Config905(void)
 160          {
 161   1              uchar i;                                        
 162   1              CSN=0;                                          // Spi enable for write a spi command
 163   1              SpiWrite(WC);                           // Write config command写放配置命令
 164   1              for (i=0;i<RxTxConf.n;i++)      // Write configration words  写放配置字
 165   1              {
 166   2                      SpiWrite(RxTxConf.buf[i]);
 167   2              }
 168   1              CSN=1;                                          // Disable Spi
 169   1      }
 170          /*******************************************************************************************/
 171          //function SpiWrite();
 172          /*******************************************************************************************/
 173          void SpiWrite(uchar  byte)
 174          {
 175   1              uchar i;        
 176   1              DATA_BUF=byte;                          // Put function's parameter into a bdata variable               
 177   1              for (i=0;i<8;i++)                       // Setup byte circulation bits
 178   1              {       
 179   2                      
C51 COMPILER V8.02   NRF905                                                                01/02/2003 09:36:17 PAGE 4   

 180   2                      if (flag)                               // Put DATA_BUF.7 on data line
 181   2                              MOSI=1;
 182   2                      else
 183   2                              MOSI=0;
 184   2                      SCK=1;                                  // Set clock line high
 185   2                      DATA_BUF=DATA_BUF<<1;   // Shift DATA_BUF
 186   2                      SCK=0;                                  // Set clock line low 
 187   2              }       
 188   1      }
 189          /*******************************************************************************************/
 190          //function SpiRead();
 191          /*******************************************************************************************/
 192          uchar SpiRead(void)
 193          {
 194   1              uchar i;        
 195   1              for (i=0;i<8;i++)                       // Setup byte circulation bits
 196   1              {       
 197   2                      DATA_BUF=DATA_BUF<<1;   // Right shift DATA_BUF
 198   2                      SCK=1;                                  // Set clock line high
 199   2                      if (MISO)
 200   2                              flag1=1;                        // Read data
 201   2                      else
 202   2                              flag1=0;
 203   2                                                              
 204   2                      
 205   2                      SCK=0;                                  // Set clock line low
 206   2              }
 207   1              return DATA_BUF;                        // Return function parameter
 208   1      }
 209          /*******************************************************************************************/
 210          //function TxPacket();
 211          /*******************************************************************************************/
 212          void TxPacket(void)
 213          {
 214   1              uchar i;
 215   1              //Config905();                          
 216   1              CSN=0;                                          // Spi enable for write a spi command   
 217   1              SpiWrite(WTP);                          // Write payload command
 218   1              for (i=0;i<32;i++)
 219   1              {
 220   2                      SpiWrite(TxBuf[i]);             // Write 32 bytes Tx data
 221   2              }
 222   1              CSN=1;                                          // Spi disable                                          
 223   1              Delay(1);
 224   1              CSN=0;                                          // Spi enable for write a spi command   
 225   1              SpiWrite(WTA);                          // Write address command
 226   1              for (i=0;i<4;i++)                       // Write 4 bytes address
 227   1              {
 228   2                      SpiWrite(RxTxConf.buf[i+5]);
 229   2              }       
 230   1              CSN=1;                                          // Spi disable
 231   1              TRX_CE=1;                                       // Set TRX_CE high,start Tx data transmission
 232   1              Delay(1);                                       // while (DR!=1);
 233   1              TRX_CE=0;                                       // Set TRX_CE low
 234   1      }
 235          /*******************************************************************************************/
 236          //function RxPacket();
 237          /*******************************************************************************************/
 238          void RxPacket(void)
 239          {
 240   1              uchar i;        
 241   1              TRX_CE=0;                                       // Set nRF905 in standby mode   
C51 COMPILER V8.02   NRF905                                                                01/02/2003 09:36:17 PAGE 5   

 242   1              CSN=0;                                          // Spi enable for write a spi command
 243   1              SpiWrite(RRP);                          // Read payload command 
 244   1              for (i=0;i<32;i++)
 245   1              {
 246   2                      RxBuf[i]=SpiRead();             // Read data and save to buffer         
 247   2              }
 248   1              CSN=1;                                          // Disable spi
 249   1              while(DR||AM);  
 250   1      //      P0=     RxBuf[0];                               // Buffer[0] output from P0 port...
 251   1              TRX_CE=1;
 252   1              //xx=(RxBuf[0]>>4)&0x0f;
 253   1              //TxData(xx);
 254   1               //=====================
 255   1                 if(RxBuf[0] == 1) LED1 = 0 ;
 256   1                 if(RxBuf[1] == 1) LED2 = 0 ;
 257   1                
 258   1              Delay(500);                                     // ...light led
 259   1      //      P0=0xff;                                        // Close led
 260   1            LED1 = 1 ;
 261   1                LED2 = 1 ;                                                            
 262   1      }
 263          /*******************************************************************************************/
 264          //function SetTxMode();
 265          /*******************************************************************************************/
 266          void SetTxMode(void)                            
 267          {       
 268   1              TX_EN=1;
 269   1              TRX_CE=0;
 270   1              Delay(1);                                       // delay for mode change(>=650us)
 271   1      }                               
 272          /*******************************************************************************************/
 273          //function SetRxMode();
 274          /*******************************************************************************************/
 275          void SetRxMode(void)
 276          {
 277   1              TX_EN=0;
 278   1              TRX_CE=1;
 279   1              Delay(1);                                       // delay for mode change(>=650us)                               
 280   1      }
 281          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    374    ----
   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 + -