您好,欢迎来到华佗小知识。
搜索
您的当前位置:首页基于nRF24L01无线通信温度监测系统资料

基于nRF24L01无线通信温度监测系统资料

来源:华佗小知识


目录

1引言 ............................................................................................................................................. - 1 - 1.1 课题来源及意义 .............................................................................................................. - 1 - 1.2 无线数据传输的发展状况 ............................................................................................ - 1 - 1.3 本课题研究的对象和内容 ............................................................................................ - 2 - 1.3.1 对环境信号的采集及分析 .................................................................................... - 2 - 1.3.2 对无线模块发送接收数据分析 ........................................................................... - 2 - 2 系统方案设计 ......................................................................................................................... - 3 - 2.1 MCU芯片选择 ................................................................................................................ - 3 - 2.2 无线通信模块的方案 ..................................................................................................... - 3 - 2.3 温度传感方案 .................................................................................................................. - 3 - 2.4 显示模块方案 .................................................................................................................. - 4 - 3 系统的硬件设计 ..................................................................................................................... - 5 - 3.1 硬件的系统组成 .............................................................................................................. - 5 - 3.2 ATMEGA16主控芯片介绍 ............................................................................................. - 5 - 3.3 DS18B20温度传感器工作原理 .................................................................................. - 6 - 3.4 NRF24L01无线模块的工作原理 ................................................................................ - 8 - 3.4.1 NRF24L01芯片概述 ............................................................................................... - 8 - 3.4.2 引脚功能描述 ........................................................................................................... - 8 - 3.4.3 工作模式 .................................................................................................................... - 9 - 3.4.4 工作原理 .................................................................................................................. - 10 - 3.4.5 配置字 ...................................................................................................................... - 11 - 3.4.6 NRF24L01模块的原理图.................................................................................... - 12 - 3.5 发送端显示模块设计 ................................................................................................... - 13 - 3.6 接收端与PC机通信模块设计 .................................................................................. - 13 - 4 系统的软件设计 ................................................................................................................... - 15 - 4.1 发送端软件设计 ............................................................................................................ - 15 -

4.2 接收端软件设计 ............................................................................................................ - 15 - 5 系统的调试 ............................................................................................................................ - 17 - 结 束 语 ..................................................................................................................................... - 18 - 参考文献 ..................................................................................................................................... - 20 - 致 谢 ..................................................................................................................................... - 21 -

牡丹江师范学院学士学位论文(设计)

1引言

1.1 课题来源及意义

在信息化蓬勃发展的今天,工农业的一些现场环境参数仍然是值得研究和监测的。其中一个非常重要的参数就是温度。在工业、农业,军事和生活等许多方面,都需要对温度进行监测。

目前能够实现无线温度采集设计有很多,但最大的缺点是价格过高维护复杂。在实际温度控制过程中既要求系统具有稳定性、实时性又需要降低功耗。因此设计一种低功耗的无线温度检测系统很有意义。

1.2无线数据传输的发展状况

在2.4GHz非授权频段上,目前已经有了蓝牙,Wi-Fi,Zigbee等多个标准无线协议。

蓝牙,一种可应用于设备短距离通信(一般10m内)的无线电通信技术。其能够简化移动通信终端设备之间的信息传输,也能简化设备与因特网Internet之间的信息通信,所以数据传输更加迅速高效,为无线通信拓宽道路,但是其传输距离短。

Wi-Fi,是一个高频无线电信号。一个无线的网路通信技术品牌,由Wi-Fi联盟所拥有。很容易与IEEE 802.11混为一谈。甚至把就认为Wi-Fi是无线网际网路。

Zigbee,一种基于IEEE802.15.4标准的低功耗个域网协议。其拥有短距离、低功耗的无线通信技术特点。自动控制和远程控制领域非常适合其应用。

