知识 联系客服

发布时间 : 星期日 文章知识更新完毕开始阅读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 #include #include #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