怎样用9018做无线接收端的放大电路

核心提示电视高频头输出的第一中频信号和音频信号通过高频管9018放大后也确有显效,该电路已被广泛地使用,但是高频管9018对调频弱信号放大的结果令人大失所望。实验电路将高频管9018放大电路加人调频信号输人端,结果弱信号台阻断消失,强信号台放大加强

电视高频头输出的第一中频信号和音频信号通过高频管9018放大后也确有显效,该电路已被广泛地使用,但是高频管9018对调频弱信号放大的结果令人大失所望。

实验电路将高频管9018放大电路加人调频信号输人端,结果弱信号台阻断消失,强信号台放大加强。将高频管9018放大电路加人电视高频头后,对电视第一中频信号放大,再接入收音集成CXA1019P信号输人端,结果仍是弱信号台阻断消失,强信号台放大加强。后又去掉高频管9018放大电路,直接将电视第一中频信号接人收音集成CXA1019P信号输入端,结果是强信号台强度有所减弱,弱信号台台数有不少增加。通过实验反复比对,结果不变,由此得出实验结论:高频管9018对强度信号放大有效,对弱度信号阻断消失,且存在自激现象。

无线电路的超外差式接收和超再生式接收有何区别?

在食品工业、酿酒行业、石化和工矿企业、环境检测、公安交通管理、社会公用事业等一些国民经济生产和人们工作生活的领域和场合中,常常需要检测特定环境中酒精气体的浓度,以确保工厂企业环境安全和人民生命财产安全[1-4]。如监控酒精生产车间和石化厂的酒精浓度,可以避免工厂起火和爆炸事故的发生;监测工矿企业场地的酒精浓度,能避免工作人员出现酒精中毒等恶性事故;检测司机体内酒精含量,可以防止驾驶人员酒后驾车,减少恶性交通事故的发生。因此,研制酒精气体浓度检测仪具有十分广阔的现实和潜在的市场需求,并具有十分重要的意义。传统的酒精气体检测仪因传感器性能、电路设计、数据处理算法等原因,存在着气体选择性不高、抗干扰性能差、智能化程度低、仪器操作复杂、无法实时保存和调看数据等突出问题[3-4]。鉴于此,笔者设计和研制了一种无线智能酒精浓度探测仪,弥补了传统酒精检测仪器的缺点和不足。

1 系统总体方案

该酒精浓度探测仪由发送端和接收端两部分组成,其原理框图分别如图1和图2所示。发送端主要包括酒精浓度传感器与A/D转换电路、STC90C52RC单片机、浓度阈值设置与声音报警电路、语音播报电路、LCD显示电路和无线收发电路六部分;接收端由无线收发电路、STC90C52RC单片机、数据接口通信电路和上位计算机组成。

2 系统硬件电路设计

21 传感器电路与A/D转换电路

TGS2620为日本费加罗(FIGARO)公司生产的一款可以探测气体中酒精浓度的半导体气体传感器,具有灵敏度高、功耗低、寿命长、成本低等特点[5-6]。其电路连接如图3所示,其中,RH为加热器电阻,室温下时为83±8 Ω;RS为传感器电阻,其阻值和还原性气体浓度之间的数学关系为:

通过检测VRL就可以确定出待测气体浓度C。

电路中运放OP07接成电压跟随器形式,对传感器和后级电路进行隔离,减小电源波动和外界因素对采样数据的影响。ICL7660是MAXIM公司生产的小功率极性反转电源转换器,作用是将+5 V电源变换成-5 V电源为OP07供电。其中,CC2采用漏电小、介质损耗低的10 μF钽电容,以提高电源转换效率。TLC1549是TI公司生产的10位分辨率逐次逼近型ADC芯片,具有自动采样和保持、可按比例量程校准转换范围、抗噪声干扰功能,在满刻度时总误差最大仅为±1 LSB。

22 LCD显示、阈值设置与声音报警电路

16×2个字符液晶显示模块DM-162显示报警阈值和酒精浓度值。为了减少单片机I/O口的使用数量和简化电路结构,采用间接控制(4位数据总线)方式,接口电路如图4上部分所示。初始化时,需写入28H指令码将8位总线转为4位数据接口方式。管脚BLA、BLK和VL分别是液晶背光源正极、负极和显示对比度调整端,RS、E分别是寄存器选择端、读/写信号线和使能端。

