nrf905射频发送电路图和C程序源代码

nRF905是一款单片型射频收发芯片,其工作于433/868/915MHz的ISM频段。芯片内置集成频率合成器、解调接收链、功率放大器、晶体振荡器和调制器以等功能模块。前置ShockBurst功能自动处理以及CRC校验。配

预览截图

应用介绍

nRF905是一款单片型射频收发芯片,其工作于433/868/915MHzISM频段。芯片内置集成频率合成器、解调接收链、功率放大器、晶体振荡器和调制器以等功能模块。前置ShockBurst功能自动处理以及CRC校验。配置可以通过SPI接口进行设置。该芯片功耗非常低,输出功率为-10dBm时,工作电流只有11mA,接收模式时工作电流只有12.5mA。内置的掉电模式更能实现低功耗运作。


/*2008/11/3
  AT89S52	12M*/
#include<reg52.h>
#include <intrins.h>
#define uint  unsigned int
#define uchar unsigned char
sbit TRX_CE=P1^0;     //使能芯片接收和发送
sbit TXEN=P1^4;       //收发状态选择:1发射,0接收
sbit PWR=P1^5;        //工作状态控制:1正常工作,0微功耗
sbit AM=P1^1;         //地址匹配
sbit CD=P1^6;         //载波监听
sbit MISO=P1^2;       //SPI 输出,MCU 由此口从RF 芯片读入资料
sbit DR=P1^7;         //接收或发送就绪
sbit CSN=P3^1;        //SPI 使能,低激活
sbit MOSI=P3^0;       //SPI 输入,MCU 由此口向RF 芯片写入资料
sbit SCK=P1^3;        //SPI 时钟
sbit LCD=P2^0;		  //指示灯	
sbit jian1=P3^4;	  //控制键1
sbit jian2=P3^5;	  //控制键2
//RF寄存器配置//
unsigned char idata RFConf[11]=
{
    0x00,        //配置命令//
    0x6C,        //CH_NO,频率433.2MHZ
    0x2c,        //功率10db,重发,节电正常模式
    0x44,        //地址宽度,4字节
    0x01,0x01,    //接收发送数据有效长度
    0xE7,0xE7,0xE7,0xE7,    //接收地址
    0xDE,        //CRC允许,16位CRC校验,外部时钟信号使能,16M晶振 0xDE
};

uchar TxRxBuffer;
///////////延时/////////////////
void Delay(uint x)
{
    uint i;
    for(i=0;i<x;i++){
        _nop_();
    }
}

////////////用SPI写数据至NRF905//////////
void SpiWrite(unsigned char b)
{
    unsigned char i=8;
    while (i--)
    {
        Delay(10);
        SCK=0;
        MOSI=(bit)(b&0x80);
        b<<=1 ; 
        Delay(10);
        SCK=1; 
        Delay(10);
    }
    SCK=0;
}
///////////////从nrf905读取数据////////////////
unsigned char SpiRead(void)
{
    register unsigned char i=8;
    unsigned char ddata=0;
    while (i--)
    {
		Delay(10);
        ddata<<=1 ;
        SCK=1;
        ddata|=MISO;
		Delay(10);
        SCK=0 ;
    }
    SCK=0;
    return ddata;
}
///////////////接收数据包/////////////////
void RxPacket(void)
{
    TxRxBuffer= SpiRead();
}

/*
;写发射数据命令:20H
;读发射数据命令:21H
;写发射地址命令:22H
;读发射地址命令:23H
;读接收数据命令:24H
*/
///////////////发送数据包/////////////////
void TxPacket(uchar a)
{
	TRX_CE=0;
    TXEN=1;
    CSN=1;
	Delay(10);
	CSN=0;
    SpiWrite(0x22);        //写发送地址,4位地址//
    SpiWrite(0x00);
    SpiWrite(0x00);
    SpiWrite(0x00);
    SpiWrite(0x00);
    CSN=1;
    Delay(10);
    CSN=0;
    SpiWrite(0x20);        //写发送数据//
    SpiWrite(a);
    CSN=1;
    Delay(10);
    TRX_CE=1;                    //使能发射模式//
	Delay(10000);
    while(!DR);                    //等待发射完成//
    TRX_CE=0;
	TRX_CE=1;
	TXEN=0;
	Delay(1000);
}	   
////////////////等待接收数据包///////////////////
void Wait_Rec_Packet(void)
{ 
	TRX_CE=0;            //数据准备好,进入待机模式
    CSN=1;
	Delay(1000);
	CSN=0;
    SpiWrite(0x24);
    RxPacket();
    CSN=1;
	TRX_CE=1;
   	TXEN=0;
	Delay(10);
}
////////////初始化配置寄存器////////////////
void Ini_System(void)
{
    uchar i;
    LCD=0;
    Delay(1000);
    LCD=1;
    CSN=1;
    SCK=0;
	PWR=1;
    TRX_CE=0;
    TXEN=0;
    Delay(10);
    CSN=0;
    for(i=0;i<11;i++){
        SpiWrite(RFConf[i]);
    }
    CSN=1;
    TRX_CE=1;
    TXEN=0;
    Delay(1000);
	LCD=0;
}
        
