资源简介
nrf24L01无线模块+温度测量,毕业设计来的,基于51单片机
代码片段和文件信息
/////////////////////////////////////////////////////////
//////////////////////庞允建////////2016年4月////////////
/////////////////////////////////////////////////////////
#include “.\\nRF24L01\\nRF24L01.h“
#include “def.h“
#define uchar unsigned char
#define uint unsigned int
typedef unsigned char unint8;
typedef unsigned char unint16;
unint8 TH_dataTL_dataRH_dataRL_dataCK_data;
unint8 TH_tempTL_tempRH_tempRL_tempCK_temp;
unint8 com_datauntemptemp;
unint8 respond;
unsigned char tempL=0; //临时变量低位(无符号字符变量)
unsigned char tempH=0; //临时变量高位
unsigned int tempa; //温度值(整型变量)
unsigned int temp1; //
uchar TH=60; //设置初始高温度
uchar TL=8; //设置初始低温度
uchar num;
uchar flag=0;//符号位标志,0为正温度,1为负温度
void Delay(unsigned int s)
{
unsigned int i;
for(i=0; i for(i=0; i}
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///DS18B20
void DS18_delay(int useconds)//延时函数
{
int s;
for (s=0; s }
unsigned char Init_DS18B20(void)
{
unsigned char x=0;
DQ=0; //发送复位脉冲
DS18_delay(29); //延时(>480ms)
DQ=1; //拉高数据线
DS18_delay(3); //等待(15~60ms) 等待存在脉冲
x=DQ; //获得存在信号(用于判断是否有器件)
DS18_delay(25); // 等待时间隙结束
return(x); //返回存在信号,0 = 器件存在 1 = 无器件
}
ReadOneChar(void)//读一个字节
{
unsigned char i=0;
unsigned char dat=0;
for (i=8;i>0;i--)
{
DQ=1;
DS18_delay(1);
DQ=0;
dat>>=1;//复合赋值运算,等效dat=dat>>1(dat=dat右移一位后的值)
DQ=1;
if(DQ)
dat|=0x80;
DS18_delay(4);
}
return(dat);
}
WriteOneChar(unsigned char dat)//有参函数,功能是“写“,而写的内容就是括号内的参数
{
unsigned char i=0;
for(i=8;i>0;i--)
{
DQ=0;
DQ=dat&0x01;
DS18_delay(5);
DQ=1;
dat>>=1;//复合赋值运算,等效dat=dat>>1(dat=dat右移一位后的值)
}
DS18_delay(4);
}
unsigned int ReadTemperature(void)//返回读取的温度.
{
unsigned int tt;
Init_DS18B20(); //初始化,调用初始化函数
WriteOneChar(0xcc); //跳过读序列号的操作,调用写函数,写0xcc指令码(跳过读序列号)
WriteOneChar(0x44); //启动温度转换,调用写函数,写0x44指令码(启动温度转换)
DS18_delay(125); //转换需要一点时间,延时
Init_DS18B20(); //初始化,调用初始化函数
WriteOneChar(0xcc); //跳过读序列号的操作,调用写函数,写0xcc指令码(跳过读序列号?
WriteOneChar(0xbe); //调用写函数,写0xbe指令码,读温度寄存器(头两个值分别为温度的低位和高位)
tempL=ReadOneChar(); //读出温度的低位LSB
tempH=ReadOneChar(); //读出温度的高位MSB
if(tempH>=0x0f)
{
flag=1;tt=tempH;tt=tt<<8;tt=tt+tempL;tt=~tt;tt=tt+1;tempa=tt*6.25;
}
else
{tempa=((tempH*256)+tempL)*6.25; flag=0;} //温度转换扩大100返回
return(tempa);//运算结果返回到函数
}
///DS18B20
void main(void)
{
unsigned char leng =0;
unsigned char tf =0;
unsigned char TxBuf[20]={0}; //
unsigned char RxBuf[20]={0};
led=0;
init_io() ;
for(num=0;num<80;num++) //防止上电显示初始值85
{
temp=ReadTemperature();
DS18_delay(65535);
DS18_delay(65535);
DS18_delay(65535);
}
while(1)
{
inerDelay_
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 13917 2015-11-09 19:28 nrf24L01\测温发射部分\发射程序\Bin\main.obj
文件 13435 2015-11-09 19:28 nrf24L01\测温发射部分\发射程序\Bin\nRF24L01.obj
文件 25681 2015-11-09 19:28 nrf24L01\测温发射部分\发射程序\Bin\nRF24L01Demo
文件 5878 2015-11-09 19:28 nrf24L01\测温发射部分\发射程序\Bin\nRF24L01Demo.hex
文件 117 2015-11-09 19:28 nrf24L01\测温发射部分\发射程序\Bin\nRF24L01Demo.lnp
文件 211 2016-12-02 16:49 nrf24L01\测温发射部分\发射程序\Bin\nRF24L01Demo.plg
文件 781 2015-11-09 19:28 nrf24L01\测温发射部分\发射程序\Bin\STARTUP.obj
文件 294 2015-11-09 19:28 nrf24L01\测温发射部分\发射程序\def.h
文件 4169 2016-12-02 16:50 nrf24L01\测温发射部分\发射程序\main.c
文件 7726 2015-11-09 19:28 nrf24L01\测温发射部分\发射程序\main.LST
文件 6254 2015-09-15 07:58 nrf24L01\测温发射部分\发射程序\nRF24L01\nRF24L01.c
文件 3925 2008-03-04 19:46 nrf24L01\测温发射部分\发射程序\nRF24L01\nRF24L01.h
文件 11120 2015-11-09 19:28 nrf24L01\测温发射部分\发射程序\nRF24L01.lst
文件 23982 2015-11-09 19:28 nrf24L01\测温发射部分\发射程序\nRF24L01Demo.m51
文件 1635 2008-03-29 21:58 nrf24L01\测温发射部分\发射程序\nRF24L01Demo.opt.bak
文件 461 2008-03-03 10:28 nrf24L01\测温发射部分\发射程序\nRF24L01Demo.plg
文件 2354 2008-03-03 13:33 nrf24L01\测温发射部分\发射程序\nRF24L01Demo.Uv2.bak
....... 59662 2016-12-02 16:50 nrf24L01\测温发射部分\发射程序\nRF24L01Demo.uvopt
文件 13950 2015-09-10 21:51 nrf24L01\测温发射部分\发射程序\nRF24L01Demo.uvproj
文件 1638 2008-03-29 21:56 nrf24L01\测温发射部分\发射程序\nRF24L01Demo_Opt.Bak
文件 2350 2008-03-01 21:11 nrf24L01\测温发射部分\发射程序\nRF24L01Demo_Uv2.Bak
....... 59680 2015-11-09 19:56 nrf24L01\测温发射部分\发射程序\nRF24L01Demo_uvopt.bak
文件 6376 2005-03-22 15:22 nrf24L01\测温发射部分\发射程序\STARTUP.A51
文件 14080 2015-11-09 19:28 nrf24L01\测温发射部分\发射程序\STARTUP.LST
文件 27313 2016-03-24 13:31 nrf24L01\测温接收部分\AT89C51接收程序\Bin\main.obj
文件 13432 2016-03-24 13:31 nrf24L01\测温接收部分\AT89C51接收程序\Bin\nRF24L01.obj
文件 36310 2016-03-24 13:32 nrf24L01\测温接收部分\AT89C51接收程序\Bin\nRF24L01Demo
文件 8294 2016-03-24 13:32 nrf24L01\测温接收部分\AT89C51接收程序\Bin\nRF24L01Demo.hex
文件 117 2016-03-24 13:31 nrf24L01\测温接收部分\AT89C51接收程序\Bin\nRF24L01Demo.lnp
文件 218 2016-12-02 16:51 nrf24L01\测温接收部分\AT89C51接收程序\Bin\nRF24L01Demo.plg
............此处省略57个文件信息
- 上一篇:STM32F103VET6原理图和pcb
- 下一篇:莫尔条纹动画制作案例详解
评论
共有 条评论