酒精浓度阈值设置和声音报警电路如图4下部分所示。当设置键S1按下时,进入阈值设置(初始阈值为500 ppm)界面,再按下键S2或S3,对阈值作增加或减小操作,步长为20 ppm。阈值设置好后写入STC90C52RC单片机片内5 KB EEPROM的第一扇区2000H和2001H地址中,使系统重启不必重新设置。若酒精浓度值大于阈值,将P07口线置为低电平,三极管8550驱动蜂鸣器发声音报警。

23 语音播报电路

采用华邦(Winbond)公司的ISD2560语音录放集成芯片作酒精浓度值播放,电路如图5所示。话筒采用差分形式接入到片内前置放大器的MIC端和MIC REF端,以抵消噪声和提高输入共模抑制比。扬声器接成双端输出形式,输出功率为单端用法时功率的4倍。单片机的P2口、P30和P31口线分别与地址线A0~A9相连,用来设定ISD2560片内480 KB EEPROM(地址为0H~257H)中存储语音段的起始地址,录音和放音功能均从该起始地址开始,录音过程中信息段地址自动增加。本系统在ISD2560中需录入语音信息有:“当前酒精浓度值为”、“零”、“一”、“二”、“三”、“四”、“五”、“六”、“七”、“八”、“九”、“十”、“百”、“千”、“点”、“ppm(浓度单位)”。由于ISD2560的语音录放时间为60 s,按每秒3个汉字计算,则可录放180个汉字,因此满足播报要求。此外,通过P30、P31和P20~P26口线可以配置ISD2560的操作模式[7-8](地址为300H~3FFH)。P34~P36口线分别用来控制语音芯片的片选、芯片的开关、录音/放音模式选择。P32口用来判断芯片的存储空间是否已经填满或者信息存储是否溢出。由于录音时在每个信息段结尾处自动插入标志,当放音遇到该标志时产生宽约为125 ms的负脉冲。用P33口检测到此脉冲的上升沿后才播放另一段录音,避免语音播放不连续。

24 无线收发电路

系统采用NORDIC公司生产的工作于24~2483 5 GHz的ISM频段的单片无线收发器芯片nRF24L01完成无线数据的收发工作,nRF24L01的最高传输速率为2 Mb/s,电路如图6所示。稳压芯片LM1117-33 V将5 V输入电压转换成33 V给nRF24L01供电。nRF24L01与单片机接口为四线SPI方式,CSN、SCK、MOSI、MISO管脚分别是SPI的片选使能线、时钟线、数据输入线、数据输出线。IRQ为中断信号线(低电平有效),接至单片机的外部中断管脚,单片机主要是通过该接口线与nRF24L01进行通信并判断数据接收和数据发送是否完成。CE为芯片的RX/TX模式选择线。IREF为参考电流输入端,通过22 kΩ电阻接地。管脚ANT1和ANT2给天线提供平衡的RF输出,通过后接的简单射频网络匹配电路获得单端50 Ω的阻抗输出。网络匹配电路在发送模式时阻止谐波,在接收模式时克制本地振荡漏出。VDD_PA管脚输出18 V电压,给片内功率放大器提供电源。

25 数据接口通信电路

接收端的计算机与单片机间的通信由串行USB接口集成电路CH340T完成,如图7所示。CH340T支持USB11或者USB20/USB30通信,具有仿真接口,并且可以升级外围串口设备,支持常用的MODEM联络信号,支持IRDA规范的SIR红外通信,提供RS23RS48RS422接口等功能。CH340T内置有独立的收发缓冲区,支持通信波特率50 b/s~2 Mb/s的单工、半双工、全双工等异步串行通信。图7中,在CH340T芯片的发送脚TXD上反接一个二极管1N4001,防止该引脚将电流倒灌到单片机;在接收引脚RXD上加一个300 Ω的限流电阻来防止单片机对CH340T倒灌电流;从而避免电流倒灌导致不需要供电工作的另一方芯片继续工作。

3 系统软件设计

31 下位机软件设计

下位机的程序开发和调试是在Keil μVision4集成开发环境下进行的,包括发送端和接收端的软件设计。

311 发送端软件设计

