基于ds18b20的单片机无线温度采集系统_本科毕业论文(编辑修改稿)内容摘要:
第 9页 机上。 NRF24L01P+PA+LNA 无线模块工作于免许可证的 频段,可以点对点应用,也可组成星形网络。 NRF24L01P+PA+LNA 无线模块的核心为挪威NORDIC 公司最新的高性能无线数传芯片 NRF24L01,经过国内的专业设计和改造,增加大功率 PA 和 LNA 芯片,射频开关,带通滤波器等组成了专业的全双向的射 频功放,即现在的 Nrf24l01 模块,使得有效通信距离得到极大拓展。 在射频部分,模块上做了大量的优化匹配调试,使得发射效率达到最高,谐波最小,使得 NRF24L01P+PA+LNA 无线模块对外界设备的射频干扰达到最低,同 时 也 不 容 易 受 到 其 他 设 备 的 干 扰 , 极 大 提 高 工 作 的 稳 定 性。 NRF24L01P+PA+LNA 无线模块集成度极高,尺寸也只有 *,方便 嵌 入 于 任 何 空 间 紧 张 的 产 品 中 , 而 在 本 系 统 中 通 过 SPI 口 控 制NRF24L01P+PA+LNA 无线模块即可完成超远距离无线数据传送系统的设计。 LED 显示 数码管显示是一个系统工程中必不可少的人机交互环节,因此关于数码管的驱动也就是系统工程中的一个重要的环节。 本设计采用了 3 位数码管动态扫描显示。 LED 数码管动态显示就是一位一位地轮流点亮各位数码管,对于每一位 LED 数码管来说,每隔一段时间点亮一次,利用人眼的“视觉暂留 效应,采用循环扫描的方式,分时轮流选通各数码管的公共端,使数码管轮流导通显示。 视觉暂留效应是指景物发出或反射的光,在人的视网膜上所形成的物像会在人的视觉中保留一段时间。 详细来说,即使景物从视野中消失,人眼所感受到的光像也不 会马上消逝,因为有实验证明人眼的视觉暂留时间约为 ~ ,这是因为在外界光源突然消失时,人眼的亮度感觉是按指数规律逐渐减少的。 这样当一个光源反复通断,在通断频率较低时,人眼可以发现亮度的变化;而通断频率增高时,眼睛就逐渐不能发现相应的亮度变化了。 断通在高频率时给人的印象就是一组稳定的显示数据,会被认为各数码管是同时发光的。 若数码管的位数不大 第 10 页 于 8 位时,只需两个 8 位 I/ O 口。 它将所有数码管的 8 个段线相应地并接在一起,并接到 AT89C52 的 P0 口,由 P0 口控制字段输出。 而各位数码管的共阴极由AT89C51 的 P2 口控制 ,实现 8 位数码管的位输出控制。 其中 P2 仅运用了 3 个端口,用以直接驱动位选。 第 11页 2 下位机部分介绍 DS18B20 是整个系统的检测元件,由于它采用一线总线技术,使采样后的数据与单片机的传输变得简单。 LED 模块是为了让在检测点可以随时看到当前检测温度。 nRF24L01无线传输模块是为了让检测的数据实时发送给远处的 PC上位机系统,实现远程监控等。 下位机中的单片机是控制以上各模块的核心,并实现各模块的连接转换。 DS18B20 温度采集模块 DS18B20 简介 前面已经介绍,该模块 采用美国 DALLAS 公司推出的数字测温芯片 DS18B20,它体积小,有多种封装,具有独特的单线接口。 测量范围从 55 摄氏度到 +125 摄氏度,拥有可以选择的 9 到 12 位温度数据分辨率,可以工作在寄生电源模式,硬件配置十分简捷方便。 在本系统中温度传感器输出脚 I/O 直接与单片机的 相连,采用 +5V 电源供电。 DS18B20 芯片封装如图 7 所示。 图 7 DS18B20 芯片封装 引脚定义: 第 12 页 (1)DQ 为单数据总线,是数字信号输入 /输出端; (2)GND 为电源地; (3)VDD 为外接 供电电源输入端(在寄生电源接线方式时接地)。 对于 DS18B20 简洁的端口引脚,只需要将它的数据线与单片机的任意一个 I/O口连接并保证其正常供电,在正确合时序的程序驱动下,就可以实现温度的采集,并作出相应的其他联动控制。 所以,本设计中 DS18B20 与单片机接口电路图 8。 图 8 DS18B20 与单片机硬件图 DS18B20 的测温方法 DS18B20 中的温度传感器刚好能自动完成对外界环境温度的测量,本系统是以 12 位转化为例介绍它的测温方法。 DS18B20 用具有 16 位符号扩展的二进制数据补 码读数形式提供,以 176。 C/LSB 形式表达,经 DS18B20 转化后得到的 12位数据存储在 DS18B20 的两个 8 比特的 RAM 中,这样得到的数据中二进制的前面 5 位就是符号位,这时如果测得的温度大于 0,这 5 位二进制数据全为 0,只要将测到的数值乘于 即可得到实际温度;再比如,如果测定的外界温度小于0,这 5 位二进制数据将全为 1,测到的数值需要取反加 1 再乘于 即可得到实际温度。 该传感器采集温度流程图图 9。 第 13 页 图 9 DS18B20 温度采集流程图 该模块中读取 DS18B20 内部数据的程序 如下。 uint get_temp() //读取寄存器中存储的温度数据 { uchar a,b。 dsreset()。 //DS18B20 复位,调用初始化子函数 delay(1)。 tempwritebyte(0xcc)。 tempwritebyte(0xbe)。 a=tempread()。 //读低 8 位 b=tempread()。 //读高 8 位 temp=b。 第 14 页 temp=8。 //两个字节组合为 1 个字 temp=temp|a。 f_temp=temp*。 //温度在寄存器中为 12 位,分辨率为 temp=f_temp*10+。 //乘以 10 表示小数点后面只取 1 位,加 是四舍五入 return temp。 } LED 数码显示模块 数码管显示模块采用四合一共阴 LED 数码管。 这种 4 位一体的 LED 数码管在内部已经将相同的笔画连在一起了,用户的接口就是 8 个笔画,四个公共端需要使用动态扫描技术来分时显示,用单片机的一个端口将 DS18B20 的数据通过 LED显示即可。 单片机控制的数码管显示原理如下。 LED 有段码和位码之分,所谓段码就是让 LED 显示出“ 8.”的八位数据,一般情况下要通过一个译码电路,将输入的 4位 2 进制数转换为与 LED 显示对应的 8 位段码。 位码也就是 LED 的显示使能端,对于共阴级的 LED 而言,低电平使能。 要让 4 个 LED 同时工作,显示数据,就是要不停的循环扫描每一个 LED,并在使能每一个 LED 的同时,输入所需显示的数据对应的 8 位段码。 虽然 8 个 LED 是依次显示,但是受视觉分辨率的影响,看到的现象是 4 个 LED 同时工作。 多个数码管动态扫描显示,是将所有数码管的相同段并联在一起,通过选通信号分时控制各个数码管的公共端,循环点亮多个数码管,并 利用人眼的视觉暂留现象,只要扫描的频率大于 50Hz,将看不到闪烁现象。 由于本设计显示温度精确到一位小数,故这个四合一数码管只用最低三位,最低位显示小数位,次地位显示个位,然后是十位,如 ,就表示摄氏温度 度。 硬件电路图图 10 如下。 第 15 页 图 10 数码管与单片机硬件电路图 显示模块流程如图 11。 第 16 页 图 11 LED 动态显示流程图 相关显示子程序如下。 void dis_temp(uint t) //显示温度数值函数 t 传递的是整型的温度 { uchar i,j。 for(j=10。 j0。 j) { i=t/100。 //除以 100 得到商,为温度的十位 display(2,i)。 //在第一个数码管上显示 i=t%100/10。 //100 取余再除以 10 得到商,位温度的个位 第 17 页 display(1,i+10)。 //在第 2 个数码管上显示,有小数点 i=t%100%10。 //100 取余再用 10 取余,为温度的小数位 display(0,i)。 //在第 3 个数码管上显示 } } nRF24L01 无线发送模块 正如前面所介绍,该模块是挪威公司生产的 nRF24L01 在外围电路优化配置组成的。 在下位机部分时,其被置为发送模式。 通过 SPI 总线写入数据,数据传输高效可靠,并且具有自动应答和自动再发射功能。 芯片采用了增强式 ShockBurst 技术,就是说输出功率和通信频道可通过设置软件程序进任意行配置。 模块中nRF24L01 和 89C52 P1 口连接(如图 12),单片机接 的晶振 工作,低速的单片机就能够很好地控制高速收发的射频芯片,硬件结构如图 12 所示。 图 12 无线收发模块硬件原理图 从设计中单片机控制的角度来看,我们只需要关注图 11 的六个 控制和数据信号。 CSN,芯片的片选线, CSN 为低电平芯片工作。 SCK,芯片控制的时钟线( SPI时钟)。 MISO,芯片控制数据线 ( Master input slave output)。 MOSI,芯片控制数据线 ( Master output slave input)。 IRQ,中断信号。 无线通信过程中 MCU 主要是通过 IRQ 与 NRF24L01 进行通信。 CE,芯片的模式控制线。 在 CSN 为低的情况下, CE 协同 NRF24L01 的 CONFIG 寄存器共同决定 NRF24L01 的状态。 该模块发送模式的工作流程如 13 所示。 第 18 页 图 13 发送模式流程图 相关发送模块子程序如下。 void init_NRF24L01(void) { inerDelay_us(100)。 CE=0。 CSN=1。 SCK=0。 第 19 页 SPI_Write_Buf(WRITE_REG + TX_ADDR, TX_ADDRESS, TX_ADR_WIDTH)。 SPI_Write_Buf(WRITE_REG+RX_ADDR_P1,RX_ADDRESS, RX_ADR_WIDTH)。 SPI_RW_Reg(WRITE_REG + EN_AA, 0x03)。 SPI_RW_Reg(WRITE_REG + EN_RXADDR, 0x03)。 SPI_RW_Reg(WRITE_REG + RF_CH, 0)。 SPI_RW_Reg(WRITE_REG + RX_PW_P1, RX_PLOAD_WIDTH)。 SPI_RW_Reg(WRITE_REG + RF_SETUP, 0x07)。 } 第 20 页 3 上位机部分介绍 无线接收模块 上位机上的接收模块依然是采用硬件配置相同的 nRF24L01。 硬件电路与下位机部分的无线发送模块相同,以保证有相同的配置参数,便于理解也便于编程。 Nrf24l01 初始化后的流程图图 14 如下。 图 14。基于ds18b20的单片机无线温度采集系统_本科毕业论文(编辑修改稿)
相关推荐
( 1) 单片机的 P0 口 单片机中的 P0口既可以作为通用的 I/O 口进行数据的输入和输出,也可以作为单片机系统的地址 /数据线使用 ,并且 P0 口得电路中有一个多路转换电路 MUX。 在控5 制信号的作用下,多路接电路可以分别接通锁存器输出或地址 /数据线。 我出于对此的考虑,所以在 P0口在做输入输出接口时,加上 了 拉电阻,其 阻止我查资料,可以选择 千欧到 10千欧。 又因为
位及数据总线的分时复用端口。 作为通用 I/O 口时需加上 拉电阻,作为普通 I/O 口输入时应先向端口的输出锁存器写入 1。 P1 口: 8 位,准双向 I/O 口,具有内部上拉电阻。 作为普通 I/O输入时,先向端口输出锁存器写入 1。 P2 口: 8 位,准双向 I/O 口,具有内部上拉电阻,作为普通 I/O输12 入时同上。 P3 口: 8 位,准双向 I/O 口,具有内部上拉电阻
门用于显示数字、字母、符号等点阵式 的液晶显示屏。 目前常用 型号有 16 1, 16 2, 20 2和 40 2行等的模块。 下面 以 16 2型号的 1602 字符型液晶显示器为例,介绍其 一般 用法。 LCD1602 的基本参数及引脚功能 LCD1602 分为带背光和不带背光两种。 基控制器 一般都 为 HD44780。 带背光的 要 比不带背光的厚 一点。 是否带背光在 使 用中并无
换精度,测温分辨率可达 摄氏度,分辨率设定参 数以及用户设定的报警温度存储在EEPROM 中,掉电后依然保存。 被测温度用符号扩展的 16 位数字量方式串行输出;其工作电源既可以在远端引入,也可以采用寄生电源方式产生;多个 DS18B20可以并联到 3 根或 2 根线上, CPU 只需一根端口线就能与诸多 DS18B20 通信,占用微处理器的端口较少,可节省大量的引线和逻辑电路。
路,简化了电路,缩短了系统的工作时间,降低了系统的硬件成本。 该系统的总体设计思路如下:温度传感器 DS18B20 把所测得的温度发送到 AT89C51单片机上,经过 51 单片机处理,将把温度在显示电路上显示,本系统显示器用 4 位共阳LED 数码管以动态扫描法实现。 检测范围 55 摄氏度到 128 摄氏度。 按照系统设计功能的要求,确定系统由 3 个模块组 成:主控制器、测温电路和显示电路
个 门限的电源故障报警电路,可用于检测电池电压和非 5V 的电源。 PFI 为电源故障电压监控输入,当 PFI 小于 时, PFO 变为低电平, PFO 为电源故障输出端,通过外接电阻 R1﹑ R2 可组成不同门限电压监视网络。 当电源电压低于容限电压时即视为报警输出。 监控电路还具有上电复位输出和外部手动复位输出功能,芯片内部有一个上电比较器,当电源电压上升到可靠的工 作电压后,即在