nRF24L01,一款单芯片无线收发芯片,工作在2.4GHz~2.5GHz频率范围内。芯片包括一个完全集成的功率放大器,频率合成器,调制器和晶体振荡器。通过3线SPI端口完成发射功率和工作频率等工作。电流消耗极低,在输出功率为-5dBm仅为10.5mA,在接收模式仅为18mA。可以通过SPI 接口进行设置输出功率频道选择和协议的设置。几乎可以用于到各种微控制器芯片,完成数据的无线传送。

- 1 -

牡丹江师范学院学士学位论文(设计)

1.3 本课题研究的对象和内容

1.3.1 对环境信号的采集及分析

首先,自然界一切环境因素信号一般是模拟信号,要么我们采用A/D转换器将采集的信号转换成数字信号;要么直接使用数字式传感器,直接得到数字信号好;而我们的系统便是直接采用数字式传感器直接得到数字信号。

其次,采集的信号还需要经过转换才可以使用,那么本次课题是采用软件来转换采集到的数据的。

1.3.2 对无线模块发送接收数据分析

无线数据传输一般是将采集到的数据打包,加上起始位,停止位,还有一些校验信息一起发送给接收端,接收端经过数据信息的起始位,停止位,校验信息加以判断数据是否有效,如果有效返回一个电平信号给发送端,这样确保发送端明确这组数据已经接收成功,可以进入下一组数据的发送,如此循环下去。

- 2 -

牡丹江师范学院学士学位论文(设计)

2 系统方案设计

2.1 MCU芯片选择

方案一:主控芯片采用AVR单片机系列芯片。其以快速,稳定,低功耗,多功能等优点迅速占领市场,应用于越来越多的场合。

方案二:主控芯片采用MSP430F149系列单片机。功能强大,高性能,低功耗,是一款16位单片机,内置高速12位ADC。但比较昂贵价格束缚了它更快的发展,而且封装不利于焊接,需要PCB制板,成本和开发周期不好控制。

方案三:主控芯片采用STC12C5A60S2增强型51单片机。内置SPI总线接口和ADC,内部时钟不分频,可达到1MPS。综合各方面因素,选择方案一,即用AVR系列中的ATmega16作为本系统的主控芯片。 2.2 无线通信模块的方案

方案一:通信模块采用GSM模块,GSM模块需要依赖移动卫星或者手机卡,传输距离大大提高,但其成本也随之增加、还需要办理SIM卡,通信过程中也会产生相应的收费,后期成本较高。

方案二:通信模块采用CC2430无线通信模块,它需要Zigbee总线模式,传输速率250kbps,且内部集成性能高级8051内核。但同样昂贵的价格是普通用户很难接受,且Zigbee协议本身相对较为复杂。

方案三:通信模块采用nRF24L01无线射频模块,高速率、低功耗、传输距离远、而且价格较便宜,采用SPI总线通信模式电路简单,操作方便。

基于系统的复杂性和程序的复杂度考虑,我们选用方案三。 2.3 温度传感方案

方案一: AD590用于测量热力学温度、两点温度差、摄氏温度、多点最低温度、多点平均温度的具体电路,AD590拥有高精度、低价格、不依赖辅助电源、线性好等优点,但其依赖差分放大器放大和A/D转换,依赖硬件多,成本提高。

- 3 -

牡丹江师范学院学士学位论文(设计)

方案二:采用DS18B20数字温度传感器芯片,耐磨耐碰,体积小,使用便捷,封装形式多样,各种狭小空间或危险环境是其发挥作用的好场所。经济,方便。

使用DS18B20电路简单,编程也较为简单,但是比AD590精度低。考虑到电路的设计,成本,精度要求,我们选择方案二。 2.4 显示模块方案

方案一:显示信息选择LCD128。一款通用的液晶显示屏,显示常用的汉字及ASCII码是其一大优点。

方案二:显示信息采用字符液晶LCD1602,一款比较通用的字符液晶模块,能够显示字符数字信息,而且价格低廉,控制容易。

方案三:显示采用LED 7段数码管,其成本低,容易显示控制,但不能显示字符。

