无线发射程序

合集下载

台式机怎么样发射wifi

台式机怎么样发射wifi

台式机怎么样发射wifi想用台式机发射一个wifi!那么该怎么样发射呢?下面由店铺给你做出详细的台式机发射wifi方法介绍!希望对你有帮助!台式机发射wifi方法一:任何台式电脑(组装机或者原装机),默认都不带无线网卡,所以无法发射无线网。

如果需要让台式机发射无线网,方法如下:1、购买随身wifi,比如小度wifi、小米随身wifi等;2、随身wifi插入电脑主机USB接口;3、自动安装驱动;4、设置无线密码即可给手机、平板提供无线网了。

台式机发射wifi方法二:1.可以买一个随身wifi,像小度wifi、360wifi、小米wifi都可以,这种设置比较简单,插在电脑上,下载驱动以后就可以使用了!2.电脑上接一个USB无线网卡,可以通过无线网卡来设置WIFI热点。

这一种有点难度,要进入网络设置里面,然后进行设置:a.首先确认你的无线网卡可以使用。

在开始菜单中依次找到“所有程序”--“附件”--“命令提示符”,右键“以管理员身份运行”。

b.在“命令提示符”里输入“netsh wlan set hostednetwork mode=allow ssid=Test key=0123456789”,回车,系统会自动虚拟出一个wifi热点c.打开网络和共享中心,点击左侧的“更改适配器设置”d. 在本地连接上单击右键,点击“属性”e. 切换到“共享”,在第一个方框内打对勾,在下方的选择框内选择“无线连接”,确定。

f. 同样在命令提示符里输入“netsh wlan start hostednetwork”,回车,就会打开wifi热点台式机发射wifi方法三:1、需要购买一个随身wifi,USB接口的。

2、插入台式电脑的USB接口,安装好驱动,设置下无线网络名和密码,就可以让手机、平板、笔记本电脑使用WiFi了。

3、插上随身wifi可能会让电脑反应速度变慢,玩游戏会比较卡,所以玩游戏的时候建议拔出随身wifi。

NRF24L01无线模块收发程序(实测成功 多图)

NRF24L01无线模块收发程序(实测成功 多图)

NRF24L01无线模块收发程序(实测成功多图)本模块是NRF24L01无线传输模块,用于无线传输数据,距离不远,一般只是能够满足小距离的传输,目测是4-5m,价格一般是4元左右,可以方便的买到。

51最小系统学习板就可以,当时是用了两块学习板,一块用于发送,一块用于接收。

小车也是比较容易购到的,四个端口控制两个电机,两个控制一个电机,当两个端口高低电平不同时电机就会转动,即为赋值1和0是电机转动,赋值可以用单片机作用,当然这是小车启动部分,前进后退左转右转就是你赋值0和1的顺序问题了。

整体思路是用发射端的按键控制小车,即为按键按下就前进,再按其他按键实现其他功能,本次程序是在用NRF24L01发射数据在接收端用1602显示的基础上改变。

