基于51单片机的无线温度检测系统 参考论文 大学论文Word下载.docx
《基于51单片机的无线温度检测系统 参考论文 大学论文Word下载.docx》由会员分享,可在线阅读,更多相关《基于51单片机的无线温度检测系统 参考论文 大学论文Word下载.docx(64页珍藏版)》请在冰豆网上搜索。
3.3温度传感器设计7
3.3.1DS18B20简介7
3.3.2温度传感器与单片机的连接9
3.3.3复位信号及外部复位电路10
3.4无线模块nrf24L01电路10
3.5显示电路10
4软件设计12
4.1DS18b20的读操作12
4.2DS18b20的温度数据处理13
4.31602显示部分14
4.4无线发送接收部分14
参考文献30
附录1电路原理图31
附录1程序源代码31
1绪论
1.1选题的背景
随着现代信息技术的飞速发展和传统工业改造的逐步实现.能够独立工作的温度检测和显示系统应用于诸多领域。
传统的温度检测以热敏电阻为温度敏感元件。
热敏电阻的成本低,但需后续信号处理电路,而且可靠性相对较差,测温准确度低,检测系统也有一定的误差。
与传统的温度计相比,这里设计的无线温度检测系统具有读数方便,测温范围广,测温精确,数字显示,适用范围宽等特点。
选用AT89S52单片机作为主控制器件,DSl8B20作为测温传感器通过LCD1602并行传送数据,实现温度显示。
通过DSl8B20直接读取被测温度值,进行数据转换,该器件的物理化学性能稳定,线性度较好,在-55℃~125℃最大线性偏差小于0.1℃。
该器件可直接向单片机传输数字信号,便于单片机处理及控制。
另外,该温度计还能直接采用测温器件测量温度,从而简化数据传输与处理过程。
1.2无线温度检测系统简介
1.2.1无线温度检测系统的特征
温度是我们日常生产和生活中实时在接触到的物理量,但是它是看不到的,仅凭感觉只能感觉到大概的温度值,传统的指针式的温度计虽然能指示温度,但是精度低,使用不够方便,显示不够直观,无线温度检测系统的出现可以让人们直观的了解自己想知道的温度到底是多少度。
无线温度检测系统采用进口芯片组装精度高、高稳定性,误差≤0.5%,内电源、微功耗、不锈钢外壳,防护坚固,美观精致。
无线温度检测系统采用进口高精度、低温漂、超低功耗集成电路和宽温型液晶显示器,内置高能量电池连续工作≥5年无需敷设供电电缆,是一种精度高、稳定性好、适用性极强的新型现场温度显示仪。
是传统现场指针双金属温度计的理想替代产品,广泛应用于各类工矿企业,大专院校,科研院所。
无线温度检测系统采用温度敏感元件也就是温度传感器(如铂电阻,热电偶,半导体,热敏电阻等),将温度的变化转换成电信号的变化,如电压和电流的变化,温度变化和电信号的变化有一定的关系,如线性关系,一定的曲线关系等,这个电信号可以使用模数转换的电路即AD转换电路将模拟信号转换为数字信号,数字信号再送给处理单元,如单片机或者PC机等,处理单元经过内部的软件计算将这个数字信号和温度联系起来,成为可以显示出来的温度数值,如25.0摄氏度,然后通过显示单元,如LED,LCD或者电脑屏幕等显示出来给人观察。
这样就完成了无线温度检测系统的基本测温功能。
无线温度检测系统根据使用的传感器的不同,AD转换电路,及处理单元的不同,它的精度,稳定性,测温范围等都有区别,这就要根据实际情况选择符合规格的无线温度检测系统。
1.2.2设计实现的目标
1)采集测温范围为-55~+120℃.
2)温度精度在0.1℃;
误差±
0.5℃.
3)显示模块,采用1602液晶显示.
4)通过NRF24L01无线发送温度数据.
5)通过NRF24L01无线接收温度数据并显示在液晶屏上.
2无线温度检测系统的方案设计
2.1设计方案论证与比较
2.1.1显示电路方案
方案一:
采用数码管动态显示
使用七段LED数码管,采用动态显示的方法来显示各项指标,此方法虽然价格成本低,但是显示单一,且功耗较大。
方案二:
采用LCD液晶显示
采用1602LCD液晶显示,此方案显示内容相对丰富,且价格不高。
综合上述原因,采用方案二,使用LCD液晶作显示电路。
2.1.2测温电路方案
采用模拟温度传感器测温
由于本设计是测温电路,可以使用热敏电阻之类的器件利用其感温效应,在将随被测温度变化的电压或电流采集过来,进行A/D转换后,就可以用单片机进行数据的处理,在显示电路上,就可以将被测温度显示出来,这种设计需要用到A/D转换电路,感温电路比较麻烦。
采用数字温度传感器
进而考虑到用温度传感器,在单片机电路设计中,大多都是使用传感器,所以这是非常容易想到的,所以可以采用一只温度传感器DS18B20,此传感器,可以很容易直接读取被测温度值,进行转换,就可以满足设计要求。
综合考虑,很容易看出,采用方案二,电路比较简单,软件设计也比较简单,故采用了方案二。
2.1.3无线传输方案
方案一
nRF24L01是一款新型单片射频收发器件,工作于2.4GHz~2.5GHzISM频段。
内置频率合成器、功率放大器、晶体振荡器、调制器等功能模块,并融合了增强型ShockBurst技术,其中输出功率和通信频道可通过程序进行配置。
nRF24L01功耗低,在以-6dBm的功率发射时,工作电流也只有9mA;
接收时,工作电流只有12.3mA,多种低功率工作模式(掉电模式和空闲模式)使节能设计更方便。
nRF24L01主要特性如下:
GFSK调制:
硬件集成OSI链路层;
具有自动应答和自动再发射功能;
片内自动生成报头和CRC校验码;
数据传输率为lMb/s或2Mb/s;
SPI速率为0Mb/s~10Mb/s;
125个频道:
与其他nRF24系列射频器件相兼容;
QFN20引脚4mm×
4mm封装;
供电电压为1.9V~3.6V。
nRF24L01的CE,CSN,SCK,MOSI,MISO.IRQ引脚可接STC89C52的任意端口,但需在编程时注意
nRF24L01工作模式
通过配置寄存器可将nRF241L01配置为发射、接收、空闲及掉电四种工作模式,如表所示。
8
掉电0---
待机模式1主要用于降低电流损耗,在该模式下晶体振荡器仍然是工作的;
待机模式2则是在当FIFO寄存器为空且CE=1时进入此模式;
待机模式下,所有配置字仍然保留。
在掉电模式下电流损耗最小,同时nRF24L01也不工作,但其所有配置寄存器的值仍然保留。
nRF24L01引脚功能及描述
nRF24L01的封装及引脚排列如图所示。
各引脚功能如下:
图2.6nRF24L01封装图
CE:
使能发射或接收;
CSN,SCK,MOSI,MISO:
SPI引脚端,微处理器可通过此引脚配置nRF24L01:
IRQ:
中断标志位;
VDD:
电源输入端;
VSS:
电源地;
XC2,XC1:
晶体振荡器引脚;
VDD_PA:
为功率放大器供电,输出为1.8V;
ANT1,ANT2:
天线接口;
IREF:
参考电流输入。
方案二、nRF905无线芯片
nRF905无线芯片是有挪威NORDIC公司出品的低于1GHz无线数传芯片,主要工作于433MHz、868MHz和915MHz的ISM频段。
芯片内置频率合成器、功率放大器、晶体振荡器和调制器等功能模块,输出功率和通信频道可通过程序进行配置。
非常适合于低功耗、低成本的系统设计。
性能参数
◆422.4~473.5MHz工作频段[2]
◆512个通讯频道,满足多点通讯、分组、跳频等应用需求,通道切换时间≤6us
◆发射功率可设置为:
10dBm、6dBm、-2dBm和-10dBm
◆通过SPI接口与MCU连接
◆支持50kbps传输速率
◆ShockBurst传输模式,自动生成前导码和CRC校验码
◆工作电压范围:
1.9V~3.6V,待机模式下电流仅为12.5μA
◆工作温度范围:
-40℃~+85℃
综合考虑,采用方案一,电路比较简单,软件设计也比较简单,故采用了方案一。
2.2系统总体方案
根据上述方案比较,结合题目要可以将系统分为采集发送模块和接收显示模块,其框图如下:
51单片机
无线发送nrf24L01模块
DS18B20温度采集
晶振复位电路
采集发送方案
无线接收NRF24L01电路
1602液晶屏显示电路
接收显示方案
图2-1系统总体设计框图
3无线温度检测系统的硬件电路设计
3.1控制电路
3.1.1MCU简介
CPU是整个控制部分的核心。
在考虑经济性和满足需求的前提下,本系统选用ATMEL公司生产的8位AT89S52单片机作为整个系统的控制中心。
AT89S52是ATMEL公司生产的低功耗,高性能CMOS8位单片机,片内含8kbytes的可系统编程的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准8051指令系统及引脚,它集Flash存储器既可在线编辑(ISP)也可用传统方法进行编辑及通用8位微处理器于单片芯片中,功能强大AT89S52单片机可为您提供许多高性价比的应用场合。
器管脚图如图3-2:
图3-1AT89S52管脚图
在本系统中,AT89S52单片机内部的功能单元已经能够满足系统设计需要,不需要系统扩展。
AT89S52具有以下的特点:
●8031CPU与MCS-51兼容
●寿命:
1000写/擦循环
●8K字节可编程FLASH存储器
●全静态工作:
0--24MHz
●三级程序存储器保密锁定
●256*8位内部RAM
●32条可编程I/O线
●两个16位定时器/计数器
●6个中断源
●可编程串行通道
●低功耗的闲置和掉电模式
●片内振荡器和时钟
AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。
使用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。
片上Flash允许程序存储器在系统可编程,亦适于常规编程器。
在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。
AT89S52具有以下标准功能:
8k字节Flash,256字节RAM,32位I/O口线,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。
此外,AT89S52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。
空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。
掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。
8位微控制器8K字节在系统可编程Flash。
同时该芯片还具有PDIP、TQFP和PLCC等三种封装形式,以适应不同产品的需求。
3、AT89S52引脚功能
AT89S52单片机为40引脚芯片见图3.2.1-2。
图3.2.1-2AT89S52引脚图
(1)口线:
P0、P1、P2、P3共四个八位口。
P0口:
P0口是一个8位漏极开路的双向I/O口。
作为输出口,每位能驱动8个TTL逻辑电平。
对P0端口写“1”时,引脚用作高阻抗输入。
当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。
在这种模式下,P0不具有内部上拉电阻。
在flash编程时,P0口也用来接收指令字节;
在程序校验时,输出指令字节。
程序校验时,需要外部上拉电阻。
P1口:
P1口是一个具有内部上拉电阻的8位双向I/O口,p1输出缓冲器能驱动4个TTL逻辑电平。
对P1端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。
作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。
此外,P1.0和P1.1分别作定时器/计数器2的外部计数输入(P1.0/T2)和定时器/计数器2的触发输入(P1.1/T2EX),具体如下表所示。
在flash编程和校验时,P1口接收低8位地址字节。
引脚号第二功能:
P1.0T2(定时器/计数器T2的外部计数输入),时钟输出
P1.1T2EX(定时器/计数器T2的捕捉/重载触发信号和方向控制)
P1.5MOSI(在系统编程用)
P1.6MISO(在系统编程用)
P1.7SCK(在系统编程用)
P2口:
P2口是一个具有内部上拉电阻的8位双向I/O口,P2输出缓冲器能驱动4个TTL逻辑电平。
对P2端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。
在访问外部程序存储器或用16位地址读取外部数据存储器(例如执行MOVX@DPTR)时,P2口送出高八位地址。
在这种应用中,P2口使用很强的内部上拉发送1。
在使用8位地址(如MOVX@RI)访问外部数据存储器时,P2口输出P2锁存器的内容。
在flash编程和校验时,P2口也接收高8位地址字节和一些控制信号。
P3口:
P3口是一个具有内部上拉电阻的8位双向I/O口,p3输出缓冲器能驱动4个TTL逻辑电平。
对P3端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。
P3口亦作为AT89S52特殊功能(第二功能)使用。
在flash编程和校验时,P3口也接收一些控制信号。
此外,P3口还接收一些用于FLASH闪存编程和程序校验的控制信号。
(2)其他引脚说明:
RST:
复位输入。
晶振工作时,RST脚持续2个机器周期高电平将使单片机复位。
看门狗计时完成后,RST脚输出96个晶振周期的高电平。
特殊寄存器AUXR(地址8EH)上的DISRTO位可以使此功能无效。
DISRTO默认状态下,复位高电平有效。
ALE/PROG——当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。
一般情况下,ALE仍以时钟振荡频率的1/6输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。
要注意的是:
每当访问外部数据存储器时将跳过一个ALE脉冲。
对FLASH存储器编程期间,该引脚还用于输入编程脉冲(PROG)。
如有必要,可通过对特殊功能寄存器(SFR)区中的8EH单元的D0位置位,可禁止ALE操作。
该位置位后,只有一条MOVX和MOVC指令才能将ALE激活。
此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE禁止位无效。
PSEN——程序储存允许(PSEN)输出是外部程序存储器的读选通信号,当AT89S52由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲,在此期间,当访问外部数据存储器,将跳过两次PSEN信号。
EA/VPP——外部访问允许,欲使CPU仅访问外部程序存储器(地址为0000H-FFFFH),EA端必须保持低电平(接地)。
需注意的是:
如果加密位LB1被编程,复位时内部会锁存EA端状态。
如EA端为高电平(接Vcc端),CPU则执行内部程序存储器的指令。
FLASH存储器编程时,该引脚加上+12V的编程允许电源Vpp,当然这必须是该器件是使用12V编程电压Vpp。
XTAL1:
反向振荡放大器的输入及内部时钟工作电路的输入。
XTAL2:
来自反向振荡器的输出。
XTAL1,XTAL2接石英晶体振荡器。
如图3.2.1-3所示外接晶体引脚图。
C2XTAL2
悬空XTAL2
C1XTAL1外部振荡信号XTAL1
GNDGND
接地接地
a.内部方式b.外部方式
图3.2.1-3晶振外接结构引脚图
XTAL1是片内振荡器的反相放大器输入端,XTAL2则是输出端,使用外部振荡器时,外部振荡信号应直接加到XTAL1,而XTAL2悬空。
内部方式时,时钟发生器对振荡脉冲二分频,如晶振为12MHz,时钟频率就为6MHz。
晶振的频率可以在1MHz-24MHz内选择,在本设计电路中选用了12MHz。
电容取20PF左右。
机器周期=12×
时间周期,如12MHz的机器周期为1微秒。
(3)控制或复位引脚
RESET此脚为高电平时(约2个机器周期)可将单片机复位。
RST/VPD——当出现两个机器周期高电平时,单片机复位。
复位后,P0~P3输出高电平;
SP寄存器为07H;
其它寄存器全部清0;
不影响RAM状态。
如图3.2.1-4所示。
图3.2.1-4按键电平复位
AT89SXX系列单片机实现了ISP下载功能,故而取代了89CXX系列的下载方式,也是因为这样,ATMEL公司已经停止生产89CXX系列的单片机,现在市面上的AT89CXX多是停产前的库存产品。
4、AT89S52的编程方法
编程前,须按编程模式表设置好地址、数据及控制信号;
顺序如下:
①在地址线上加上要编程单元的地址信号。
②在数据线上加上要写入的数据字节。
③激活相应的控制信号。
④将EA/Vpp端加上+12V编程电压。
⑤每对Flash存储阵列写入一个字节或每写入一个程序机密位,加上一个ALE/PROG编程脉冲。
每个字节写入周期是自身定时的,大多数约为50us。
改变编程单元的地址和写入的数据,重复①—⑤步骤,直到全部文件编程结束。
单片机的现状及发展方向:
单片机是为了工业控制需要满足而诞生的,是自动控制系统的核心部件,因而也主要用于工业控制、智能化仪器仪表、家用电器中。
它具有体积小,功能多、价格低、使用方便、系统设计灵活等优点,应用领域不断扩大,除了工业控制,智能化仪表,通讯,家用电器外,在智能化高档电子玩具产品中也大量采用单片机芯片作为核心控制部件。
由于单片机主要面向工业控制,工作环境比较恶劣,入高温,强电磁干扰,甚至含有腐蚀性气体,在太空中工作的单片机控制系统,还必须具有抗辐射能力,这决定了单片机CPU于通用微机CPU具有不同的技术特征和发展方向:
(1)可靠性高;
(2)控制功能往往很强,数值计算交叉;
(3)指令系统比通用微处理器慢的多;
(4)X系列芯片取代;
(5)抗干扰性强,工作温度范围宽。
3.2.2最小系统模块
本次设计中,选用ATMEL公司的51系列单片机AT89S52芯片作为电子密码电源开关的数据处理及操作控制芯片。
只有单片机芯片无法完成数据处理及控制功能,必须有附加的电路,使单片机芯片组成一个可运行的系统才能实现其功能。
本次设计中,由AT89S52芯片连同附加电路构成的单片机最小系统作为数据处理及控制模块,P1.0作DS18B20的总线接口。
其电路连接图3-3如下:
图3-2数据处理及控制模块
3.3温度传感器设计
3.3.1DS18B20简介
DS18B20可以程序设定9~12位的分辨率,精度为±
0.5°
C。
可选更小的封装方式,更宽的电压适用范围。
分辨率设定,及用户设定的报警温度存储在EPROM中,掉电后依然保存。
温度传感器DS18B20引脚如图3-4所示。
图3-3DS18B20TO-92封装温度传感器
引脚功能说明:
VDD:
可选电源脚,电源电压范围3~5.5V。
当工作于寄生电源时,此引脚必须接地。
DQ:
数据输入/输出脚。
漏极开路,常态下高电平。
GND:
为电源地
图3-4DS18B20内部结构图
DS18B20内部结构主要由四部分组成:
64位光刻ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。
光刻ROM中的64位序列号是出厂前被光刻好的,它可以看作是该DS18B20的地址序列码。
64位光刻ROM的排列是:
开始8位(28H)是产品类型标号,接着的48位是该DS18B20自身的序列号,最后8位是前面56位的循环冗余校验码(CRC=X8+X5+X4+1)。
光刻ROM的作用是使每一个DS18B20都各不相同,这样就可以实现一根总线上挂接多个DS18B20的目的。
DS18B20中的温度传感器可完成对温度的测量,以12位转化为例:
用16位符号扩展的二进制补码读数形式提供,以0.0625℃/LSB形式表达,其中S为符号位。
这是12位转化后得到的12位数据,存储在18B20的两个8比特的RAM中,二进制中的前面5位是符号位,如果测得的温度大于0,这5位为0,只要将测到的数值乘于0.0625即可得到实际温度;
如果温度小于0,这5位为1,测到的数值需要取反加1再乘于0.0625即可得到实际温度。
例如+125℃的数字输出为07D0H,+25.0625℃的数字输出为0191H,-25.0625℃的数字输出为FF6FH,-55℃的数字输出为FC90H。
DS18B20温度传感器的内部存储器包括一个高速暂存RAM和一个非易失性的可电擦除的E2RAM,后者存放高温度和低温度触发器TH、TL和结构寄存器。
暂存存储器包含了8个连续字节,前两个字节是测得的温度信息,第一个字节的内容是温度的低八位,第二个字节是温度的高八位。
第三个和第四个字节是TH、TL的易失性拷贝,第五个字节是结构寄存器的易失性拷贝,这三个字节的内容在每一次上电复位时被刷新。
第六、七、八个字节用于内部计算。
第九个字节是冗余检验字节。
该字节各位的意义如下:
TMR1R011111
低五位一直都是1,TM是测试模式位,用于设置DS18B20在工作模式还是在测试模式。
在DS18B20出厂时该位被设置为0,用户不要去改动。
R1和R0用来设置分辨率,如表1所示:
(DS18B20出厂时被设置为12位)
表3-3DS18B20温度转换时间表
R1
R0
分辨率/位
温度最大转向时间
9
93.75
1
10
187.5
11
375
12
750
根据DS18B2