


/** ****************************************************************************** * Project : 8051 + NRF24L01 * Tac Gia : Mr. Tung * Copyright : MinhHaGroup * Website : banlinhkien.vn * Version : V1.0.0 * Date : 22-10-12 * Noi Dung: Giao tiep voi NRF24L01 voi 89S52 * Truyen ma BCD hien thi len Led 7 Thanh 4 so ****************************************************************************** ****************************************************************************** */ #include <reg52.h> #include <intrins.h> #include "nrf24l01/nRF24L01.h" #include "bcd/BCd.h" sbit BEEP = P1^5; //*********************************************************************************************** void main(void) { uchar temp =0; uint i; BEEP = 1; init_NRF24L01(); Delay(100); while(1) { for(i=0;i<500;i++) { BCD_Display(temp); } TxBuf[0] = temp++; nRF24L01_TxPacket(TxBuf); // Transmit Tx buffer data SPI_RW_Reg(WRITE_REG+STATUS,0XFF); } }
#include <reg52.h> #include <intrins.h> #include "nrf24l01/nRF24L01.h" #include "bcd/BCD.h" sbit LED = P0^0; sbit BEEP = P1^5; //************************************************************************************************ void main(void) { uchar RxBuf[32]; BEEP = 1; init_NRF24L01(); Delay(100); while(1) { SetRX_Mode(); nRF24L01_RxPacket(RxBuf); BCD_Display(RxBuf[0]); } }
<reg52.h> #include <intrins.h> #ifndef _NRF24L01_H #define _NRF24L01_H typedef unsigned char uchar; typedef unsigned char uint; //****************************************NRF24L01************************************** sbit CE =P2^0; sbit CSN =P2^1; sbit SCK =P2^2; sbit MOSI =P2^3; sbit MISO =P2^4; sbit IRQ =P3^2; extern uchar TxBuf[32]; //*********************************************NRF24L01************************************* #define TX_ADR_WIDTH 5 // 5 uints TX address width #define RX_ADR_WIDTH 5 // 5 uints RX address width #define TX_PLOAD_WIDTH 32 // 20 uints TX payload #define RX_PLOAD_WIDTH 32 // 20 uints TX payload //********************************************************************************************** #define READ_REG 0x00 #define WRITE_REG 0x20 #define RD_RX_PLOAD 0x61 #define WR_TX_PLOAD 0xA0 #define FLUSH_TX 0xE1 #define FLUSH_RX 0xE2 #define REUSE_TX_PL 0xE3 #define NOP 0xFF //*************************************SPI(nRF24L01)**************************************************** #define CONFIG 0x00 #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 #define RX_ADDR_P1 0x0B #define RX_ADDR_P2 0x0C #define RX_ADDR_P3 0x0D #define RX_ADDR_P4 0x0E #define RX_ADDR_P5 0x0F #define TX_ADDR 0x10 #define RX_PW_P0 0x11 #define RX_PW_P1 0x12 #define RX_PW_P2 0x13 #define RX_PW_P3 0x14 #define RX_PW_P4 0x15 #define RX_PW_P5 0x16 #define FIFO_STATUS 0x17 //************************************************************************************** void Delay(unsigned int s); void inerDelay_us(unsigned char n); void init_NRF24L01(void); uint SPI_RW(uint uchar); uchar SPI_Read(uchar reg); void SetRX_Mode(void); uint SPI_RW_Reg(uchar reg, uchar value); uint SPI_Read_Buf(uchar reg, uchar *pBuf, uchar uchars); uint SPI_Write_Buf(uchar reg, uchar *pBuf, uchar uchars); unsigned char nRF24L01_RxPacket(unsigned char* rx_buf); void nRF24L01_TxPacket(unsigned char * tx_buf); #endif
Comment