下面是程序源码(有好几个文件,分别创建)////////////////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////#include#include#include'1602.h'#include'delay.h'#include 'nrf24l01.h'#define uint unsigned int#define uchar unsigned charuint Weight_Shiwu=1234;unsigned char KeyScan(void);//键盘扫描// unsigned char KeyScan(void);//键盘扫描//#define KeyPort P0sbit KEY1 = P0^0;sbit KEY2 = P0^1;sbit KEY3 = P0^2;sbit KEY4 = P0^3;sbit KEY5 = P0^4;void main(){// char TxDate[4];// LCD_Init(); //初始化液晶屏// LCD_Clear(); //清屏// NRF24L01Int(); //初始化LCD1602// LCD_Write_String(4,0,'welcome');while(1){KeyScan();}}unsigned char KeyScan(void){/********************************************************/ char TxDate[4];{if(!KEY1) //如果检测到低电平,说明按键按下{DelayMs(10); //延时去抖,一般10-20msif(!KEY1) //再次确认按键是否按下,没有按下则退出{while(!KEY1);//如果确认按下按键等待按键释放,没有则退出{TxDate[0] = 1;//向左转TxDate[1] = 0;TxDate[2] = 1;TxDate[3] = 1;NRFSetTxMode(TxDate);//发送数据·while(CheckACK()); //检测是否发送完毕}}}/********************************************************/ else if(!KEY2) //如果检测到低电平,说明按键按下{DelayMs(10); //延时去抖,一般10-20msif(!KEY2) //再次确认按键是否按下,没有按下则退出{while(!KEY2);//如果确认按下按键等待按键释放,没有则退出{TxDate[0] = 1;//向右转TxDate[1] = 1;TxDate[2] = 1;TxDate[3] = 0;NRFSetTxMode(TxDate);//发送数据while(CheckACK()); //检测是否发送完毕}}}/********************************************************/ else if(!KEY3) //如果检测到低电平,说明按键按下{DelayMs(10); //延时去抖,一般10-20msif(!KEY3) //再次确认按键是否按下,没有按下则退出{while(!KEY3);//如果确认按下按键等待按键释放,没有则退出{TxDate[0] = 1;//前进TxDate[1] = 0;TxDate[2] = 1;TxDate[3] = 0;NRFSetTxMode(TxDate);//发送数据while(CheckACK()); //检测是否发送完毕}}}/********************************************************/ else if(!KEY4) //如果检测到低电平,说明按键按下{DelayMs(10); //延时去抖,一般10-20msif(!KEY4) //再次确认按键是否按下,没有按下则退出{while(!KEY4);//如果确认按下按键等待按键释放,没有则退出{TxDate[0] = 0;//后退TxDate[1] = 1;TxDate[2] = 0;TxDate[3] = 1;NRFSetTxMode(TxDate);//发送数据while(CheckACK()); //检测是否发送完毕}}}else if(!KEY5){DelayMs(10);if(!KEY5){while(!KEY5){TxDate[0] = 1;TxDate[1] = 1;TxDate[2] = 1;TxDate[3] = 1;NRFSetTxMode(TxDate);while(CheckACK());}}}}}////////////////////////////////////////////////////////////////////////////////////////////////////////////// /////////#include#include#include'1602.h'#include'delay.h'#include 'nrf24l01.h'#define uint unsigned int#define uchar unsigned charuint Weight;sbit a = P2^0;sbit b = P2^1;sbit c = P2^2;sbit d = P2^3;void main(){LCD_Init(); //初始化液晶屏LCD_Clear(); //清屏*(RevTempDate+4)=*\0*;NRF24L01Int();while(1){NRFSetRXMode();//设置为接收模式GetDate();//开始接受数;//Weight=RevTempDate[0]*1000+RevTempDate[1]*100+RevTempDate[2]* 10+RevTempDate[3];LCD_Write_Char(7,0,RevTempDate[0]+0x30);LCD_Write_Char(8,0,RevTempDate[1]+0x30);LCD_Write_Char(9,0,RevTempDate[2]+0x30);LCD_Write_Char(10,0,RevTempDate[3]+0x30);a = RevTempDate[0];//根据接受数据来设置高低电平(目测仅限传输1.0两种数值)b = RevTempDate[1];c = RevTempDate[2];d = RevTempDate[3];}}////////////////////////////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////#include#include 'nrf24l01.h'#define uchar unsigned char#define uint unsigned intsbit IRQ =P1^2;//输入sbit MISO =P1^3; //输入sbit MOSI =P1^1;//输出sbit SCLK =P1^4;//输出sbit CE =P1^5;//输出sbit CSN =P1^0;//输出uchar code TxAddr[]={0x34,0x43,0x10,0x10,0x01};//发送地址/*****************状态标志*****************************************/uchar bdata sta; //状态标志sbit RX_DR=sta^6;sbit TX_DS=sta^5;sbit MAX_RT=sta^4;/*****************SPI时序函数******************************************/uchar NRFSPI(uchar date){uchar i;for(i=0;i{if(date&0x80)MOSI=1;elseMOSI=0; // byte最高位输出到MOSIdateSCLK=1;if(MISO) // 拉高SCK,nRF24L01从MOSI读入1位数据,同时从MISO 输出1位数据date|=0x01; // 读MISO到byte最低位SCLK=0; // SCK置低}return(date); // 返回读出的一字节}/**********************NRF24L01初始化函数*******************************/void NRF24L01Int(){DDelay(2);//让系统什么都不干CE=0; //待机模式1CSN=1;SCLK=0;IRQ=1;}/*****************SPI读寄存器一字节函数*********************************/uchar NRFReadReg(uchar RegAddr){uchar BackDate;CSN=0;//启动时序NRFSPI(RegAddr);//写寄存器地址BackDate=NRFSPI(0x00);//写入读寄存器指令CSN=1;return(BackDate); //返回状态}/*****************SPI写寄存器一字节函数*********************************/uchar NRFWriteReg(uchar RegAddr,uchar date){uchar BackDate;CSN=0;//启动时序BackDate=NRFSPI(RegAddr);//写入地址NRFSPI(date);//写入值return(BackDate);}/*****************SPI读取RXFIFO寄存器的值********************************/uchar NRFReadRxDate(uchar RegAddr,uchar *RxDate,uchar DateLen) { //寄存器地址//读取数据存放变量//读取数据长度//用于接收uchar BackDate,i;CSN=0;//启动时序BackDate=NRFSPI(RegAddr);//写入要读取的寄存器地址for(i=0;i{RxDate[i]=NRFSPI(0);}CSN=1;return(BackDate);}/*****************SPI写入TXFIFO寄存器的值**********************************/uchar NRFWriteTxDate(uchar RegAddr,uchar *TxDate,uchar DateLen) { //寄存器地址//写入数据存放变量//读取数据长度//用于发送uchar BackDate,i;CSN=0;BackDate=NRFSPI(RegAddr);//写入要写入寄存器的地址for(i=0;i{NRFSPI(*TxDate++);}CSN=1;return(BackDate);}/*****************NRF设置为发送模式并发送数据******************************/void NRFSetTxMode(uchar *TxDate){//发送模式NRFWriteTxDate(W_REGISTER+TX_ADDR,TxAddr,TX_ADDR_WITD H);//写寄存器指令+接收地址使能指令+接收地址+地址宽度NRFWriteTxDate(W_REGISTER+RX_ADDR_P0,TxAddr,TX_ADDR_WI TDH);//为了应答接收设备,接收通道0地址和发送地址相同NRFWriteTxDate(W_TX_PAYLOAD,TxDate,TX_DATA_WITDH);//写入数据/******下面有关寄存器配置**************/NRFWriteReg(W_REGISTER+EN_AA,0x01); // 使能接收通道0自动应答NRFWriteReg(W_REGISTER+EN_RXADDR,0x01); // 使能接收通道0 NRFWriteReg(W_REGISTER+SETUP_RETR,0x0a); // 自动重发延时等待250us+86us,自动重发10次NRFWriteReg(W_REGISTER+RF_CH,0x40); // 选择射频通道0x40 NRFWriteReg(W_REGISTER+RF_SETUP,0x07); // 数据传输率1Mbps,发射功率0dBm,低噪声放大器增益NRFWriteReg(W_REGISTER+CONFIG,0x0e); // CRC使能,16位CRC 校验,上电CE=1;DDelay(5);//保持10us秒以上}/*****************NRF设置为接收模式并接收数据******************************///主要接收模式void NRFSetRXMode(){CE=0;NRFWriteTxDate(W_REGISTER+RX_ADDR_P0,TxAddr,TX_ADDR_WI TDH); // 接收设备接收通道0使用和发送设备相同的发送地址NRFWriteReg(W_REGISTER+EN_AA,0x01); // 使能接收通道0自动应答NRFWriteReg(W_REGISTER+EN_RXADDR,0x01); // 使能接收通道0 NRFWriteReg(W_REGISTER+RF_CH,0x40); // 选择射频通道0x40 NRFWriteReg(W_REGISTER+RX_PW_P0,TX_DATA_WITDH); // 接收通道0选择和发送通道相同有效数据宽度NRFWriteReg(W_REGISTER+RF_SETUP,0x07); // 数据传输率1Mbps,发射功率0dBm,低噪声放大器增益*/NRFWriteReg(W_REGISTER+CONFIG,0x0f); // CRC使能,16位CRC 校验,上电,接收模式CE = 1;DDelay(5);//保持10us秒以上}/****************************检测应答信号******************************/uchar CheckACK(){ //用于发射sta=NRFReadReg(R_REGISTER+STATUS); // 返回状态寄存器if(TX_DS||MAX_RT) //发送完毕中断{NRFWriteReg(W_REGISTER+STATUS,0xff); // 清除TX_DS或MAX_RT中断标志CSN=0;NRFSPI(FLUSH_TX);//用于清空FIFO !!关键!!不然会出现意想不到的后果!!!大家记住!!CSN=1;return(0);}elsereturn(1);}/******************判断是否接收收到数据,接到就从RX取出*********************///用于接收模式uchar NRFRevDate(uchar *RevDate){uchar RevFlags=0;sta=NRFReadReg(R_REGISTER+STATUS);//发送数据后读取状态寄存器if(RX_DR) // 判断是否接收到数据{CE=0; //SPI使能NRFReadRxDate(R_RX_PAYLOAD,RevDate,RX_DATA_WITDH);// 从RXFIFO读取数据RevFlags=1; //读取数据完成标志}NRFWriteReg(W_REGISTER+STATUS,0xff); //接收到数据后RX_DR,TX_DS,MAX_PT都置高为1,通过写1来清楚中断标return(RevFlags);}void DDelay(uint t){uint x,y;for(x=t;x>0;x--)for(y=110;y>0;y--);}//////////////////////////////////////////////////////////////////////////////////////////////////////// #include 'delay.h'/*------------------------------------------------uS延时函数,含有输入参数unsigned char t,无返回值unsigned char 是定义无符号字符变量,其值的范围是0~255 这里使用晶振12M,精确延时请使用汇编,大致延时长度如下T=tx2+5 uS------------------------------------------------*/void DelayUs2x(unsigned char t){while(--t);}/*------------------------------------------------mS延时函数,含有输入参数unsigned char t,无返回值unsigned char 是定义无符号字符变量,其值的范围是0~255 这里使用晶振12M,精确延时请使用汇编------------------------------------------------*/void DelayMs(unsigned char t){while(t--){//大致延时1mSDelayUs2x(245);DelayUs2x(245);}}///////////////////////////////////////////////////////////////////////////////////////////下面是接收的NRF24L01的程序。