综合以上方案,我们选择了LCD1602显示采集的温度数据。

- 4 -

牡丹江师范学院学士学位论文(设计)

3 系统的硬件设计

3.1 硬件的系统组成

图3-1硬件系统组成图

Figure 3-1 Hardware system diagram

本系统的功能是监测温度数据,如图3-1,首先是由温度传感器检测环境温度,然后由温度传感器将其转化为数字信号,再将该数字信号传给发送端MCU,由其进行数据处理;送到显示模块进行显示,以及将数据传送给无线发送模块,由其将数据发送到接收端;当接收端MCU接收到数据时,进行数据处理,然后通过串口通信传给PC机,从而实现PC机对温度数据实时监测;构成总电路图见附录1。

3.2 ATmega16主控芯片介绍

ATmega16以AVR RISC结构为基本结构,属于8位CMOS低功耗微控制器。ATmega16的数据吞吐率可高达1MIPS/MHz,先进的指令集以及单时钟周期指令执行时间的应用,从而系统在功耗和处理速度之间的冲突得到缓解。

ATmega16有一下特征:16K字节可编程Flash(同时可读写,即RWW),1K字节SRAM,512字节EEPROM,32个通用寄存器,32个通用I/O口线,用于边界扫描的JTAG接口,可在片内进行调试与编程,三个定时器/计数器(T/C),片内/外部中断,可编程的串行USART,有初始条件检测器的通用串行接口,8路10位

- 5 -

牡丹江师范学院学士学位论文(设计)

具有可选差分输入级可编程增益(TQFP 封装)的ADC,具有片内振荡器的可编程看门狗定时器,一个SPI串行端口,以及六个可以通过软件进行选择的省电模式。工作于空闲模式时CPU停止工作,而USART、两线接口、A/D转换器、SRAM、T/C、SPI 端口以及中断系统继续工作;掉电模式时晶体振荡器停止振荡,所有功能除了中断和硬件复位之外都停止工作。

3.3 DS18B20温度传感器工作原理

DS18B20利用集成技术,将温度检测和数字数据输出集成到一个芯片内部,从而增强抗干扰力。其一个工作周期可分为即温度检测和数据处理两个部分。DS18B20共有三种形态的存储器资源,它们分别是:用于存放DS18B20ID编码的ROM只读存储器,由前面8位是单线系列编码(DS18B20的编码是19H),中间48位是芯片唯一的序列号,后面8位是以上56的位的CRC码(冗余校验)组成位数据。数据不由用户更改,在出厂时已经由厂商设置好了。RAM 数据暂存器用于内部计算和数据存取,数据在掉电后丢失,DS18B20共9个字节RAM,每个字节为8位。第1、2个字节是温度转换后的数据值信息,第3、4个字节是用户EEPROM(常用于温度报警值储存)的镜像。在初始化时值将被刷新。用户第3个EEPROM的镜像在第5个字节中。计数寄存器在第6、7、8个字节中,目的是让用户设置温度分辨率的,同时也是内部温度转换、换算的暂时存储单元。第9个字节为前8个字节的CRC码。

引脚定义:

(1)DQ为单数据总线,是数字信号输入/输出端; (2)GND为电源地;

(3)VDD为外接供电电源输入端(在寄生电源接线方式时接地)。 控制器对DS18B20操作流程:

(1)复位:要使用DS18B20,首先是要复位,由控制器(单片机)给DS18B20单总线发送一个至少480μs的低电平信号,当DS18B20接到此复位信号后则会在15~60μs后回发一个芯片存在的脉冲,并表明初始化成功。

(2)控制器发送ROM指令:确定DS18B20存在后就可以发送ROM指令了,

- 6 -

牡丹江师范学院学士学位论文(设计)

