基于单片机的DS18B20多点测温系统LCD1602显示完全免费.docx
- 文档编号:1224806
- 上传时间:2023-04-30
- 格式:DOCX
- 页数:54
- 大小:644.04KB
基于单片机的DS18B20多点测温系统LCD1602显示完全免费.docx
《基于单片机的DS18B20多点测温系统LCD1602显示完全免费.docx》由会员分享,可在线阅读,更多相关《基于单片机的DS18B20多点测温系统LCD1602显示完全免费.docx(54页珍藏版)》请在冰点文库上搜索。
基于单片机的DS18B20多点测温系统LCD1602显示完全免费
河南科技学院
HENANKEJIXUEYUAN
毕业论文(设计)
中文题目:
基于单片机的DS18B20温度传感器测温系统设计
英文题目:
ADesignoftheDS18B20TemperatureTestSystemBasedonMCU
姓名牛鸿昌刘东
学号************
专业班级应用电子技术
指导教师赵小静
提交日期2013年5月20日
教务处制
基于单片机的DS18B20温度传感器测温系统设计
姓名:
**班级:
***
指导老师:
***职称:
**
(惠州学院电子科学系,广东,惠州,516007)
摘要
随着社会的进步和工业技术的发展,人们越来越重视温度因素,许多产品对温度范围要求严格,而目前市场上普遍存在的温度检测仪器大都是单点测量,同时有温度传递不及时、精度不够的缺点,不利于工业控制者根据温度变化及时作出决定。
在这样的形式下,开发一种能够同时测量多点,并且实时性高、精度高,能够综合处理多点温度信息的测量系统就很有必要。
本课题以AT89C52单片机系统为核心,能对多点温度进行实时巡检。
DS18B20是一种可组网的高精度数字式温度传感器,由于其具有单总线的独特优点,可以使用户轻松的组建起传感器网络,并可使多点温度测量电路变得简单、可靠。
本文结合实际使用经验,介绍了DS18B20数字温度传感器在单片机下的硬件连接及软件编程,并给出了软件流程图。
关键词:
DS18B20多点测温单片机LCD1602
Abstract
Astheindustryandthesocietydeveloping,thetemperaturebecomesmoreandmoreimportantandalotofproductsaresensitivetotemperature.However,temperaturemeasuringapparatusinthemarketnowonlycancheckandmeasurethetemperatureofonepoint,atthesametime,thetemperatureinformationisnotrealtimeandtheprecisionislow.Ittakesagreatoftroublesfortheindustry-controllerstomakedecision.Inthissituation,designandimplementoneapplicablesystemwhichcanwatchmeasureandcontrolthetemperatureandthemeasuringresultsisrealtimeandtheprecisionisgreatismoreessential.Inordertomeetingthisapplication,thispapertalkaboutTheMultiple-Point’stemperatureMeasuringSystem.
Thissystembasedonsinglechipcomputer,caninspectandcontrolmultipletemperaturesinrealtime. Asakindofhigh-accuracydigitalnettemperaturesensor,DS18B20canbeusedbuildingasensorneteasily.Itcanalsomakethenetsimpleandreliablewithit'sspecial1-wireinterface.ThispaperintroducestheapplicationofDS18B20withsinglechipprocessor.
Keywords:
DS18B20Multi-pointtemperatureMCULCD1602
第一章 绪论
1.1课题背景
在人类的生活环境中,温度扮演着极其重要的角色。
无论你生活在哪里,从事什么工作,无时无刻不在与温度打着交道。
自18世纪工业革命以来,工业发展对是否能掌握温度有着绝对的联系。
在冶金、钢铁、石化、水泥、玻璃、医药等等行业,可以说几乎80%的工业部门都不得不考虑着温度的因素。
温度对于工业如此重要,由此推进了温度传感器的发展。
传感器主要大体经过了三个发展阶段:
模拟集成温度传感器。
该传感器是采用硅半导体集成工艺制成,因此亦称硅传感器或单片集成温度传感器。
此种传感器具有功能单一(仅测量温度)、测温误差小、价格低、响应速度快、传输距离远、体积小、微功耗等,适合远距离测温、控温,不需要进行非线性校准,外围电路简单。
它是目前在国内外应用最为普遍的一种集成传感器,典型产品有AD590、AD592、TMP17、LM135等;模拟集成温度控制器。
模拟集成温度控制器主要包括温控开关、可编程温度控制器,典型产品有LM56、AD22105和MAX6509。
某些增强型集成温度控制器(例如TC652/653)中还包含了A/D转换器以及固化好的程序,这与智能温度传感器有某些相似之处。
但它自成系统,工作时并不受微处理器的控制,这是二者的主要区别;智能温度传感器。
能温度传感器(亦称数字温度传感器)是在20世纪90年代中期问世的。
它是微电子技术、计算机技术和自动测试技术(ATE)的结晶。
智能温度传感器内部都包含温度传感器、A/D转换器、信号处理器、存储器(或寄存器)和接口电路。
有的产品还带多路选择器、中央控制器(CPU)、随机存取存储器(RAM)和只读存储器(ROM)。
智能温度传感器的特点是能输出温度数据及相关的温度控制量,适配各种微控制器(MCU);并且它是在硬件的基础上通过软件来实现测试功能的,其智能化程度也取决于软件的开发水平。
温度传感器的发展趋势。
进入21世纪后,温度传感器正朝着高精度、多功能、总线标准化、高可靠性及安全性、开发虚拟传感器和网络传感器、研制单片测温系统等高科技的方向迅速发展。
传感器在温度测控系统中的应用。
目前市场主要存在单点和多点两种温度测量仪表。
对于单点温测仪表,主要采用传统的模拟集成温度传感器,其中又以热电阻、热电偶等传感器的测量精度高,测量范围大,而得到了普遍的应用。
此种产品测温范围大都在-200℃~800℃之间,分辨率12位,最小分辨温度在0.001~0.01之间。
自带LED显示模块,显示4位到16位不等。
有的仪表还具有存储功能,可存储几百到几千组数据。
该类仪表可很好的满足单个用户单点测量的需要。
多点温度测量仪表,相对与单点的测量精度有一定的差距,虽然实现了多路温度的测控,但价格昂贵。
针对目前市场的现状,本课题提出了一种可满足要求、可扩展的并且性价比高的单片机多路测温系统。
1.2本课题研究意义
随着科学技术的不断进步与发展,温度控制在工业控制、电子测温计、医疗仪器、家用电器等各种温度控制系统中广泛应用,且由过去的单点测量向多测量发展。
目前温度传感器有模拟和数字两类传感器,为了克服模拟传感器与微处理器接口时需要信号调理电路和A/D转换器的弊端,大多数多点测温控制系统采用数字传感器,并大大方便了系统的设计。
比较有代表性的数字温度传感器有DS18B20、MAX6575、DS1722、MAX6635、SMT160-30等。
在传统的温度测量系统设计中,往往采用模拟技术进行设计,这样就不可避免地遇到诸如引线误差补偿、多点测量中的切换误差和信号调理电路的误差等问题;而其中某一环节处理不当,就可能造成整个系统性能的下降。
随着现代科学技术的飞速发展,特别是大规模集成电路设计技术的发展,微型化、集成化、数字化正成为传感器发展的一个重要方向。
美国Dallas半导体公司推出的数字温度传感器DS18B20,具有独特的单总线接口,仅需要占用一个通用I/0端口即可完成与微处理器的通信;在-10~+85℃温度范围内具有
0.5℃精度;用户可编程设定9~12位的分辨率。
以上特性使得DS18B20非常适用于构建高精度、多点温度测量系统。
1.3本课题的任务
本课题主要是实现对温度进行多点同时测量并准确显示。
整个系统由单片机控制,要能够接收DS18B20温度传感器的数据并显示出来,可以从键盘输入命令,系统根据命令,选择对应的传感器,并由LCD1602进行温度实时显示。
设计一种合理、可行的单片机监控软件,完成多点测量和显示的任务,并编写硬件底层驱动程序。
1.4系统整体目标
利用STC89C52单片机设计一个能够对不同环境多点温度同时进行测量的系统。
该系统能够同时对多个点的温度进行测量采集,通过LCD1602进行实时显示。
第二章方案论证比较与选择
2.1引言
温度测量的方案有很多种,可以采用传统的分立式传感器、模拟集成传感器以及新兴的智能型传感器。
对于控制系统可以采用计算机、单片机等。
2.2方案设计
2.2.1方案一
方案一DS18B20一对一连接方案,就是一个I/O口连接一个DS18B20,这种方案虽然占用单片机的三个I/O口,但采用这种方案大大的简化了编程难度,缩短了设计周期,同时也能保证系统的稳定,方案一的框图如图2.1所示。
图2-1DS18B20多I/O口连接方案
2.2.2设计方案二
方案二DS18B20单线连接方案,就是三个DS18B20连接到单片机的一个I/0口上,这种方案只用到单片机的一个I/O口,大大的节约了单片机I/O口资源。
缺点是在时序上比较复杂,DS18B20的编程增加了读ROM程序,搜索ROM和匹配ROM程序。
方案二的框图如图2.2所示。
图2.2DS18B20单线连接方案
2.3方案的比较与选择
方案一是把DS18B20的三个DQ端分别接到单片机的三个不同的I/O口,这种接法虽然占用的I/O口比较多,但是它的时序比较简单,不需要读取ROM序列号程序,搜索ROM序列号程序,匹配ROM序列号程序,软件上简化了很多。
方案二是四DS18B20D的四个DQ端接到单片机的一个I/O口。
这种接法在硬件上节省了三个I/O口,在硬件上简化了不少。
但是在软件上时序就增加了难度,需要添加读ROM序列号程序,搜索ROM序列号程序,匹配ROM序列号程序。
本设计由于功能比较简单I/O口资源丰富,同时时间比较紧张,所以通过两个方案的比较,决定选用方案一。
第三章硬件设计
3.1STC89C52单片机简介
STC89C52是一种带8K字节闪烁可编程可檫除只读存储器(FPEROM-FlashProgramableandErasableReadOnlyMemory)的低电压,高性能COMOS8的微处理器,俗称单片机。
该器件采用ATMEL搞密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
1.时钟电路
STC89C52内部有一个用于构成振荡器的高增益反相放大器,引脚RXD和TXD分别是此放大器的输入端和输出端。
时钟可以由内部方式产生或外部方式产生。
内部方式的时钟电路如图3.1(a)所示,在RXD和TXD引脚上外接定时元件,内部振荡器就产生自激振荡。
定时元件通常采用石英晶体和电容组成的并联谐振回路。
晶体振荡频率可以在1.2~12MHz之间选择,电容值在5~30pF之间选择,电容值的大小可对频率起微调的作用。
外部方式的时钟电路如图3.1(b)所示,RXD接地,TXD接外部振荡器。
对外部振荡信号无特殊要求,只要求保证脉冲宽度,一般采用频率低于12MHz的方波信号。
片内时钟发生器把振荡频率两分频,产生一个两相时钟P1和P2,供单片机使用。
(a)内部方式时钟电路(b)外部方式时钟电路
图3.1时钟电路
2.复位及复位电路
(1)复位操作
复位是单片机的初始化操作。
其主要功能是把PC初始化为0000H,使单片机从0000H单元开始执行程序。
除了进入系统的正常初始化之外,当由于程序运行出错或操作错误使系统处于死锁状态时,为摆脱困境,也需按复位键重新启动。
除PC之外,复位操作还对其他一些寄存器有影响,它们的复位状态如表一所示。
表一寄存器的复位状态
寄存器
复位状态
寄存器
复位状态
PC
0000H
TCON
00H
ACC
00H
TL0
00H
PSW
00H
TH0
00H
SP
07H
TL1
00H
DPTR
0000H
TH1
00H
P0-P3
FFH
SCON
00H
(2)复位信号及其产生
RST引脚是复位信号的输入端。
复位信号是高电平有效,其有效时间应持续24个振荡周期(即二个机器周期)以上。
若使用颇率为6MHz的晶振,则复位信号持续时间应超过4us才能完成复位操作。
产生复位信号的电路逻辑如图3.2所示:
图3.2复位信号的电路逻辑图
整个复位电路包括芯片内、外两部分。
外部电路产生的复位信号(RST)送至施密特触发器,再由片内复位电路在每个机器周期的S5P2时刻对施密特触发器的输出进行采样,然后才得到内部复位操作所需要的信号。
复位操作有上电自动复位相按键手动复位两种方式。
上电自动复位是通过外部复位电路的电容充电来实现的,其电路如图3.4(a)所示。
这佯,只要电源Vcc的上升时间不超过1ms,就可以实现自动上电复位,即接通电源就成了系统的复位初始化。
按键手动复位有电平方式和脉冲方式两种。
其中,按键电平复位是通过使复位端经电阻与Vcc电源接通而实现的,其电路如图3.4(b)所示;而按键脉冲复位则是利用RC微分电路产生的正脉冲来实现的,
其电路如图3.3(c)所示:
(a)上电复位(b)按键电平复位(c)按键脉冲复位
图3.3复位电路
上述电路图中的电阻、电容参数适用于6MHz晶振,能保证复位信号高电平持续时间大于2个机器周期。
本系统的复位电路采用图3.3(c)按键脉冲复位方式。
STC89C52具体介绍如下:
①主电源引脚(2根)
VCC(Pin40):
电源输入,接+5V电源
GND(Pin20):
接地线
②外接晶振引脚(2根)
XTAL1(Pin19):
片内振荡电路的输入端
XTAL2(Pin20):
片内振荡电路的输出端
③控制引脚(4根)
RST/VPP(Pin9):
复位引脚,引脚上出现2个机器周期的高电平将使单片机复位。
ALE/PROG(Pin30):
地址锁存允许信号
PSEN(Pin29):
外部存储器读选通信号
EA/VPP(Pin31):
程序存储器的内外部选通,接低电平从外部程序存储器读指令,如果接高电平则从内部程序存储器读指令。
④可编程输入/输出引脚(32根)
STC89C52单片机有4组8位的可编程I/O口,分别位P0、P1、P2、P3口,每个口有8位(8根引脚),共32根。
P0口(Pin39~Pin32):
8位双向I/O口线,名称为P0.0~P0.7
P1口(Pin1~Pin8):
8位准双向I/O口线,名称为P1.0~P1.7
P2口(Pin21~Pin28):
8位准双向I/O口线,名称为P2.0~P2.7
P3口(Pin10~Pin17):
8位准双向I/O口线,名称为P3.0~P3.7
STC89C52主要功能如表二所示。
表二STC89C52主要功能
主要功能特性
兼容MCS51指令系统
8K可反复擦写FlashROM
32个双向I/O口
256x8bit内部RAM
3个16位可编程定时/计数器中断
时钟频率0-24MHz
2个串行中断
可编程UART串行通道
2个外部中断源
共6个中断源
2个读写中断口线
3级加密位
低功耗空闲和掉电模式
软件设置睡眠和唤醒功能
3.2DS18B20介绍
3.2.1 温度传感器DS18B20
DS18B20是美国DSLLAS半导体公司推出的第一篇支持“一线总线”接口的温度传感器,它具有微型化、低功耗、高性能、抗干扰能力强、易配微处理器等优点,可直接将温度转化成串型数字信号供处理器处理。
1.DS18B20温度传感器特性
1)适应电压范围宽,电压范围在3.0~5.5V,在寄生电源方式下可有数据线供电。
2)独特的单线接口方式,它与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通信。
3)支持多点组网功能,多个DS18B20可以并联在唯一的三线上,实现组网多点测温。
4)在使用中不需要任何外围元件,全部传感器元件及转换电路集成在形如一只三极管的集成电路内。
5)测温范围-55℃~+125℃,在-10℃~+85℃时精度为±0.5℃。
6)可编程分辨率为9~12位,对应的可分辨率温度分别为0.5℃,0.25℃,0.125℃和0.0625℃,可实现高精度测温。
7)在9位分辨率时,最多在93.78ms内把温度转换为数字;12位分辨率时,最多在750ms内把温度转换为数字,显示速度快。
8)测量结果直接输出数字温度信号,以“一线总线”串行送给CPU,同时可传送CRC校验码,具有极强的抗干扰纠错能力。
9)负压特性。
电源极性接反时,芯片不会因发热而烧毁,但不能正常工作。
2.应用范围
1)冷冻库、粮仓、储罐、电信机房、电力机房、电缆线槽等测温和控制领域。
2)轴瓦、缸体、纺织、空调等狭小空间工业设备测温和控制。
3)汽车空调、冰箱、冷柜以及中低纬度干燥箱等。
4)供热、制冷管道热量计量、中央空调分户热能计量等。
1.引脚介绍
DS18B20实物如图3.5所示。
图3.5实物图
DS18B20有两种封装:
三角TO-92直插式(用的最多、最普遍的封装)和八角SOIC贴片式,封装引脚见图3.6。
表3.2.1列出了DS18B20的引脚定义。
(a)DS18B20To-92(b)DS18B20八角SOIC
图3.6DS18B20引脚封装图
引脚
定义
GND
电源负极
DQ
信号输入输出
VDD
电源正极
NC
空
表3.2.1DS18B20引脚定义
2.硬件连接
①DS18B20寄生电源供电方式
如下面图3.7(a)所示,在寄生电源供电方式下,DS18B20从单线信号线上汲取能量:
在信号线DQ处于高电平期间把能量储存在内部电容里,在信号线处于低电平期间消耗电容上的电能工作,直到高电平到来再给寄生电源(电容)充电。
独特的寄生电源方式有三个好处:
1)进行远距离测温时,无需本地电源
2)可以在没有常规电源的条件下读取ROM
3)电路更加简洁,仅用一根I/O口实现测温
要想使DS18B20进行精确的温度转换,I/O线必须保证在温度转换期间提供足够的能量,由于每个DS18B20在温度转换期间工作电流达到1mA,当几个温度传感器挂在同一根I/O线上进行多点测温时,只靠4.7K上拉电阻就无法提供足够的能量,会造成无法转换温度或温度误差极大。
因此,该电路只适应于单一温度传感器测温情况下使用,不适宜采用电池供电系统中。
并且工作电源VCC必须保证在5V,当电源电压下降时,寄生电源能够汲取的能量也降低,会使温度误差变大。
②DS18B20寄生电源强上拉供电方式
改进的寄生电源供电方式如下面图3.7(b)所示,为了使DS18B20在动态转换周期中获得足够的电流供应,当进行温度转换或拷贝到E2存储器操作时,用MOSFET把I/O线直接拉到VCC就可提供足够的电流,在发出任何涉及到拷贝到E2存储器或启动温度转换的指令后,必须在最多10μS内把I/O线转换到强上拉状态。
在强上拉方式下可以解决电流供应不足的问题,因此也适合于多点测温应用,缺点就是要多占用一根I/O口线进行强上拉切换。
③DS18B20的外部电源供电方式
如下面图3.7(c)所示,在外部电源供电方式下,DS18B20工作电源由VDD引脚接入,其VDD端用3~5.5V电源供电,此时I/O线不需要强上拉,不存在电源电流不足的问题,可以保证转换精度,同时在总线上理论可以挂接任意多个DS18B20传感器,组成多点测温系统。
注意:
在外部供电的方式下,DS18B20的GND引脚不能悬空,否则不能转换温度,读取的温度总是85℃。
(a)外部电源供电方式(c)寄生电源供电方式
(b)寄生电源强上拉供电方式
图3.7
3.工作原理
硬件电路连接好以后,单片机需要怎么样工作才能将DS18B20中的温度数据读取出来呢?
下面将给出详细分析。
首先我们来看控制DS18B20的指令:
1)33H—读ROM。
读DS18B20温度传感器ROM的编码(即64位地址)。
2)55H—匹配ROM。
发出此命令之后,接着发出64位ROM编码,访问单总线上与该编码相对应的DS18B20并使之作出响应,为下一步对该DS18B20的读/写做准备。
3)F0H—搜索ROM。
用于确定挂接在同一总线上DS18B20的个数,识别64位ROM地址,为操作个器件做好准备。
4)CCH—跳过ROM。
忽略64为ROM地址,直接向18B20发温度转换命令,适用于一个从机工作。
5)ECH—告警搜索命令。
执行后只有温度超过设定值上限或下限的芯片才做出响应。
以上这些指令设计的存储器是64位光刻ROM,表3.2.2列出了它的含义。
表3.2.264位光刻ROM各位定义
64位光刻ROM中的序列号是出厂前被光刻好的,它可以看做该DS18B20的地址序列码。
其各位排列顺序是:
开始8位为产品类型标号,接下来48位是该DS18B20自身的序列号,最后8位是前面56位的CRC循环冗余校验码(CR=X8+X5+X4+1)。
光刻ROM的作用是使每一个DS18B20都各不相同,这样就可以实现一条总线上挂接多个DS18B20的目的。
下面介绍以上几条指令的用法。
当主机需要对众多在线DS18B20中的某一个进行操作时,首先应将主机逐个与DS18B20挂接,读出其序列号;然后再将所有的DS18B20挂接到总线上,单片机发出匹配ROM命令(55H),紧接着主机提供的64位序列(包括DS18B20的48位序列号)之后的操作就是针对该DS18B20的。
如果主机只对一个DS18B20进行操作,就不需要读取ROM编码以及匹配ROM编码了,只要用跳过ROM(CCH)命令,就可以进行如下温度转换和读取操作。
1)44H—温度转换。
启动DS18B20进行温度转换,12位转换时最长为750ms(9位为93.75ms)。
结果存入内部9字节的RAM中。
2)BEH—读暂存器。
读内部RAM中9字节的温度数据。
3)4EH—写暂存器。
发出向内部RAM的2、3字节写上、下限温度数据命令,紧跟该命令之后,是传送两字节的数据。
4)48H—复制暂存器。
将RAM中第2,3字节的内容复制到E2ROM中。
5)B8H—重调E2ROM中内容回复到RAM中的第3,4字节。
6)B4H—读供电方式。
读DS18B20的供电模式。
寄生供电时,DS18B20发送0;外接电源供电时,DS18B20发送1。
以上这些指令涉及的存储器为高速暂存器RAM和可电擦出E2ROM,见表3.2.3。
表3.2.3高速暂存器RAM
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 DS18B20 多点 测温 系统 LCD1602 显示 完全免费