无线电发射与接收原理

无线电发射与接收原理

无线电发射与接收原理无线电发射与接收原理是基于电磁波理论的,主要包括以下几个基本步骤和原理:一、无线电发射原理:1.信号调制:首先,需要传输的信息(如声音、图像等)通过调制器转换为电信号。

根据不同的通信需求,可以选择不同的调制方式,比如AM(幅度调制)、FM(频率调制)、PM(相位调制)等。

2.高频振荡:将调制后的信息信号加载到一个高频载波上,这个过程通常由高频振荡器完成,产生特定频率的无线电信号。

3.功率放大:为了使信号能传播更远的距离,需经过功率放大器对带有信息的高频信号进行放大。

4.天线发射:最后,经放大的无线电信号通过天线以电磁波的形式辐射出去。

天线将电能转化为电磁能量,并按照一定的方向和模式在空间中传播。

二、无线电接收原理:1.天线接收:远处发射台发出的电磁波经过空间传播后,被接收端的天线捕获并将其还原为相应的电信号。

天线依据其设计和构造特性,选择性地接收某一频段的电磁波。

2.选频放大:接收到的信号往往非常微弱且包含各种干扰,因此要通过前端的射频放大器(RF Amp)和滤波器(Filter)进行初步放大和选择性接收,只允许所需频率范围内的信号通过。