ROM指令共有5条, ROM指令分别是读ROM数据、指定匹配芯片、跳跃ROM、芯片搜索、报警芯片搜索。ROM指令为8位长度,功能是对片内的位光刻ROM进行操作。多个器件也可以同时挂载在一条单总线上,此时通过每个器件独有的ID来区分,如果挂载一个的话,就直接可以跳过ROM指令了。

(3)控制器对存储器进行操作:在DS18B20接收到ROM指令之后,接着就可以对存储器进行操作了。操作指令同样为8位,共6条,分别是写RAM数据、读RAM数据、把RAM数据复制到EEPROM、温度转换(500μs)、将EEPROM中的警告值拷贝到RAM、工作方式转换。

当主机收到DSl8B20的响应信号后,便可以发出ROM操作命令之一,这些命令如下:

指令代码

代码

Skip ROM(跳跃ROM指令)[CCH]

这条指令不读取ROM编码,在单总线挂接一个DS18B20时,选用此指令可节省时间,如果在多芯片挂接时

则不能跳过。

Read Scratchpad (从RAM中读数据)[BEH]

此指令将从RAM中读数据,读取范围地址0到地址9,可利用复位信号终止读取,不读后面不需要的地址区域,可以节省时间。

Convert T(温度转换)[44H]

接到此指令,芯片将转换一次温度,将结果放入RAM的第1、2地址。一般芯片在转化温度值时用时比较长,在寄生工作方式时,转化温度后,强上拉并至少保持500ms,来确保芯片完成转化。

与DS18B20的每次动作都是由单片机的复位脉冲和DS18B20的应答脉冲开始的。过程就是,单片机先发一个复位脉冲,保持低电平480μs~960μs;单片机释放总线,等待DS18B20的应答脉冲;单片机从发送完复位脉冲到再次控制总线至少要等待480 μs。

读时隙需15~60μs,写时隙需要15~75 μs,且在2次的写时隙之间至少需要1μs的恢复时间。写时隙起始于单片机拉低总线。

- 7 -

牡丹江师范学院学士学位论文(设计)

3.4 nRF24L01无线模块的工作原理

3.4.1 nRF24L01芯片概述

nRF24L01是一款新型单片射频收发器件,工作于2.4 GHz~2.5 GHz ISM频段。内部集成了频率合成器、功率放大器、晶体振荡器、调制器等功能模块,也内嵌了增强型ShockBurst技术,其中可通过程序进行配置输出功率和通信频道。

nRF24L01主要特性如下: GFSK调制;

硬件集成OSI链路层;

具有自动应答和自动再发射功能; 片内自动生成报头和CRC校验码; 数据传输率为l Mb/s或2Mb/s; SPI速率为0 Mb/s~10 Mb/s; 125个频道;

可兼容其它nRF24L01系列器件; QFN20引脚4 mm×4 mm封装; 电源电压为1.9 V~3.6 V。 3.4.2 引脚功能描述

如图3-2所示,是nRF24L01的封装及引脚排列,以下是引脚功能:

- 8 -

牡丹江师范学院学士学位论文(设计)

图3-2 nFR24L01封装图

Figure 3-2 nFR24L01 packaging figure

CE:使能端;

CSN,SCK,MOSI,MISO:SPI引脚端,可配置nRF24L01模式; IRQ:中断标志; VDD:电源输入端; VSS:电源地; XC2,XC1:晶振引脚;

VDD_PA:输出为1.8 V,为功率放大器供电; ANT1,ANT2:天线接口; IREF:参考电流输入。 3.4.3工作模式

nRF241L01有发射、接收、空闲及掉电四种工作模式,如表1所示。 待机模式1:用于降低电流损耗,晶体振荡器处于工作状态; 待机模式2:进入此模式只需FIFO寄存器为空且CE = 1; 待机模式:所有配置字保留。

在掉电模式下电流消耗最小,同时nRF24L01也不工作,但配置寄存器的值仍然有效。

- 9 -

牡丹江师范学院学士学位论文(设计) 表1 nRF24L01四种工作模式 Table 1 nRF24L01 four work modes

