📄 新建 文本文档.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 + -