• 大小: 184KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-05-12
  • 语言: 其他
  • 标签: nrf24L01  

资源简介

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个文件信息

评论

共有 条评论