资源简介

用两个nrf24l01做的遥控车。用51单片机控制的,小车有两个直流马达分别控制转弯和前进后退。马达用L298N控制的,此外还有霍尔传感器测量小车的速度和里程在12864上显示,还有温度传感器显示当前温度。程序有详细注释。遥控器用了三个点动式开关,按下前进 剩下两个控制左右转。把这个做出来你单片机也就通了。

资源截图

代码片段和文件信息

 #include  
#include  
#include
#include
#include
/***自定义数据类型声明***/ 
#define uchar unsigned char
#define uint unsigned int
/***I/O口定义***/ 
sbit CE= P1^4;// 控制模块内部射频电路工作与否
sbit CSN=P1^3;// 片选信号,控制字节的读写,低电平使能
sbit SCK=P1^2; // 时钟信号
sbit MOSI=P1^1;//  单片机向模块发送数据
sbit MISO= P1^0;// 模块向单片机发送数据接口
sbit IRQ= P3^2;//  模块中断

/***显示及接收数据数组***/ 
 uchar TxBuf[32]= 
{11111178 
910111213141516 
1718192021222324 
2526272829303132 
};  
uchar dis_buf[2]={0x000x00}; //显示数组 
/***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  // 32 uints TX payload 
#define RX_PLOAD_WIDTH  32   // 32 uints TX payload 
uchar const TX_ADDRESS[TX_ADR_WIDTH]= {0x340x430x100x100x01}; //本地地址 
uchar const RX_ADDRESS[RX_ADR_WIDTH]= {0x340x430x100x100x01}; //接收地址 
/***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  // 收发地址宽度设置 11 0x03 5bytes 
#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栈入栈出状态寄存器设置 
/***NRF24L01状态标志***/ 
uint  bdata sta;   //状态标志 
sbit RX_DR =sta^6; 
sbit TX_DS =sta^5; 
sbit MAX_RT =sta^4; 
/***函数声明***/  
void init_NRF24L01(void); 
void SetTxMode(void); 
uchar SPI_RW(uchar); //NRF24L01的SPI写时序;写一个字节到24l01,同时读出一个字节 
uchar SPI_Read(uchar reg); //NRF24L01的SPI读时序 
uchar SPI_Read_Reg(uchar reg);//从寄存器reg读一个字节 
uchar SPI_RW_Reg(uchar reg uchar value);//向寄存器reg写一个字节,同时返回状态字节 
uchar SPI_Read_Buf(uchar reg uchar *pBuf uchar bytes); //从寄存器reg读出bytes个字节,通常用来读取接收通道数据或发送地址 
uchar S

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2012-05-22 19:57  环境监测小车项目\
     目录           0  2012-06-10 23:11  环境监测小车项目\发射端\
     文件        3280  2012-05-21 12:00  环境监测小车项目\发射端\ds18b20.h
     文件         152  2012-05-27 10:33  环境监测小车项目\发射端\l298.h
     文件        1924  2012-05-25 20:43  环境监测小车项目\发射端\lcd12864.h
     文件       28548  2012-05-27 11:32  环境监测小车项目\发射端\nrff
     文件       10896  2012-05-27 10:33  环境监测小车项目\发射端\nrff.c
     文件        5385  2012-05-27 11:32  环境监测小车项目\发射端\nrff.hex
     文件          40  2012-05-27 11:32  环境监测小车项目\发射端\nrff.lnp
     文件       16510  2012-05-27 11:32  环境监测小车项目\发射端\nrff.LST
     文件       29787  2012-05-27 11:32  环境监测小车项目\发射端\nrff.M51
     文件       32740  2012-05-27 11:32  环境监测小车项目\发射端\nrff.OBJ
     文件         173  2012-06-10 23:11  环境监测小车项目\发射端\nrff.plg
     文件       60123  2012-06-10 23:11  环境监测小车项目\发射端\nrff.uvopt
     文件       13725  2012-05-24 15:23  环境监测小车项目\发射端\nrff.uvproj
     文件       60113  2012-06-10 22:44  环境监测小车项目\发射端\nrff_uvopt.bak
     文件       13563  2012-05-21 11:54  环境监测小车项目\发射端\nrff_uvproj.bak
     目录           0  2012-05-24 19:13  环境监测小车项目\小车遥控驱动端\
     文件        5419  2012-05-24 18:38  环境监测小车项目\小车遥控驱动端\l298驱动
     文件        1622  2012-05-24 19:13  环境监测小车项目\小车遥控驱动端\l298驱动.c
     文件        1093  2012-05-24 18:38  环境监测小车项目\小车遥控驱动端\l298驱动.hex
     文件          33  2012-05-24 18:38  环境监测小车项目\小车遥控驱动端\l298驱动.lnp
     文件         724  2012-05-24 18:38  环境监测小车项目\小车遥控驱动端\l298驱动.LST
     文件        8032  2012-05-24 18:38  环境监测小车项目\小车遥控驱动端\l298驱动.M51
     文件        6060  2012-05-24 18:38  环境监测小车项目\小车遥控驱动端\l298驱动.OBJ
     文件       10894  2012-05-24 18:38  环境监测小车项目\小车遥控驱动端\l298驱动.plg
     文件       56777  2012-05-24 19:13  环境监测小车项目\小车遥控驱动端\l298驱动.uvopt
     文件       13241  2012-05-24 17:41  环境监测小车项目\小车遥控驱动端\l298驱动.uvproj
     文件       56777  2012-05-24 18:38  环境监测小车项目\小车遥控驱动端\l298驱动_uvopt.bak
     文件       13242  2012-05-23 11:49  环境监测小车项目\小车遥控驱动端\l298驱动_uvproj.bak
     目录           0  2012-05-29 20:19  环境监测小车项目\接收端\
............此处省略15个文件信息

评论

共有 条评论