基于DS18B20温度传感器的数字温度计设计毕业设计.docx
《基于DS18B20温度传感器的数字温度计设计毕业设计.docx》由会员分享,可在线阅读,更多相关《基于DS18B20温度传感器的数字温度计设计毕业设计.docx(47页珍藏版)》请在冰豆网上搜索。
基于DS18B20温度传感器的数字温度计设计毕业设计
毕业设计(论文)
基于DS18B20温度传感器的数字温度计设计
学生姓名:
学号:
0815012220
所在系部:
电气信息系
专业班级:
电气工程及其自动化
指导教师:
石刚讲师
日期:
二○一二年五月
ThedesignoftemperaturesensorbasedonDS18B20digitalthermometer
By
ZhuWei
May2012
学位论文原创性声明
本人郑重声明:
所呈交的学位论文是本人在导师的指导下独立进行研究所取得的研究成果。
除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。
本人完全意识到本声明的法律后果由本人承担。
作者签名:
年月日
学位论文版权使用授权书
本学位论文作者完全了解学院有关保管、使用学位论文的规定,同意学院保留并向有关学位论文管理部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。
本人授权省级优秀学士学位论文评选机构将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。
本学位论文属于
1、保密□,在年解密后适用本授权书。
2、不保密□。
作者签名:
年月日
导师签名:
年月日
摘要
随着人们生活水平的不断提高,单片机控制无疑是人们追求的目标之一,它所给人带来的方便也是不可否定的,其中数字温度计就是一个典型的例子,但人们对它的要求越来越高,要为现代人工作、科研、生活、提供更好的更方便的设施就需要从数单片机技术入手,一切向着数字化控制,智能化控制方向发展本文介绍了一种基于DS18B20的数字温度计设计方案。
本设计所介绍的数字温度计与传统的温度计相比,具有读数方便,测温范围广,测温准确,其输出温度采用数字显示,主要用于对测温比较准确的场所,或科研实验室使用方案。
利用AT89S52单片机控制DS18B20进行数据采集并由HS1602液晶显示模块显示结果,另外,采集结果可由RS-232-C接口送入计算机显示并存储。
按键控制实现过界报警温度设定和实时监控,利用AT24C08芯片进行存储,实现温度测量存储与再现。
关键字:
温度采集存储再现过界报警串行通信
Abstract
Withthecontinuousimprovementofpeople'slivingstandard,single-chipcontrolisundoubtedlyoneofthepeopletopursuethegoal,itbringstheconvenienceisundeniable,whichisatypicalexampleofthedigitalthermometerisrequiredofit,butitisincreasinglythehigheristhemodern,scientificresearch,lifeandprovidebettermoreconvenientfacilitieswillneedtostartfromseveralsingle-chiptechnology,alltowardthedigitalcontrol,intelligentcontrolofthedirection.InthispageweintroducedaconceptionofthenumericalthermometerbasedonDS18B20.Digitalthermometerasdescribedinthisdesigncomparedwithtraditionalthermometerreadings,temperaturerangeandaccuratetemperaturemeasurement,theoutputtemperaturewithdigitaldisplayforaccuratetemperatureplace,orresearchlaboratories.TheconceptionmakesuseofAT89S52controlDS18B20tocarryonthedatacollectionanddisplaystheresultusetheHS1602liquidcrystaldisplaymodule.Moreover,theresultcanbesentintothecomputerbytheinterfaceofRS-232-Ctodisplayandstore.Thekeycontrolcarriesoutthetemperaturesettingofovertheboundarytoalarmandreal-timemonitoring,andmakesuseofthechipofAT24C08carriesonthestorage,andcarryingoutthetemperaturemeasurementstorageandreappearing.
Keywords:
TemperaturecollectionStoringtoreappearOvertheboundarytoalarmSerialcommunication.
1引言
1.1选题目的和意义
随着电子技术的发展,人们的生活日趋数字化,多功能的数字温度计可以给我们的生活带来很大的方便;支持“一线总线”接口的温度传感器简化了数字温度计的设计,降低了成本;以美国MAXIM/DALLAS半导体公司的单总线温度传感器DS18B20为核心,以ATMEL公司的AT89S52为控制器设计的DS18B20温度控制器结构简单、测温准确、具有一定控制功能的智能温度控制器。
那么,单片机控制无疑是人们追求的目标之一,它所给人带来的方便也是不可否定的,其中数字温度计就是一个典型的例子,但人们对它的要求越来越高,要为现代人工作、科研、生活、提供更好的更方便的设施就需要从数单片机技术入手,一切向着数字化控制,智能化控制方向发展。
1.2国内外目前的研究进展和成果
测量温度的关键是温度传感器,温度传感器的发展经历了3个阶段:
传统的分立式温度传感器、模拟集成温度传感器、智能集成温度传感器。
目前,国际上新型温度传感器正从模拟式向数字式、从集成化向智能化、网络化的方向发展。
在这个信息技术的飞速发展和传统工业改造的逐步实现的时代。
能够独立工作的温度检测和显示系统应用于诸多领域。
传统的温度检测以热敏电阻为温度敏感元件。
热敏电阻的成本低,但需后续信号处理电路,而且可靠性相对较差,测温准确度低,检测系统也有一定的误差。
与传统的温度计相比,这里设计的数字温度计具有读数方便,测温范围广,测温精确,数字显示,适用范围宽等特点。
选用AT89C52型单片机作为主控制器件,DSl8B20作为测温传感器通过HS1602液晶显示模块显示结果,实现温度显示。
通过DSl8B20直接读取被测温度值,进行数据转换,该器件的物理化学性能稳定,线性度较好,在0℃~100℃最大线性偏差小于0.1℃。
该器件可直接向单片机传输数字信号,便于单片机处理及控制。
另外,该温度计还能直接采用测温器件测量温度,从而简化数据传输与处理过程。
1.3本课题研究的内容
本设计所介绍的数字温度计与传统的温度计相比,具有读数方便,测温范围广,测温准确,其输出温度采用数字显示,主要用于对测温比较准确的场所,或科研实验室使用,该设计控制器使用8086系统AT89S52,测温传感器使用DS18B20,由HS1602液晶显示模块显示结果,能准确达到以上要求。
2总体设计
2.1方案论证
2.1.1温度传感器
方案一:
采用热敏电阻可满足测温要求,但热敏电阻精度低,重复性和可靠性较差,对于精度要求较高的测温不适用,而且采用热敏电阻要求复杂的电路和算法,增加了设计复杂度。
方案二:
采用专用的集成温度传感器(如AD590、LM35/LM45)和数字化温度传感器(DS18B20、DS1620)测温,数字化温度传感器具有接口简单、直接数字量输出、精确度高等优点。
DS18B20数字温度传感器接线方便,封装成后可应用于多种场合,如管道式,螺纹式,磁铁吸附式,不锈钢封装式,型号多种多样,有LTM8877,LTM8874等等。
主要根据应用场合的不同而改变其外观。
封装后的DS18B20可用于电缆沟测温,高炉水循环测温,锅炉测温,机房测温,农业大棚测温,洁净室测温,弹药库测温等各种非极限温度场合。
耐磨耐碰,体积小,使用方便,封装形式多样,适用于各种狭小空间设备数字测温和控制领域。
DS18B20是DALLAS公司的最新单线数字温度传感器,它是世界上第一片支持“一线总线”接口的温度传感器。
一线总线独特而且经济的特点,使用户可轻松地组建传感器网络,它的测量温度范围为-55~+125℃,在-10~+85℃范围内,精度为±0.5℃,现场温度直接以“一线总线”的数字方式传输,大大提高了系统的抗干扰性,适合于恶劣环境的现场温度测量,如:
环境控制、设备或过程控制、测温类消费电子产品等,DS18B20支持3~5.5V的电压范围,使系统设计更灵活、更方便、更便宜、体积更小。
DS18B20可以程序设定9~12位的分辨率,精度为±0.5℃,分辨率设定及用户设定的报警温度存储在E2PROM中,掉电后依然保存。
因此,本方案选用DS18B20作为温度测量传感器。
2.1.2单片机系统
目前比较流行51系列单片机和凌阳单片机。
AT89C51单片机需要用仿真器来实现软硬件的调试,较为繁琐;AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。
使用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。
片上Flash允许程序存储器在系统可编程,亦适于常规编程器。
在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得AT89S52在众多嵌入式控制应用系统中得到广泛应用。
AT89S52八位单片机除具有AT89C51单片机所有的优点外,具有更大的程序存储空间,可在线仿真的功能,方便调试。
凌阳十六位单片机虽然可以更好的完成控制功能,但较AT89S52八位单片机价格昂贵,而且编程以及外围功能电路的设计都不及AT89S52成熟。
因此,选用AT89S52八位单片机作为温度采集的控部分。
2.1.3电源模块
采用普通的直流电源实现电路简单,而且采用集成电源芯片设计的直流电源电压比较稳定,完全满足系统各模块的供电要求,但是普通直流电源体积比较大,变压器的散热对测温精度也有影响,所以,选用锂离子手机充电电池和配套的锂电池充电器作为系统的供电模块。
手机用的锂电池电压范围是3.6V到4.2V,限定充电电压是4.25V,完全满足AT89S52和DS18B20等各模块的工作电压范围。
2.1.4显示模块
由于系统要求实现测量环境温度、测量体温、过界报警设置、温度存储再现等多种功能,要显示的信息不仅仅是温度值,所以采用数码管显示几乎不可能。
另外,手机电池电量有限,而数码管耗电较大,不符合设计要求。
因此,选用常见的HS1602液晶显示模块显示测温结果。
2.1.5确定方案
为了不失通用性和智能性,本方案采用AT89S52单片机作为控制器,单总线温度传感器DS18B20进行温度采集。
电源部分没有采用普通的直流电源而利用锂离子手机充电电池和配套的锂电池充电器,手机用的锂电池电压范围是3.6V到4.2V,限定充电电压是4.25V,完全满足AT89S52和DS18B20等各模块的工作电压范围。
由于手机电池电量有限,所以显示模块使用HS1602液晶显示模块而没有使用数码管。
2.2总体设计
本方案设计的系统由按键控制模块、单片机系统、温度传感器模块、液晶显示模块、存储模块、串口通信模块和电源模块组成,其总体架构如图2-1。
图2-1系统总体设计
3硬件设计
3.1单片机系统
该方案采用AT89S52单片机作为控制器,完成所有的控制功能,包括:
✧温度传感器DS18B20的初始化和读取温度值
✧HS1602液晶模块驱动
✧按键识别和控制
✧温度存储及读取
✧和PC机的串口通信
单片机系统的电路如图3-1。
图3-1单片机系统电路
3.2温度传感器模块
温度传感器模块
如下图,使用外部电源,可以减少程序复杂程度。
DS18B20特性:
●独特的单线接口仅需一个端口进行通讯
●简单的多点分布应用
●无需外部器件
●可通过数据线供电
●零待机功耗
●测温范围-55~+125℃
●温度以12位数字量读出
●温度数字量转换时间750ms(12位)
●用户可定义的非易失性温度警报设置
●报警搜索命令识别并超过程序限定温度(温度报警条件)的器件
●应用包括温度控制、工业系统、消费品、温度计或任何热感测系统
3.2.1DS18B20原理
DS18B20采用3脚PR-35封装或8脚SOIC封装,管脚排列如图3-2所示。
图中GND为地,DQ为数据输入/输出端(即单线总线),该脚为漏极开路输出,常态下呈高电平,Vcc是外部+5V电源端,不用时应接地,NC为空脚。
图3-2DS18B20的外部结构
DS18B20内部主要包括寄生电源、温度传感器、64位激光ROM单线接口、存放中间数据的高速暂存器(内含便笺式RAM),用于存储用户设定的温度上下限值的TH和TL解发器存储与控制逻辑、8位循环冗余校验码(CRC)发生器等七部分,内部结构如图3-3。
图3-3DS18B20内部结构
寄生电源由二极管VD1、VD2和寄生电容C组成,电源检测电路用于判定供电方式,寄生电源供电时,VDD端接地,器件从单线总线上获取电源,在DQ线呈低电平时,改由C上的电压Vc继续向器件供电。
该寄生电源有两个优点:
第一,检测远程温度时无需本地电源;第二,缺少正常电源时也能读ROM。
若采用外部电源VDD,则通过VD2向器件供电。
光刻ROM中的64位序列号是出厂前被光刻好的,它可以看作是该DS18B20的地址序列码,如图3-4所示。
图3-464位ROM的结构
开始8位(28H)是产品类型标号,接着的48位是DS18B20自身的序列号,最后8位是前面56位的循环冗余校验码(CRC=X8+X5+X4+1)。
光刻ROM的作用是使每一个DS18B20都各不相同,这样就可以实现一根总线上挂接多个DS18B20的目的。
主机操作ROM的命令有五种,如表3-1所示。
表3-1DS18B20的ROM命令
指令
说明
读ROM(33H)
读DS1820的序列号
匹配ROM(55H)
继读完64位序列号的一个命令,用于多个DS1820时定位
跳过ROM(CCH)
此命令执行后的存储器操作将针对在线的所有DS1820
搜ROM(F0H)
识别总线上各器件的编码,为操作各器件作好准备
报警搜索(ECH)
仅温度越限的器件对此命令作出响应
DS18B20测量温度时使用特有的温度测量技术。
其内部的低温度系数振荡器能产生稳定的频率信号f0,高温度系数振荡器则将被测温度转换成频率信号f。
当计数门打开时,DS18B20对f0计数,计数门开通时间由高温度系数振荡器决定。
芯片内部还有斜率累加器,可对频率的非线性予以被偿。
测量结果存入温度寄存器中。
一般情况下的温度值应为9位(符号点1位),但因符号位扩展成高8位,故以16位被码形式读出,表3-2给出了温度和数字量的关系。
表3-2DS18B20温度数字对应关系表
DS18B20温度传感器的内部存储器包括一个高速暂存RAM和一个非易失性的可电擦除的E2RAM,后者存放高温度和低温度触发器TH、TL和结构寄存器。
暂存存储器包含了8个连续字节,前两个字节是测得的温度信息,第一个字节的内容是温度的低8位,第二个字节是温度的高8位,第三个和第四个字节是TH、TL的易失性拷贝,第五个字节是结构寄存器的易失性拷贝,这三个字节的内容在每一次上电复位时被刷新,第六、七、八个字节用于内部计算,第九个字节是冗余检验字节,如表3-3所示。
表3-3DS18B20暂存器分布
寄存器内容
字节地址
温度最低数字位
0
温度最高数字位
1
高温限制
2
低温限制
3
保留
4
保留
5
计数剩余值
6
每度计数值
7
CRC校验
8
该字节各位的意义为TMR1R011111,低五位一直都是1,TM是测试模式位,用于设置DS18B20在工作模式还是在测试模式,在DS18B20出厂时该位被设置为0,用户不用改动,R1和R0用来设置分辨率,DS18B20出厂时被设置为12位,分辨率设置如表3-4所示。
表3-4分辨率设置表
R1
R0
分辨率
温度最大转换时间
0
0
9位
93.75ms
0
1
10位
187.5ms
1
0
11位
375ms
1
1
12位
750ms
根据DS18B20的通讯协议,主机控制DS18B20完成温度转换必须经过三个步骤:
每一次读写之前都要对DS18B20进行复位,复位成功后发送一条ROM指令,最后发送RAM指令,这样才能对DS18B20进行预定的操作。
复位要求主CPU将数据线下拉500微秒,然后释放,DS18B20收到信号后等待16~60微秒左右,后发出60~240微秒的存在低脉冲,主CPU收到此信号表示复位成功。
ROM命令令和暂存器的命令如表3-1和表3-5。
表3-5DS18B20暂存器的命令
指令
说明
温度转换(44H)
启动在线DS1820做温度A/D转换
读数据(BEH)
从高速暂存器读9bits温度值和CRC值
写数据(4EH)
将数据写入高速暂存器的第2和第3字节中
复制(48H)
将高速暂存器中第2和第3字节复制到EERAM
读EERAM(B8H)
将EERAM内容写入高速暂存器中第2和第3字节
读电源供电方式(B4H)
了解DS1820的供电方式
3.2.2DS18B20电路连接
由于DS18B20工作在单总线方式,其硬件接口非常简单,仅需利用系统的一条I/O线与DS18B20的数据总线相连即可,如图3-5所示。
图3-5DS18B20电路
3.3液晶显示模块
HS1602采用标准的16脚接口,其引脚如表3-6所示,其中VSS为地电源,VDD接5V正电源,V0为液晶显示模块对比度调整端,接正电源时对比度最弱,接地电源时对比度最高,可以通过一个10K的电位器调整对比度。
RS为寄存器选择,高电平时选择数据寄存器,低电平时选择指令寄存器。
RW为读写信号线,高电平时进行读操作,低电平时进行写操作,当RS和RW共同为低电平时可以写入指令或者显示地址,当RS为低电平RW为高电平时可以读忙信号,当RS为高电平RW为低电平时可以写入数据。
E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。
LEDA和LEDK为背光电源,LEDA接5V正电源,LEDK接GND。
D0~D7为8位双向数据线。
表3-6接口信号说明
编号
符号
引脚说明
编号
符号
引脚说明
1
VSS
电源地
9
D2
DataI/O
2
VDD
电源正极
10
D3
DataI/O
3
VL
液晶显示偏压信号
11
D4
DataI/O
4
RS
数据/命令选择端(H/L)
12
D5
DataI/O
5
R/W
读/写选择端(H/L)
13
D6
DataI/O
6
E
使能信号
14
D7
DataI/O
7
D0
DataI/O
15
BLA
背光源正极
8
D1
DataI/O
16
BLK
背光源负极
用HS1602液晶显示模块显示字符或字符串之前必须对其进行初始化,HS1602液晶显示模块的初始化流程如下:
✧5.0初始化过程(复位过程)
✧5.1延时15ms
✧5.2写指令38H(不检测忙信号)
✧5.3延时5ms
✧5.4写指令38H(不检测忙信号)
✧5.5延时5ms
✧5.6写指令38H(不检测忙信号)
✧5.7(以后每次写指令、读/写数据之前均需检测忙信号)
✧5.8写指令38H:
显示模式设置
✧5.9写指令38H:
显示关闭
✧5.10写指令01H:
显示清屏
✧5.11写指令06H:
显示光标移动设置
✧5.12写指令0CH:
显示开关及光标位置
HS1602液晶模块内部的字符发生存储器(CGROM)已经存储了128个不同的点阵字符图形,如表3-7所示。
表3-7CGROM中的字符代码与图形对应关系
高低
0000
0010
0011
0100
0101
0110
0111
0000
CGRAM
0
@
P
\
p
0001
!
1
A
Q
a
q
0010
”
2
B
R
b
r
0011
#
3
C
S
c
s
0100
$
4
D
T
d
t
0101
%
5
E
U
e
u
0110
&
6
F
V
f
v
0111
’
7
G
W
g
w
1000
(
8
H
X
h
x
1001
)
9
I
Y
i
y
1010
*
:
J
Z
j
z
1011
+
;
K
[
k
{
1100
<
L
¥
l
|
1101
-
=
M
]
m
}
1110
.
>
N
^
n
→
1111
/
?
O
_
o
←
HS1602液晶模块内部的控制器共有11条控制指令,如表3-8所示。
它的读写操作、屏幕和光标的操作都是通过指令编程来实现的。
表3-8HS1602液晶模块内部的控制器控制指令
指令
指令码
说明
RS
R/W
D0
D1
D2
D3
D4
D5
D6
D7
清屏
0
0
0
0
0
0
0
0
0
1
清显示,光标回位
光标返回
0
0
0
0
0
0
0
0
1
*
ADD=0时,回原位
输入方式
0
0
0
0
0
0
0
1
I/D
S
决定是否移动以及移动方向
显示开关
0
0
0
0
0
0
1
D
C
B
D-显示,C-光标,B-光标闪烁
移位
0
0
0
0
0
1
S/C
R/L