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

📄 nrf2401.lst

📁 在KEILC51中NRF2401项目开发成功
💻 LST
📖 第 1 页 / 共 2 页
字号:
 254   2                      _nop_();
 255   2      
 256   2                              CLK1=0;
 257   2                              uiData = uiData<<1;
 258   2              }
 259   1      }
 260          
 261          //=============================================================
 262          // 语法格式:   void nRF2401_SendByte(unsigned int TxData)
 263          // 实现功能:   将目标地址+字节数据写入nRF2401A
 264          // 参数:               unsigned int TxData: 待发送字节数据
 265          // 返回值:             无
 266          //=============================================================
 267          void nRF2401_SendByte(unsigned char TxData)
 268          {
 269   1              unsigned int i;
 270   1              
 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:17:47 PAGE 6   

 304          //=============================================================
 305          void nRF2401_SendWord(unsigned int TxData)
 306          {
 307   1              unsigned int i;
 308   1      
 309   1              CE=1;
 310   1              Delay_Us(1);                            
 311   1              for(i=0; i<AddrByteCnt; i++)
 312   1              {
 313   2                      nRF2401_WriteByte(AddrBuffer[i]);
 314   2              }
 315   1              nRF2401_WriteWord(TxData);
 316   1              //*P_IOB_Buffer &= ~CE;
 317   1              CE=0;
 318   1              //*P_IOB_Buffer &= ~DATA;
 319   1              DATA=0;
 320   1              Delay_Us(20);
 321   1      }
 322          
 323          //=============================================================
 324          // 语法格式:   void nRF2401_SendBuffer_Byte(unsigned int *TxData,unsigned int DataByte)
 325          // 实现功能:   向nRF2401A发送一个数组的数据(字节方式)
 326          // 参数:               unsigned int *TxData: 待发送数组
 327          //                              unsigned int DataByte:数组的长度                                        
 328          // 返回值:             无
 329          //=============================================================
 330          void nRF2401_SendBuffer_Byte(unsigned char *TxData,unsigned char DataByte)
 331          {
 332   1              unsigned int i;
 333   1              
 334   1      
 335   1              CE=1;
 336   1              Delay_Us(1);                            
 337   1              for(i=0; i<AddrByteCnt; i++)
 338   1              {
 339   2                      nRF2401_WriteByte(AddrBuffer[i]);
 340   2              }
 341   1              for(i=0; i<DataByte; i++)
 342   1              {
 343   2                      nRF2401_WriteByte(TxData[i]);
 344   2              }
 345   1              //*P_IOB_Buffer &= ~CE;
 346   1              //*P_IOB_Buffer &= ~DATA;
 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      
 365   1              CE=1;
C51 COMPILER V8.08   NRF2401                                                               11/13/2008 00:17:47 PAGE 7   

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

 428   2                      {
 429   3                              i = 0;
 430   3                              RxData[j] = dat;
 431   3                              dat = 0;
 432   3                              j++;
 433   3                      }
 434   2      
 435   2              }
 436   1      
 437   1              DATA=1;
 438   1       
 439   1      
 440   1      }
 441          
 442          //=============================================================
 443          // 语法格式:   void nRF2401_ReceiveWord(unsigned int *RxData)
 444          // 实现功能:   从nRF2401A读出一个字的数据
 445          // 参数:               unsigned int *RxData:读出的数据
 446          // 返回值:             无
 447          //=============================================================
 448          void nRF2401_ReceiveWord(unsigned int *RxData)
 449          {
 450   1              unsigned int i = 0,j = 0;
 451   1              unsigned int dat = 0;
 452   1      
 453   1      
 454   1              while(DR1)
 455   1              {
 456   2                      dat <<= 1;
 457   2      
 458   2                       CLK1=1;
 459   2                      _nop_();
 460   2                      _nop_();
 461   2                      if(DATA)
 462   2                              dat |= 0x01;
 463   2                      i++;
 464   2      
 465   2                      CLK1=0;
 466   2      
 467   2                      if(i>15)
 468   2                      {
 469   3                              i = 0;
 470   3                              RxData[j] = dat;
 471   3                              dat = 0;
 472   3                              j++;
 473   3                      }
 474   2      
 475   2              }
 476   1      
 477   1              DATA=1;
 478   1      }
 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:17:47 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 + -