基于单片机的温度数据无线传输系统设计55页内容摘要:
式、空闲模式和掉电模式,通过配置寄存器来选择工作模式,在使用时NRF24L01 的引脚可以和单片机的任何端口 连接使用,但在编程控制时要注意。 NRF24L01 的引脚功能如表 21所示。 NRF24L01 与 NRF905 相 比较,在传输距离上 NRF905 优于 NRF24L01,但在价格上 NRF905 比 NRF24L01贵很多,并且在此次设计中不需要 较 远距离 的数据 传输,如果用 NRF905 的话就 会 显得浪费。 在使用中 NRF24L01 的 电路比较简单,软件设计部分相对简单许多。 结合以上分析无线模块选择 NRF24L01。 NRF24L01 引脚功能如图 24所示。 表 21 NRF24L01工作模式 工作 模式 PWR_UP PRIM_RX CE FIFO寄存器状态 接收模式 1 1 1 发射模式 1 0 1 数据在 TX_FIFO寄存器中 发射模式 1 0 1→0 停留在发送式 , 直至数据发送完 待机模式 2 1 0 1 TX_FIFO为空 待机模式 1 1 0 无数据传输 掉电 0 图 24 NRF24L01引脚 图 稳压器 AMS1117 的选择 AMS1117 属于正向的低压降压稳压器,固定输出版的 AMS1117 稳压器可按输出电压进行分类,分为 、 、 、 、 、 、 ,每个版的 AMS1117稳压器只能输出一种电压。 由于系统中的无线模块的所需要的电源电压为 ,所以稳压器选择 作为无线模块的电源。 稳压器的 实 物 如图25所示 ,其引脚功能从做到有分别为 GND, Vout, Vint。 图 25 DS18B20 与热敏电阻的选择 传统的温度检测元件大多数是用热敏电阻为传感器,利用热敏电阻来检测温度。 当用这种传统方法测量温度是会有很多的问题,这都源于热敏电阻不具有的可 靠性,容易出现问题,而且测温的准确性低,所测得的温度数据 还 必须通过特定的电路才能将数据 转换成数字信号 送给单片机处理。 DS18B20 引脚功能如图 26所示。 图 26 DS18B20引脚图 DS18B20 温度传 感器相比于传统的温度传感器具有很多优点。 在对其进行封装后可以适用于许多不同的环境中,根据不同的需要可以相应的改变外观。 在将封装后的 DB18B20 应用时,具有体积小,重量轻,形式多样,而且还不容易因为外力原因损坏的优点,可以适用于许多恶劣狭窄的环境中。 由于 DS18B20 温度传感器直接与单片机进行单线通信,就一根数据线连接,电路简单,接线方便,而且 DS18B20温度传感器的功能满足此次设计的所有要求。 所以在温度传感器上选择了 DS18B20。 LED 四位 数码管 与 LCD 液晶屏 的选择 在 LED 数码管和 LCD 液 晶屏的选择中我选择 的是 LED 数码管,因为平时学习的就是数码管,对数码管的使用和编程熟悉,虽然在硬件电路的 设计 上 LED 数码管比LED液晶屏 复杂多了,但在熟悉程度上还是 对 LED 数码管 比较熟悉。 数码管如果按段数划分的话,可以分为七段和八段 数码管 , 七 段和 八 段 的 区别在于 八段 的 数码管多 了 一个 显示位 , 即为小数点位 ( dp),这个小数点 使得 数码管能更准确的将内容显示出来了。 八段的数码管按能显示多少位数还可以分为 1位、2位、 3位、 4 位等 一体的数码管, 在这 些问题 上按需要进行选择。 由于此次显示 的内容 需要有小数点所以选择了八段数码 管,根据测温的需求选择了四 个 一体的数码管。 四位一体的数码管共用一组段选数据线,相比一个一体的电路简单,焊接容易,编程 量小 ,所以选择了四个一体的八段数码管。 实物如图 27所示。 图 27 四位八段数码管实物图 3 系统 硬件的设计 单片机的最小系统电路设计 以单片机为核心的 系统 ,最小系统是一个 必不可少的部分 ,它是维持单片机正常工作的基础。 最小系统的电路又可分为 晶振电路 和 复位电路 两个部分, 电路如图31所示。 ,晶振电路决定着单片机的正常工作周期。 这部分 电路使用的是 单片机的 XTAL2( 18 脚)和 XTAL1( 19 脚),在电路中电容的作用是对振荡频率起到微调,在电容大小的选择上是根据晶振频率的大小对应选择的,一般 6MHZ 的晶振选择 20pF 的电容, 12MHZ 的晶振选择 30pF 的电容。 , 这部分电路的连接用的是单片机的的 RST( 9脚)引脚,作用是给单片机一个高电平,持续的时间 大于 两个机器周期,可以对单片机进行复位操作。 复位 单路的设计 有好几种,在此次设计中,根据设计的需要我采用的是手动复位的方法。 在复位电路的 接法 上我采用的是最常用的接法, 只 由电阻和电容组成,电阻的大小为 1KΩ和 10KΩ,电容的大小为 10uF。 复位电路晶振电路P 1 . 0P 1 . 1P 1 . 2P 1 . 3P 1 . 4P 1 . 5P 1 . 6P 1 . 7P 2 . 7P 2 . 6P 2 . 5P 2 . 4P 2 . 3P 2 . 2P 2 . 1P 2 . 0P 0 . 0P 0 . 1P 0 . 2P 0 . 3P 0 . 4P 0 . 5P 0 . 6P 0 . 7RXD ( P 3 . 0 )TXD ( P 3 . 1 )T 0 ( P 3 . 4 )T 1 ( P 3 . 5 )( P 3 . 2 )I N T 0( P 3 . 3 )I NT 1( P 3 . 7 )RD( P 3 . 6 )WRV SSX 1X 2RE S ETV CC12345678910111213141516171819204039383736353433323130292827262524232221 10 μ F1 0 k 1 2 M Hz3 0 pF30 p FPSENAL E / P R O GEA / Vpp5V5V1k ST C8 9 C5 22k 图 31 复位电路 基于 DS18B20 的 测温 电路 的设计 温度检测 电路如图 32 所示。 DS18B20 温度传感器是通过一根单 数据 线和单片机的 I/O 口进行通信。 在此次的设计中采用的是 与传感器进行通信,通过单片机进行编程控制和数据处理。 在这次的设计中利用 DS18B20 作为测温器件,使用编程控制来实现对温度的自动测量,将温度数据转换为数字量输出。 123J1DS18B20+5V温度传感器R7 图 32 温度 检测 电路 基于 NRF24L01 的无线发射模 块 与接收模块 的设计 NRF24L01 无线模块是近期生产的一种新型射频收发模块,能够 完成 无线数据的发射与接收。 我在此次设计中用到的是 NRF24L01 无线模块的发送与接收功能,来完成对单片机处理后的数据进行发送和接收同样来自 NRF24L01 无线模块发射的数据传送给单片机进行处理。 在使用时 NRF24L01 无线模块输出的功率和无线通信的频段可以通过编程实现控制,此次设计中我用到了 NRF24L01 无线模块的六个控制端和单片机通讯,分别是 CE、 SCK、 MISO、 MOSI、 IRQ、 CSN,通过在每个端口串联一个 1KΩ的电 阻进行限流。 NRF24L01 无线模块的六个端口功能如下: CSN: 片 选 信号端 端, 低电平有效 ; SCK: 模块 控制的时钟线 ; MISO: 模块 控制数据线 ; MOSI: 模块 控制数据线 ; IRQ: 模块得 中断信号 ; CE: 模块 的模式控制线。 在此次设计中将 NRF24L01 作为 发射模块 时,各引脚 CSN、 MISO、 IRQ、 MOSI、SCK、 CE,对应的接 在 单片机的 、 、 、 、 、。 发射 模块的电路 如图 33所示。 + IRQ MISO MOSI SCK CSN CER11KR21KR31KR41KR51KR61K12345678GNDJ4 图 33 发射模块 电路图 在此次 设计中将 NRF24L01 作为 接收 模块时,各引脚 CSN、 MISO、 IRQ、 MOSI、SCK、 CE,对应的接 在 单片机的 、 、 、 、 、。 接收 模块的电路如图 34所示。 + IRQ MISO MOSI SCK CSN CER11KR21KR31KR41KR51KR61K12345678GNDJ4 图 34 接收 模块电路图 供电电路 的设计 AMS1117 是一个正向低压降稳压器,本设计采用的 是 ,为无线发射模块和接收模块提供 的电压。 此系统另外还有两个电容共同构成, 原理图和实物的引脚从左到右是对应的。 电路如图 35所示。 1 2 3U 2A M S 1 1 1 7 3 . 3+ 3 . 3 V+ 5 VC 60 . 1 u FC 73 3 u F / 2 5 V 图 35 S9012 放大电路 的设计 系统 中 发射模块与接收模块在这 使用这 部分 电路时, 作用是 完全 一样的,在硬件 的焊接 上 也 没有区别,所以就 放在一起介绍。 S9012 三极管是一种非常普遍的三极管,在很多家用电器里都有 用到 ,各种放大电路中也经常用到, S9012 三极管的应用是很广泛 的。 系统在显示模块 用的是动态扫描的方法, 没有用任何锁存芯片,会导致数码管在显示温度值时出现亮度不够, 无法观察的现象。 为了解决这个问题,所以 采用了 S9012 三极管放大信号的办法。 在 此 次设计中选用了四个 S9012 三极管,它们的基极分别 与 单片机的 、 、 、 相连,发射极分别连接数码管的四个位选端 SMG SMG SMG SMG4, 集电极都接地 , S9012 三极管 的接法是根据数码管是共阴极来接的。 电路如图 36 所示。 SMG1 SMG2 SMG3 SMG4R151KR161KR171KR181K Q19012Q29012Q39012Q49012 图 36 S9012放大电路 四位共阴极数码管显示电路 的设计 这部分电路和 S9012 放大电路部分一样,发射模块与接收模块在 使用这 部分的作用都是 完全 一样的,在硬件电路上面没有区别, 所以也 放在一起介绍。 电路 如图37所示。 在此次设计中选用的是四位共阴极数码管,这是一种非常普遍的数码管,四个数码管共用同一组段选数据线 a、 b、 c、 d、 e、 f、 g 及 dp(小数点)。 在使用时通过位选对其进行 选通 控制,四个位选端分别连接四个 S9012 三极管的发射极 SMGSMG SMG SMG4,然后接地。 四位数码管的八根段选数据线,按 a、 b、 c、 d、 e、 f、 g 及 dp 的顺序分别连接单片机的 、 、 、 、 、 、 、 口,同时给每个段选端都串联一个 470Ω的限流电阻 ,然后给高电平。 只 有同时给位选端低电平,段选端高电平时数码管才能正常工作。 SMG1SMG2SMG3SMG4abfcgdeDPY117421105abcdefg3dpdpabfcgdeDPYdp129DIG1DIG1abfcgdeDPYdpabfcgdeDPYdp8DIG36DIG4DS1DPY_7SEG_DP 图 37 四位共阴极数码管显示电路 4 系统软件的设计 软件的总体设计 a. 发射模块 对于发送模块系统的设计是一个循环的系统,系统不停的重复着同样的工作。 具体步骤如下,先定义 NRF24L01 无线模块 的每个端口,配置 NRF24L01 无线模块 的各种参数,进行 NRF24L01 无线模块 的初始化。 其次进行 DS18B20 温度传感器 的设置,分为 DS18B20 温度传感器 的复位函数, DS18B20 温度传感器 写入函数,再进行DS18B20 温度传感器 读函数。 最后是单片机的读取温度,温度处理,主函数的调用每个子函数进行最后的处理,发送温度数据和显示温度数据。 具体流程图如图 41所示。 开 始初 始 化 无 线 模 块延 时 进 入启 动。基于单片机的温度数据无线传输系统设计55页
相关推荐
出一个国家的生产力的发展和科学技术的现代化水平。 根据仪器仪表所采用的显示方式和功能,可以将仪器仪表分为三代产品,即模拟仪器仪表,数字式仪器仪表和智能化仪器仪表。 (1) 模拟式仪器仪表 这种仪器仪表至今仍在各种场合被广泛地使用着。 这种 仪器仪表显示部分地基本结构是利用电磁力相互作用原理,通过指针相对于标尺的位移来显示最终测量读数。 (2) 数字式仪器仪表 与 模拟式仪器仪表
本;温度传感器采用的总线负载能力如何,能否满足多点测温的需要;占用 MCU 的 I/O 引脚数情况如何,因为 MCU 的系统资源非常宝贵,输入通道有限,多点温度测量时,如果测量的点数超过了输入通道时,就要添加多路复用器,这将增加成本和开发时间,应尽量节约;与 MCU 的通信协议应尽量简单,温度测量的软件开发难度、成本要尽量小。 目前在数字温度传感器中采用的串行总线主要有 Philips 公司的
化的设计方法。 硬件的设计采用模块化设计,既要满足模块本身功能又要能够和整个系统兼容。 如图 22 所示 ,根据显示系统的功能特点确定系统硬件由显示屏部分,控制部分,通信系统及上位机四部分组成。 上位机通过通信部分向控制部分发送控制指令和显示内容代码,控制部分执行显示指令并将显示代码处理后控制显示部分的显示内容和显示方式。 图 22 系统硬件组成框图 显示屏主控制器 控制部分是整个系统的核心部分
脚) :在访问片外程序存储器时,此端输出负脉冲作为存储器读选通信号。 CPU 在向片外存储器取指令期间, PSEN 信号在 12 个时钟周期中两次生效。 不过,在访问片外数据存储器时, 这两次有效 PSEN 信号不出现。 PSEN 端同样可驱动 8 个 LSTTL负载。 我们根据 PSEN、 ALE 和 XTAL2 输出端是否有信号输出,可以判别 80C51 是否在工作。 EA/VPP( 31
,但是诸如燃气泄漏、烟气泄漏、水温偏高导致烫伤等安全事故还是偶有发生,所以保证系统运行安全可靠是控制器设计的基本要求。 安全性设计首先要解决的问题就是避免燃气泄漏和烟气泄漏,要保证做到燃气热水器工作于燃烧状态时烟道畅通;要严格控制燃气阀的开闭;要做到控制器意外死机后燃气阀能及时关闭等。 其次要解决的安全性设计问题是避免生活水和采暖水水温偏高,要保证水温过高时控制器中断加热或停机报警。 (
度测量值,且与电源电压值 Vsupply圾关。 若 Vsupply固定为 5V,则其值仅由相对湿度值决定,但由于单总线上的供电电压值为变量,故要求在进行湿度测量的同时还应测量电源电压 Vsupply 的值。 c) HIH3610 输出的湿度值还与环境温度有关,故应进行温度补偿,补偿公式为 RH=(sensor%RH)/( ) (32) 因此,为得到准确的湿度测量值