模式 接收模式 发射模式 发射模式 待机模式2 待机模式1 掉电 PWR_UP 1 PRIM_RX 1 CE 1 FIFO寄存器状态 - 1 0 1 数据在TX FIFO寄存器中 停留在发送模式,直至数据发送完 TX FIFO为空 1 0 1→0 1 0 1 1 - 0 无数据传输 0 - - - 3.4.4工作原理

发射数据时,配置nRF24L01为发射模式:按照时序由SPI口把接收节点地址TX_ADDR和有效数据TX_PLD写入nRF24L01缓存区,CSN为低时连续写入TX_PLD,TX_ADDR在发射初写入一次即可,然后CE置为高电平并保持至少10μs,延迟130μs后发射数据。

接收数据时, 配置nRF24L01为接收模式,延迟130μs,等待数据的到来。当地址和CRC有效时,就将数据包写入RX_FIFO中,同时中断标志位RX_DR置高,IRQ变低,产生中断,通知MCU去获取数据。如图3-3,图3-4,给出SPI操作及时序图:

- 10 -

牡丹江师范学院学士学位论文(设计)

图3-3 SPI读操作 Figure 3-3 SPI read operation

图3-4 SPI 写操作 Figure 3-4 SPI write operation

3.4.5 配置字

SPI口为同步串行通信接口,最大传输速率为10 Mb/s,传输时低位字节优先,高位字节接在后面。但单个字节先高后低。与SPI有关的指令共有8个,由MOSI输入指令。MCU从MISO获取相应的状态和数据信息。

nRF24L0l的配置寄存器可以定义所有的配置字,通过SPI口可以轻松访问配置寄存器。nRF24L01 共有25个配置寄存器,如表2所示,是最常用的配置寄存器。

表2 常用配置寄存器

Table 2 Common configuration register

地址(H) 00 01 寄存器名称 CONFIG EN_AA - 11 -

功 能 设置24L01工作模式 设置接收通道及自动应答

牡丹江师范学院学士学位论文(设计)

02 03 04 07 0A~0F 10 11~16 EN_RXADDR SETUP_AW SETUP_RETR STATUS RX_ADDR_P0~P5 TX_ADDR RX_PW_P0~P5 使能接收通道地址 设置地址宽度 设置自动重发数据时间和次数 状态寄存器,用来判定工作状态 设置接收通道地址 设置接收接点地址 设置接收通道的有效数据宽度 3.4.6 nRF24L01模块的原理图

如图3-5所示,nRF24L01单端匹配网络:晶振,偏置电阻,去耦电容。

图3-5 nRF24L01单端50Ω射频输出电路原理图

Figure 3-5 nRF24L01 50 Ω single-ended rf output circuit principle diagram

- 12 -

牡丹江师范学院学士学位论文(设计)

3.5 发送端显示模块设计

本设计在发送端采用LCD1602液晶显示模块来显示温度, 上拉电阻提高PB驱动能力,PB作为数据输出并作为LCD的驱动,PD口的PD6~PD4分别作为液晶显示模块的使能信号EN,RW端则配置成写,数据/命令选择RS。具体电路如图3-6所示。

图3-6 LCD1602液晶显示模块电路图

Figure 3-6 LCD1602 LCD display module circuit diagram

3.6 接收端与PC机通信模块设计

本系统采用MAX232来完成转换电平。MAX232内部有电压倍增电路和转换电路,仅需+5V电源便可工作,使用十分方便, MAX232的T1 IN引脚连接ATmega16的串行输入口线TXD,R1 OUT引脚连接ATmega16的串行输入口线RXD,MAX232的T1 OUT、R1 IN分别于与RS232的2、3引脚相连。MAX232泵电源引脚必须接0.1μf 电容,如图3-7中的C7、C8、C9、C10。

- 13 -

牡丹江师范学院学士学位论文(设计)

图3-7 单片机与PC机串口通信电路

Figure 3-7 MCU and PC serial communication circuit

