首页 远程温度检测交

远程温度检测交

举报
开通vip

远程温度检测交毕业论文远程温度检测基于nRF24L01模块的无线通信系统设计摘要温度是一个非常重要的参数。在工业、医疗、军事和生活等许多地方,都需要用到测温装置来检测温度。传统直接布线测量不满足要求,特别是在某些环境恶劣的工业环境和户外环境,通过直接布线测量不现实。因此采用无线传输温度检测尤为必要。目前有些设计能够实现无线温度采集,但价格过高是其最大的缺点。在实际温度控制过程中既要求系统具有稳定性、实时性又需要降低功耗。因此设计一种低功耗的无线温度检测系统很有意义。本文提出一种采用单片机AT89S52控制DS18B20实现的无线...

远程温度检测交
毕业论文远程温度检测基于nRF24L01模块的无线通信系统设计摘要温度是一个非常重要的参数。在工业、医疗、军事和生活等许多地方,都需要用到测温装置来检测温度。传统直接布线测量不满足要求,特别是在某些环境恶劣的工业环境和户外环境,通过直接布线测量不现实。因此采用无线传输温度检测尤为必要。目前有些设计能够实现无线温度采集,但价格过高是其最大的缺点。在实际温度控制过程中既要求系统具有稳定性、实时性又需要降低功耗。因此设计一种低功耗的无线温度检测系统很有意义。本文提出一种采用单片机AT89S52控制DS18B20实现的无线温度测量系统。通过简单的无线通信协议,实现可靠性与功耗平衡,该系统能实现对温度的检测,能够同时进行温度检测,是可以实现远程控制的无线温度检测系统。低功耗、实时性的无线温度检测是该设计的最大特点。无线传输采用nRF24L01模块传输。该系统结构简单,可靠,功耗较低,成本低,是一种无线传感器的解决 方案 气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载 。关键字:单片机在工业现场,由于生产环境恶劣,工作人员不能长时间停留在现场观察设备是否运行正常,就需要采集数据并传输数据到一个环境相对好的操控室内,这样就会产生数据传输问 快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题 。由于厂房大、需要传输数据多,使用传统的有线数据传输方式就需要铺设很多很长的通讯线,浪费资源,占用空间,可操作性差,出现错误换线困难。而且,当数据采集点处于运动状态、所处的环境不允许或无法铺设电缆时,数据甚至无法传输,此时便需要利用无线传输的方式进行数据采集。在农业生产上,不论是温室大棚的温度监测,还是粮仓的管理,传统上都是采取分区取样的人工方法,工作量大,可靠性差。而且大棚和粮仓占地面积大,检测目标分散,测点较多,传统的方法已经不能满足当前农业发展的需要。当前的科技水平下,无-1-基于nRF24L01模块的无线通信系统设计线通信技术的发展使得温度采集测量精确,简便易行。在日常生活中,随着人们生活水平的提高,居住条件也逐渐变得智能化。如今很多家庭都会安装室内温度采集控制系统,其原理就是利用无线通信技术采集室内温度数据,并根据室内温度情况进行遥控通风等操作,自动调节室内温度湿度,可以更好地改善人们的居住环境。以上只是简单列举几个现实的例子,在现实生活中,这种无线温度采集系统已经被成功应用于工农业、环境监测、军事国防、机器人控制等许多重要领域,而且类似于这种温度采集系统的无线通信网络已经被广泛的应用到民用和军事领域。凡是布线繁杂或不允许布线的场合都希望能通过无线方案来解决。为此,需要设计相应的接口系统,控制这些射频芯片工作,完成可靠稳定的无线数据通信,这样的研究也变得更加有意义了。本系统的设计采用了Nordic公司新推出的工作于2.4GHz频段NRF24L01射频芯片,由AT89S52单片机控制实现短距离无线数据通信。该接口设计具有成本低、传输速率高、软件设计简单以及通信稳定可靠等特点。整个系统有发送和接收二部分,通过NRF24L01无线数据通信收发模块来实现无线数据传输。发送部分以单片机AT89S52为核心,使用温度转换芯片DS18B20实时采集温度并通过nRF24l01将采集的温度无线传送给接收部分,然后在LCD1602上显示,并通过串口发送到PC机上显示,通过蜂鸣器实现对温度过高或过低进行报警。-2-基于nRF24L01模块的无线通信系统设计1系统方案 分析 定性数据统计分析pdf销售业绩分析模板建筑结构震害分析销售进度分析表京东商城竞争战略分析 与选择论证1.1系统方案设计方案:采用传统的AT89S52单片机作为主控芯片。此芯片价格便宜、操作简便,低功耗,比较经济实惠。采用NRF24L01无线射频模块进行通信,NRF24L01是一款高速低功耗的无线通信模块。他能传输上千米的距离(加PA),而且价格较便宜、,采用SPI总线通信模式电路简单,操作方便。1.1.3温度传感方案方案:采用美国DALLAS公司生产的DS18B20可组网数字温度传感器芯片,具有耐磨耐碰,体积小,使用方便,封装形式多样,适用于各种狭小空间设备数字测温和控制领域。经济,方便。使用DS18B20线路简单,编程容易,但是比AD590精度低。AD590还需要其它辅助电路,线路复杂,编程难度大,但是温度精确。考虑到电路的设计,成本,还有多点通信,我们选择方案二,即用DS18B20作为本系统的温度传感器。1.1.4显示模块方案方案:采用字符液晶LCD1602显示信息,1602是一款比较通用的字符液晶模块,能显示字符和数字等信息,且价格便宜,容易控制。1.2系统最终方案发送端:-3-基于nRF24L01模块的无线通信系统设计发送端由温度传感器DS18B20,AT89S52单片机,nRF24L01无线射频模块,数码管显示模块和外设继电器组成。4位LED数码显温度传感DS18B20示管器AT89S52继电器nRF24L01无线模块图1.2发送端系统方框图接收端:接收端由AT89S52单片机,nRF24L01无线射频模块,LCD1602显示模块,报警电路和串口组成。LCD1602液晶显无线模块nRF24L01示AT89S5P报警电路图1.3接收端系统方框图-4-基于nRF24L01模块的无线通信系统设计2主要芯片介绍和系统模块硬件设计2.1AT89S52AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。使用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得AT89S52在众多嵌入式控制应用系统中得到广泛应用。2.1.1单片机控制模块单片机控制模块由AT89S52最小系统组成,其中包括单片机,晶振电路和复位电路。(1)、晶振电路晶振电路由两个30pF电容和一个12MHz晶体振荡器构成,接入单片机的X1、X2引脚。(2)、复位电路单片复位端低电平有效。单片机最小系统如图2.2:图2.2单片机最小系统-5-基于nRF24L01模块的无线通信系统设计2.2单片2.4GHznRF24L01无线模块2.2.1nRF24L01芯片概述nRF24L01是一款新型单片射频收发器件,工作于2.4GHz~2.5GHzISM频段。内置频率合成器、功率放大器、晶体振荡器、调制器等功能模块,并融合了增强型ShockBurst技术,其中输出功率和通信频道可通过程序进行配置。nRF24L01功耗低,在以-6dBm的功率发射时,工作电流也只有9mA;接收时,工作电流只有12.3mA,多种低功率工作模式(掉电模式和空闲模式)使节能设计更方便。2.2.3工作模式通过配置寄存器可将nRF241L01配置为发射、接收、空闲及掉电四种工作模式,如 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf 所示。待机模式1主要用于降低电流损耗,在该模式下晶体振荡器仍然是工作的;C1U1D01P1039X1P00P10/TD1238P11P01P11/TD23P123730pFP02P12D3P13436P03P1312MHzD4535P14P04P14X1D5P15C234P0P1XDP13P0P1DP13P0P130p1INT2P2P2INT1INTP22P2INTP22P21CT2P2VCP2T12P2RESETP2TP22P2310u2P2P2EA/VP22P21XX1XXR101RXRESERXRESETX1TX13ALRALE/R1WPSE2PSEW80C52CE=1FIFO2待机模式则是在当寄存器为空且时进入此模式;-6-基于nRF24L01模块的无线通信系统设计待机模式下,所有配置字仍然保留。在掉电模式下电流损耗最小,同时nRF24L01也不工作,但其所有配置寄存器的值仍然保留。nRF24L01单端匹配网络:晶振,偏置电阻,去耦电容。R2VDD22KC7C9C833nF98706U1111211nF10nFDFSDSE1CEDS15SCEDRL3VDDVC5VVI50omh,RFI/OV2CSN14CSNDVSS3.9nH3SCK13C61.5pFANT2SCKL14MOSI121.0pFMOSIANT18.2nHMISO11VDD_PA5MISODIRQ21QSD2.7nHL2CCSRVXVXIC4NRF24L01C36079814.7pF2.2nFX116MR11MC1C222pF22pF图2.6nRF24L01单端50Ω射频输出电路原理图2.3温度传感器DS18B20DALLAS最新单线数字温度传感器DS18B20简介新的一线器件体积更小、适用电压更宽、更经济Dallas半导体公司的数字化温度传感器DS1820是世界上第一片支持尠一线总线接口的温度传感器。一线总线独特而且经济的特点,使用户可轻松地组建传感器网络,为测量系统的构建引入全新概念。DS18B20、DS1822一线总线数字化温度传感器同DS1820一样,DS18B20也支持-7-基于nRF24L01模块的无线通信系统设计一线总线接口,测量温度范围为-55°C~+125°C,在-10~+85°C范围内,精度为±0.5°C。DS1822的精度较差为±2°C。现场温度直接以一线总线的数字方式传输,大大提高了系统的抗干扰性。2.3.1DS18B20管脚配置和内部结构内部结构:图2.8DS18B20内部结构图(1)光刻ROM中的64位序列号是出厂前被光刻好的,它可以看作是该DS18B20的地址序列码。64位光刻ROM的排列是:开始8位(28H)是产品类型标号,接着的48位是该DS18B20自身的序列号,最后8位是前面56位的循环冗余校验码(CRC=X8+X5+X4+1)。光刻ROM的作用是使每一个DS18B20都各不相同,这样就可以实现一根总线上挂接多个DS18B20的目的。(2)DS18B20中的温度传感器可完成对温度的测量,以12位转化为例:用16位符号扩展的二进制补码读数形式提供,以0.0625℃/LS形式表达,其为符号位bit7bit6bit5bit4bit3bit2bit1bit0LSByte32221202-12-22-32-42bit15bit14bit13bit12bit11bit10bit9bit8-8-基于nRF24L01模块的无线通信系统设计4652SMSByteSSSS222.9DS18B20温度值格式表图818B20的两个位转化后得到的12位数据,存储在12这是位是符号位,如果测得的温度中,二进制中的前面5比特的RAM即可得到实0.0625位为50,只要将测到的数值乘于大于0,这1,测到的数值需要取反加5位为1际温度;如果温度小于0,这即可得到实际温度。再乘于0.0625℃的数字输出为+25.062507D0H,例如+125℃的数字输出为为输出℃的数字输的数字出为FF6FH,-55℃0191H,-25.0625FC90H。的硬件设计2.3.2DS18B20连接。如图:DS18B20在本系统中与发送端单片机的P3.3CVC2U3CVCP332O/I1GND20S18BDDS18B20的硬件连接图图2.10显示模块2.4液晶模块。、接收端显示模块用LCD16021本系统显示模块分两种:2、发送端使用数码管显示。-9-基于nRF24L01模块的无线通信系统设计2.4.1接收端显示模块本设计在接收端部分采用LCD1602液晶显示模块来显示温度,,P0由上拉电阻提高驱动能力,作为数据输出并作为LCD的驱动,P2口的P2.7-P2.6分别作为液晶显示模块的使能信号E,数据/命令选择RS,R/W端则配置成写。具体电路如图2.11所示。2.4.2发送端显示模块本设计在发送端部分采用数码管显示,P0由上拉电阻提高驱动能力,作为数据输出。P2.7-P2.4分别作为数码管位显示S1-S4。如图2.12所示:S1D0D5S2S3D1210981711U3123G7SEabfsssp4gdces643512S4D6D3D4D7D2图2.12发送端数码管显示连接2.5报警电路当外界温度超过预设温度上下限时,为更加有效的引起用户的注意,及时关注温度的变化,本系统设计了声报警电路。该电路由蜂鸣器和NPN三极管组成,具体电路如图2.13所示。-10-基于nRF24L01模块的无线通信系统设计VCCQ1P378550U13BR100BELL接收端报警电路图2.13电源电路设计2.75V电源,A、本系统单片机需要一组+电源,采用电源电路如图、本系统无线模块需要一+3.3VB电源经过低压差电压调节5V2.16所示。该电路把先前转换得到的+3.3V电源。转换为+器ams11172.8其他外围电路本系统需要在温度过高的情况下驱动继电器,打开通风系统。P3.7继电器连接发送端单片机口。-11-基于nRF24L01模块的无线通信系统设计3系统软件设计3.1.1发送端软件设计本系统发送端采用DS18B20温度传感器采集温度,经AT89S52收集处理数据,温度数据数码管显示,如果温度过高,则单片机控制继电器工作,再由nRF24L01模块发送到接收端。其中包括DS18B20和nRF24L01模块的初始化配置。软件流程图如3.1。开始配置nRF24L01发送模式复位DS18B20发送跳过ROM命令开始温度转换温度过高读取温度值继电器工作温度显示数据经nRF24L01发送YN发送成功?发送端程序流程图3.1图-12-基于nRF24L01模块的无线通信系统设计3.1.2接收端软件设计本系统接收端采用nRF24L01无线模块接收发送端传来的温度数据,经单片机AT89S52在LCD1602液晶显示器上显示。温度过高则报警电路工作。最后单片机把数据经串口传输给PC机。其中包括nRF24L01模块和LCD1602液晶显示器的初始化。流程图如3.2。开始配置nRF24L01模块为接受模式初始化LCD1602显示屏温度过高报警电路工接受温度数据作显示温度数据把数据传给PC机图3.2接受端程序流程图-13-基于nRF24L01模块的无线通信系统设计5硬件电路板设计电源模块:由VCC提供+5V高电平,Power接口接入,经过LM1117降压为+3.3V电平,为nRF24L01模块提供高电平。显示模块:P1口接无线模块的控制端口。P0.0—P0.7接数码管段选端D0-D7。无线模块控制模块:无线模块由P2口控制。温度采集模块:温度采集由DS18B20I/O端接入单片机P3.3口。单片机最小系统:X1,X2接外部振荡电路,RESET端接复位电路,EA端接高。接收端由单片机主控电路、USB电源+5V接入、串口通信电路、无线模块供电电路、LCD1602液晶显示接口和报警电路组成。单片机主控电路由AT89S52最小系统组成。+5V电源由USB接口提供给单片机和其他模块。接入后发光二极管点亮。串口通信模块由DB9和RS232的外围电路组成。串口通信一边接单片机的RXD和TXD,一边连接PC机。LCD1602显示模块数据端接单片机P0口,RS,RW,E分别接单片机的P2.0-P2.2。报警电路接单片机的P1.5脚。由一个三极管和喇叭组成。-14-基于nRF24L01模块的无线通信系统设计发送程序#include#include#defineuintunsignedint#defineucharunsignedchar#defineTX_ADDR_WITDH5//发送地址宽度设置为5个字节#defineRX_ADDR_WITDH5#defineTX_DATA_WITDH5#defineRX_DATA_WITDH5/******************************************************************//nRF24L01指令格式:*******************************************************************/#defineR_REGISTER0x00//读寄存器#defineW_REGISTER0x20//写寄存器#defineR_RX_PLOAD0x61//读RXFIFO有效数据,1-32字节,当读数据完成后,数据被清除,应用于接收模式#defineW_TX_PLOAD0xA0//写TXFIFO有效数据,1-32字节,写操作从字节0开始,应用于发射模式#defineFLUSH_TX0xE1//清除TXFIFO寄存器,应用于发射模式#defineFLUSH_RX0xE2//清除RXFIFO寄存器,应用于接收模式#defineREUSE_TX_PL0xE3//重新使用上一包有效数据,当CE为高过程中,数据包被不断的重新发射#defineNOP0xFF//空操作,可以用来读状态寄存器/******************************************************************//nRF24L01寄存器地址*******************************************************************/#defineCONFIG0x00//配置寄存器#defineEN_AA0x01//“自动应答”功能寄存#defineEN_RX_ADDR0x02//接收通道使能寄存器#defineSETUP_AW0x03//地址宽度设置寄存器#defineSETUP_RETR0x04//自动重发设置寄存器#defineRF_CH0x05//射频通道频率设置寄存器#defineRF_SETUP0x06//射频设置寄存器#defineSTATUS0x07//状态寄存器#defineOBSERVE_TX0x08//发送检测寄存器#defineCD0x09//载波检测寄存器#defineRX_ADDR_P00x0A//数据通道0接收地址寄存器#defineRX_ADDR_P10x0B//数据通道1接收地址寄存器#defineRX_ADDR_P20x0C//数据通道2接收地址寄存器#defineRX_ADDR_P30x0D//数据通道3接收地址寄存器#defineRX_ADDR_P40x0E//数据通道4接收地址寄存器#defineRX_ADDR_P50x0F//数据通道5接收地址寄存器#defineTX_ADDR0x10//发送地址寄存器#defineRX_PW_P00x11//数据通道0有效数据宽度设置寄存器#defineRX_PW_P10x12//数据通道1有效数据宽度设置寄存器#defineRX_PW_P20x13//数据通道2有效数据宽度设置寄存器#defineRX_PW_P30x14//数据通道3有效数据宽度设置寄存器#defineRX_PW_P40x15//数据通道4有效数据宽度设置寄存器#defineRX_PW_P50x16//数据通道5有效数据宽度设置寄存器#defineFIFO_STATUS0x17//FIFO状态寄存器//********************************************************************************-15-基于nRF24L01模块的无线通信系统设计*ucharsta;//状态变量#defineRX_DR(sta&0x40)//接收成功中断标志#defineTX_DS(sta&0x20)//发射成功中断标志#defineMAX_RT(sta&0x10)//重发溢出中断标志sbitCE=P3^5;sbitIRQ=P3^6;sbitCSN=P3^4;sbitMOSI=P3^2;sbitMISO=P3^1;sbitSCK=P3^3;sbitLED=P1^7;sbitDQ=P1^0;ucharcodeTX_Addr[]={0x34,0x43,0x10,0x10,0x01};ucharRX_Buffer[RX_DATA_WITDH];ucharTemp_Value[]={0x00,0x00};ucharTemp;ucharDisplay_Digit[]={0,0,0,0};bitDS18B20_IS_OK=1;ucharcodedf_tab[]={0,1,1,2,3,3,4,4,5,6,6,7,8,8,9,9};//decimalfractionvoid_delay_tus(uintx){while(--x);}void_delay_us(uintx){uinti,j;for(j=0;j0;i--){DQ=0;dat>>=1;DQ=1;_nop_();_nop_();if(DQ)dat|=0x80;_delay_tus(30);DQ=1;}returndat;}/**************************************************//*函数功能:向DS18B20写一字节*//*入口参数:dat(把dat写入DS18B20)*//*出口函数:无*//**************************************************/voidWrite_One_Byte(uchardat){uchari;for(i=8;i>0;i--){DQ=0;DQ=dat&0x01;_delay_tus(5);DQ=1;dat>>=1;}}/**************************************************/-17-基于nRF24L01模块的无线通信系统设计/*函数功能:从DS18B20读取数据(数据)*//*入口参数:无*//*出口函数:无*//**************************************************/voidRead_Temp(void){ucharng=0;if(DS18B20_Init()==1)DS18B20_IS_OK=0;else{Write_One_Byte(0xcc);Write_One_Byte(0x44);DS18B20_Init();Write_One_Byte(0xcc);Write_One_Byte(0xbe);Temp_Value[0]=Read_One_Byte();Temp_Value[1]=Read_One_Byte();DS18B20_IS_OK=1;}if((Temp_Value[1]&0xf8)==0xf8){Temp_Value[1]=~Temp_Value[1];Temp_Value[0]=~Temp_Value[0]+1;if(Temp_Value[0]==0x00)Temp_Value[1]++;ng=1;}Display_Digit[0]=df_tab[Temp_Value[0]&0x0f];Temp=((Temp_Value[0]&0xf0)>>4)|((Temp_Value[1]&0x07)<<4);Display_Digit[3]=Temp/100;Display_Digit[2]=Temp_x0010_0/10;Display_Digit[1]=Temp_x0010_;}////////////////////////////////////********1620液晶程序********//********定义液晶控制口********/sbitrs=P2^2;//定义液晶三个控制口sbitrw=P2^1;sbiten=P2^0;sbitk1=P2^5;//定义三个开关sbitk2=P2^6;sbitk3=P2^7;////////////////////////////////////********定义变量********/ucharcount,shi,fen,miao,xq,k1num,H,L;//定义时间程序里所需要的变量/********定义数组********/ucharcodetable[]=TH:33TL:25XQ:7;//液晶界面显示内容ucharcodetable1[]=:59:55.;////////////////////////////////////********延时程序********/voiddelay1(uintm){-18-基于nRF24L01模块的无线通信系统设计uinti,j;for(i=m;i>0;i--)for(j=150;j>0;j--);}////////////////////////////////////*******写指令********/voidwrite_com(ucharcom){rs=0;rw=0;en=0;P0=com;delay1(5);en=1;delay1(5);en=0;}////////////////////////////////////********写数据********/voidwrite_dat(uchardat){rs=1;rw=0;en=0;P0=dat;delay1(5);en=1;delay1(5);en=0;}////////////////////////////////////********液晶显示程序********//********时分秒的分离********/voidwrite_sfm(ucharadd,uchardat){ucharshi,ge;//分离数字,如34,分成3和4shi=dat/10;ge=dat_x0010_;write_com(0x80+0x40+add);write_dat(0x30+shi);write_dat(0x30+ge);}////////////////////////////////////********星期********/voidwrite_xq(ucharadd1,uchardat1){ucharge;//星期只需要一个数字显示ge=dat1_x0010_;write_com(0x80+add1);write_dat(0x30+ge);}////////////////////////////////////********高温低温数分离********/voidwrite_HL(ucharadd2,uchardat2){-19-基于nRF24L01模块的无线通信系统设计ucharshi,ge;//分离数字,如34,分成3和4shi=dat2/10;ge=dat2_x0010_;write_com(0x80+add2);write_dat(0x30+shi);write_dat(0x30+ge);}////////////////////////////////////********按键调时程序********/voidjianpan(){if(!k1){k1num++;if(k1num==5)k1num=0;}if(!k2){switch(k1num){case0:{TR0=0;fen++;if(fen==60)fen=0;TR0=1;}break;case1:{TR0=0;shi++;if(shi==24)shi=0;TR0=1;}break;case2:{xq++;if(xq==8)xq=1;}break;case3:{L++;if(L==100)L=0;}break;case4:{H++;if(H==100)H=0;}break;-20-基于nRF24L01模块的无线通信系统设计}}if(!k3){switch(k1num){case0:{TR0=0;fen--;if(fen==0)fen=59;TR0=1;}break;case1:{TR0=0;shi--;if(shi==0)shi=23;TR0=1;}break;case2:{xq--;if(xq==0)xq=7;}break;case3:{L--;if(L==0)L=99;}break;case4:{H--;if(H==0)H=99;}break;}}}////////////////////////////////////********初始化********/voidinit1(){ucharnum;//定义一个变量num,用于下面数组的初始化en=0;write_com(0x38);write_com(0x0f);//不显示光标write_com(0x06);//光标向右边自动移位write_com(0x01);//清屏shi=23;fen=59;miao=55;xq=7;H=33;L=25;-21-基于nRF24L01模块的无线通信系统设计write_com(0x80);for(num=0;num<16;num++){write_dat(table[num]);delay1(10);}write_com(0x80+0x40);for(num=0;num<16;num++){write_dat(table1[num]);delay1(10);}////////////////////////////////////********定时器初始化********/TMOD=0x01;//定义定时器0,工作方式1TH0=(65536-50000)/256;//高8位TL0=(65536-50000)%6;//低8位EA=1;ET0=1;TR0=1;//打开定时器}////////////////////////////////////********定时器中断函数********/voidtimer()interrupt1{TH0=(65536-50000)/256;TL0=(65536-50000)%6;count++;if(count==20){count=0;miao++;if(miao==60){miao=0;fen++;//}if(fen==60){fen=0;shi++;//}if(shi==24){shi=0;xq++;if(xq==8){xq=1;}}}}}}///////////////////////////////////ucharcodemytab[8]={0x0c,0x12,0x12,0x0c,0x00,0x00,0x00,0x00};/********显示位置********/voidlcd_pos(ucharpos){write_com(pos|0x80);//数据指针80+地址变量}////////////////////////////////////********自定义字符********/voidwritetab(){uchari;write_com(0x40);for(i=0;i<8;i++)write_dat(mytab[i]);}////////////////////////////////////********温度显示********/voidwendu(){writetab();//自定义字符写入delay1(5);lcd_pos(0x4e);//显示圈圈write_dat(0x00);//显示自定义字符write_com(0x0c);Read_Temp();write_com(0x80+0x40+10);write_dat(0x30+Display_Digit[2]);write_com(0x80+0x40+11);-22-基于nRF24L01模块的无线通信系统设计write_dat(0x30+Display_Digit[1]);write_com(0x80+0x40+13);write_dat(0x30+Display_Digit[0]);write_com(0x80+0x40+15);write_dat(0x30+0x43);write_sfm(15,xq);write_HL(9,L);write_HL(3,H);////////////////////////////////////********时间显示********/write_sfm(6,miao);write_sfm(3,fen);write_xq(15,xq);write_sfm(0,shi);}////////////////////////////////////********温度报警********/voidbaojing(){if(H<=Temp||L>=Temp){bi(500);}}/**************************************************//*函数功能:从DS18B20读取数据转换成ASCII码写入液晶*//*模块*//*入口参数:无*//*出口函数:无*//**************************************************//*voidDisplay_Temperature(void){ucharng=0;if((Temp_Value[1]&0xf8)==0xf8){Temp_Value[1]=~Temp_Value[1];Temp_Value[0]=~Temp_Value[0]+1;if(Temp_Value[0]==0x00)Temp_Value[1]++;ng=1;}Display_Digit[0]=df_tab[Temp_Value[0]&0x0f];Temp=((Temp_Value[0]&0xf0)>>4)|((Temp_Value[1]&0x07)<<4);Display_Digit[3]=Temp/100;Display_Digit[2]=Temp_x0010_0/10;Display_Digit[1]=Temp_x0010_;}Display_LINE1[13]=0x43;Display_LINE1[12]=0xdf;Display_LINE1[11]=Display_Digit[0]+'0';Display_LINE1[10]='.';Display_LINE1[9]=Display_Digit[1]+'0';Display_LINE1[8]=Display_Digit[2]+'0';Display_LINE1[7]=Display_Digit[3]+'0';if(Display_Digit[3]==0)Display_LINE1[7]='';if(Display_Digit[2]==0&&Display_Digit[3]==0)-23-基于nRF24L01模块的无线通信系统设计Display_LINE1[8]='';if(ng){if(Display_LINE1[8]=='')Display_LINE1[8]='-';elseif(Display_LINE1[7]=='')Display_LINE1[7]='-';elseDisplay_LINE1[6]='-';}LCD_POS(0);Show_String(Display_LINE0);LCD_POS(0x40);Show_String(Display_LINE1);}voidmain(void){Init_LCD();Read_Temp();_delay_ms(1000);while(1){Read_Temp();if(DS18B20_IS_OK)Display_Temperature();_delay_ms(200);}}*//*nRF24L01初始化*/voidnRF24L01_Init(void){_delay_us(2000);CE=0;//待机模式ⅠCSN=1;SCK=0;IRQ=1;}/*SPI时序函数*/ucharSPI_RW(ucharbyte){uchari;for(i=0;i<8;i++)//一字节8位循环8次写入{if(byte&0x80)//如果数据最高位是1//当访问多字节寄存器时首先要读/写的是最低字节的高位?MOSI=1;//向NRF24L01写1else//否则写0MOSI=0;byte<<=1;//低一位移到最高位SCK=1;//SCK拉高,写入一位数据,同时读取一位数据if(MISO)byte|=0x01;SCK=0;//SCK拉低}returnbyte;//返回读取一字节}/*SPI写寄存器一字节函数*/-24-基于nRF24L01模块的无线通信系统设计/*reg:寄存器地址*//*value:一字节(值)*/ucharSPI_W_Reg(ucharreg,ucharvalue){ucharstatus;//返回状态CSN=0;//SPI片选status=SPI_RW(reg);//写入寄存器地址,同时读取状态SPI_RW(value);//写入一字节CSN=1;//returnstatus;//返回状态}/*SPI*/ucharSPI_R_byte(ucharreg){ucharreg_value;CSN=0;//SPI片选SPI_RW(reg);//写入地址reg_value=SPI_RW(0);//读取寄存器的值CSN=1;returnreg_value;//返回读取的值}/*SPI读取RXFIFO寄存器数据*//*reg:寄存器地址*//**Dat_Buffer:用来存读取的数据*//*DLen:数据长度*/ucharSPI_R_DBuffer(ucharreg,uchar*Dat_Buffer,ucharDlen){ucharstatus,i;CSN=0;//SPI片选status=SPI_RW(reg);//写入寄存器地址,同时状态for(i=0;i
本文档为【远程温度检测交】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
个人认证用户
陨辰
暂无简介~
格式:doc
大小:134KB
软件:Word
页数:0
分类:
上传时间:2021-10-25
浏览量:1