发送端软件流程如图8所示。单片机上电后进行系统初始化,完成单片机内部系统变量的初始化以及TLC154DM-16ISD2560和nRF24L01等外部设备的初始设置;然后延时大约5 min,预热传感器TGS2620,保证传感器工作正常;程序初始化结束后,系统进入监控状态。若报警阈值设置键按下,进入报警限设置模式;若录音键按下,进入录音模式;然后启动A/D转换获取采样数据,作滤波处理、标度变换和系统误差校正后得到被测酒精浓度值。该值与报警阈值比较,若结果是“大于”或“等于”,启动蜂鸣器发声程序,作声音报警,提示酒精浓度超标;接着该值在DM-162液晶模块上实时显示;最后判断放音键是否按下。若按下则根据酒精浓度值查找ISD2560中对应语音信息的存储地址开始放音;放音结束后,该值由nRF24L01发送程序发送到接收端;待发送完成后,采集、显示和发送新一轮的酒精浓度数据。

发送端软件应用了防脉冲干扰平均滤波法[9]对A/D采样数据作预处理。其原理是:连续采样K次,然后对这K个采样数据进行比较,去除其中的最大值和最小值,计算剩下的K-2个数据的算术平均值作为采样有效值。该方法融合了中位值滤波法和算术平均滤波法的优点,既可去掉脉动性质的干扰,又可消除偶然出现的脉冲性干扰引起的采样值偏差。为加快计算速度,设计数字滤波器时K=10。

为了提高系统的实时性,软件中采用分段线性插值法[10-11]作标度变换。过程如下:(1)按传感器TGS2620的标定曲线,将该曲线进行非等距分段(曲率变化大(小)时,样点距离取小(大)),选取各分段点坐标(VRLi,Ci)(i=0,1,…,M),其中:VRLi和Ci分别为不同样点时传感器输出电压值和对应浓度值;(2)计算相邻样点间的拟合直线斜率ki=(Ci+1-Ci)/(VRLi+1-VRLi)(i=0,1,…,M-1);(3)将M组坐标数据(VRLi,Ci)和对应斜率ki存储于单片机片内EEPROM的第二扇区(地址为2200H~23FFH)中;(4)每采集到一个电压值VRL即查询EEPROM表,找出VRL所在区间(VRLi,Ci)~(VRLi+1,Ci+1),取出该区间(VRLi,Ci)和ki数据,用线性插值公式C=Ci+ki(VRL-VRLi)计算出当前酒精浓度值C。

将采集到的N个样本数据(xi,yi)代入式(5)中即得到系数a、b的值,并存入单片机的内存单元中。系统测量时,将标度变换后的酒精浓度测量值x代入误差校正方程y=ax+b中,即可得到校正后的酒精浓度值y,从而达到消除系统误差的目的。

312 接收端软件设计

接收端单片机的软件流程如图9所示。接收端开机上电后,程序初始化设置nRF24L01和串口,然后进入监控场景。当nRF24L01接收到一帧完整的酒精浓度数据后,立即通过串口发送到上位机。接收端单片机与PC之间数据交互采用异步通信模式。独立波特率,串口协议设置为:波特率9 600 b/s,8 bit数据位,1 bit停止位,无校验位。

32 上位机软件设计

上位机用户界面采用通用的基于对象的程序设计语言Microsoft Visual Basic 60开发,实现酒精浓度数据的接收、显示和保存。软件用到了串行通信控件MSComm。MSComm控件是Microsoft公司提供的Windows下串行通信编程的ActiveX控件,通过对此控件的属性和事件进行相应的编程操作,即可轻松地实现串行通信。串口通信协议与接收端完全相同。上位机软件的程序流程如图10所示。

4 系统测试

为了检验本系统的测量性能,采用无水乙醇和纯净水按照一定体积比配制标准的酒精溶液作为被测量对象,测试结果如表1所示。其中:单位ppm=μg/mL表示1 mL酒精溶液中含酒精的质量。由测量结果可以看出,测试数据覆盖传感器的量程,测试最大相对误差小于±2%,优于同类设计产品[3-5]。

为了获得本仪器发送端与接收端的最大无错误率的通信距离,在室外进行了nRF24L01随距离的错误率(临界区间)测试实验,结果如表2所示。其中,每米的错误率是10次试验后计算得到的平均值。可见,nRF24L01的传输距离可达到100 m,略高于RFID、ZIGBEE和蓝牙等无线通信技术[12]。

5 主要技术指标

本仪器主要技术指标如下:(1)测量范围:50~5 000 ppm;(2)灵敏度(传感器电阻变化率):03~05;(3)测量精度:≤±2%;(4)传输距离:≤100 m;(5)工作电源:DC+5 V;(6)工作环境温度:-40 ℃~+70 ℃;(7)工作环境相对湿度:0~85%RH。

6 结束语

本文设计研制了一种基于STC90C52RC单片机、TGS2620酒精传感器和nRF24L01无线通信芯片的酒精浓度探测仪。该仪器现已投入到成都市某小型酿酒厂酒池的实际生产中。现场工作情况表明:系统运行正常,工作可靠;系统具有气体选择性和灵敏度高、稳定性好、智能化程度高、通信距离远、功耗低、抗工业干扰能力强、性价比优异等优点。该仪器可以应用于食品加工行业、工矿企业、石油和化学工业、环境检测与保护、社会公用事业、高空作业人员、公安交通管理(如酒后驾车、交通警察执法)等需要现场检测或无线遥测酒精气体浓度的场合中,市场应用前景广阔、推广价值较高。

参考文献

[1] 李海涛基于QNX的远程车载酒驾智能监控系统[J]电子技术应用,2014,40(8):136-139

[2] 宋晓宇,高国伟,李世川,等基于单片机控制的酒精浓度检测系统的设计[J]传感器世界,2017,23(8):18-23

[3] 俞露芦,陶大锦基于单片机的酒精浓度检测仪的设计[J]微型机与应用,2014,33(22):34-36

[4] 葛毓基于GPRS/GPS的车载酒精检测和控制电路的设计[D]南昌:南昌大学,2010

[5] Zhang Zhe,Tong Jin,Chen Donghui,et al Electronic nose with an air sensor matrix for detecting beef freshness[J]Journal of Bionic Engineering,2008,5(1):67-73

[6] FIGARO GroupGeneral Information for TGS sensors[EB/OL](2008-04-23)[2019-07-03]http://wwwfigarosensorcom/products/common(1104)pdf

[7] 程可嘉,王振松,刘晓云ISD2560在门禁系统语音播报中的应用[J]自动化技术与应用,2009,28(5):75-77

[8] 胡珍玉智能语音提示器系统设计[J]应用能源技术,2012,15(12):34-38

[9] 张秀再,陈彭鑫,张光宇,等河流水质实时监测系统[J]电子技术应用,2015,41(2):82-85

[10] 梁晓雷基于单片机的分段线性插值算法实现[J]电脑知识与技术,2012,8(21):5236-5243

[11] 韩潇,曾立,占丰,等基于分段多项式近似的DDFS研究及FPGA实现[J]电子技术应用,2018,44(3):22-30

[12] 佚名各种主流无线通信技术[EB/OL](2018-05-11)[2019-07-03]http://techrfidworldcomcn/2018_05/d78-ffddd177e3bcahtml

胡仕兵,陈子为

(成都信息工程大学 电子工程学院,四川 成都610225)

您好,我需要nrf905与stc12c5608ad单片机构成的无线收发应用电路原理图及程序,求助 谢谢

超外差式接收:将接收信号与本机振荡电路的振荡频率,经混频后得到一个中频信号,这称为外差式接收。得到的中频信号后再经中频放大器放大的,称为超外差式。中频信号经检波后得到音频信号。再生式接收:早期的电子管很昂贵。为了使用较少的电子管得到较高的射频信号放大量,人们发明了再生式收信机,把射频放大器输出信号的一部分有控制地正反馈到输入端。把正反馈量调整到将要自激振荡、但还没有起振的临界点。借助于适当的正反馈,信号在放大器件中反复得到放大,使简单的接收机也可以获得较高的灵敏度。当接收频率、电源电压、天线位置等条件发生变化都会影响再生式接收机的临界振荡点,因此需要经常调整反馈量以保持最佳工作点。接收机除了调谐、音量旋钮外还必须设一个再生调整旋钮,使用起来需要反复调节,很不方便。一旦反馈工作点调得不适合,产生的自激振荡还会从天辐射出去,造成干扰。为了解决再生式接收机需要不断调整的麻烦,人们又发明了超再生式接收机,就是在再生式接收机的基础上增加一个淬熄电路,一方面使正反馈量加大到足以自激振荡的程度,另一方面给器件加上一个超音频的偏置,使放大器的工作点不断在自激振荡和截止关断之间切换,这样电路由于较强的正反馈而具有很强的放大作用,但又没有完全进入自激振荡状态,其平均工作点受到输入射频信号的控制。只要工作点的变化速度在超音频范围,不会影响人耳对音频信号的分辨。这种超再生接收机只要一级射频电路就可以得到很高的灵敏度,不但可以接收调幅信号,也可以接收调频信号。

诺基亚E66手机有WIFI功能吗

/

说明:看到网上好所人问51单片机+nRF905射频通信问题,所以将自己之前初学时写得测试代码贴出来,供初学者参考。

双工的,既能收也能发。可以通过按钮控制另一块板上的小灯亮灭(按住亮,松开灭), 也可将串口收到的数据通过无线方式发送出去,(发送1、2时也可控制LED灯亮),也可将收到的无线信号通过串口输出,

日期:2012年4月23日

硬件:单片机型号:STC89C52RC,晶振110592M,射频芯片通过10根导线与单片机IO口连接

射频芯片nRf905,模块自带天线长度约10cm,发射频率433M,频道1

其他外设:2个按键,2个led灯,一个串口

功能:用于测试nRF905,可通过串口发送接收,波特率9600,也可通过按键发送,led显示

核心函数:Init905() RxPacket() TxPacket()

//

//#include <reg9e5h>

//#include "ISD51h"

#include<reg52h>

#include <intrinsh>

#include<stdlibh>

#include<stringh>

#define INT8U unsigned char

#define INT16U unsigned int

#define TIMER1 0XFD //256-(110592/(123296))

//

//寄存器宏定义

//

#define WRC 0x00 //W_RF_CONFIG

#define RRC 0x10 //R_RF_CONFIG

#define WTP 0x20 //W_TX_PAYLOAD

#define RTP 0x21 //R_TX_PAYLOAD

#define WTA 0x22 //W_TX_ADDRESS

#define RTA 0x23 //R_TX_ADDRESS

#define RRP 0x24 //R_RX_PAYLOAD

#define RAD 0x40 //R_ADC_DATA

#define WAC 0x44 //W_ADC_CONFIG

#define RAC 0x46 //R_ADC_CONFIG

#define WTU 0x50 //W_TEST_UNLOCK (use with data A5)

#define WTR 0x52 //W_TEST_REGISTER

#define RTR 0x53 //R_TEST_REGISTER

#define CC 0x80 //CHANNEL_CONFIG

#define SAV 0xC0 //START_ADC_CONV

#define HFREQ 1 // 0=433MHz, 1=868/915MHz 19/08/2004 set 915mhz

#define POWER 3 // 0=min power3 = max power

///////////////////////////////////////////////////////////////////////////////

#define RFLEN 32 //数据长度,最大32

INT8U data UartRecCnt=0; //串口接收计数

#define do_uart() if(UartRecCnt<RFLEN-1){TxBuf[UartRecCnt++]=SBUF; } //串口中断处理宏

INT8U RxBuf[RFLEN]={0}; //接收数据缓冲区

INT8U TxBuf[RFLEN]={0}; //发送数据缓冲区

//定义与9e5不一样

//I/O口定义

//

sbit LED1 =P1^0;

sbit LED2 =P1^1;

sbit LED3= P1^2;

sbit LED4= P1^3;

sbit KEY1 =P1^6;

sbit KEY2 =P1^7;

/////////定义与9e5不一样//////////////////////////////////////////////////////

sbit TX_EN = P0^0;

sbit TRX_CE = P0^1;

sbit POW_UP = P0^2;

sbit CD = P0^3;

sbit AM = P0^4;

sbit DR = P0^5;

sbit MISO = P0^6;

sbit MOSI = P0^7;

sbit SCK = P2^0;

sbit CE_905 = P2^1;

//

//配置寄存器

//

code INT8U Nrf905Config[10] = {

0x28, //频道设置

// 0x0e, //自动重发关,发送节电模式关,输出功率10dB,915MHZ

0x0c, //自动重发关,发送节电模式关,输出功率10dB,433MHZ

0x44, //收发地址都为4字节

RFLEN,// 0x04, //接收数据长度,4字节

RFLEN,// 0x04, //发送数据长度,4字节

0xe7, //4字节地址

0xe7,

0xe7,

0xe7,

// 0xdf //CRC开,16位校验,16M晶振,外部时钟使能500KHZ输出

0x58 //CRC开,8位校验,16M晶振,禁止外部时钟

};

///////////////////////////////////////////////////////////////////////////////

//

//函数名:void Delay(INT8U n)

//输入:时间

//输出:无

//功能描述:廷时100us

//

void Delay(INT8U n)

{

INT8U i;

while(n--)

for(i=0;i<40;i++); //for(i=0;i<35;i++);

}

// 该函数与nRF9e5不同

//函数名:INT8U SpiReadWrite(INT8U b)

//输入:发送的数据

//输出:收到的数据

//功能描述:SPI发送接收一个字节

//

INT8U SpiReadWrite(INT8U dat)

{

INT8U i,temp;

temp = 0;

SCK = 0;

for(i=0; i<8; i++)

{

if(dat & 0x80)

{

MOSI = 1;

}

else MOSI = 0;

dat <<= 1;

SCK = 1;

_nop_();

_nop_();

temp <<= 1;

if(MISO)temp++;

SCK = 0;

_nop_();

_nop_();

}

return temp;

}

// 该函数与nRF9e5不同

//函数名:void InitCpu(void)

//输入:无

//输出:无

//功能描述:Cpu初始化

//

void InitCpu(void)

{

LED2=0;

LED1=0;

Delay(10);

}

// 该函数与nRF9e5不同

//函数名:InitUart(void)

//输入:无

//输出:无

//功能描述:串口初始化

//

void InitUart(void)

{

SCON = 0x50; //串口方式1,允许接收

TMOD = 0x21; //定时器1工作方式2,定时器0工作方式1

TH1 = TIMER1;

TL1 = TIMER1;

TR1 = 1; //启动定时器1

ES = 1;

EA = 1;

}

//

//函数名:void SendCh(INT8U c)

//输入:发送的数据

//输出:无

//功能描述:发送一个字节

//

void SendCh(INT8U c)

{

// EA = 0;

// TI = 0;

SBUF = c;

while(!TI);//等待发送完成

TI = 0;

// EA = 1;

}

//

//发送字符串到串口

void SendStr(INT8U p)

{

while(p!='0')

{ SBUF=p; //待发送的数据写入缓冲区

while(!TI); //等待发送完成

TI=0; //清零发送标志位

p++; //指针加1

}

}

/

//函数名:void Init905(void)

//输入:无

//输出:无

//功能描述:Nrf905初始化,这里我们配置成32位地址。

///

void Init905(void)

{

INT8U i;

POW_UP = 1; //905上电

//Delay(200);

SCK = 0; // Spi clock line init high

TRX_CE=0;

TX_EN=0; //配置模式

CE_905 = 0;

SpiReadWrite(WRC);

for(i=0; i<10; i++)

{

SpiReadWrite(Nrf905Config[i]); //写入配置寄存器

}

CE_905 = 1;

}

//

//函数名:TransmitPacket(INT8U pBuf)

//输入:发送的数据

//输出:无

//功能描述:发送发送缓冲区的数据

//

void TransmitPacket(INT8U pBuf)

{

INT8U i;

CE_905 = 0;

SpiReadWrite(WTP);

for(i=0; i<Nrf905Config[4]; i++)

{

SpiReadWrite(pBuf[i]);//写入发送数据缓冲区

}

CE_905 = 1;

TX_EN = 1;

TRX_CE = 1; //使能发送

Delay(1);

TRX_CE = 0;

}

//

//函数名:INT8U Recepacket(INT8U pBuf)

//输入:接收数据缓冲区

//输出:成功返回1,否则返回0

//功能描述:接收数据存在缓冲区内

//

INT8U Recepacket(INT8U pBuf)

{

INT8U i;

TX_EN = 0;TRX_CE = 1; //进入接收模式

if(!DR)return 0; //查询DR的状态

//原始代码采用的是等待超时的方法

/ ResetTimer(1);//复位超时计数器。

while(DR == 0)//有收到切换到空闲状态时退出接收状态。

{

if(ReadTimer(1) > 300)//300MS超时退出。

{

TRX_CE = 0;

return 0;

}

}/

TRX_CE = 0; // Set nRF905 in standby mode

CE_905 = 0; // Spi enable for write a spi command

SpiReadWrite(RRP);// Read payload command

for(i=0; i<Nrf905Config[3]; i++)//读出数据。

{

pBuf[i] = SpiReadWrite(0);

}

while(DR);//直到DR为高。

/ {

SpiReadWrite(0);

}/

CE_905 = 1;

return 1;

}

/串口接收中断函数/

void int_rec(void) interrupt 4 using 2

{

if(RI) //查询接收标志位(有数据发送过来时置为1)

{

RI = 0; //接收标志位清零

//SendCh(SBUF);//让从电脑上传到单片机的数据,传回的电脑显示

do_uart();//对接受到得字符操作

}

}