- 14 -

牡丹江师范学院学士学位论文(设计)

4 系统的软件设计

4.1 发送端软件设计

本系统发送端采用DS18B20温度传感器采集温度,经ATmega16收集处理数据,温度数据由LCD1602显示,再由nRF24L01模块发送到接收端。其中包括DS18B20和nRF24L01模块的初始化配置等。软件流程图如图4-1。

图4-1 发送端软件流程图

Figure 4-1 The sender software flow chart

4.2 接收端软件设计

本系统接收端主要完成接收发送端温度数据,在通过串口通信,将数据发送到PC端。软件过程包括nRF24L01初始化,串口初始化等,过程如图4-2。

- 15 -

牡丹江师范学院学士学位论文(设计)

图4-2 接收端软件流程图

Figure 4-2 The receiver software flow chart

- 16 -

牡丹江师范学院学士学位论文(设计)

5 系统的调试

在不通电提前下,用万用表检查线路的连通性,并核对元器件的型号、规格。特别注意电源的短路问题,并重复检查地址总线、数据总线、控制总线是否存在相互间的短路或其他信号线的短路。晶体振荡器和电容应尽可能靠近单片机以减少寄生电容,确保振荡器稳定和可靠地工作。我们仔细检查了本系统的所有元件以及连线,所以此步骤不会发生故障。

在通电前提下,检查各器件引脚的电位是否正常。

其中遇到的问题很多,如焊接电路线不合格,中间有些许断路或虚焊,造成失败。还有USB电源电压经过供电给负载,电压下降0.5V,致使单片机不工作的问题。

我们进行的是单点通信,传输温度数据。发送端采集温度,在LCD1602上显示,并发送到接收端。其结果如图5-1。

图5-1 发送端温度显示

Figure 5-1 The sender temperature display

接收端接收到数据并通过串口通信发送到PC机客户端,PC端显示如图5-2。

图5-2 接收端上传给PC机的温度数据显示

Figure 5-2 The receiver to the temperature of the PC data show

- 17 -

牡丹江师范学院学士学位论文(设计)

结 束 语

单片机数据采集与处理是非常重要的应用领域,除电信号之外,单片机还可以运用传感器实现对非电信号的采集转化。我们的设计就是一个非常有利的证明。本设计采用一种数字式的温度传感芯片DS18B20实现了单片机温度监测系统。

本设计内容重点:

1.nRF24L01无线传输模块的操作。 2.DS18B20的各种操作命令。 3.单片机LCD1602显示。 4.单片机的串口通信。 研究展望:

智能无线温度监测系统正朝着高精度、多功能、总线标准化、高可靠性及安全性和网络温度监测器、研制单片测温测温监测系统等高科技的方向迅速发展。

1.提高温度监测系统的精度和分辨力

在21世纪初期就推出了智能无线温度监测系统,当时采用的是8位A/D转换器,其测温精度较低,分辨力只有2°C。目前,世界其他国家已相继推出了多种高精度、高分辨力的智能温度传感器,所用的是9~12位A/D转换器,分辨力一般都可达0.5~0.0625°C。为了提高多通道智能无线温度监测系统的转换速率,也有的芯片采用高速逐次逼近式A/D转换器。

2.增加温度监测系统的测试功能

新型智能无线温度监测系统的测试功能也在不断增强。比如,采用DS1629型单总线温度传感器增加了实时日历时钟(RTC),使其功能更加完善。DS1624还增加了存储功能,可将短信息存储于芯片内部256字节的E2PROM存储器。另外,智能无线温度监测系统正从单通道向多通道的方向发展,这就为研制和开发多路无线温度监测系统创造了优良条件。

智能无线温度监测系统具有多种工作模式,主要有单次转换、连续转换、待机模式,有的还提供低温极限扩展模式,操作非常简单。对某些智能无线温度监测系统而言,主机(外部微处理器或单片机)还可通过配置相应的寄存器来设置其

- 18 -

