1.求基于51单片机无线模块nrf24l01程序
刚好正在研究,网上找的,稍改了一下,2015.8.17晚试验 接收方应该没问题,但发送方上电一次只能发2 个数据,想再发,单片机复位也不行 必须重新给NRF24L01上电 有的网友则只能发一次 单片机用STC12C5A32S2,但硬件SPI不成功,用的是普通IO模拟SPI#include 在火灾、地震、塌方等灾难性突发事件发生后,利用移动机器人进入事件现场获取事发现场图像较之搜救人员进入现场观察更具安全性。 In the fire, earthquakes, landslides and other catastrophic incident happens, use of mobile robot into the event site access to the scene image more security than search and rescue personnel to enter field observation. 本课题主要是研究遥控机器人进入现场拍射,传回图像,操作者根据图像得到现场状况并能做出下一步指令。 This topic mainly studies take remote control robot to enter site, back to the image, the operator according to site condition and make the next step instructions received image. 利用机器人来替代人到不明现场探查环境,保障了人的安全性。 Using robot to replace the human scene detection environment, to guarantee the safety of the people. 以轮式机器人作为载体,通过无线通信的装置构建成上下机的图像传输。 Wheeled robot as the carrier, through the wireless communication device built into the plane of the image transmission. 利用手动无线遥控方式达到控制机器人的目的。 Using the manual wireless remote control for the purpose of control the robot. 本课题主要研究内容如下: This topic main research content is as follows: 1、实时图像移动机器人系统硬件搭建。 1, the hardware of mobile robot real-time image system. 设计了由摄像头BL-C210A、LPC1114、无线传输模块NRF24L01、按键遥控器以及钢制移动小车组成的硬件系统。 Designed by the BL - C210A cameras, LPC1114 remote control, wireless transmission module NRF24L01, buttons, and hardware system composed of steel mobile trolley. 2、上位机复现机器人现场图像。 2, PC emersion robot scene image. 机器人进入现场拍摄图像、利用驱动软件和图像去噪软件处理现场传回的图像。 Robots into the shooting scene image, using the driver software and image denoising processing back to the image on the site. 3、最后对设计的移动机器人整体系统进行实验研究。 3, finally, the design of the whole mobile robot system for experimental research. 完成了基于实时图像采集的移动机器人实验和基于无线通讯的遥控系统实验,验证了本毕设可靠性和实用性。 Completed experiment of mobile robot based on real-time image collection and remote control system based on wireless communication experiment, verify the reliability and practicability of this project.。 #include typedef unsigned char uchar; typedef unsigned char uint; //****************************************NRF24L01端口定义*************************************** sbit MISO =P1^5; sbit MOSI =P1^4; sbit SCK =P1^3; sbit CE =P1^1; sbit CSN =P1^2; sbit IRQ =P1^6; //************************************按键*************************************************** sbit KEY1=P2^6; sbit KEY2=P2^5; //************************************数码管位选********************************************* sbit led1=P2^4; sbit led2=P3^5; //*********************************************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 20 // 20 uints TX payload #define RX_PLOAD_WIDTH 20 // 20 uints TX payload uint const TX_ADDRESS[TX_ADR_WIDTH]= {0x34,0x43,0x10,0x10,0x01}; //本地地址 uint const RX_ADDRESS[RX_ADR_WIDTH]= {0x34,0x43,0x10,0x10,0x01}; //接收地址 //***************************************NRF24L01寄存器指令******************************************************* #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 // 保留 //*************************************SPI(nRF24L01)寄存器地址**************************************************** #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栈入栈出状态寄存器设置 //************************************************************************************** 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); //*****************************************长延时***************************************** void Delay(unsigned int s) { unsigned int i; for(i=0; i0;n--) _nop_(); } //**************************************************************************************** /*NRF24L01初始化 //***************************************************************************************/ void init_NRF24L01(void) { inerDelay_us(100); CE=0; // chip enable CSN=1; // Spi disable SCK=0; // SPI_Write_Buf(WRITE_REG + TX_ADDR, TX_ADDRESS, TX_ADR_WIDTH); // 写本地地址 SPI_Write_Buf(WRITE_REG + RX_ADDR_P0, RX_ADDRESS, RX_ADR_WIDTH); // 写接收端地址 SPI_RW_Reg(WRITE_REG + EN_AA, 0x01); // 频道0自动 ACK应答允许 SPI_RW_Reg(WRITE_REG + EN_RXADDR, 0x01); // 允许接收地址只有频道0,如果需要多频道可以参考Page21 SPI_RW_Reg(WRITE_REG + RF_CH, 0); // 设置信道工作为2.4GHZ,收发必须一致 SPI_RW_Reg(WRITE_REG + RX_PW_P0, RX_PLOAD_WIDTH); //设置接收数据长度,本次设置为32字节 SPI_RW_Reg(WRITE_REG + RF_SETUP, 0x07); //设置发射速率为1MHZ,发射功率为最大值0dB } /**************************************************************************************************** /*函数:uint SPI_RW(uint uchar) /*功能:NRF24L01的SPI写时序 /********************************************************************。 转载请注明出处众文网 » nrf24l01毕业论文(求基于51单片机无线模块nrf24l01程序)
2.求大神翻译这段摘要,毕业论文用的,希望准确点
3.nrf24l01程序