




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、精选优质文档-倾情为你奉上基于单片机的无线温度采集报警系统设计 基于单片机的无线温度采集报警系统设计 基于单片机的无线温度采集报警系统设计 摘 要 本文所介绍的是一种采用单总线数字式温度传感器DS18B20、AT89C52单片机、1620LCM液晶显示器、数码管及nRF24L01无线收发一体模块组成的新型温度无线采集报警系统,并使用数码管显示器将所采集温度在采集端显示,并无线传输到接收模块用1620LCM液晶显示器显示出来。 该系统以 AT89C52单片机为控制核心,利用新型一线制温度传感器 DS18B20测量温度值以及高可靠无线收发模块nRF24L01实现环境温度的无线采集和报警。 系统测温
2、范围为-50+120,测量精度为 0.5。 用户可以通过按键K0、K1、K2、K3随时自定义报警上、下限值,一旦温度超过极限值,接收端单片机便启动报警系统。 该系统精度高、测温范围广、报警及时,可广泛应用于基于单片机的温度无线采集报警场合。 关键词:AT89C52单片机;无线温度采集;DS18B20;nRF24L01无线传输 19 Abstract This article introduced a new temperature wireless acquisition alarm system .It consist a single bus digital temperature sen
3、sor DS18B20, AT89S52 SCM, 1620 LCM LCD monitor, digital pipe and nRF24L01 wireless transceiver module . It use digital tube display temperature in the collection and the temperature that wireless transmission to receiving module with 1620 LCM LCD display. this system use AT89S52 SCM as control core,
4、 use the new a wire temperature sensor DS18B20 measuring temperature and high reliable wireless transceiver module nRF24L01 realize environmental temperature wireless data collection and alarm. Temperature measurement system for-50 scope+ 120 , measuring precision of 0.5 . The user can through the k
5、ey K0, K1, K2, K3 custom alarm at any time, and have lower limit, once the temperature over limit, the receiver single-chip microcomputer start alarm system. The system have high precision, temperature measuring range, alarm in time, and can be widely used in the temperature of the acquisition based
6、 on single chip wireless alarm occasion. Keywords: AT89S52 SCM; Wireless temperature gathering; DS18B20; NRF24L01 目 录 摘 要I AbstractII 1 概述1 1.1 选题意义1 1.2 设计功能要求1 1.3 整体方案论证1 1.4 无线数据采集器系统框图3 2 温度无线采集报警系统的主要元件介绍4 2.1 温度测量传感器DS18B20的介绍4 2.1.1 DS18B20概述4 2.1.2 内部结构5 2.1.3 DS18B20通信协议6 2.1.4 温度数据的计算处理方法
7、7 2.2 无线发射模块nRF24L01介绍7 2.2.1 概述7 2.2.2 工作模式8 2.2.3 SPI 指令及时序10 3 系统硬件电路设计11 3.1 AT89C52单片机最小系统11 3.2 温度检测模块电路12 3.3 温度显示模块电路12 3.4 发射电路模块14 3.5 接收电路模块14 4 系统软件设计15 4.1 主程序15 4.2 子程序16 5 结论19 参考文献21 附录一22 附录二24 附录三25 致 谢43 1 概述 1.1 选题意义 温度是工业、农业生产中常见和最基本的参数之一,由于有些场合生产环境恶劣,工作人员不能长时间停留在现场观察设备是否运行正常,就需
8、要无线采集数据并传输数据到一个环境相对好的操控室内,这样就会产生数据传输问题。 由于厂房大、需要传输数据多,使用传统的有线数据传输方式就需要铺设很多很长的通讯线,浪费资源,占用空间,可操作性差,出现错误换线困难。 而且,当数据采集点处于运动状态、所处的环境不允许或无法铺设电缆时,数据甚至无法传输,此时便需要利用无线传输的方式进行数据采集。 在现实生活中,这种无线温度采集系统已经被成功应用于工农业、环境监测、军事国防、机器人控制等许多重要领域,而且类似于这种温度采集系统的无线通信网络已经被广泛的应用到民用和军事领域。 凡是布线繁杂或不允许布线的场合都希望能通过无线方案来解决。 为此,需要设计相应
9、的接口系统,控制这些射频芯片工作,完成可靠稳定的无线数据通信,这样的研究也变得更加有意义。 1.2 设计功能要求 (1)能够检测温度传感器DS18B20的状态。 (2)收发端都能够显示温度数据,以比较无线传输的正确性。 (3)无线传输50m左右。 (4)能够提供高低温报警,且能设定高低温报警值。 1.3 整体方案论证 根据各项功能的实现方法以及硬件连接方式,将整个系统划分为三大模块:温度数据采集模块,显示模块,无线通信模块。 主要是对温度数据采集模块,无线通信模块做出方案选择。 (1) 温度数据采集模块 在日常生活及工农业生产中,经常要用到温度的无线采集及控制,传统的测温元件有热电偶和热电阻。
10、 而热电偶和热电阻测出的一般都是电压,再转换成对应的温度,需要比较多的外部硬件支持。 方案一:采用热敏电阻,价格比较便宜,但热敏电阻精度低,可靠性不好。 用温度传感器如LM35,其输出的是模拟信号,需经过A/D转换后才能送人单片机。 这样电路较复杂,不易进行多点温度测量,其软件设计也比较难设计。 方案二:采用单总线温度传感器DS18B20,输出信号全数字化,便于控制,省去传统的测温方法的很多外围电路,且该芯片物理化学特性很稳定,它能用于工业测温元件。 DS18B20最大的特点是采用了单总线的数据传输,测温系统的电路就比较简单,体积不大。 而且很容易实现多点温度测量。 (2) 无线通信模块 方案
11、一:采用F05P+J04V组成的低成本的无线收发模块,价格比较便宜,但对基带信号有较高要求,对无线收发的布局布线也有一定的要求且可靠性比较低。 需要加上一部分外围电流才能实现收发功能。 方案二:采用NRF24L01+作为无线收发模块,由于其高可靠性的数据收发和极低的电流消耗,已经广泛使用于各种无线数据通信。 NRF24L01+把所有外围电路都集成在一块PCB板上,因此外围电路简单,软件设计只需遵循一定的时序,也比较简单。 本设计温度数据采集模块和无线通信模块都采用方案二。 (3)显示模块 方案一:由HD44100驱动的LCD显示屏来实现温度的显示。 本系统的按键功能主要有查看温度数据信息和设置
12、温度报警值,以及其它系统信息显示切换。 显示内容更丰富,单片机控制LCM模块时,只要送人相应的命令和数据就可实现所需要的内容,这种模块与单片机接口简单,使用灵活方便。 方案二:用七段数码管和按键来做人机交互界面,优点是价格便宜,程序简单,缺点是硬件电路复杂,不方便同时显示温度以及其它系统信息,界面表达不能满足要求。 从上述两个方案的对比中看出,发送端选择方案一以作比较,接收端选择方案二,使显示信息更丰富。 1.4 无线数据采集器系统框图 本温度无线采集报警电路设计采用美国DALLAS半导体公司生产的温度传感器DS18B20作为温度检测元件,测温范围为-55125,最高分辨率可达0.0625。
13、发射与接收电路采用Nordic公司生产的NRF24L01+作为发射与接收元件,传输距离可达100m。 DS18B20可以直接读出被测温度值,而且采用三线制与单片机相连,减少了外部的硬件电路,具有低成本和易使用的特点,NRF24L01+具有自动重发功能、数据包识别及CRC校验功能,增强型ShockBurstTM模式可同时控制应答及重发功能而无需增加MCU的工作量。 按照系统设计功能的要求,确定系统由6个模块组成:主控制器、测温电路、发送电路、接收电路、显示电路和报警电路。 温度无线采集报警系统结构框图如图1所示 显示 电路 扫描 电路 DS18B20 STC89C52 主 控 制 器 发射电路
14、接收电路 报警 电路 STC89C52 主 控 制 器 显示 电路 图1 温度无线采集报警系统结构框图 2 温度无线采集报警系统的主要元件介绍 2.1 温度测量传感器DS18B20的介绍 2.1.1 DS18B20概述 (1)引脚如图2 图2 DS18B20封装及引脚排列图 GND接地。 DQ为数字信号输入输出端。 VDD为外接电源输入端(在寄生电源接线方式时接地) (2)DS18B20与单片机的连接方式 单线数字温度传感器DS18B20与单片机连接电路非常简单,引脚1接地(GND),引脚3(VCC)接电源+5V,引脚2(DQ)接单片机输入输出一个端口,电压+5V和信号线(DQ)之间接有一个4
15、.7k的电阻。 由于每片DS18B20含有唯一的串行数据口,所以在一条总线上可以挂接多个DS18B20芯片。 2.1.2 内部结构 DS18B20采用3脚PR35封装或8脚SOIC封装,其内部结构框图3 64位ROM的位结构如图4。 开始位是产品类型的编号;接着是每个器件的唯一序号,共有48位;最后8位是前面56位的CRC检验码,这也是多个DS18B20可以采用单线进行通信的原因。 非易失性温度报警触发器TH和TL,可通过软件写入用户报警上下限数据。 图3 DS18B20内部结构图 8位检验CRC 48位序列号 8位工厂代码 MSB LSB MSB LSB MSB LSB 图4 64位ROM结
16、构图 DS18B20温度传感器的内部存储器还包括一个高速暂存RAM和一个非易失性的可电擦除的E2PROM。 高速暂存RAM的结构为9字节的存储器,结构如图5。 前2字节包含测得的温度信息。 第3和4字节是TH和TL的拷贝,是易失的,每次上电复位时被刷新。 第5字节为配置寄存器, 高速暂存RAM的第6、7、8字节保留未用,表现为全逻辑1。 第9字节是前面所有8字节的CRC码可用来检验数据,从而保证通信数据的正确性。 温度LSB 温度MSB TH用户字节1 TL用户字节2 配置寄存器 保留 保留 保留 CRC 图5 高速暂存RAM结构图 1字节 2字节 3字节 4字节 5字节 6字节 7字节 8字
17、节 9字节 当DS18B20接收到转化命令后,开始启动转化。 转化完成后的温度值就以16位的带符号扩展的二进制补码形式存储在高速暂存RAM的第1、2字节中。 单片机可以通过单线接口读出该数据。 读数据时,低位在先,高位在后,数据格式以0.0625LSB形式表示。 DS18B20完成温度转化后,就把测得的温度值与RAM中的TH、TL字节内容作比较,若TTH或TTL,则将该器件内的报警标志位置位,并对主机发出的报警搜索命令作出响应。 因此,可用多只DS18B20同时测量温度并进行报警搜索。 2.1.3 DS18B20通信协议 在对DS18B20进行读写编程时,必须严格保证读写时序,否则将无法读取温
18、度结果。 根据DS18B20通信协议,主机控制DS18B20完成温度转化必须经过3个步骤:每一次读写之前都要对DS18B20进行复位,复位成功后发送一条ROM指令,最后发送RAM指令,这样才能对DS18B20进行预定的操作。 复位要求主CPU将数据线下拉500us,然后释放,DS18B20收到信号后等待1660us,然后发出60240us的存在低脉冲,主CPU收到此信号表示复位成功。 DS18B20的ROM指令如表1,RAM指令如表2。 表1 ROM指令表 指 令 约定代码 功 能 温度变化 44H 启动DS18B20进行温度转换,12位转换时最长为750ms(9位为93.75ms),结果存入
19、内部9字节RAM中 读暂存器 0BEH 读内部RAM中9字节的内容 写暂存器 4EH 发出向内部RAM的3、4字节写上、下限温度数据命令,紧跟该命令之后是传送两字节的数据 复制暂存器 48H 将RAM中第3、4字节的内容复制到E2PROM中 重调E2PROM 0B8H 将E2PROM中内容恢复到RAM中的第3、4字节 读供电方式 0B4H 读DS18B20的供电模式。 寄生供电时DS18B20发送0,外接电源供电DS18B20发送1 表2 RAM指令表 指 令 约定代码 功 能 读ROM 33H 读取DS18B20温度传感器ROM中的编码(即64位地址) 符合ROM 55H 发出命令之后,接着
20、发出64位ROM编码,访问单总线上与该编码对应的DS18B20,使之作出响应,为下一步对该DS18B20读写作准备 搜索ROM 0F0H 用于确定挂接在同一总线上DS18B20的个数和识别64位ROM地址,为操作各器件作好准备 跳过ROM 0CCH 跳过ROM工作 报警搜索命令 0ECH 执行后只有温度超过设定值上限或下限的芯片才能作出响应 2.1.4 温度数据的计算处理方法 从DS18B20读取出的二进制值必须先转化成十进制值,才能用于字符的显示。 DS18B20的转换精度为912位可选,为了提高精度采用12位。 在采用12位转换精度时,温度寄存器里的值是以0.0625为步进的,即温度值为温
21、度寄存器里的二进制值乘以0.0625,就是实际的十进制温度值。 通过列举观察可以发现,一个十进制值与二进制值间有很明显的关系,就是把二进制的高字节的低半字节和低字节的高半字节组成一个字节,这个字节的二进制值化为十进制值后,就是温度值的百、十、个位值,而剩下的低字节的低半字节化成十进制后,就是温度值的小数部分。 因为小数部分是半字节,所以二进制值范围是0F,转化成十进制小数值就是0.0625的倍数(015倍)。 这样需要4位的数码管来显示小数部分。 实际应用不必有这么高的精度,采用一位数码管来显示小数,可以精确到0.1。 表3就是二进制与十进制的近似对应关系表。 表3 小数部分二进制与十进制的近
22、似对应关系表 小数部分二进制值 0 1 2 3 4 5 6 7 8 9 A B C D E F 十进制值 0 0 1 1 2 3 3 4 5 5 6 6 7 8 8 9 2.2 无线发射模块nRF24L01介绍 2.2.1 概述 nRF24L01 是一款工作在2.42.5GHz 世界通用ISM 频段的单片无线收发器芯片。 无线收发器包括:频率发生器、增强型SchockBurstTM 模式控制器、功率放大器、晶体振荡器、调制器、解调器。 输出功率、频道选择和协议的设置可以通过SPI 接口进行设置。 极低的电流消耗:当工作在发射模式下发射功率为-6dBm 时电流消耗为9mA,接收模式时为12.3m
23、A。 掉电模式和待机模式下电流消耗更低。 实物及模块如图6。 图6 nRF24L01实物 nRF2401及其外围电路如图7,包括nRF2401芯片部分、稳压部分、晶振部分、天线部分。 电压VDD经电容C1、C2、C3处理后为芯片提供工作电压;晶振部分包括Y1、C9、C10,晶振Y1允许值为:4MHz、8MHz、12 MHz、16 MHz,如果需要1Mbps的通信速率,则必须选择16MHz晶振。 天线部分包括电感L1、L2,用来将nRF2401芯片ANT1、ANT2管脚产生的2.4G电平信号转换为电磁波信号,或者将电磁波信号转换为电平信号输入芯片的ANT1、ANT2管脚。 图7 nRF24L01
24、模块电路 2.2.2 工作模式 nRF24L01 可以设置为以下几种主要的模式如表4 表 4 模式设置 模式 PWR_UP PRIM_RX CE FIFO寄存器状态 接收模式 1 1 1 - 发送模式 1 0 1 数据在TXFIFO寄存器中 发送模式 1 0 10 停留在发送模式,直至数据发送完 待机模式II 1 0 1 TXFIFO为空 待机模式I 1 - 0 无数据传输 掉电模式 0 - - - nRF24L01 在不同模式下的引脚功能如表5 表5 引脚功能 引脚名称 方向 发送模式 接收模式 待机模式 掉电模式 CE 输入 高电平>10us 高电平 低电平 - CSN 输入 SPI
25、片选使能,低电平使能 SCK 输入 SPI时钟 MOSI 输入 SPI串行输入 MISO 三态输出 SPI 串行输出 IRQ 输出 中断,低电平使能 nRF24L01 有如下几种数据包处理方式: ShockBurstTM(与nRF2401,nRF24E1,nRF2402,nRF24E2 数据传输率为1Mbps 时相同)。 增强型ShockBurstTM 模式。 ShockBurstTM 模式 ShockBurst 模式下nRF24L01 可以与成本较低的低速MCU 相连。 高速信号处理是由芯片内部的射频协议处理的,nRF24L01 提供SPI 接口,数据率取决于单片机本身接口速度。 Shock
26、Burst 模式通过允许与单片机低速通信而无线部分高速通信,减小了通信的平均消耗电流。 在ShockBurstTM 接收模式下,当接收到有效的地址和数据时IRQ 通知MCU,随后MCU 可将接收到的数据从RX FIFO 寄存器中读出。 在ShockBurstTM 发送模式下,nRF24L01 自动生成前导码及CRC 校验。 数据发送完毕后IRQ 通知MCU。 减少了MCU 的查询时间,也就意味着减少了MCU 的工作量同时减少了软件的开发时间。 nRF24L01 内部有三个不同的RX FIFO 寄存器(6 个通道共享此寄存器)和三个不同的TX FIFO 寄存器。 在掉电模式下、待机模式下和数据传
27、输的过程中MCU 可以随时访问FIFO 寄存器。 这就允许SPI接口可以以低速进行数据传送,并且可以应用于MCU 硬件上没有SPI 接口的情况下。 增强型的ShockBurstTM 模式: 增强型ShockBurstTM 模式可以使得双向链接协议执行起来更为容易、有效。 典型的双向链接为:发送方要求终端设备在接收到数据后有应答信号,以便于发送方检测有无数据丢失。 一旦数据丢失,则通过重新发送功能将丢失的数据恢复。 增强型的ShockBurstTM 模式可以同时控制应答及重发功能而无需增加MCU工作量。 nRF24L01 在接收模式下可以接收6路不同通道的数据。 每一个数据通道使用不同的地址,但
28、是共用相同的频道。 也就是说6个不同的nRF24L01设置为发送模式后可以与同一个设置为接收模式的nRF24L01 进行通讯,而设置为接收模式的nRF24L01 可以对这6 个发射端进行识别。 数据通道0是唯一的一个可以配置为40 位自身地址的数据通道。 15 数据通道都为8位自身地址和32位公用地址。 所有的数据通道都可以设置为增强型ShockBurst 模式。 nRF24L01 在确认收到数据后记录地址,并以此地址为目标地址发送应答信号。 在发送端,数据通道0被用做接收应答信号,因此,数据通道0 的接收地址要与发送端地址相等以确保接收到正确的应答信号。 nRF24L01配置为增强型的Sho
29、ckBurstTM 发送模式时,只要MCU 有数据要发送,nRF24L01就会启动ShockBurstTM 模式来发送数据。 在发送完数据后nRF24L01 转到接收模式并等待终端的应答信号。 如果没有收到应答信号, nRF24L01 将重发相同的数据包直到收到应答信号或重发次数超过SETUP_RETR_ARC 寄存器中设置的值为止,如果重发次数超过了设定值,则产生MAX_RT 中断。 只要收到确认信号,nRF24L01 就认为最后一包数据已经发送成功(接收方已经收到数据),把TX FIFO中的数据清除掉并产生TX_DS 中断(IRQ 引脚置高)。 2.2.3 SPI 指令及时序 SPI 接口
30、可能用到的指令在下面有所说明。 CSN 为低后SPI 接口等待执行指令。 每一条指令的执行都必须通过一次CSN 由高到低的变化。 参见表6。 表6 SPI 指令 指令名称 指令格式 操作 R_REGISTER 000AAAAA 读配置寄存器。 AAAAA指出读操作的寄存器地址。 W_REGISTER 001AAAAA 写配置寄存器。 AAAAA指出写操作的寄存器地址只有在掉电模式和待机模式下可操作。 R_RX_PAYLOAD 读RX有效数据:1-32字节。 读操作全部从字节0开始。 当读RX有效数据完成后,FIFO 寄存器中有效数据被清除。 应用于接收模式下。 W_RX_PAYLOAD 写TX
31、有效数据:1-32字节。 写操作从字节0开始。 应用于发射模式下。 FLUSH_TX 清除TXFIFO寄存器,应用于发射模式下。 FLUSH_RX 清除RXFIFO寄存器,应用于接收模式下。 在传输应答信号过程中不应执行此指令。 也就是说,若传输应答信号过程中执行此指令的话将使得应答信号不能被完整的传输。 REUSE_TX_PL 重新使用上一包有效数据。 当CE为高过程中,数据包被不断的重新发射。 在发射数据包过程中必须禁止数据包重利用功能。 NOP 空操作。 可以用来读状态寄存器。 图8、9给出了时序。 在写寄存器之前一定要进入待机模式或掉电模式。 在图8 、9中用到了下面的符号:Cn-SP
32、I 指令位,Sn-状态寄存器位 Dn-数据位. 图8 SPI 读操作 图9 SPI写操作 3 系统硬件电路设计 3.1 AT89C52单片机最小系统 单片机的时钟信号用来提供单片机片内各种操作的时间基准,时钟信号通常用两种电路形式得到:内部振荡和外部振荡。 MCS-51单片机内部有一个用于构成振荡器的高增益反向放大器,引脚XTAL1和XTAL2分别是此放大电器的输入端和输出端,由于采用内部方式时,电路简单,所得的时钟信号比较稳定,实际使用中常采用这种方式,在其外接晶体振荡器(简称晶振)或陶瓷谐振器就构成了内部振荡方式,片内高增益反向放大器与作为反馈元件的片外石英晶体或陶瓷谐振器一起可构成一个自
33、激振荡器并产生振荡时钟脉冲。 图10 晶振电路 图10中外接晶体以及电容C2和C1构成并联谐振电路,它们起稳定振荡频率、快速起振的作用,其值均为30PF左右,晶振频率选12MHz。 为了初始化单片机内部的某些特殊功能寄存器,必须采用复位的方式,复位后可使CPU及系统各部件处于确定的初始状态,并从初始状态开始正常工作。 单片机的复位是靠外电路来实现的,在正常运行情况下,只要RST引脚上出现两个机器周期时间以上的高电平,即可引起系统复位,但如果RST引脚上持续为高电平,单片机就处于循环复位状态。 复位后系统将输入/输出(I/O)端口寄存器置为FFH,堆栈指针SP置为07H, SBUF内置为不定值,
34、其余的寄存器全部清0,内部RAM的状态不受复位的影响,在系统上电时RAM的内容是不定的。 复位操作有两种情况,即上电复位和手动(开关)复位。 本系统采用手动复位方式。 图中R1和C3组成手动复位电路,其值R取为10K, C取为10F,如图11。 图11 复位电路 32 温度检测模块电路 DS18B20可以采用两种方式供电,一种是采用电源供电方式如图12,此时DS18B20的1脚接地,2脚作为信号线,3脚接电源.另一种是寄生电源供电方式,为保证在有效的DS18B20时钟周期内提供足够的电源,可用一个MOSFET管来完成对总线的上拉。 当DS18B20处于写存储器操作和温度A/D转换时,总线上必须
35、有强的上拉,上拉开启时间最大为10微秒.采用寄生电源供电方式是VDD和GND端均接地.由于单线制只有一根线,因此发送接口必须是三态的。 图12 DS18B20接口电路 3.3 温度显示模块电路 显示部分由1602LCM及数码管构成。 接收端采用LCM1602点阵液晶作为人机交互界面。 该LCD模块是由LCD驱动器,LCD控制器、少量的电阻电容以及LCD屏组成,质量轻、体积小、功耗低、显示内容丰富,提供。 此外,液晶显示接口简单方便,可直接与微处理器相连,实时显示采集所测试的温度值。 当实时温度超过设定的报警温度上、下限值,接收端由LCD显示发送端传来的温度信息,并发出报警声。 发射端采用数码管
36、显示,数码管要正常显示,就要用驱动电路来驱动数码管的各个段码,从而显示出我们要的数字,因此根据数码管的驱动方式的不同,可以分为静态式和动态式两类。 数码管动态显示是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划“a,b,c,d,e,f,g,dp“的同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,数码管哪位显示字形取决于单片机对位选通电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。 通过分时轮流控制各个数码管的
37、的COM端,就使各个数码管轮流受控显示,这就是动态驱动。 在轮流显示过程中,每位数码管的点亮时间为12ms,由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感。 本电路发射端由PNP三极管驱动数码管显示温度值,P2.4P2.7接数码管的位选端,控制数码管的动态显示。 发射端显示电路如图13,接收端显示电路如图14。 图13 数码管显示电路 图14 LCD显示电路 3.4 发射电路模块 发射功能由nRF24L01完成,其引脚MISO及MOSI与单片机进行通信,单片机将温度信息交给nRF24L01并以
38、(GFSK)的调制方式发送出去,如上图15。 图15 发射电路模块 3.5 接收电路模块 由nRF24L01收发一体芯片对温度信号进行接收解调,将接收到温度信息交由单片机进行处理,单片机控制显示器进行温度显示,如上图16。 图16 接收电路模块 4 系统软件设计 系统程序主要包括发送主程序,接收端主程序,读出温度子程序,温度转换命令子程序,计算温度子程序,显示数据刷新子程序,温度比较子程序,按键扫描子程序,发送子程序和接收子程序等。 4.1 主程序 (1)发送端主程序 发送端主程序的主要功能是负责温度的实时采集、读出并处理DS18B20的测量的当前温度值,温度测量每1s进行一次。 这样可以在一
39、秒测量一次被测温度,程序流程见图17。 结束 DS18B20复位 读取温度 数据转换 显示 发送 开 始 图17 发送端主程序流程图 结束 LCD初始化 接收温度信息 显示 温度值比较 开始 按键扫描 图18 接收端主程序 (2)接收端主程序 接收端主程序主要完成数据接收,显示,比较及报警。 其程序流图见图18。 4.2 子程序 (1)读出温度子程序 读出温度子程序的主要功能是读出RAM中的9字节,在读出时需进行CRC校验,校验有错时不进行温度数据的改写。 其程序流程图如图19所示。 开始 发跳过ROM命令 发读取温度命令 读取操作 数据读完 N 移入温度寄存器 Y 结束 图19 读出温度子程
40、序流程图 (2)温度转换命令子程序 温度转换命令子程序主要是发温度转换开始命令,当采用12位分辨率时转换时间约为750ms,在本程序设计中采用1s显示程序延时法等待转换的完成。 温度转换命令子程序流程图如图20所示。 发复位命令 发跳过ROM命令 发温度转换命令 结束 图20 温度转换流程图 (3)计算温度子程序 计算温度子程序将RAM中读取值进行BCD码的转换运算,并进行温度值正负的判定,其程序流程图如图21所示。 开始 温度零下? 温度值取补码置“” 小数位温度BCD值 整数位温度BCD值 结束 置“+” N Y 图21 计算温度流程图 (4)显示数据刷新子程序 显示数据刷新子程序主要是对显示缓冲器中的显示数据进行刷新操作,当最高显示位为0时将符号显示位移入下一位。 程序流程图如图22所示。 温度移入显示寄存器 十位数0? 百位数0? 十位数显示符号百位数不显示 百位数显示数据(不显符号) 结束 N N Y Y 图22 数据刷新子程序流程图 (5)发射数据子程序 首先进行初始化操作,初始化包括设置单片机IO和SPI相关寄存器两部分其可以和nRF24L01
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 银行消防培训试题及答案
- 地质勘查专业试题及答案
- 电气资料专业试题及答案
- 专业测试题及答案
- 安徽省江淮名校2024-2025学年高二上学期期中考试物理试卷(含答案)
- 网络内容行业技术规范
- 客户见面致辞示例
- 个人工作总结副科长
- 集土坑施工方案
- 老旧小区临水施工方案
- 用药错误应急演练
- 考前速记-专升本英语240个高频词汇
- 九年级《道德与法治》(上册)教学计划及教学进度
- 医院课件:《抗肿瘤药物分级管理培训》
- 电气防爆专项检查表
- 教科版小学科学六年级上册《1.7微生物与健康》课件
- (正式版)JBT 106-2024 阀门的标志和涂装
- 便利店委托运营协议
- 汉语言文学专业就业方向及就业前景调研报告
- 招商加盟营销方案
- 红军长征感人红色故事3-10分钟10篇
评论
0/150
提交评论