牡丹江师范学院学士学位论文(设计)

A/D转换速率,分辨率及最大转换时间。

最后敬请各位专家、老师和同学对论文提出宝贵的指导意见和建议。

- 19 -

牡丹江师范学院学士学位论文(设计)

参考文献

[1] 马潮.AVR单片机嵌入式系统原理与应用实践[M].北京:北京航天航空大学出版社,2011.8.1.

[2] 老杨.举.AVR单片机工程师是怎样炼成的:基于C语言+Proteus仿真[M].北京:电子工业出版社,2012.11.1

[3] 彭伟.单片机C语言程序设计实训100例[M].北京:北京航空航天大学出版社,2010.5

[4] 何钦铭.C语言程序设计(第2版)[M].北京:高等教育出版社,2012.3 [5] 吕秀锋.C语言程序设计现代方法(第2版)[M].北京:人民邮电出版社,2010.4 [6] 徐科军.传感器与检测技术(第3版)[M].北京:电子工业出版社,2011.9 [7] 樊尚春.传感器技术及应用(第2版)[M].北京:北京航天航空大学出版社, 2010.10

[8] 赵广林.常用电子器件识别/检测/选用一读通(第2版)[M].北京:电子工业出版社,2011.3

[9] 李朝青.单片机原理及接口技术(第3版)[M].北京:北京航空航天出版社,2009.

[10] 张毅刚.单片机应用设计[M].哈尔滨:哈尔滨工业大学出版社社,2009. [11] 沈红卫.单片机应用系统设计实例与分析[M].北京:航天航空大学出版社,2008.

[12] 康华光.数字电子技术基础(第五版)[M].北京:高等教育出版社,2010.431~456

[13] 龙一鸣等编著.单片机总线扩展技术[M].北京:北京航空航天大学出版社,1993

[14] 康华光.模拟电子技术基础(第五版)[M].北京:高等教育出版社,2009. [15] 傅劲送.电子制作实例集锦[M].福州: 福州科学技术出版社,2006

- 20 -

牡丹江师范学院学士学位论文(设计)

致 谢

在此,衷心地感谢我的指导教师徐晓雨老师!在我毕业设计阶段,他始终严格要求我们,鼓舞我们,为本论文的顺利完成给予莫大的关注与指导。徐老师思维敏捷、经验丰富,修改论文效率特别高,也真是把学生的事情切切实实的落到实处,这给我留下了深刻的印象。在他的热心指导下使我能满怀信心地进行毕业设计,学会了地解决问题,使我的创造性思维得以锻炼,让我能胜利完成了本论文的编撰工作。徐老师的真诚、热心和严肃同样使我印象很深,正是这样,我才学到了很多知识,再次表示对徐老师深深的谢意!

大学入学以来,各位老师一直以来的辛勤工作和谆谆教导使我能充实地度过这难忘的四年,提高了我的综合素质、专业理论知识学习能力和实践工作能力。此次毕业设计和论文撰写过程中,也得到了许多同学的关心、指导和帮助,在此,我向我的同学和各位老师表示诚挚的感谢!

- 21 -

牡丹江师范学院学士学位论文(设计)

附录1总原理图

图1 发送端原理图

Figure 1 The principle diagram of the sender

图2 接收端原理图

Figure 2 The principle diagram of the receiver

- 22 -

牡丹江师范学院学士学位论文(设计)

附录2 程序清单

/********************发送端程序************************/ #include #include #include\"1602.h\" #include\"DS18B20.h\"

#include\"AVR_nRF24L01.h\" #define uchar unsigned char #define uint unsigned int

uint temp,mflag=0;//为1时,读到的温度为负数 uchar temp_TX; uchar wz[]={\".\

