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

📄 nrf2401.lst

📁 在KEILC51中NRF2401项目开发成功
💻 LST
📖 第 1 页 / 共 2 页
字号:
 254   2                              _nop_();
 255   2                      _nop_();
 256   2      
 257   2                              CLK1=0;
 258   2                              uiData = uiData<<1;
 259   2              }
 260   1      }
 261          
 262          //=============================================================
 263          // 语法格式:   void nRF2401_SendByte(unsigned int TxData)
 264          // 实现功能:   将目标地址+字节数据写入nRF2401A
 265          // 参数:               unsigned int TxData: 待发送字节数据
 266          // 返回值:             无
 267          //=============================================================
 268          void nRF2401_SendByte(unsigned char TxData)
 269          {
 270   1              unsigned int i;
 271   1      
 272   1           CE=1;
 273   1              Delay_Us(1);
 274   1                                      
 275   1              for(i=0; i<AddrByteCnt; i++)
 276   1              {
 277   2                      nRF2401_WriteByte(AddrBuffer[i]);
 278   2              }
 279   1              nRF2401_WriteByte(TxData);
 280   1      
 281   1              CE=0;
 282   1      
 283   1              DATA=0;
 284   1              Delay_Us(10);
 285   1      }
 286          
 287          
 288            void nRF2401_Str(unsigned char *arr)
 289          {
 290   1              unsigned char i;
 291   1              
 292   1              i = 0;
 293   1              while(arr[i] != '\0')
 294   1              {
 295   2                      nRF2401_SendByte(arr[i]);
 296   2                      i++;
 297   2              }
 298   1      }
 299          //=============================================================
 300          // 语法格式:   void nRF2401_SendWord(unsigned int TxData)
 301          // 实现功能:   将目标地址+字数据写入nRF2401A
 302          // 参数:               unsigned int TxData: 待发送字数据
 303          // 返回值:             无
