NRF905无线模块程序.doc_第1页
NRF905无线模块程序.doc_第2页
NRF905无线模块程序.doc_第3页
NRF905无线模块程序.doc_第4页
NRF905无线模块程序.doc_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

发射#include#include#define uint unsigned int #define uchar unsigned charsbit TX_EN=P35;sbit TRX_CE=P11;sbit PWR_UP=P34;sbit CD=P33;sbit AM=P13;sbit DR=P32;sbit MISO=P16;sbit MOSI=P14;sbit SCK=P17;sbit CSN=P15;sbit led=P30;sbit key1=P12;sbit key2=P10;sbit key3=P37;uchar key_value=0;void Delay(uint x) uint i; for(i=0;ix;i+) _nop_(); void SpiWrite(uchar date) uchar i=8; while (i-) Delay(10); MOSI=(bit)(date&0x80); date=1 ; Delay(10); SCK=1; Delay(10); SCK=0; void TxPacket(void) PWR_UP=1; TX_EN=1;TRX_CE=0; Delay(2); CSN=0; SpiWrite(0x22); /写发送地址,后面跟4字节地址/ SpiWrite(0xE7); SpiWrite(0xE7); SpiWrite(0xE7); SpiWrite(0xE7); CSN=1; Delay(2); CSN=0; SpiWrite(0x20); /写发送数据命令,后面跟三字节数据/ SpiWrite(0x01); SpiWrite(0x02);SpiWrite(key_value); CSN=1; Delay(5); TRX_CE=1; /使能发射模式/ Delay(500); /等带发送完成/ TRX_CE=0;while(!DR); /初始化配置寄存器/void Ini_System(void) CSN=1; SCK=0; PWR_UP=1; TRX_CE=0; TX_EN=0; Delay(2); CSN=0; SpiWrite( 0x00); /配置命令/ SpiWrite( 0x6C); /CH_NO,配置频段在433.2MHZ SpiWrite( 0x0C); /输出功率为10db,不重发,节电为正常模式 SpiWrite( 0x44); /地址宽度设置,为4字节 SpiWrite( 0x03);SpiWrite( 0x03); /接收发送有效数据长度为3字节 SpiWrite( 0xE7);SpiWrite( 0xE7);SpiWrite( 0xE7);SpiWrite( 0xE7); /接收地址 SpiWrite( 0xDE); CSN=1; PWR_UP=1; TRX_CE=1; TX_EN=0; Delay(1000);void main(void)Ini_System();DR=1; TRX_CE=0; Delay(1000); TX_EN=0; TRX_CE=1; PWR_UP=1; key_value=0x00; while(1) if(!key1) /senfing key1Delay(5);if(!key1) Delay(3); while(!key1); key_value=0xa0; else if(!key2) /senfing key2Delay(5);if(!key2) Delay(3); while(!key2); key_value=0xa1; if(!key3) /senfing key3Delay(5);if(!key3) Delay(3); while(!key3); key_value=0xa2;if(key_value!=0x00)led=0;TxPacket(); key_value=0x00;TX_EN=0;TRX_CE=1;PWR_UP=1;Delay(6000);led=1; 接收#include #include #define uint unsigned int#define uchar unsigned charsbit TX_EN=P00;sbit TRX_CE=P01;sbit PWR_UP=P02;sbit CD=P03;sbit AM=P04;sbit DR=P05;sbit MISO=P06;sbit MOSI=P07;sbit SCK=P20;sbit CSN=P21;sbit led1=P11;sbit led2=P12;sbit led3=P13;uchar TxRxBuffer3;bit success_flag=0;void Delay(uint x) uint i; for(i=0;ix;i+) _nop_();void SpiWrite(uchar date) uchar i=8; while (i-) Delay(10); MOSI=(bit)(date&0x80); date=1 ; Delay(10); SCK=1; Delay(10); SCK=0; uchar SpiRead()/from 905 read data uchar i=8,date1=0; while (i-) date1=1 ;date1|=MISO;SCK=1 ;Delay(10);SCK=0 ;Delay(10); return date1;void Ini_System(void)/*初始化配置寄存器*/ CSN=1; SCK=0; PWR_UP=1; TRX_CE=0; TX_EN=0; Delay(2); CSN=0; SpiWrite(0x00); /配置命令/ SpiWrite(0x6C); /CH_NO,配置频段在433.2MHZ SpiWrite(0x0C); /输出功率为10db,不重发,节电为正常模式 SpiWrite(0x44); /地址宽度设置,为4字节 SpiWrite(0x03);SpiWrite(0x03); /接收发送有效数据长度为3字节 SpiWrite(0xE7);SpiWrite(0xE7);SpiWrite(0xE7);SpiWrite(0xE7); /接收地址 SpiWrite(0xDE); CSN=1; PWR_UP=1; TRX_CE=1; TX_EN=0; Delay(1000);void Wait_Rec_Packet(void) if(DR) TRX_CE=0;/如果数据准备好,则进入待机模式,以便SPI口操作 CSN=0; SpiWrite(0x24);/接收数据包TxRxBuffer0 = SpiRead();TxRxBuffer1 = SpiRead();TxRxBuffer2 = SpiRead(); CSN=1;while(DR);TRX_CE=1;if(TxRxBuffer0=0x01)&(TxRxBuffer1=0x02) TxRxBuffer0=0xff;TxRxBuffer1=0xff;success_flag=1;if(TxRxBuffer2=0xa0)led1=led1;else if(TxRxBuffer2=0xa1)led2=led2;else if(TxRxBuffer2=0xa2)led3=led3;Ini_System(); void main(void) Ini_System();PWR_UP=0;DR=1;led1=0;led2=0;led3=0;success_flag=0; TRX_CE=0; Delay(1000

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论