DS18B20无线测温 所做的工作主要包括:
1.利用DS18B20 温度传感器采集温度;
2.制作一个基于STC89C52
单片机的温度采集系统,并将采集信息数据通过NRF24L01无线传输模块传送给计算机,利用计算机对其进行实时显示、存储,以便进行数据分析。
#include
#include
typedef unsigned char uchar;
typedef unsigned char uint;
//****************************************NRF24L01端口定义***************************************
sbit MISO =P1^4;
sbit MOSI =P1^3;
sbit SCK =P1^3;
sbit CE =P1^0;
sbit CSN =P1^1;
sbit IRQ =P1^5;
sbit LCD_RS =P2^5;
sbit LCD_RW =P2^6;
sbit LCD_E =P2^7;
sbit DQ =P3^0;
//************************************按键***************************************************
sbit KEY1=P3^1;
sbit KEY2=P3^3;
sbit KEY3=P3^5;
//************************************数码管位选*********************************************
sbit led1=P3^2;
sbit led2=P3^4;
sbit led3=P3^6;
//*********************************************NRF24L01*************************************
#define TX_ADR_WIDTH 5 // 5 uints TX address width
#define RX_ADR_WIDTH 5 // 5 uints RX address width
#define TX_PLOAD_WIDTH 20 // 20 uints TX payload
#define RX_PLOAD_WIDTH 20 // 20 uints TX payload
#define LCD_DATA P0
uint const TX_ADDRESS[TX_ADR_WIDTH]= {0x34,0x43,0x10,0x10,0x01}; //本地地址
uint const RX_ADDRESS[RX_ADR_WIDTH]= {0x34,0x43,0x10,0x10,0x01}; //接收地址
//***************************************NRF24L01寄存器指令*******************************************************
#define READ_REG 0x00 // 读寄存器指令
#define WRITE_REG 0x20 // 写寄存器指令
#define RD_RX_PLOAD 0x61 // 读取接收数据指令
#define WR_TX_PLOAD 0xA0 // 写待发数据指令
#define FLUSH_TX 0xE1 // 冲洗发送 FIFO指令
#define FLUSH_RX 0xE2 // 冲洗接收 FIFO指令
#define REUSE_TX_PL 0xE3 // 定义重复装载数据指令