C51 COMPILER V8.08   NRF2401                                                               11/13/2008 00:14:55 PAGE 6   

 304          //=============================================================
 305          void nRF2401_SendWord(unsigned int TxData)
 306          {
 307   1              unsigned int i;
 308   1              
 309   1      
 310   1              CE=1;
 311   1              Delay_Us(1);                            
 312   1              for(i=0; i<AddrByteCnt; i++)
 313   1              {
 314   2                      nRF2401_WriteByte(AddrBuffer[i]);
 315   2              }
 316   1              nRF2401_WriteWord(TxData);
 317   1      
 318   1              CE=0;
 319   1      
 320   1              DATA=0;
 321   1              Delay_Us(20);
 322   1      }
 323          
 324          //=============================================================
 325          // 语法格式:   void nRF2401_SendBuffer_Byte(unsigned int *TxData,unsigned int DataByte)
 326          // 实现功能:   向nRF2401A发送一个数组的数据(字节方式)
 327          // 参数:               unsigned int *TxData: 待发送数组
 328          //                              unsigned int DataByte:数组的长度                                        
 329          // 返回值:             无
 330          //=============================================================
 331          void nRF2401_SendBuffer_Byte(unsigned char *TxData,unsigned char DataByte)
 332          {
 333   1              unsigned int i;
 334   1              
 335   1      
 336   1              CE=1;
 337   1              Delay_Us(1);                            
 338   1              for(i=0; i<AddrByteCnt; i++)
 339   1              {
 340   2                      nRF2401_WriteByte(AddrBuffer[i]);
 341   2              }
 342   1              for(i=0; i<DataByte; i++)
 343   1              {
 344   2                      nRF2401_WriteByte(TxData[i]);
 345   2              }
 346   1      
 347   1              CE=0;
 348   1      
 349   1              DATA=0;
 350   1              Delay_Us(20);
 351   1      }
 352          
 353          //=============================================================
 354          // 语法格式:   void nRF2401_SendBuffer_Word(unsigned int *TxData,unsigned int DataWord)
 355          // 实现功能:   向nRF2401A发送一个数组的数据(字方式)
 356          // 参数:               unsigned int *TxData: 待发送数组
 357          //                              unsigned int DataWord:数组的长度                                        
 358          // 返回值:             无
 359          //=============================================================
 360          void nRF2401_SendBuffer_Word(unsigned int *TxData,unsigned int DataWord)
 361          {
 362   1              unsigned int i;
 363   1      
 364   1              CE=1;
 365   1              Delay_Us(1);                                    //
C51 COMPILER V8.08   NRF2401                                                               11/13/2008 00:14:55 PAGE 7   

 366   1              for(i=0; i<AddrByteCnt; i++)
 367   1              {
 368   2                      nRF2401_WriteByte(AddrBuffer[i]);
 369   2              }
 370   1              for(i=0; i<DataWord; i++)
 371   1              {
 372   2                      nRF2401_WriteWord(TxData[i]);
 373   2              }
 374   1      
 375   1              CE=0;
 376   1      
 377   1              DATA=0;
 378   1              Delay_Us(20);
 379   1      }
 380          
 381          //=============================================================
 382          // 语法格式:   unsigned int nRF2401_RxStatus()
 383          // 实现功能:   判断nRF2401A的接收状态
 384          // 参数:               无
 385          // 返回值:             0:      没有接收到数据
 386          //                              1:      已经接收到数据,等待读出
 387          //=============================================================
 388          unsigned char nRF2401_RxStatus()
 389          {
 390   1      
 391   1              if(DR1==0)
 392   1                      return(0);
 393   1              else
 394   1                      return(1);
 395   1      }
 396          
 397          //=============================================================
 398          // 语法格式:   void nRF2401_ReceiveByte(unsigned int *RxData)
 399          // 实现功能:   从nRF2401A读出一个字节的数据
 400          // 参数:               unsigned int *RxData:读出的数据
 401          // 返回值:             无
 402          //=============================================================
 403          
 404          
 405          void nRF2401_ReceiveByte(unsigned char *RxData)
 406          {
 407   1      
 408   1              unsigned char i = 0,j = 0;
 409   1              unsigned char dat = 0;
 410   1      
 411   1      
 412   1          while(DR1)
 413   1              {
 414   2      
 415   2                      dat <<= 1;
 416   2                      
 417   2                       CLK1=1;
 418   2                      _nop_();
 419   2                      _nop_();
 420   2                      if(DATA)
 421   2                              dat |= 0x01;
 422   2                      i++;
 423   2      
 424   2                      CLK1=0;
 425   2      
 426   2                      if(i>7)
 427   2                      {
C51 COMPILER V8.08   NRF2401                                                               11/13/2008 00:14:55 PAGE 8   

 428   3                              i = 0;
 429   3                              RxData[j] = dat;
 430   3                              dat = 0;
 431   3                              j++;
 432   3                      }
 433   2      
 434   2              }
 435   1      
 436   1              DATA=1;
 437   1       
 438   1      
 439   1      }
 440          
 441          //=============================================================
 442          // 语法格式:   void nRF2401_ReceiveWord(unsigned int *RxData)
 443          // 实现功能:   从nRF2401A读出一个字的数据
 444          // 参数:               unsigned int *RxData:读出的数据
 445          // 返回值:             无
 446          //=============================================================
 447          void nRF2401_ReceiveWord(unsigned int *RxData)
 448          {
 449   1              unsigned int i = 0,j = 0;
 450   1              unsigned int dat = 0;
 451   1      
 452   1      
 453   1              while(DR1)
 454   1              {
 455   2                      dat <<= 1;
 456   2      
 457   2                       CLK1=1;
 458   2                      _nop_();
 459   2                      _nop_();
 460   2                      if(DATA)
 461   2                              dat |= 0x01;
 462   2                      i++;
 463   2      
 464   2                      CLK1=0;
 465   2      
 466   2                      if(i>15)
 467   2                      {
 468   3                              i = 0;
 469   3                              RxData[j] = dat;
 470   3                              dat = 0;
 471   3                              j++;
 472   3                      }
 473   2      
 474   2              }
 475   1      
 476   1              DATA=1;
 477   1      }
 478          
 479          
 480          //=============================================================
 481          // 语法格式:   void Delay_Us(unsigned int TimeCnt)
 482          // 实现功能:   延时(uS)
 483          // 参数:               unsigned int TimeCnt:延时的us数
 484          // 返回值:             无
 485          //=============================================================
 486          void Delay_Us(unsigned int TimeCnt)
 487          {
 488   1              int i;
 489   1      
C51 COMPILER V8.08   NRF2401                                                               11/13/2008 00:14:55 PAGE 9   

 490   1              for(i = 0; i < TimeCnt; i++)
 491   1              {
 492   2      
 493   2                                      _nop_();
 494   2              
 495   2              }
 496   1      }
 497          
 498          
 499          //******************************** END *************************************


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    791    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     21      33
   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 + -