资源简介
51单片机控制的遥控船模的程序
代码片段和文件信息
#include “api.h“
uchar TX_ADDRESS[TX_ADR_WIDTH] = {0x120x430x190x100x91}; // 定义一个静态发送地址
uchar RX_ADDRESS[RX_ADR_WIDTH] = {0x120x430x190x100x91};
void delay_10us()
{
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
}
uchar SPI_RW(uchar byte)
{
uchar bit_ctr;
for(bit_ctr=0;bit_ctr<8;bit_ctr++)
{
MOSI=(byte&0x80);
byte=(byte<<1);
delay_10us();
SCK=1;
delay_10us();
byte|=MISO;
delay_10us();
SCK=0;
delay_10us();
}
return(byte);
}
uchar SPI_RW_Reg(uchar reguchar value)
{
uchar status;
CSN=0;
delay_10us();
status=SPI_RW(reg);
delay_10us();
SPI_RW(value);
delay_10us();
CSN=1;
delay_10us();
return(status);
}
uchar SPI_Read(uchar reg)
{
uchar reg_val;
CSN=0;
delay_10us();
SPI_RW(reg);
reg_val=SPI_RW(0);
delay_10us();
CSN=1;
delay_10us();
return(reg_val);
}
uchar SPI_Read_Reg(uchar reg)
{
uchar reg_val;
/*置低CSN,使能SPI传输*/
CSN=0;
/*发送寄存器号*/
SPI_RW(reg);
/*读取寄存器的值 */
reg_val = SPI_RW(0);
/*CSN拉高,完成*/
CSN=1;
CE=1;
return reg_val;
}
uchar SPI_Read_Buf(uchar reguchar *pBufuchar bytes)
{
uchar statusbyte_ctr;
CSN=0;
delay_10us();
status=SPI_RW(reg);
for(byte_ctr=0;byte_ctr {
pBuf[byte_ctr]=SPI_RW(0);
}
delay_10us();
CSN=1;
delay_10us();
return(status);
}
uchar SPI_Write_Buf(uchar reguchar *pBufuchar bytes)
{
uchar statusbyte_ctr;
CSN=0;
delay_10us();
status=SPI_RW(reg);
for(byte_ctr=0;byte_ctr {
SPI_RW(*pBuf++);
}
CSN=1;
delay_10us();
delay_10us();
return(status);
}
void RX_Mode(void)
{
CE=0;
SPI_Write_Buf(WRITE_REG + RX_ADDR_P1TX_ADDRESSTX_ADR_WIDTH);
SPI_RW_Reg(WRITE_REG + EN_AA0X02);
SPI_RW_Reg(WRITE_REG + EN_RXADDR0X02);
SPI_RW_Reg(WRITE_REG + RF_CH40);
SPI_RW_Reg(WRITE_REG + RX_PW_P1TX_PLOAD_WIDTH);
SPI_RW_Reg(WRITE_REG + RF_SETUP0X07);
SPI_RW_Reg(WRITE_REG + CONFIG0X0F);
CE=1;
}
void TX_Mode(void)
{
CE=0;
SPI_Write_Buf(WRITE_REG + TX_ADDRTX_ADDRESSTX_ADR_WIDTH);
SPI_Write_Buf(WRITE_REG + RX_ADDR_P0TX_ADDRESSTX_ADR_WIDTH);
SPI_Write_Buf(WR_TX_PLOADtxbufTX_PLOAD_WIDTH);
SPI_RW_Reg(WRITE_REG + EN_AA0X01);
SPI_RW_Reg(WRITE_REG + EN_RXADDR0X01);
SPI_RW_Reg(WRITE_REG + SETUP_RETR0X1a);
SPI_RW_Reg(WRITE_REG + RF_CH40);
SPI_RW_Reg(WRITE_REG + RF_SETUP0X07);
SPI_RW_Reg(WRITE_REG + CONFIG0X0E);
CE=1;
}
uchar NRF_Check(void)
{
uchar buf3[5]={0xC20xC20xC20xC20xC2};
uchar buf2[5];
uchar i;
/*写入5个字节的地址. */
SPI_Write_Buf(WRITE_REG+TX_ADDRbuf35);
/*读出写入的地址 */
SPI_Read_Buf(TX_ADDRbuf25);
/*比较*/
for(i=0;i<5;i++)
{
if(buf2[i]!=0xc2)
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2015-05-03 15:13 程序\
目录 0 2015-05-09 19:20 程序\发送\
文件 7451 2015-05-06 23:06 程序\发送\24L01.LST
文件 14871 2015-05-06 23:06 程序\发送\24L01.OBJ
文件 3309 2015-05-06 22:34 程序\发送\24L01.c
文件 3577 2013-05-08 23:35 程序\发送\API.H
文件 6376 2009-05-07 14:37 程序\发送\STARTUP.A51
文件 14052 2015-05-06 23:06 程序\发送\STARTUP.LST
文件 749 2015-05-06 23:06 程序\发送\STARTUP.OBJ
文件 6485 2013-05-08 00:11 程序\发送\keyscan.LST
文件 37 2013-05-08 00:11 程序\发送\keyscan.__i
文件 2333 2013-05-07 23:42 程序\发送\keyscan.c
文件 24116 2014-10-21 11:12 程序\发送\发送
文件 8832 2015-05-06 23:06 程序\发送\发送.LST
文件 25229 2015-05-06 23:06 程序\发送\发送.M51
文件 12422 2015-05-06 23:06 程序\发送\发送.OBJ
文件 3864 2015-05-06 23:06 程序\发送\发送.c
文件 4197 2015-05-06 23:06 程序\发送\发送.hex
文件 59 2015-05-06 23:06 程序\发送\发送.lnp
文件 25128 2015-05-06 23:06 程序\发送\发送.plg
文件 72576 2015-05-09 19:20 程序\发送\发送.uvgui.abc
文件 72579 2015-05-09 10:02 程序\发送\发送.uvgui_abc.bak
文件 6361 2015-05-09 19:20 程序\发送\发送.uvopt
文件 13724 2014-12-08 19:09 程序\发送\发送.uvproj
文件 6361 2015-05-09 10:02 程序\发送\发送_uvopt.bak
文件 13721 2014-12-08 14:28 程序\发送\发送_uvproj.bak
目录 0 2015-05-09 19:25 程序\接收\
文件 6950 2015-05-09 19:25 程序\接收\24L01.LST
文件 13366 2015-05-09 19:25 程序\接收\24L01.OBJ
文件 2950 2015-05-06 23:04 程序\接收\24L01.c
文件 3317 2013-05-09 00:14 程序\接收\API.H
............此处省略20个文件信息
评论
共有 条评论