uchar fh[]={\"-\//负号 uchar space[]={\" \

uchar table[]={\"tempera:\

uchar dw[]={0xdf,0x43};//单位

void Delay_ms(uint timer) {

uint j=0;

while(timer--) { for(j=1124;j>0;j--) { ; } } }

void beep1() {

DDRD=0XFF; PORTD=0xff; Delay_ms(200); PORTD=0; }

void beep2() {

PORTD=0; Delay_ms(200);

- 23 -

牡丹江师范学院学士学位论文(设计)

PORTD=0xff; }

void main_init(void) {

DDRD=0XFF; PORTD=0XFF; DDRB=0XFF; PORTB=0XFF;

Lcd_Init();

DS18B20_init(); nRF24L01_init(); }

void Get_Temperature(void) {

uchar i,j;

DS18B20_init();

DS18B20_Write_Byte(0xcc); DS18B20_Write_Byte(0x44); Delay_ms(300);// DS18B20_init();

DS18B20_Write_Byte(0xcc); DS18B20_Write_Byte(0xbe);

i=DS18B20_Read_Byte();

j=DS18B20_Read_Byte();//msb temp_TX=j%16*16+i/16; if((j&0xf8)== 0x00) {

mflag=0;

temp=j*256+i; temp=temp*0.625; } else {

mflag=1; j=~j; i=~i+1; if(i==0) j++;

temp=j*256+i;//26.8

temp=temp*0.625;//268*/

- 24 -

牡丹江师范学院学士学位论文(设计)

} }

void Display_Temperature(void) {

uchar bai,shi,ge,xs; if(mflag) {

shi=temp/100; ge =temp%100/10; xs =temp%10;

LCD_Write_Char(1,0,8,table); if(shi!=0) {

LCD_Write_Char(1,9,1,fh); LCD_Write_Num(1,10,shi); LCD_Write_Num(1,11,ge);

LCD_Write_Char(1,12,1,wz);//在第一行14列位置显示1个字符'.' LCD_Write_Num(1,13,xs); LCD_Write_Char(1,14,2,dw); } else {

LCD_Write_Char(1,10,1,fh); LCD_Write_Num(1,11,ge);

LCD_Write_Char(1,12,1,wz);//在第一行14列位置显示1个字符'.' LCD_Write_Num(1,13,xs); LCD_Write_Char(1,14,2,dw); } } else {

bai=temp/1000;

shi=temp%1000/100; ge =temp%100/10; xs =temp%10;

LCD_Write_Char(1,0,8,table);

if(bai==0) LCD_Write_Char(1,8,1,space); else if(bai!=0) LCD_Write_Num(1,8,bai); if(shi==0) LCD_Write_Char(1,9,1,space); else if(shi!=0) LCD_Write_Char(1,9,1,space); LCD_Write_Num(1,9,shi); LCD_Write_Num(1,10,ge);

- 25 -

牡丹江师范学院学士学位论文(设计)

LCD_Write_Char(1,11,1,wz);//在第一行11列位置显示1个字符'.' LCD_Write_Num(1,12,xs); LCD_Write_Char(1,13,2,dw); } }

void main(void) {

uchar tx[2]; main_init(); beep1(); while(1) {

Get_Temperature(); tx[0] = 1;

tx[1] = temp_TX;

nRF24L01_TX_Mode(tx); Display_Temperature(); Delay_ms(10); }

/*******************接收端程序**********************/ #include #include #include\"uart.h\"

#include\"AVR_nRF24L01.h\" #define uchar unsigned char #define uint unsigned int

uchar rx_buf[TX_PLOAD_WIDTH]; void delay_ms(uint timer) {

uint j=0;

while(timer--) { for(j=1124;j>0;j--) { ; } } }

void main() {

- 26 -

牡丹江师范学院学士学位论文(设计)

uchar i;

Uart_Init(9600); nRF24L01_init(); beep1(); while(1) {

if(nRF24L01_RxPacket(rx_buf)) {

for(i=0;i<2;i++) {

Uart_Send_Data(rx_buf[i]); delay_ms(10); } } }

- 27 -

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- huatuo0.cn 版权所有 湘ICP备2023017654号-2

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务