无线数显温度计的设计毕业设计.doc_第1页
无线数显温度计的设计毕业设计.doc_第2页
无线数显温度计的设计毕业设计.doc_第3页
无线数显温度计的设计毕业设计.doc_第4页
无线数显温度计的设计毕业设计.doc_第5页
已阅读5页,还剩57页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第 I 页西南交大设计说明书 无线数显温度计的设计摘 要当今社会,远距离的温度数据采集已经很有必要。而且温度测量的准确度及结构的简化程度也对生产效益有很大影响。在工农业生产现场,甚至在日常生活中,也会有许多需要进行温度的测量以及范围性监控的地方。众所周知,可能会有种种外界环境条件的限制,例如高温、矿井等等人类难以接触的环境或者需要非接触测温。传统的温度计已经不能满足测量要求。这个时候我们就需要一个可以远程测量和数字显示的温度计。本设计提出了一种远距离测量温度数据的思路,采用无线模块NRF24L01、AT89S52单片机和数字式的温度传感器构成一个远距离测温系统。系统通过简单的通信协议,实现无线数据传输。它是可以实现远程控制的无线测温系统,并且能够实现在百米范围内对环境温度0.2-99.9进行准确检测。基于数字化的要求,本系统采用LCD1602实现温度显示。关键词:温度测量,无线收发,单片机,传感器第 II 页西安交大设计说明书 The Design of Wireless Digital Thermometer Author:Liu Lixiang Tutor: Li HongxiaAbstractWith the social progress and development, and production needs, the use of wireless communication technology temperature remote data acquisition way already more and more be extensived application in various fields. And the degree of accuracy and simplify the structure of temperature measurement has great influence on production efficiency. In the field of industrial and agricultural production, and even in daily life, there will be many need for temperature measurement and monitoring of local. We also know that may limit of various environmental conditions, such as high temperature, mine and so on difficult for humans to contact with the environment. The traditional thermometer has been unable to meet the measurement requirements. This is when we need a remote measurement and digital display thermometer.The design proposed a wireless temperature measurement solutions and a temperature measurement system by using the wireless RF chip NRF24L01, low power consumption MCU and digital temperature sensor DS18B20. The system through a simple communication protocol, wireless data transmission. It is remote control wireless temperature measurement system can be achieved, and can realize the environment temperature 0.2-99.9 accurate detection in the range of 100 meters. This system uses LCD1602 to achieve temperature display.Keywords: Temperature measurement, Wireless transceiver, MCU, Sensor第 III 页西安交大毕业设计说明书 目 录1 绪论11.1课题背景、目的、意义11.2无线温度采集系统发展状况11.3本课题的研究内容22 方案的确定与关键器件选择32.1系统方案的初步构想32.2关键器件的确定42.2.1 传感器的确定42.2.2 短距离无线通信模块的确定43 各模块电路设计53.1发射模块的电路设计53.1.1 温度数据测量电路设计53.1.2 控制电路设计63.1.3 信号发射电路设计83.2接收模块的电路设计103.2.1 信号接收电路设计103.2.2 数据显示电路设计114 软件设计146.1 软件调试196.2硬件调试206.3焊接调试21结 论22第 IV 页西安交大设计说明书 致 谢23参考文献24附录:系统程序25第 58 页西安交大设计说明书 1 绪论1.1课题背景、目的、意义伴随着社会生活的提高。人们的要求越来越高,现代的工作、科研、社会生产需要的单片机精密性、智能化程度也是在不断提升的。而单片机在巨大的市场需求刺激下也飞速发展,逐渐的从功能单一到功能多样化,以及拓展运用的不断开发也越来越丰富。单片机的确给人带来了很大的进步。温度测量技术与单片机的结合正是其中一个具有代表性的应用。温度数据采集在各种工农业生产中具有极其重要的实用性。而现在使用的常规意义上的温度计大多精度上都不是很高。而且这些温度测量装置有太多的限制性,不能数字化的显示出温度值,所以通常都会有数值上的读取误差。另外传统温度计采用的水银等热容量都比较大,也就是说测温时间会有些长。最后传统温度计在实际应用中在很多地方通常都是鞭长莫及。本课题设计的无线数显温度计。首先我采用的是数字显示,与非数字显示的温度测量系统相比较,数字显示的系统在数据读取方面更为便利,测量的温度更为准确。纵观温度计的发展历程,温度计的精确性越来越高,而无论是生活中还是工业生产中,对温度计的要求也越来越高。像是在人类不能接触的环境或者需要采取分区采样的环境。这些都是实际应用中常规温度计无法或难以完成的任务。无线通信技术的发展使得温度采集更加简单易行,方便快捷。所以本设计有一定的社会使用性。1.2无线温度采集系统发展状况近年来,无线温度采集系统被引用于各个领域,已经成为我们生活中不可或缺的一部分。当前对无线式的温度采集的研究也也来越多,越来越被更多人关注和重视。各式各样的无线温度采集系统被广泛的应用于不同的环境。而无论是哪种温度采集系统,温度传感器都是必不可少的选择。现代意义的温度传感器,技术方面已经极为成熟。生产和生活中的应用也已经十分常见。而数字式的温度传感器可以直接将环境温度转化为数字信号,而且并不需要中间的数字模拟转换电路以及信号放大的电路等外围模块。因此大大的简化了系统的组成。1.3本课题的研究内容本设计研究的内容主要通过温度传感器DS18B20实现对外部温度的采集,利用两块无线传输模块NRF24L01分别作为发射和接收芯片,并通过单片机控制,最终把温度以数字形式显示在LCD液晶显示屏上。我们这里将整个系统分为两个模块,由温度传感器和52单片机以及一片NRF24L01组成的采集温度跟发射系统;有另外一片NRF24L01,52单片机以及LCD液晶显示屏组成的接收跟温度显示系统。本设计的主要内容有:(1)作为温度传感器的DS18B20采集外部环境的温度,并且能满足设计要求的测温范围。(2)作为无线收发模块的两片NRF24L01能分别在设计要求的距离内发射跟接收信号。(3)用LCD液晶显示屏显示出数字式温度。(4)温度显示至少能精度到小数点后一位。2 方案的确定与关键器件选择2.1系统方案的初步构想本设计准备采用由温度传感器,无线通信模块以及显示电路构成无线测温系统。系统的结构对系统的功能影响很大,本系统要最终能用温度传感器实现温度数据的采集、并在经过单片机的简单处理之后能通过无线通信模块实现无线数据的收发,并能够数字化的显示出外部环境的温度。因此我将本设计的系统分为几个模块,分别实现以上几个功能。发射模块:本部分的工作原理是由数字温度传感器测温并把数据传输到中央控制单元,有中央控制单元处理再通过无线收发电路向外发送信号。具体结构图如图2.1所示。图2.1 发射模块结构框图接收模块:接收模块在本设计中将运用另一片NRF24L01作为信号的接收芯片,同样以单片机作为主控单元,最后用LCD1602显示出数字化的温度值。本部分的工作原理:NRF24L01接收发射模块中发射的信号然后将接收到的信号传输到单片机中,单片机经过数据的处理,最终在液晶显示屏LCD1602显示出温度值。具体结构图如图2.2所示。图2.2 接收模块结构图2.2关键器件的确定2.2.1 传感器的确定在选择温度传感器上,传统的模拟式传感器具有很多优点,例如测量装换速度快,温度测量的范围较快等1。但是传统的模拟式传感器输出的模拟信号需要先进过取样、放大和模数转换电路的处理,最后才能将转换的数字信号交由处理控制系统处理。这样电路的设计将会极为复杂,元器件数量难以下降,也会随之影响产品的可靠性。另外模拟信号转换为数字信号的过程中精度不能保证。而直接采用数字式的温度计则不需要数模转换电路,直接输出的是数字温度信号,所以数字式的温度传感器的输出信号更加稳定,准确度更高,抗干扰能力更强。考虑到以上的情况,本次设计采用是温度传感器。2.2.2 短距离无线通信模块的确定无线通信模块的的开发,在近年来已经被世界上的各个芯片生产厂家研究和利用起来。无线通信芯片通常都呈现模块化,大部分功能都集中在芯片内部,而且大部分的外部电路及其器件都是自己配置好的,所有的高频元件:电感、电容、晶振振荡器等都集成在芯片内部。然而在与单片机的配合应用上,通过查阅资料,我了解的几种无线芯片中NRF24L01 可以直接接单片机串口使用,数据无需曼彻斯特编码,可直接传输串口数据,效率高发射电流为9mA,接收电流为11mA最大输出功率+10dBm 速率为20Kbps约10个外围元件 数量需要外接天线的数量(分别为收发用)是一个,综合以上的各个条件都极为符合本次的设计需要。因此我在本次设计中用NRF24L01做为系统的无线通信模块。3 各模块电路设计3.1发射模块的电路设计3.1.1 温度数据测量电路设计DS18B20S是一个能直接输出数字信号的温度传感器2。其引脚排列图如图3.1所示。图3.1 DS18B20引脚排列图其引脚定义如下:(1)DQ是单数据总线,是作为芯片的数字信号输入/输出端;(2)GND是接地端;(3)VDD是外接供电电源接入端;DS18B20是数字式的温度传感器,在与单片机的连接中只有DQ需要与单片机连接。在实际运用和大多数需要测温的仿真实验,DS18B20也一直应用广泛。而且数字式的温度传感器直接输出数字信号,在与单片机的连接中不需要复杂的外接电路 3。,具体连接图如图3.2所示。图3.2 DS18B20与单片机连接图3.1.2 控制电路设计AT89S52单片机片片内数据储存内含128 字节的RAM4。其具体引脚结构如图3.3 所示。图3.3 AT89S52引脚图单片机有40 个引脚,其中P0到P3总共由有32个外部双向I/O端口;中断系统也包括外部中断0、外部中断1、T0、T1、T2等数个中断源;我们在实际应用中大多选用12MHZ的晶振;并且单片机还具有看门狗定时器;具有断电标志POF等等5。其引脚定义如下:VCC:电源端。GND:接地端。P0口:P0口是漏极开路型双向I/O口。P1口:P1口是一个内部带上拉电阻的8位双向I/O口。P2口:P2口也是一个内部带上拉电阻的8位双向I/O口。P3口:P3口是双功能端口。作为普通I/O口使用时,同P1、P2口一样,P3口还具备第二功能。RST:复位输入。ALE/PROG:地址锁存控制信号(ALE)在访问外部程序存储器时,锁存低8位地址的输出脉冲。PSEN:外部程序存储器选通信号(PSEN)是外部程序存储器选通信号。EA/VPP:使能端。XTAL1:振荡器反相放大器的输入端。XTAL2:振荡器反相放大器的输出端。 具体的单片机最小系统如图3.4所示。图3.4 单片机最小系统控制电路主控电路采用单片机位主控芯片,配合外围电路两个33PF电容、12MHZ的晶振以及复位电路构成。3.1.3 信号发射电路设计NRF24L01是一个集成芯片 6。可以同时满足发射信号和接收信号的要求。所以在发射模块和接收模块电路中各接入一片NRF24L01以实现两块模块中的无线通信。它的引脚图如图3.5所示。图3.5 NRF24L01引脚图在本设计的实际应用中NRF24L01是已经配置好功能的模块,其引脚定义如下:VCC:电源端,常用电压为3.3V。GND:接地端。CE:数字输入端,RX或者是TX模式的选择CSN:数字输入端,SPI的片选信号。SCK:数字输入端,SPI时钟。MOSI:数字输入端,从SPI中数据的输入脚。MISO:数字输入端,从SPI中数据的输出脚。IRQ:数字输入端,可屏蔽中断脚。NRF24L01无线集成模块式可以直接与单片机的I/O端口相联接的7。本次设计中,具体接口电路如图3.6所示。J9用来表示无线模块NRF24L01。(1)、数据通过NRF24L01发送时,使能端置“1”,芯片开始工作。(2)、送入接收模块中起到接收作用的NRF24L01的地址和数据。(3)、使能端置“0”,激发NRF24L01进行发射。(4)、NRF24L01正式开始ShockBurstTM发射图3.6 发射模块NRF24L01与单片机接口电路前面提到NRF24L01的工作电压在3.3V到3.6V,而单片机的工作电压时5.0V。因此单片机不能和无线发射模块共用一个电源,通过查阅资料,这里有一个解决方案。通过一个变压模块来ASM1117变换到适用于NRF24L01的电压8。ASM1117通过对输出电压采样,然后反馈到调节电路去调节输出级调整管的阻抗,当输出电压偏低时,就调节输出级的阻抗变小从而减小调整管的压降,当输出电压偏高时,就调节输出级的阻抗变大从而增大调整管的压降,这样就维持了输出电压的稳定。ASM1117 引脚图如图3.7所示。 其引脚定义如下:(1)VIN是外接电源输入端(2)GND/ADJ是接地端;(3)VOUT是输出电压端;图3.7 ASM1117引脚图AMS1117是一款正电压输出低压差的三端线性稳压电路。AMS1117及其外围电路可以满足多个固定电压的要求。本设计采用ASM1117及其外围模块构成的变压电路作为NRF24L01的电源输入。具体的稳压变压模块如图3.8所示。图3.8 变压电路3.2接收模块的电路设计3.2.1 信号接收电路设计接收模块中的接收芯片仍然是集成芯片NRF24L01,芯片的具体特点在这里就不做重复赘述。在ShockBurstTM收发模式下,接收数据时,自动把CRC校验码移去。其接收流程如下:(1)、NRF24L01初始化,写入地址和接收数据的容量。(2)、进入接收状态,把CE端置高电平。(3)、延时之后。NRF24L01开始等待接收数据。(4)、判断接收到的数据是否正确。(5)、NRF24L01通过DR1置高电平通知微处理器。(6)、微控制器把数据从NRF24L01移出。(7)、数据移完之后,把DR1置“0”,此时,分为两个状态,当使能端为“1”,就继续等待接收数据;当使能端为“0”,接收流程停止。在接收模块电路中NRF24L01与单片机的连接基本不变。具体接口电路如图3.9所示。J5用来表示无线模块NRF24L01。图3.9 接收模块NRF24L01与单片机接口电路3.2.2 数据显示电路设计本次设计的数据显示模块由LCD1602完成。LCD1602液晶也被称为1602字符型液晶,它是专门用来显示字母、数字、符号等的点阵型的一种液晶模块。LCD1602由若干个5X7或者5X11等点阵字符位组成。考虑本设计只需要显示数字型温度,1602可以很好的完成设局要求。不能显示图像的缺点可以忽略不计 9。其具体的引脚结构如图3.12所示。图3.10LCD1602引脚结构图其引脚定义如下:第1脚:GND为接地端。第2脚:VCC为高电平输入端。第3脚:V0引脚用来调整液晶屏的对比度,连接VCC时对比度最弱,连接GND电源时对比度最高。第4脚:RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。第5脚:RW位读写端口,接VCC时为读。第6脚:E使能端,高电平时读取信息,负跳变时执行指令。第714脚:D0D7为8位双向数据端。15脚背光正极。16脚背光负极。单片机与LCD具体连接电路如图3.11所示。图中用J3表示LCD1602。图3.11 LCD1602与单片机的接口电路设计中采用LCD1602液晶模块直接与单片机的P1口连接作为系统的显示模块,P3口的P3.0到P3.2分别连接液晶模块的使能信号E,数据/命令选择RS,R/W读写端口。4 软件设计4.1发射模块软件设计开始本系统采用DS18B20采集环境温度10,将数字信号传递到单片机,单片机读取外部温度信号并做出处理,再将处理后的数据经无线发送模块调制后发送。无线发射模块的软件流程如图4.1所示。初始化延时地址、宽度、内容读取温度数据处理是否发送标识N Y数据发送延时 结束图4.1 发射模块软件流程4.2接收模块软件设计接收系统电路上电后,主函数开始初始化液晶和无线模块然后开始数据接收,接收到数据后对数据进行校验,看接收到的数据是否准确,若果不正确则返回重新校验,正确就继续进行检测以及对数据的缓存和处理11。最后将处理完的数据在LCD上显示温度值。无线接收模块的软件流程如图4.2所示。开始初始化LCD、无线模块数据接收数据检验数据是否准确数据是否收完NYN Y数据缓存Y数据处理显示温度结束图4.2 接收模块软件流程程序流程图的设计就是对程序流程编写的设计。只有画好程序流程图才能清晰的写出程序执行的过程,这样才不至于程序编写混乱。程序流程图的顺序是直观明了的,这将有利于在接下来的程序编写时出现错误时能及时的找出并改正,从而节省了大量的时间。通过程序分析图可以很清楚的知道设计任务,然后进行任务的分析,通过分析各个模块的控制程序和各程序模块之间的信号传递接口便很容易的设计需要达到这个目标所设计的多种算法,然后通过比较各种算法的优缺点和难易程度然后选择最优程序算法。确定程序算法之后便可以设计流程图,然后再根据程序流程图编写软件,之后进行软件运行调试,看是否有错误,如果出现错误之后要分析是编写错误还是设计的流程图错误,如果流程图错误的话就需要修改程序流程图,如果程序流程图没有错误,便要检查程序编写过程中是否出现过错误,从而修正程序,然后继续调试,周而复始,直到把程序能够在软件上能够正确编译。5 总体电路设计发射模块的总体电路图总共由电源模块、单片机的最小系统、温度采集模块DS18B20、无线通信(发射)模块组成。电源模块中,由外部5.0V供电,经由AMS1117稳压降压为3.3V之后为NRF24L01 供电;单片机最小系统中,18,19接外部振荡电路,9端接复位电路,EA端接:“1”;温度采集模块中,DS18B20接在单片机的P1口上;无线通信模块中,NRF24L01由单片机的P2端口控制。本系统由温度传感器DS18B20作为温度采集模块,采集的温度信号传输到单片机中并经过了单片机的处理之后,将信号传输到无线模块NRF24L01中。发射模块总体电路图如图5.1所示。图5.1 发射模块总体电路图接收模块总体电路总共由电源模块、单片机最小系统、无线通信(接收)模块、LCD显示电路组成。电源模块中,由外部5.0V供电,经由AMS1117稳压降压为3.3V之后为NRF24L01 供电;单片机最小系统中,18,19接外部振荡电路,9端接复位电路,EA端接“1”;LCD显示电路中,双向数据端口D0到D7接在单片机的P1上,使能端E,读写R/W,寄存RS分别接在P3.0到P3.2。无线通信模块中,NRF24L01由单片机的P2端口控制。本系统中由无线模块NRF24L01接收从发射模块发射的信号,再经由单片机处理接收到的信号,最后在LCD1602液晶显示屏上数字化的显示温度值。接收模块总体电路图如图5.2所示。图5.2 接收电路总体电路图6 调试结果6.1 软件调试在软件程序的调试上,在程序的编写上采用KeilC软件分别对发射模块和接收模块的程序做编译测试12。在软件编写方面,采用化整为零的思想,把整个程序划分为几个模块,把这些模块编写成H文件,然后在编写主程序时把它们分别像添加REG52.h一样把他们都添加进来,以便程序调用。在编写显示程序时第一次遇到了这个问题,怎么样使显示内容的时间跳动连续,没有突变现象。开始时使用程序的定时中断显示要显示的内容,每次到达预定设置的时间时就显示需要显示的内容,后来发现这样显示导致有时上一个没有显示完成,下一次中断又到来的情况。最后通过查阅相关的例子,仿照别人的程序,在主程序中读取所要显示的内容,然后把要显示的内容填写到数组中,然后在中断中设置一个标志位,每次中断的时间为50ms,当标志位计数到十次,也就是500ms时显示一次读取的数据,而显示的秒位为1秒变化一次,所以显示的内容不会出现跳变的现象。发射模块程序的编译结果如图6.1所示。图6.1 发射模块程序编译结果接收模块程序的编译结果如图6.2所示。图6.2 发射模块程序编译结果6.2硬件调试在完成了软件的编译以及硬件的焊接工作后,通过单片机程序烧写软件将发射、接收两部分程序编译后的hex文件烧写进AT89S52单片机中。最后进行上电调试。这部分的调试主要是测试的是由发射模块发射的信号,接收模块能否在一定距离内接收。并且最后把温度值显示在LCD液晶显示屏上。检测效果图如图6.3所示。图6.3 硬件调试检测结果图6.3焊接调试在经过了软件部分和硬件的调试之后,一个必须面对的过程就是焊接各个元器件,完成了初步的的焊接之后,上电测试过程中,LCD显示屏一直显示的不够明亮,检查各个模块电路,没有发现明显焊接错误,然后在经过询问有丰富的焊接经验的同学,并向他们请教之后发现,LCD显示屏引脚中V0引脚是影响显示屏对比度的主要因素,接高电平时对比度在差,接低电平时对比度最高,中间可以接滑动变阻器调节。然后找到这个引脚,果然这个引脚连到了高电平。经过简单的电路修改,重新上电测试,然而测试过程仍然不是很顺利。虽然在接收模块上的LCD显示屏显示出了数字化的温度值,但是在经过对传感器的温度变化测试中,发现显示电路中,温度值始终保持不变。既然软件程序调试过程中能够编译成功,并且在LCD上能够显示温度值,说明软件和硬件都没有问题。经过简单的分析,确定问题最大的可能还是出在软件程序上,这设计到一个程序循环的过程,是不是程序不能够完整的循环,导致程序只能运行一次,即发射模块只发射一次温度信号。有过这个分析之后,重新检查了程序,果然,在发射采集的模块程序中,是没有循环的。认识到这个失误之后,经过改正,再次上电测试后,接收模块已经能动态的显示出环境中的温度值。自此,本次设计最终完成。结 论设计完成的系统可以准确的以无线发射的形式在LCD液晶显示屏上显示出当前温度。NRF24L01无线收发模块可以实现设计要求的距离内无线信号的传输。并达到要求精度。在完成本次设计的过程中,不仅巩固了单片机的专业知识和LCD液晶显示的相关知识,而且学会了无线收发模块的简单使用。本设计虽然完成了基本的设计要求,达到了要求的精度。但是设计中仍然存在这一些不足,不如说受无线收发芯片的限制导致的无线信号传输距离不够远的问题,这样很大程度上局限了该温度测量系统的使用空间。解决这个问题可以更换无线模块或者添加天线等方法。但是因为设计条件局限,不能做到更加完美。再比如,本设计还可以进行许多功能扩展,单片机的许多I/O端口没有被使用,所以可以为本系统添加其他的检测功能,例如湿度、光照等。使系统更加完善,能够被应用与更广阔的环境中。致 谢时光荏苒,转眼大学时光就要走到尽头。而作为大学期间最后一个任务的毕业设计无疑是对我们这几年学习的专业知识最好的考卷。在此次毕业设计即将顺利完成之时,我对大学期间所有大学期间教诲过我的所有老师拜师衷心的谢意,是她们孜孜不倦的教诲让我掌握了许多专业知识,我才会有能力做此设计。参考文献1 丁镇生传感器与传感技术应用M北京:科学出版社,2002:332 何希才传感器及其应用电路M北京:电子工业出版社,2001:603 沙占友智能化集成温度传感器原理M北京:机械工业出版社,2002:56 4 胡汉才单片机原理及其接口技术M北京:清华大学出版社,2004:50 5 李广弟单片机基础M北京:北京航空航天出版社,1992:346郑维智, 张海滨短距离无线通信在控制中的应用J.数据通信,200242(12):40-417 程海英,陈勇. 无线传感器技术在智能家居系统的应用J.中国科技信息,200720(9):56-588 胡天明,齐建家等基于NRF24L01无线加速度测量系统设计J龙黑江工程学院学报(自然科学版),200822(59-62)9 夏大勇,周晓辉LCD的简单开发J.工业仪表与自动化装置,2007(1) :43-4610 赵继文传感器与应用电路设计M北京:科学出版社,2002:4811 Clive SeagerPicaxe infrared remote controlJ. Silicon Chip,2004Vol.17: 90-9312 Kuhn, Jochen;Vogt, PatrikDiffraction experiments with infrared remote controlsJ. Physics Teacher,2012Vol.50: 118-119附录:系统程序#include #include typedef unsigned char uchar;typedef unsigned char uint;/*NRF24L01端口定义*sbit MISO=P25;sbitSCK =P26;sbitCE =P27;sbitCSN=P20;sbit MOSI=P21;sbitIRQ=P22;/*LED*sbitled=P16;/*DS1820端口设置*sbit DQ=P10 ;/*数码管0-9编码*uchar seg10=0xC0,0xCF,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90; /09段码uchar seg110=0x40,0x4F,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10; uchar data temp_data2=0x00,0x00;/温度采集数据缓冲区uchar dispaly20;/显示缓冲区/*uint bdata sta; /NRF24L01状态标志sbitRX_DR=sta6;sbitTX_DS=sta5;sbitMAX_RT=sta4;/*NRF24L01*#define TX_ADR_WIDTH 5 / 本机地址宽度设置#define RX_ADR_WIDTH 5 / 接收方地址宽度设置#define TX_PLOAD_WIDTH 20 / 4 字节数据长度#define RX_PLOAD_WIDTH 20/ 4 字节数据长度uint const TX_ADDRESSTX_ADR_WIDTH= 0x34,0x43,0x10,0x10,0x01;/本地地址uint const RX_ADDRESSRX_ADR_WIDTH= 0x34,0x43,0x10,0x10,0x01;/接收地址/*NRF24L01寄存器指令,详细请对照,Page18*#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 / 定义重复装载数据指令#define NOP 0xFF / 保留/*SPI(nRF24L01)寄存器地址,详细请对照,Page18-24*#define CONFIG 0x00 / 配置收发状态,CRC校验模式以及收发状态响应方式#define EN_AA 0x01 / 自动应答功能设置#define EN_RXADDR 0x02 / 可用信道设置#define SETUP_AW 0x03 / 收发地址宽度设置#define SETUP_RETR 0x04 / 自动重发功能设置#define RF_CH 0x05 / 工作频率设置#define RF_SETUP 0x06 / 发射速率、功耗功能设置#define STATUS 0x07 / 状态寄存器#define OBSERVE_TX 0x08 / 发送监测功能#define CD 0x09 / 地址检测 #define RX_ADDR_P0 0x0A / 频道0接收数据地址#define RX_ADDR_P1 0x0B / 频道1接收数据地址#define RX_ADDR_P2 0x0C / 频道2接收数据地址#define RX_ADDR_P3 0x0D / 频道3接收数据地址#define RX_ADDR_P4 0x0E / 频道4接收数据地址#define RX_ADDR_P5 0x0F / 频道5接收数据地址#define TX_ADDR 0x10 / 发送地址寄存器#define RX_PW_P0 0x11 / 接收频道0接收数据长度#define RX_PW_P1 0x12 / 接收频道0接收数据长度#define RX_PW_P2 0x13 / 接收频道0接收数据长度#define RX_PW_P3 0x14 / 接收频道0接收数据长度#define RX_PW_P4 0x15 / 接收频道0接收数据长度#define RX_PW_P5 0x16 / 接收频道0接收数据长度#define FIFO_STATUS 0x17 / FIFO栈入栈出状态寄存器设置/*NRF24L01函数申明*void Delay(unsigned int s);void inerDelay_us(unsigned char n);void init_NRF24L01(void);uint SPI_RW(uint uchar);uchar SPI_Read(uchar reg);void SetRX_Mode(void);uint SPI_RW_Reg(uchar reg, uchar value);uint SPI_Read_Buf(uchar reg, uchar *pBuf, uchar uchars);uint SPI_Write_Buf(uchar reg, uchar *pBuf, uchar uchars);unsigned char nRF24L01_RxPacket(unsigned char* rx_buf);void nRF24L01_TxPacket(unsigned char * tx_buf);/*DS18B20函数申明*void delay1(uint i);void ds_reset(void);void write_byte(uchar value);uchar read_byte(void);void read_temp();void work_temp();/*/*延时函数/*/void inerDelay_us(unsigned char n)for(;n0;n-)_nop_();/*/*NRF24L01初始化/*/void init_NRF24L01(void) inerDelay_us(100); CE=0; / chip enable CSN=1; / Spi disable SCK=0; / Spi clock line init highSPI_Write_Buf(WRITE_REG + TX_ADDR, TX_ADDRESS, TX_ADR_WIDTH); / 写本地地址SPI_Write_Buf(WRITE_REG + RX_ADDR_P0, RX_ADDRESS, RX_ADR_WIDTH); / 写接收端地址SPI_RW_Reg(WRITE_REG + EN_AA, 0x01); / 频道0自动ACK应答允许SPI_RW_Reg(WRITE_REG + EN_RXADDR, 0x01); / 允许接收地址只有频道0,如果需要多频道可以参考Page21 SPI_RW_Reg(WRITE_REG + RF_CH, 0); / 设置信道工作为2.4GHZ,收发必须一致SPI_RW_Reg(WRITE_REG + RX_PW_P0, RX_PLOAD_WIDTH); /设置接收数据长度,本次设置为4字节SPI_RW_Reg(WRITE_REG + RF_SETUP, 0x07); /设置发射速率为1Mkbps,发射功率为最大值0dB/*/*函数:uint SPI_RW(uint uchar)/*功能:NRF24L01的SPI写时序,详细

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论