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

📄 main.lst

📁 这是用KeilC实现的射频接收程序,可以直接用在工程中.是实现射频通讯的最快捷的方式.
💻 LST
📖 第 1 页 / 共 2 页
字号:
 158   1      
 159   1              SPICLK = 0;                         // Max SPI clock
 160   1              SPI_CTRL = 0x02;                    // Connect internal SPI controller to Radio
 161   1      
 162   1              // Switch to 16MHz clock:
 163   1              RACSN = 0;
 164   1              SpiReadWrite(RRC | 0x09);
 165   1              cklf = SpiReadWrite(0) | 0x04;
 166   1              RACSN = 1;
 167   1              RACSN = 0;
 168   1              SpiReadWrite(WRC | 0x09);
 169   1              SpiReadWrite(cklf); 
 170   1              RACSN = 1;
 171   1        
 172   1              P0_DIR=P0_DIR&0x1F;        //led p0.6  p0.5 P0.7 output  
 173   1              LEDR=0;
 174   1              LEDG=0;
 175   1              P0_DIR |= 0x18;             // P0.4 /3 is input
 176   1              P0_DIR &= 0xf6;                 
 177   1         
 178   1              InitTimer();
 179   1              EA = 1;
C51 COMPILER V7.50   MAIN                                                                  04/29/2006 22:59:04 PAGE 4   

 180   1      }
 181          
 182          /*****************************************************************************************
 183          //函数名:void Init9E5(void)
 184          //输入:无
 185          //输出:无
 186          //功能描述:Nrf9e5初始化,这里我们配置成32位地址。
 187          /*****************************************************************************************/
 188          void Init9E5(void)
 189          {       
 190   1              int8u i;
 191   1              
 192   1              TRX_CE = 0;
 193   1              TXEN = 0;                               //配置模式
 194   1              
 195   1              RACSN = 0;
 196   1              SpiReadWrite(WRC);
 197   1      
 198   1              for(i = 0; i < 10; i++)
 199   1              {
 200   2                      SpiReadWrite(Nrf9e5Config[i]); 
 201   2              }
 202   1      
 203   1              RACSN = 1;
 204   1      }
 205          
 206          
 207          /*****************************************************************************************
 208          //函数名:int8u Recepacket(void)
 209          //输入:接收数据缓冲区
 210          //输出:成功返回1,否则返回0
 211          //功能描述:接收数据存在缓冲区内
 212          /*****************************************************************************************/
 213          int8u Recepacket(void)
 214          {
 215   1              int8u i;
 216   1              TXEN = 0;
 217   1              TRX_CE = 1;
 218   1              ResetTimer(1);
 219   1              while(DR == 0)
 220   1              {
 221   2                      if(GetTimer(1) > 300)
 222   2                      {
 223   3                              TRX_CE = 0;
 224   3                              return 0;
 225   3                      }
 226   2                      
 227   2              }
 228   1              TRX_CE = 0;
 229   1              
 230   1              RACSN = 0;
 231   1              SpiReadWrite(RRP);
 232   1              i = 0;
 233   1      
 234   1              for(i = 0; i < 15; i++)
 235   1              {
 236   2                      Rxbuf[i] = SpiReadWrite(0);
 237   2              }
 238   1      
 239   1              while(DR)
 240   1              {
 241   2                      SpiReadWrite(0);
C51 COMPILER V7.50   MAIN                                                                  04/29/2006 22:59:04 PAGE 5   

 242   2              }
 243   1      
 244   1              RACSN = 1;
 245   1      
 246   1              return 1;
 247   1              
 248   1      }
 249          
 250          
 251          
 252          
 253          /******************************************************************************************
 254          *******************************************************************************************
 255          ************************************中断服务程序*********************************************
 256          *******************************************************************************************
 257          ******************************************************************************************/
 258          void Timer0ISR (void) interrupt 1
 259          {
 260   1              EA = 0;
 261   1      
 262   1              TH0 = T0HREL;                               // Reload Timer0 high byte
 263   1              TL0 = T0LREL;                               // Reload Timer0 low byte
 264   1              timer[0]++;                                 // Increment timer[0]
 265   1              timer[1]++; 
 266   1      
 267   1          EA = 1;
 268   1      }
 269          
 270          
 271          
 272          
 273          /******************************************************************************************
 274          *******************************************************************************************
 275          ******************************************主程序********************************************
 276          *******************************************************************************************
 277          ******************************************************************************************/
 278          main()
 279          {
 280   1      
 281   1              int8u temp;
 282   1              InitCpu();
 283   1              delay(5000);
 284   1              
 285   1              Init9E5();
 286   1              
 287   1              LEDR = 1;
 288   1              LEDG = 1;
 289   1              
 290   1      
 291   1              while(1)
 292   1              {
 293   2                      temp = Recepacket();
 294   2      
 295   2                      if(temp == 1)
 296   2                      {
 297   3                              LEDR = 0;
 298   3                              LEDG = 0;
 299   3                              delay(20000);
 300   3                              LEDR = 1;
 301   3                              LEDG = 1;
 302   3                              delay(20000);
 303   3                      }
C51 COMPILER V7.50   MAIN                                                                  04/29/2006 22:59:04 PAGE 6   

 304   2              }
 305   1      
 306   1      }


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