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

📄 新建 文本文档.txt

📁 2.4G无线数传模块nrf2401的c51程序
💻 TXT
字号:
#include <reg51.h> 
int receive=0;
#define BYTE_BIT0 0x01 
#define BYTE_BIT1 0x02 
#define BYTE_BIT2 0x04 
#define BYTE_BIT3 0x08 
#define BYTE_BIT4 0x10 
#define BYTE_BIT5 0x20 
#define BYTE_BIT6 0x40 
#define BYTE_BIT7 0x80 
sbit PWR_UP = P3^4; 
sbit CE  = P1^0; 
sbit p20  = P2^0; 
sbit CS  = P1^2; 
sbit DR1 = P3^2; 
sbit CLK1 = P1^3; 
sbit DATA = P3^1; 
#define TEST_2  0x8E   
#define TEST_1  0x08    
#define TEST_0  0x1C   
#define DATA2_W  0x10 
#define DATA1_W  0x08
#define ADDR2_4  0x00    
#define ADDR2_3  0x1c 
#define ADDR2_2  0xcc 
#define ADDR2_1  0xcc 
#define ADDR2_0  0xcc 
#define ADDR1_4  0x00    
#define ADDR1_3  0xcc 
#define ADDR1_2  0xcc 
#define ADDR1_1  0xcc 
#define ADDR1_0  0xcc 
#define ADDR_W  0x10   
#define CRC_L  0x1       
#define CRC_EN  0x1      
#define RX2_EN  0x0       
#define CM   0x1       
#define RFDR_SB  0x0      
#define XO_F   0x3  
#define RF_PWR  0x3       
#define RF_CH  0x2                  
#define RXEN   0x0                 
#define RFConfig_Bit0 TEST_2 
#define RFConfig_Bit1 TEST_1 
#define RFConfig_Bit2 TEST_0 
#define RFConfig_Bit3 DATA2_W 
#define RFConfig_Bit4 DATA1_W 
#define RFConfig_Bit5 ADDR2_4 
#define RFConfig_Bit6 ADDR2_3 
#define RFConfig_Bit7 ADDR2_2 
#define RFConfig_Bit8 ADDR2_1 
#define RFConfig_Bit9 ADDR2_0 
#define RFConfig_Bit10 ADDR1_4 
#define RFConfig_Bit11 ADDR1_3 
#define RFConfig_Bit12 ADDR1_2 
#define RFConfig_Bit13 ADDR1_1 
#define RFConfig_Bit14 ADDR1_0 
#define RFConfig_Bit15 (ADDR_W<<2 | CRC_L<<1 | CRC_EN) 
#define RFConfig_Bit16 (RX2_EN<<7 | CM<<6    | RFDR_SB<<5 | XO_F <<2 | RF_PWR) 
#define RFConfig_Bit17 (RF_CH<<1  | RXEN) 
unsigned int code nRF2401_Conf[18] ={ 
 RFConfig_Bit0,  RFConfig_Bit1,  RFConfig_Bit2,  RFConfig_Bit3, 
 RFConfig_Bit4, 
 RFConfig_Bit5,  RFConfig_Bit6,  RFConfig_Bit7,  RFConfig_Bit8, RFConfig_Bit9, 
 RFConfig_Bit10, RFConfig_Bit11, RFConfig_Bit12, RFConfig_Bit13, RFConfig_Bit14, 
 RFConfig_Bit15, RFConfig_Bit16, RFConfig_Bit17 }; 
void Delay100(void) 
{  
 unsigned int i;  
 for(i=0;i<100;i++); 
} 
bdata unsigned  int DATA_BUF;  
#define DATA7 ((DATA_BUF&BYTE_BIT7) != 0) 
unsigned int ByteRead(void) 
{ 
 unsigned int i,j; 
 for (i=0;i<8;i++) 
 { 
  DATA_BUF=DATA_BUF<<1; 
  CLK1=0; 
  DATA=1; 
  CLK1=1;
  if (DATA)  
  { p20=0;for(j=0;j<100;j++) delay100();
   DATA_BUF|=BYTE_BIT0; 
  } 
  else 
  { 
   DATA_BUF&=~BYTE_BIT0; } 
  } 
  return DATA_BUF; 
} 
 
void ByteWrite(unsigned int send) 
{ 
 unsigned int i; 
 DATA_BUF=send; 
 for (i=0;i<8;i++) 
 { CLK1=0; 
  if (DATA7)  
  { 
   DATA=1; 
  } 
  else 
  { 
   DATA=0; 
  } 
  CLK1=1; 
  DATA_BUF=DATA_BUF<<1; 
 } 
} 
void Config2401(void) 
{  unsigned int i;  
 unsigned int variablel; 
 
CS=0; 
CE=0; 
 PWR_UP=1;
     for(i=0;i<10;i++) Delay100();// 3ms 
    
CS=1;  
 
 for(i=0;i<18;i++) 
 {  
  variablel=nRF2401_Conf[i];  
  ByteWrite(variablel); 
 }  
    Delay100();  
 CS=0;   
 Delay100();  
}  
void SetRxMode(void) 
{  PWR_UP = 1; 
 CE=0;  
 CS=1;  
Delay100(); 
 DATA =1;  
 CLK1=0;  
 CLK1=1;  
  CS=0;  
  CE=1; 
  Delay100(); 
} 
unsigned int TxAddress[]={0x00,0xcc,0xcc,0xcc,0xcc}; 
  
void nRF2401_TxPacket(h) 
{ 
 int i;  
unsigned int variable2;  
CE=1; 
 Delay100(); 
 for(i=0;i<2;i++)
 { 
  variable2=TxAddress[i];  
  ByteWrite(variable2); 
 }  
  variable2=h;  
  ByteWrite(variable2); 
 CE=0;  
Delay100();
Delay100();
} 
void nRF2401_RxPacket() 
{  int j;
 DR1=1;  
 if(DR1) 
 receive=ByteRead();
} 
void main(void)  
{unsigned int i,j;  
Config2401();      
Delay100(); 
SetRxMode(); 
while(1)
{nRF2401_RxPacket();if(receive!=0x00) p20=0;for(j=0;j<2000;j++) delay100();}
} 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -