发布时间 : 星期日 文章知识更新完毕开始阅读fb1082c5bb4cf7ec4afed021
基于无线传感器网路的温度采集显示系统设计
附2:温度采集模块硬件电路图 12
基于无线传感器网路的温度采集显示系统设计
VCCVCCTXENTRX-CEPWRuCLKCDAMDRMISOMOSISCKCSNGNDGNDPTR8000C11234567891011121314VCC/RDVCCP2.0P1.2P2.1P1.3P2.2P1.4P1.5P2.3P2.4P2.5P1.2P1.3P1.4P1.5910111213141516P3.0P3.1P3.2P3.3P3.4P3.5P3.6P3.7AT89C52PTR800012345678V1P1.0(T2)P1.1(T2EX)P1.2P1.3P1.4P1.5P1.6P1.7(RXD)(TXD)(/INT0)(/INT1)(T0)(T1)(/WR)(/RD)P0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7P2.0P2.1P2.2P2.3P2.4P2.5P2.6P2.7403938373635343332P2.031P2.130P2.229P2.328P2.427P2.52625S1RESETRSTR110K10uF17RESET181920XTAL011.0592M/EA/VPPRESETALE(/PROG)/PSENVSSVCCXTAL0XTAL12423VCC22XTAL021XTAL1C2AT89C52DS18B2022pC3XTAL122pVCC123/RD4V2NCNCVDDDQNC8NC7NC5GND4DS18B20
附录2 系统程序
1:发送部分程序
#include
#define uint unsigned int #define uchar unsigned char //配置口定义// sbit TXEN= P2.0; sbit TRX_CE = P2.1; sbit PWR= P2.2;
13
基于无线传感器网路的温度采集显示系统设计
//SPI口定义// sbit MISO=P1.0; sbit MOSI=P1.1; sbit SCK= P1.2; sbit CSN= P1^0; //状态输出口// sbit AM =P2.4; sbit DR= P2.5; uchar da=0;
/*/RF寄存器配置//
unsigned char idata RFConf[11]= {
0x00, //配置命令//
0x6C, //CH_NO,配置频段在433.2MHZ
0x0E, //输出功率为10db,不重发,节电为正常模式 0x44, //地址宽度设置,为4字节
0x03,0x03, //接收发送有效数据长度为3字节 0xE7,0xE7,0xE7,0xE7, //接收地址
0xC0, //CRC充许,16位CRC校验16M晶振 };
uchar TxRxBuffer[5]; /延时/
void Delay(uint x) {
uint i;
for(i=0;i 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); 14 基于无线传感器网路的温度采集显示系统设计 SCK=0; } SCK=0; } /from 905 read data/ unsigned char SpiRead(void) { register unsigned char i=8; unsigned char ddata=0; while (i--) { ddata<<=1 ; SCK=0; Delay(20); ddata|=MISO; SCK=1 ; Delay(20); } SCK=0; return ddata; } /接收数据包/ void RxPacket(void) { uchar i; i=0; while(DR) { TxRxBuffer[i] = SpiRead(); i++; } } ;写发射数据命令:20H ;读发射数据命令:21H ;写发射地址命令:22H ;读发射地址命令:23H ;读接收数据命令:24H void TxPacket(uchar da) { PWR=1; TXEN=1; CSN=0; SpiWrite(0x22); //写发送地址,后面跟4字节地址// SpiWrite(0xE7); SpiWrite(0xE7); 15