//

//功能:把串口接收的数据通过无线发射出去

//采取延时读取串口接收计数的方法,判读串口发送数据是否完毕,提高发送效率

void UartToRf(void )

{

INT8U Tmp=0; //临时变量,暂存UartRecCnt

do

{

Tmp=UartRecCnt;

Delay(5); //延时,等待

}

while(Tmp!=UartRecCnt); //判段来自串口的字符串是否发送完毕

TransmitPacket(TxBuf); //通过射频发送

memset(TxBuf,0,UartRecCnt); //清空缓冲区

UartRecCnt=0; // 串口接受计数清零

}

//载波监听发送,重试3次,仍失败不发送

unsigned char CDSend(void)

{

unsigned char i=0;

do

{

if(!CD) //载波监听

{

TransmitPacket(TxBuf);//发送数据

return 0; //发送成功,返回0

}

SendCh(0x30+i);

Delay(rand()&0x0f);//随机延时

LED3=~LED3;

}while(++i<3); //最多3次

SendStr("fail");

return 1; //发送失败,返回1

}

/主程序/

main()

{

Init905(); //初始化Nrf905

InitCpu(); //初始化CPU

// InitTimer();

InitUart(); //初始化串口。

LED2 = 1;

LED1 = 1; //两个LED灭。

//SendCh('R');

while(1)

{

LED2=1; LED1=1;

if(KEY1 == 0) //按键1按下

{

TxBuf[0] = 0x31;

//TransmitPacket(TxBuf);//发送数据

CDSend();

}

if(KEY2 == 0) //按键2按下

{

TxBuf[0] = 0x32;

//TransmitPacket(TxBuf);//发送数据

CDSend();

}

if(Recepacket(RxBuf)) //接收到数据。

{

if(RxBuf[0] == 0x31)

{

LED1 = 0;

Delay(5);

}

else if(RxBuf[0] == 0x32)

{

LED2 = 0;

Delay(5);

}

SendStr(RxBuf); //将从无线收到的数据发到串口

}

if(UartRecCnt) //串口收到数据时相应处理

{

/Delay(2RFLEN); //延时,等待字符串发送完毕时间过短的话会出现串口数据未发完,缓冲区已情况的情况

TransmitPacket(TxBuf); //通过射频发送

memset(TxBuf,0,UartRecCnt); //清空缓冲区

UartRecCnt=0; // 串口接受计数清零

/

UartToRf(); //新编发送函数

}

}

}

//end

诺基亚E66手机没有WIFI模块,没有WIfi功能,不能通过Wifi连接上网。

1无线发射接收模块--简介

无线发射接收模块是从事数字音频无线传输、数字视频无线传输、无线数据通信、无线传输系统、无线遥控和遥测系统、无线数据采集系统、无线网络、无线安全防范系统等应用中,无线收发电路的设计一直是无线应用的一个瓶颈。无线收发模块整合了高频键控收发电路的功能,以特小体积更低成本实现高速数据传输的功能。

2无线发射接收模块--发射模块

无线发射模块:如下图所示,该200米四通道遥控模块没有配电池和四个发射按键,天线也变成软导线,进一步缩小体积,便于和单片机或者其它设备组成一个无线报警或者遥控系统,比如和门磁开关组合可以变成无线门磁,和人体热释电模块组合可以变成无线人体传感器,和单片机组合可以借助单片机强大灵活的控制功能发出不同地址码和控制码的发射前端,组成一个一点对多点遥控系统。

天线用软导线或其它硬质金属,长度为23公分,长度既不能过长也不能过短,否则会影响接收距离。若使用软导线,请拉直使用,并尽量不要靠近金属物体。该模块的工作温度为-10℃~+50℃,特点是大功率、小体积、中距离、无须外接编码器。

3无线发射接收模块--接收模块

无线接收模块:如下图所示,超再生接收模块有七个引出端,分别为10、11、12、13、GND、VT、VCC,其中VCC为5V供电端,GND为接地端,VT端为解码有效输出端,10、11、12、13是解码芯片PT2272集成电路的10~13脚,为四位数据锁存输出端,有信号时能输出5V左右的高电平,驱动电流约2mA,与发射器上的四为个按键一一相对应。该模块的工作温度为-10℃~+50℃,特点是低电压、小体积、高性价比。

 
友情链接
鄂ICP备19019357号-22