3.解调:从放大后的高频信号中提取出原始的信息信号。

解调器执行与发射端相反的过程,例如对于AM信号,使用检波器恢复音频信号;对于FM信号,则采用鉴频器来恢复原来的音频。

4.后续处理:解调出来的信号可能还需要进一步放大或净化,然后送到音频输出设备,如扬声器或显示器,从而重现原来的声音或视频信息。

总结来说,无线电发射就是将低频信息信号装载到高频载波上并通过天线发射出去,而接收则是利用天线捕捉到这些电磁波,经过一系列的信号处理还原出原始的信息内容。

NRF2401无线发射程序

NRF2401无线发射程序
{
unsigned char i;
DATA_BUF=send;
for (i=0;i<8;i++)
{
if (DATA7) //总是发送最高位
{
DATA=1;
}
else
{
DATA=0;
}
#define RFConfig_Bit11 ADDR1_3
#define RFConfig_Bit12 ADDR1_2
#define RFConfig_Bit13 ADDR1_1
#define RFConfig_Bit14 ADDR1_0
#define RFConfig_Bit15 (ADDR_W<<2 | CRC_L<<1 | CRC_EN)
#define RX2_EN 0x0 //双频道功能 禁用
#define CM 0x1 //ShockBurst mode
#define RFDR_SB 0x1 //传输速率 1Mbps
#define XO_F 0x3 //16M 晶0us左右
void Delay100(void)
{
unsigned int i;
for(i=0;i<100;i++);
}
/*****************************************************************************************/
#define ADDR2_2 0xcc
#define ADDR2_1 0xcc
#define ADDR2_0 0xcc
//频道1 接收地址 以下设置本机的地址

怎样设置wifi无线发射

怎样设置wifi无线发射

一,作为接收器,接收外界WIFI信号上网设置1首先将USB网卡接电脑,会出现然后点取消。

2将光盘放入光驱,然后打开光盘可以看见2个文件夹,如图:然后打开第二个W开头的文件夹,可看见继续打开150Mbps的文件夹。

出现打开Windows的文件夹,然后双击进行安装选择我接受,然后下一步出现选择默认,然后再下一步,继续默认,下一步。

点击安装。

安装的时候,会有杀毒软件对该软件进行提问选择方式,请选择一直信任该操作。

3安装好驱动程序后,电脑右下角就会出现,双击这个R的图标就会出现大镜的图标,就会出现右侧方框出现的就是搜索到您附近可用的WIFI信号名字,然后找到您知道可用的,双击该信号名字,左方就会出现点击该方框左上角的绿色箭头进行下一步操作输入该信号的密码,点击绿色箭头,下一步,现在就可以享受无线WIFI信号上网了。

二.作为无线WIFI信号发射器操作该方法的操作是基于上方前2步的操作成功,后续方法如下:1 右键点击,会出现4个选项,请选择第三个,切换至AP模式,期间会有短暂的掉网络现象,切换成功后,点击该图标。

出现,然后继续点击上方第一个图标,就会出现,注意:该名称就是设置成功后的本机WIFI信号名字,可以更改也可以不更改,如果想要更改自己想设置的名字,现在先设置成自己想要的名字,比如我要设置的WIFI名字为Robin,我现在就将名字改成,更改好后,点击上面的绿色右箭头,进行下一步,继续下一步到这里后,可以设置密码,也可以不设置密码,若不想设置密码,继续下一步,若要设置密码,请按图选择对应的设置设置成这样后,继续下一步在该方框内输入不少于8位字符的密码,下方的更新间隔设为默认,继续下一步,现在已经设置成功,可以用您的手机或者平板电脑搜索信号了。

找到对应的WIFI名字,进行连接就可以无线上网啦。

注:该方法是本人一步一步的操作写出,若有不详不懂的地方请见谅,可以联系我们的客服,转接售后客服1003 ,我继续为大家解答,再次感谢各位光临本店。

怎么使用笔记本电脑发射无线信号

怎么使用笔记本电脑发射无线信号

怎么使用笔记本电脑发射无线信号推荐文章无线wifi信号屏蔽器的使用方法热度:无线wifi信号加强器的使用方法热度:无线wifi没有信号究竟是怎么回事的解决方法热度:笔记本电脑搜索不到无线网络信号怎么办热度:手提电脑确连接不上wifi信号怎么办热度:不用任何软件,利用笔记本电脑自带功能就可以发射无线信号,下面是店铺给大家整理的一些有关使用笔记本电脑发射无线信号的方法,希望对大家有帮助!使用笔记本电脑发射无线信号的方法打开笔记本的无线网络功能。

(笔记本上都会有一个有线无线开关,一般笔记本上会有无线网络打开的指示灯)win键+R打开运行程序,输入cmd并回车打开命令指令符在命令指令符中输入:netsh wlan set hostednetwork mode=allow ssid= key=??然后回车其中内容可以自己设定,ssid是wifi名,key是你连接wifi所需的密码我设定的ssid 名字是hp(你可以自己设定你喜欢的),密码为12345678(你也可以随意设置8位以上密码)也就是netsh wlan set hostednetwork mode=allow ssid=hp key=12345678打开控制面板---网络和Internet---网络和共享中心---更改适配器设置选中你当前的宽带连接并右键属性---共享---允许其他用户通过此计算机的Internet来连接打勾,共享网络选择无线网络连接2设置完后你的宽带连接会出现共享的字样回到命令指令符,输入:netsh wlan start hostednetwork回车,显示“已启动承载网络”,说明无线网络共享打开成功。

这个共享网络每次关机后再开机都要输入指令再打开,如果嫌麻烦可以把netshwlan start hostednetwork复制进txt然后将txt扩展名保存为bat,文件可以重命名为wlan等一目了然的名字。

想打开的时候直接双击bat文件,就无需再打开命令指令输入命令了这时候无线网络连接2的红叉就不见了,成了一个正常的网络接下来你就可以用其他设备搜索你设置的ssid网,并输入你设置的密码即可连接wifi 了END。

电脑无线网卡发射无线wifi信号

电脑无线网卡发射无线wifi信号

家里如果没有无线路由器,可让电脑无线网卡发射无线wifi信号,从而使手机利用家里的宽带无线上网。

事先准备工作: 1.家里的电脑必须得有无线网卡,而且必须打开无线网卡,如果是笔记本上面有无线网络开关,必须打开开关(部分无线网卡不支持所述功能,需要更新驱动) 2.电脑系统为win7
操作步骤:
1.“开始”----“运行”----输入cmd
2.此时弹出cmd.exe的dos界面,在界面上输入:netsh wlan set hostednetwork mode=allow ssid= wifi key=12345678 (注意:ssid=后面的名字自己随意起,同样key后面是密钥,为八位数,姑且设成1 2345678)回车,你会看到下面的图
3.接着输入:netsh wlan start hostednetwork 如果你的电脑无线网卡支持承载网络功能,会出现以下界面
4.如果你的家里用的是宽带,需要设置宽带共享。

“控制面板”---“网络和共享中心”----“更改适配器设置”---右键单击“宽带连接”---右键“属性”---“共享”
把小对钩全选上,“请选一个专用网络连接”下拉找到“无线网络2"------"确定"
如果不是宽带拨号上网,类似的,上述中“宽带连接”换成“本地连接”设置即可。

IP什么的都不要专门设置了,都是自动生成的。

下面就是手机打开WLAN,搜索wifi信号,输入密钥“12345678”,手机就可以上网了。

注意:先登录QQ试试,如果能上QQ,不能上网,多半是DNS设置的问题,找到“网络连接2”,把IPv4协议--属性下的dns设置成和宽带自动分配的dns地址一样即可。

无线中继器的信号接收与发射原理

无线中继器的信号接收与发射原理

无线中继器的信号接收与发射原理
无线中继器是通过接收来自无线路由器或其他无线设备的信号,然后将接收到的信号放大并重新发射出去,实现信号的延伸和扩大覆盖范围。

具体而言,无线中继器的信号接收与发射原理如下:
1. 信号接收:无线中继器的接收天线接收来自无线路由器或其他无线设备的无线信号。

接收天线将收到的无线信号转化为电信号,并将其传输到无线中继器的电路板上。

2. 信号放大:接收到的电信号会通过无线中继器的放大电路进行放大处理。

放大电路会增加信号的功率和幅度,以强化信号的传输能力。

3. 信号处理:放大后的信号会经过一系列的信号处理步骤,例如滤波、调制解调等。

这些处理步骤用于降低噪声、优化信号的质量,并确保信号的稳定性和可靠性。

4. 信号发射:处理后的信号会通过发射天线重新发射出去。

发射天线会将电信号转化为无线信号,并以特定的频率和功率发送出去。

通过信号的接收、放大、处理和发射等步骤,无线中继器可以实现接收信号的延伸和扩大覆盖范围的功能。

无线中继器可以连接到无线路由器或其他无线设备,
将接收到的信号放大后再次发射出去,从而实现信号的传输和扩展覆盖范围。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

无线发射#include <reg52.h>#include <ABSACC.h>#include <intrins.h>#include <stdio.h>//----------------------------------------------------------------------------------------------------------------#define uint unsigned int#define uchar unsigned char//----------------------------------------------------------------------------------------------------------------#define BYTE_BIT0 0x01#define BYTE_BIT7 0x80//----------------------------------------------------------------------------------------------------------------bdata unsigned char DATA_BUF;#define DATA7 ((DATA_BUF&BYTE_BIT7) != 0)#define DATA0 ((DATA_BUF&BYTE_BIT0) != 0)sbit flag =DATA_BUF^7;sbit flag1 =DATA_BUF^0;//---------------------------------------------------发送数据缓冲区-------------------------------------------------#define TxRxBuf_Len 4unsigned char TxRxBuf[TxRxBuf_Len]={0x29,0x30,0x31,0x32,};code TxAddress[4]={0xcc,0xcc,0xcc,0xcc};char tf;//----------------------------------------NRF905工作模式控制端口------------------------------------------------------sbit TXEN=P1^4;sbit TRX_CE=P3^2;sbit PWR=P1^3;//----------------------------------------LED显示端口---------------------------------------------------sbit LED=P3^5;//----------------------------------------NRF905 数据交换端口---------------------------------------------------sbit MISO=P1^6;sbit MOSI=P1^1;sbit SCK=P1^5;sbit CSN=P1^0;//----------------------------------------nrf905状态端口---------------------------------------------------------sbit AM=P1^7;sbit DR=P3^3;sbit CD=P1^2;//---------------------------------------------------------------------------------------------------------------sbit led3=P2^0;sbit led2=P2^1;sbit led1=P2^2;sbit led0=P2^3;//----------------------------------------按键端口-------------------------------------------------------sbit KEY=P3^4;//----------------------------------------nrf905控制指令-------------------------------------------#define WC 0x00#define RC 0x10#define WTP 0x20#define RTP 0x21#define WTA 0x22#define RTA 0x23#define RRP 0x24//------------------------------------------------NRF905寄存器配置------------------------------------------------unsigned char idata RFConf[11]={0x00, //配置命令// 0x4c, //CH_NO,配置频段在430MHZ0x0c, //输出功率为10db,不重发,节电为正常模式0x44, //地址宽度设置,为4字节0x04,0x04, //接收发送有效数据长度为4字节0xCC,0xCC,0xCC,0xCC, //接收地址0x58,//CRC充许,8位CRC校验,外部时钟信号不使能,16M晶振};//================================================延时===========================================================void nrf905_Delay(int n){uint i;while(n--)for(i=0;i<80;i++);}//=================================================SPI读函数=======================================================unsigned char SpiRead(void){unsigned char j;for (j=0;j<8;j++){DATA_BUF=DATA_BUF<<1;SCK=1;if (MISO) //读取最高位,保存至最末尾,通过左移位完成整个字节{DATA_BUF|=BYTE_BIT0;}else{DATA_BUF&=~BYTE_BIT0;}SCK=0;}return DATA_BUF;}//===========================================SPI写函数=============================================================== void SpiWrite(unsigned char send){unsigned char i;DATA_BUF=send;for (i=0;i<8;i++){if (DATA7) //总是发送最高位{MOSI=1;}else{MOSI=0;}SCK=1;DATA_BUF=DATA_BUF<<1;SCK=0;}}//------------------------------------------------------初始化nRF905---------------------------------------------void nRF905Init(void){CSN=1;//Spi disableSCK=0;// Spi clock line init low DR=1;//Init DR for inputAM=1;//Init AM for inputCD=1;//Init CD for inputPWR=1;// nRF905power onTRX_CE=0;// SetnRF905 in standby modeTXEN=0;// set radioin Rx mode}//-----------------------------------------------------初始化寄存器-----------------------------------------------void Config905(void){uchar i;CSN=0;// Spi enable for write a spi command //SpiWrite(WC);// Write configcommand写放配置命令for (i=0;i<11;i++) // Writeconfigration words 写放配置字{SpiWrite(RFConf[i]);}CSN=1;// Disable Spi}//-----------------------------------------------------发送数据打包---------------------------------------------------void TxPacket(uchar *TxRxBuf){uchar i;//Config905();CSN=0;SpiWrite(WTP);// Write payloadcommandfor (i=0;i<4;i++){SpiWrite(TxRxBuf[i]);// Write 32 bytes Tx data}CSN=1;nrf905_Delay(1);// Spi disableCSN=0;// Spi enable for write a spi command SpiWrite(WTA);// Write addresscommandfor(i=0;i<4;i++)// 写入与对方地址一样的地址{SpiWrite(TxAddress[i]);}CSN=1;// Spi disableTRX_CE=1;// SetTRX_CE high,start Tx datatransmissionnrf905_Delay(1);//while (DR!=1);TRX_CE=0;// SetTRX_CE low}//----------------------------------------------设置发送初始状态---------------------------------------------void SetTxMode(void){TRX_CE=0;TXEN=1;nrf905_Delay(1);//nrf905_Delay for modechange(>=650us)}//-----------------------------------------------设置接收初始化---------------------------------------------------void SetRxMode(void){TXEN=0;TRX_CE=1;nrf905_Delay(1);//nrf905_Delay for modechange(>=650us)}//-------------------------------------------------判断数据接收状态--------------------- unsigned char CheckDR(void) //检查是否有新数据传入 Data Ready{DR=1;//通过对端口写1,可以使端口为输入状态,这51的特性。

相关文档
最新文档