void main(void)
{
	Delay(1000);
    Ini_System();
    while(1)
    {
		jian1=jian2=1;
        if(jian1==0){
			TxPacket(0x00);
			Delay(10000);
		}
		if(jian2==0){
			TxPacket(0x00);
			Delay(10000);
		}
		if(DR==1){
			Wait_Rec_Packet();
			Delay(10000);
		}
		if(TxRxBuffer==0x03){
			LCD=0;
		}
		if(TxRxBuffer==0x02){
			LCD=1;
		}		
    }
}


文件列表(部分)

名称 大小 修改日期
nrf905╔Σ╞╡╖ó╦═╡τ┬╖═╝║═C│╠╨≥╘┤┤·┬δ0.00 KB2015-09-40
905.pdf18.33 KB2010-07-10
C51.zip26.58 KB2010-07-10
nRF905 CN1.0.PDF1,025.25 KB2010-07-10
nrf905╔Σ╞╡╖ó╦═╡τ┬╖═╝║═C│╠╨≥╘┤┤·┬δ.JPG22.91 KB2010-07-10
NRF905╬▐╧▀┤½╩Σ─ú┐Θ0.00 KB2015-09-42
nrf905┐╔╙├│╠╨≥0.00 KB2015-09-42
905-1-SMA.txt0.13 KB2010-07-14
nRF905Soft0.00 KB2015-09-42
nrf905.C11.71 KB2010-07-16
nrf905.LST22.79 KB2010-07-16
nrf905.OBJ13.34 KB2010-07-16
nRF905Soft11.68 KB2010-07-16
nRF905Soft.hex1.94 KB2010-07-16
nRF905Soft.lnp0.05 KB2010-07-16
nRF905Soft.M5114.91 KB2010-07-16
nRF905Soft.Opt1.72 KB2010-07-16
nRF905Soft.plg0.52 KB2010-07-16
nRF905Soft.Uv22.11 KB2010-07-16
nRF905Soft_Opt.Bak1.72 KB2010-07-16
nRF905Soft_Uv2.Bak2.10 KB2010-07-16
TY-nRF905─ú┐Θ╦╡├≈╩Θ.doc964.50 KB2010-07-14
▓╬┐╝│╠╨≥0.00 KB2015-09-42
905╜╙╩╒.c3.48 KB2010-07-14
nRF905╖ó╦═╢╦.txt5.34 KB2010-07-14
nRF905╜╙╩╒╢╦.txt5.96 KB2010-07-14
╖ó╔Σ0.00 KB2015-09-42
Calling.exe2,760.07 KB2010-07-14
PID.wtp0.02 KB2010-07-14
PW.wtp0.00 KB2010-07-14
Users.wtp0.04 KB2010-07-14
╨┼╧ó┤µ╡╡.txt10.52 KB2010-07-14

立即下载

相关下载

[磁耦合谐振buckss仿真] 无线电能传输技术可有效地解决电源接入问题,使充电过程便捷、安全,解决了传统依靠电导体直接进行物理接触的电源直接接触式输电模式所带来的插电火花、积碳、不易维护、易产生磨损,特别是在特殊环境下用电存在的安全隐患等问题。
[QT学习日记篇01(1)-QT界面初探- *.pro文件详解] Qt基础课程完结项目,完成一款小游戏并封装:翻金币游戏,通过点击金币进行翻面,让所有金币为同一面就游戏通过进入下一关。 过程中会使用前面学到的 “信号和槽”,“Qt图片资源显示”,“Qt播放音频”,“Qt绘图函数”,“Qt消息控件”等等知识。是一次前面所学知识的汇总。
[MMC模块化多电平换流器常用调制策略的对比分析] 在Matlab/Simulink环境下分别搭建了桥臂数量为6和10的两种调制方法的仿真模型,分析了模块数量与调制方法对输出的正弦电压的影响。
[svpwm同步调制] 同步调制下,通过把载波的频率固定为参考波频率的整数倍,同时固定两者的相位关系。通过这种方法可以消除3的倍数次谐波,并且通过适合pwm波正负半周期对称(N载波比取奇数),消除偶次谐波,总体同步调制所含谐波只为6k+1也就是5 7 11 13次谐波等。
[避雷器comsol仿真] comsol实现避雷器的电,磁,热仿真计算模型
[FPGA车牌识别代码

评论列表 共有 0 条评论

暂无评论

微信捐赠

微信扫一扫体验

立即
上传
发表
评论
返回
顶部