资源简介

自己写的,已经测试了的,能够进行双向通信,实现双向控制,nrf24l01是2.4G无线发送接收模块,传输数据速率可达2M。。。。

资源截图

代码片段和文件信息

#include 
#include 

typedef unsigned char uchar;
typedef unsigned int uint;

sbit  MISO =P2^0;
sbit  MOSI =P2^1;
sbit SCK     =P2^2;
sbit CE     =P2^3;
sbit CSN =P2^4;
//sbit IRQ =P2^5;

#define TX_ADR_WIDTH    5   
#define RX_ADR_WIDTH    5   
#define TX_PLOAD_WIDTH  16     
#define RX_PLOAD_WIDTH  16

#define READ_REG        0x00   // 读寄存器指令
#define WRITE_REG       0x20  // 写寄存器指令
#define RD_RX_PLOAD     0x61   // 读取接收数据指令
#define WR_TX_PLOAD     0xA0   // 写待发数据指令
#define FLUSH_TX        0xE1  // 冲洗发送 FIFO指令
#define FLUSH_RX        0xE2   // 冲洗接收 FIFO指令
#define REUSE_TX_PL     0xE3   // 定义重复装载数据指令
#define NOP             0xFF   // 保留

#define CONFIG          0x00  // 配置收发状态,CRC校验模式以及收发状态响应方式
#define EN_AA           0x01  // 自动应答功能设置
#define EN_RXADDR       0x02  // 可用信道设置
#define SETUP_AW        0x03  // 收发地址宽度设置
#define SETUP_RETR      0x04  // 自动重发功能设置
#define RF_CH           0x05  // 工作频率设置
#define RF_SETUP        0x06  // 发射速率、功耗功能设置
#define STATUS          0x07  // 状态寄存器
#define OBSERVE_TX      0x08  // 发送监测功能
#define CD              0x09  // 地址检测           
#define RX_ADDR_P0      0x0A  // 频道0接收数据地址
#define RX_ADDR_P1      0x0B  // 频道1接收数据地址
#define RX_ADDR_P2      0x0C  // 频道2接收数据地址
#define RX_ADDR_P3      0x0D  // 频道3接收数据地址
#define RX_ADDR_P4      0x0E  // 频道4接收数据地址
#define RX_ADDR_P5      0x0F  // 频道5接收数据地址
#define TX_ADDR         0x10  // 发送地址寄存器
#define RX_PW_P0        0x11  // 接收频道0接收数据长度
#define RX_PW_P1        0x12  // 接收频道0接收数据长度
#define RX_PW_P2        0x13  // 接收频道0接收数据长度
#define RX_PW_P3        0x14  // 接收频道0接收数据长度
#define RX_PW_P4        0x15  // 接收频道0接收数据长度
#define RX_PW_P5        0x16  // 接收频道0接收数据长度
#define FIFO_STATUS     0x17  // FIFO栈入栈出状态寄存器设置

unsigned char const TX_ADDRESS[TX_ADR_WIDTH]= {0x340x430x100x100x01};
unsigned char const RX_ADDRESS[RX_ADR_WIDTH]= {0x340x430x100x100x01};
//unsigned char const TX1_ADDRESS[TX_ADR_WIDTH]= {0x340x430x100x100x01};
//unsigned char const RX1_ADDRESS[RX_ADR_WIDTH]= {0x340x430x100x100x01};

uchar bdata sta;   //状态标志
sbit RX_DR =sta^6;
sbit TX_DS =sta^5;
sbit MAX_RT =sta^4;
uchar   send=0;  
uchar  receive=0;

//串口初始化
void init_s( void )
{   //波特率9600
     SCON = 0x50;
     TMOD = 0x20;
     TH1 = 0xFD;
     TL1 = 0xFD;
     PCON = 0x00;
     TR1 = 1;
 ES = 1;
 EA = 1;
}

//通过串口将接收到数据发送给PC端
void to_pc(uchar r_datauchar flag)
{
 SBUF = r_data;  
     while( flag == 0 );
    flag = 0;    
}

//长延时
/*
void delay_l(uint s)
{
uint i;
for(i=0; i for(i=0; i}
*/

//短延时
void delay_s(uchar n)
{
for(;n>0;n--)
_nop_();
}

//读写数据
uchar spi_rw(uchar u_char)
{
uchar bit_ctr;

    for(bit_ctr=0;bit_ctr<8;bit_ctr++) 
    {
MOSI = (u_char & 0x80);//先输出高位         
u_char = (u_char << 1);           
SCK = 1;                      
u_char |= MISO;          
SCK = 0;              
    }
    return(u_char)

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       7310  2011-04-07 11:07  双向通信\主机\2401.c

     文件        750  2011-04-07 10:57  双向通信\主机\2401.h

     文件      14383  2011-04-07 21:03  双向通信\主机\2401.LST

     文件      14752  2011-04-07 21:03  双向通信\主机\2401.OBJ

     文件       1750  2011-04-07 20:54  双向通信\主机\lcd.c

     文件        517  2011-04-07 20:57  双向通信\主机\lcd.h

     文件       5001  2011-04-07 21:03  双向通信\主机\lcd.LST

     文件       7131  2011-04-07 21:03  双向通信\主机\lcd.OBJ

     文件      25562  2011-04-07 21:03  双向通信\主机\master

     文件       1044  2011-04-07 21:03  双向通信\主机\master.c

     文件       4138  2011-04-07 21:03  双向通信\主机\master.hex

     文件         85  2011-04-07 21:03  双向通信\主机\master.lnp

     文件       3800  2011-04-07 21:03  双向通信\主机\master.LST

     文件      29351  2011-04-07 21:03  双向通信\主机\master.M51

     文件       7216  2011-04-07 21:03  双向通信\主机\master.OBJ

     文件       1741  2011-04-07 21:50  双向通信\主机\master.Opt

     文件      18472  2011-04-07 21:50  双向通信\主机\master.plg

     文件       2228  2011-04-06 22:23  双向通信\主机\master.Uv2

     文件       1432  2011-04-07 20:26  双向通信\主机\master_Opt.Bak

     文件       2228  2011-04-06 22:14  双向通信\主机\master_Uv2.Bak

     文件       6376  2011-04-07 21:03  双向通信\主机\STARTUP.A51

     文件      10767  2011-04-07 21:03  双向通信\主机\STARTUP.LST

     文件        750  2011-04-07 21:03  双向通信\主机\STARTUP.OBJ

     文件       7636  2011-04-07 11:04  双向通信\从机\2401.c

     文件        743  2011-04-07 11:04  双向通信\从机\2401.h

     文件      15061  2011-04-07 21:22  双向通信\从机\2401.LST

     文件      13681  2011-04-07 21:22  双向通信\从机\2401.OBJ

     文件       1958  2011-04-07 21:21  双向通信\从机\lcd.c

     文件        571  2011-04-07 21:11  双向通信\从机\lcd.h

     文件       5482  2011-04-07 21:22  双向通信\从机\lcd.LST

............此处省略22个文件信息

评论

共有 条评论