基于DS18B20的多点温度测量系统的设计与制作毕业设计论文.docx

上传人:b****5 文档编号:6766406 上传时间:2023-01-10 格式:DOCX 页数:62 大小:856.87KB
下载 相关 举报
基于DS18B20的多点温度测量系统的设计与制作毕业设计论文.docx_第1页
第1页 / 共62页
基于DS18B20的多点温度测量系统的设计与制作毕业设计论文.docx_第2页
第2页 / 共62页
基于DS18B20的多点温度测量系统的设计与制作毕业设计论文.docx_第3页
第3页 / 共62页
基于DS18B20的多点温度测量系统的设计与制作毕业设计论文.docx_第4页
第4页 / 共62页
基于DS18B20的多点温度测量系统的设计与制作毕业设计论文.docx_第5页
第5页 / 共62页
点击查看更多>>
下载资源
资源描述

基于DS18B20的多点温度测量系统的设计与制作毕业设计论文.docx

《基于DS18B20的多点温度测量系统的设计与制作毕业设计论文.docx》由会员分享,可在线阅读,更多相关《基于DS18B20的多点温度测量系统的设计与制作毕业设计论文.docx(62页珍藏版)》请在冰豆网上搜索。

基于DS18B20的多点温度测量系统的设计与制作毕业设计论文.docx

基于DS18B20的多点温度测量系统的设计与制作毕业设计论文

摘要

本文介绍了基于DS18B20和STC89C52RC的多点温度测量的方法和原理,利用DSI8B20单总线温度传感器和单片机与其它外围设备结合在一起实现温度的测量和显示。

该设计主要分为以下三大部分:

硬件设计、软件设计和整个系统的调试与实现。

其中硬件设计主要是由Protel99SE软件进行电路的设计和PCB板的绘制;软件设计采用C语言编写实现。

采用该解决方案,实现了基于DS18B20进行的各项软硬件的设计、调试和处理,实现了多点温度测量和显示。

关键词:

温度测量;硬件;软件;温度传感器DS18B20

 

DesignandFabricationofMulti-pointTemperatureMeasuringSystemBasedonDS18B20

Abstract

Thisarticledescribesthemulti-pointtemperaturemeasurementmethodandprinciplebasedonDS18B20andSTC89C52RC,themeasurementanddisplayofthetemperaturesareachievedbymakinguseofthecombinationofthe1-wiretemperaturesensorDS18B20andtheMCUandotherperipherals.Thedesignismainlydividedintothethreepartsasfollows:

thehardwaredesign,thesoftwaredesignandthedebuggingandimplementationoftheentiresystem.Amongthedesign,thehardwaredesignmainlyisofcircuitsdesigningandPCBdrawingbymeansofProtel99SEsoftwareandthesoftwaredesignisrealizedbyusingClanguageprogramming.TheDS18B20baseddesign,debugginganddisposeoftheallsoftwareandhardwareitemsandeventhemulti-pointtemperaturemeasuringanddisplayinghavebeenrealizedbyadoptingthesolution.

Keywords:

TemperatureMeasurement;Hardware;Software;TemperaturesensorDS18B20

 

 

 

 

1绪论

本章主要讨论本课题研究的现状及意义,设计选用的主要元器件简介及系统的设计及实现方案。

1.1概述

简述温度测量选用的传感器、单片机、显示元件及仿真软件。

1.1.1课题研究的现状及意义

在实际工业生产及日常生活中,为了避免局部的温度过高或过低,需要对某个空间内多个点的温度进行监测,如在粮库测温系统、智能建筑自控系统、冷库测温系统、中央空调系统等多种系统中都需要多点温度测量。

为了改善监测人员的工作条件,监测人员一般需要远离监测对象。

因此,多点温度远程监测在实际生产中具有重要的应用价值。

1.1.2DS18B20温度传感器简介

DS18B20是Dallas半导体公司的数字化温度传感器,DS18B20通过一个单线接口发送或接受信息,因此在中央处理器和DS18B20之间仅需一条连接线(加上地线)。

它的测温范围为-55~+125℃,并且在-10~+85℃精度为±0.5℃。

除此之外,DS18B20能直接从单线通讯线上汲取能量,除去了对外部电源的需求。

每个DS18B20都有一个独特的64位序列号,从而允许多只DS18B20同时连在一根单线总线上;因此,很简单就可以用一个微控制器去控制很多覆盖在一大片区域的DS18B20。

这一特性在HVAC环境控制、探测建筑物、仪器或机器的温度以及过程监测和控制等方面非常有用。

图1.1是DS18B20的引脚排列,表1.1是DS18B20的引脚说明,图1.2是DS18B20的方框图。

64位只读存储器储存器件的唯一片序列号。

高速暂存器含有两个字节的温度寄存器,这两个寄存器用来存储温度传感器输出的数据。

除此之外,高速暂存器提供一个直接的温度报警值寄存器(TH和TL),和一个字节的的配置寄存器。

配置寄存器允许用户将温度的精度设定为9,10,11或12位。

TH,TL和配置寄存器是非易失性的可擦除程序寄存器(EEPROM),所以存储的数据在器件掉电时不会消失。

因为DALLAS公司生产的温度传感器DS18B20具有单总线传输、接线简单、精度高、价格低等优点,所以本设计决定选用数支温度传感器DS18B20实现多点温度的测量。

 

图1.1温度传感器DS18B20引脚排列

 

表1.1温度传感器DS18B20引脚说明表

DS18B20引脚详细说明

8引脚SOIC封装*

T0-92封装

符号

说明

5

1

GND

接地。

4

2

DQ

数据输入/输出引脚。

对于单线操作:

漏极开路。

当工作在寄生电源模式时用来提供电源。

3

3

VDD

可选的VDD引脚。

工作于寄生电源模式时VDD必须接地。

*所有表中未提及的脚均都无连接。

 

图1.2温度传感器DS18B20方框图

1.1.3STC89C52RC单片机简介

STC公司生产的RC/RD+系列单片机内部Flash擦写次数为100,000次以上,STC89C51RC/RD+系列单片机出厂时就已完全加密,无法解密。

用户程序是用ISP/IAP机制写入,一边校验一边写,无读出命令,彻底无法解密。

有DIP-40,PLCC-44,PQFP-44三种封装(PLCC、QFP有P4口)。

STC89C52RC/RD+系列单片机是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。

在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。

具有以下标准功能:

8k字节Flash,512字节RAM,32位I/O口线,看门狗定时器,内置4KBEEPROM,MAX810复位电路,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口。

另外STC89X52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。

空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。

掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。

最高运作频率35Mhz,6T/12T可选。

因此本设计选用STC公司的DIP-40封装的89C52单片机,它最大的优点是焊接方便、价格便宜,同时也有足够的存储空间。

 

图1.2本设计选用的STC89C52单片机管脚图

1.1.4LCD1602液晶显示屏简介

工业字符型液晶LCD1602,能够同时显示16×02即32个字符(16列2行)。

1602液晶也叫1602字符型液晶,它是一种专门用来显示字母、数字、符号等的点阵型液晶模块它有若干个5×7或者5×11等点阵字符位组成,每个点阵字符位都可以显示一个字符。

LCD1602采用标准的14脚(无背光)或16脚(带背光)接口,多出来的2条线是背光电源线VCC(15脚)和地线GND(16脚),两者的控制原理完全一样,其接口及引脚说明请看附录3。

因此,本设计决定采用16脚的LCD1602作为温度显示的显示装置,它相对LED数码管来说,接线不算太复杂,多点温度显示时还能显示每个点的英文名称,而且它的显示程序相对数码管来说并不复杂,能让系统的显示模块有很大的发展空间。

1.1.5KEIL编程软件简介

KeilμVison系列是美国KeilSoftware公司推出的51系列兼容单片机软件开发系统。

μVison3是集成的可视化Windows操作界面,其提供了丰富的库函数和各种编译工具,能够对51系列单片机以及和51系列兼容的绝大部分类型的单片机进行设计。

KeilμVison系列可以支持单片机C51程序设计语言,也可以直接进行汇编语言的设计与编译。

KeilμVison系列是一个非常优秀的编译器,受到广大单片机设计者的广泛使用。

其主要特点如下:

(1)支持汇编语言、C51语言等多种单片机设计语言;

(2)可视化的文件管理,界面友好;

(3)支持丰富的产品线,除了51及其兼容内核的单片机外,还新增加了对ARM内核产品的支持;

(4)具有完善的编译连接工具;

(5)具备丰富的仿真调试功能,可以仿真串口、并口、A/D、D/A、定时器/计数器以及中断等资源,同时也可以和外部仿真器联合进行在线调试;

(6)内嵌RTX-51实时多任务操作系统;

(7)支持在一个工作空间中进行多项目的程序设计。

(8)支持多级代码优化。

因此,本设计决定利用KeilμVison2编写软件程序,采用C语言编写。

1.2系统方案设计

以单片机接口原理,DS18B20芯片功能与接口设计,LCD1602液晶屏接口设计等理论知识为基础,设计出完整的系统原理图。

根据原理图,将硬件系统资源焊接成PCB板。

根据系统功能,设计编写固件程序,下载后进行调试,通过DS18B20及LCD1602正常工作实现系统的多点温度测量。

本课题涉及的理论知识主要是DS18B20多点温度测量原理及LCD1602显示原理,重点在于硬件设计,难点在于编程和整机的调试。

经过论证,在实现设计要求的前提下,控制器选取STC89C52RC;而且这款单片机支持在线编程,通过串口下载程序,这给程序的下载和使用带来方便。

电路设计采用Protel99SE,程序设计采用C语言进行编程,软件仿真采用KeilμVison2。

系统的组成框图如下图所示。

它主要由四部分组成:

 

图1.3系统的组成框图

1.3预期结果

通过硬件电路的设计和软件程序的编写实现以下功能:

1、完成硬件电路的设计,让整个系统供电正常;

2、完成软件程序的编写,单片机能独立控制电路板上元件工作;

3、通过系统硬件与软件的调试,所有DS18B20能正常测量环境温度,LCD1602能正确显示各点温度,温度报警功能正常运作;

4、利用C语言编程实现对单片机硬件的操作,培养在此方面工程开发的能力。

 

2DS18B20温度传感器概述

主要讨论温度传感器DS18B20的接口电路、工作原理及工作时序。

2.1DS18B20接口电路

DS18B20通过独有的单总线协议依靠一个单线端口通讯。

当全部器件经由一个3态端口或者漏极开路端口(DQ引脚在DS18B20上的情况下)与总线连接的时候,控制线需要连接一个弱上拉电阻。

在这个总线系统中,微控制器(主器件)依靠每个器件独有的64位片序列号辨认总线上的器件和记录总线上的器件地址。

由于每个装置有一个独特的片序列码,总线可以连接的器件数目事实上是无限的。

DS18B20可以通过从VDD引脚接入一个外部电源供电,或者可以工作于寄生电源模式,该模式允许DS18B20工作于无外部电源需求状态。

对DS18B20供电的一种典型接法是从VDD引脚接入一个外部电源,见图2.1。

这样做的好处是单总线上不需要强上拉。

而且总线不用在温度转换期间总保持高电平。

 

图2.1DS18B20典型接口电路

本设计的温度测量模块决定根据DS18B20的典型接口电路,选择外部电源作为它的供电方式。

详细电路图将在第3章硬件电路设计中讨论。

2.2DS18B20工作原理

DS18B20的核心功能是它的直接读数字的温度传感器。

温度传感器的精度为用户可编程的9,10,11或12位,分别以0.5℃,0.25℃,0.125℃和0.0625℃增量递增。

在上电状态下默认的精度为12位。

DS18B20启动后保持低功耗等待状态;当需要执行温度测量和AD转换时,总线控制器必须发出[44h]命令。

在那之后,产生的温度数据以两个字节的形式被存储到高速暂存器的温度寄存器中,DS18B20继续保持等待状态。

当DS18B20由外部电源供电时,总线控制器在温度转换指令之后发起“读时序”,DS18B20正在温度转换中返回0,转换结束返回1。

单总线系统包括一个总线控制器和一个或多个从机。

DS18B20总是充当从机。

当只有一只从机挂在总线上时,系统被称为“单点”系统;如果由多只从机挂在总线上,系统被称为“多点”。

所有的数据和指令的传递都是从最低有效位开始通过单总线。

通过单线总线端口访问DS18B20的协议如下:

步骤1.初始化。

通过单总线的所有执行操作处理都从一个初始化序列开始。

初始化序列包括一个由总线控制器发出的复位脉冲和其后由从机发出的存在脉冲。

存在脉冲让总线控制器知道DS18B20在总线上且已准备好操作。

步骤2.ROM操作指令。

一旦总线控制器探测到一个存在脉冲,它就发出一条ROM指令。

如果总线上挂有多只DS18B20,这些指令将基于器件独有的64位ROM片序列码使得总线控制器选出特定要进行操作的器件。

这些指令同样也可以使总线控制器识别有多少只,什么型号的器件挂在总线上,同样,它们也可以识别哪些器件已经符合报警条件。

ROM指令有5条,都是8位长度。

总线控制器在发起一条DS18B20功能指令之前必须先发出一条ROM指令。

控制DS18B20的5条ROM指令如下:

①SearchROM[F0h](搜索ROM指令)。

当系统上电初始化的时候,总线控制器必须通过识别总线上所有ROM片序列码去得到从机的数目和型号。

总线控制器通过搜索ROM指令多次循环搜索ROM编码,以确认所有从机器件。

如果总线上只有一只从机,那么可以用较为简单的读取ROM指令代替搜索ROM指令。

在每次搜索ROM指令之后,总线控制器必须返回步骤1。

②READROM[33h](读取ROM指令)。

只有在总线上存在单只DS18B20的时候才能使用这条命令。

该命令允许总线控制器在不使用搜索ROM指令的情况下读取从机的64位片序列码。

如果总线上有不止一只从机,当所有从机试图同时传送信号时就会发生数据冲突。

③MATHROM[55h](匹配ROM指令)。

匹配ROM指令,后跟64位ROM编码序列,让总线控制器在多点总线上定位一只特定的DS18B20。

只有和64位ROM片序列码完全匹配的DS18B20才能响应随后的存储器操作指令;所有和64位ROM片序列码不匹配的从机都将等待复位脉冲。

④SKIPROM[CCh](忽略ROM指令)。

这条指令允许总线控制器不用提供64位ROM编码就使用功能指令。

例如,总线控制器可以先发出一条忽略ROM指令,然后发出温度转换指令[44h],从而完成温度转换操作。

注意:

当只有一只从机在总线上时,无论如何,忽略ROM指令之后只能跟着发出一条读取暂存器指令[BEh]。

在单点总线情况下使用该命令,器件无需发回64位ROM编码,从而节省了时间。

如果总线上有不止一只从机,若发出忽略ROM指令,由于多只从机同时传送信号,总线上就会发生数据冲突。

⑤ALARMSEARCH[ECH](报警搜索指令)。

这条命令的流程和搜索ROM指令相同,然而,只有满足报警条件的从机才对该命令作出响应。

只有在最近一次测温后遇到符合报警条件的情况,DS18B20才会响应这条命令。

在每次报警搜索指令周期之后,总线控制器必须返回步骤1。

步骤3.DS18B20功能指令。

在总线控制器发给欲连接的DS18B20一条ROM命令后,跟着可以发送一条DS18B20功能指令。

这些命令允许总线控制器读写DS18B20的暂存器,发起温度转换和识别电源模式。

DS18B20的功能指令详见下文,同时被概括于表2.1。

表2.1DS18B20功能指令表

DS18B20功能指令表

指令

说明

协议

单总线发出协议后

备注

温度转换指令

 

 

 

 

①ConvertT(温度转换指令)

开始温度转换

44h

读温度忙状态

1

存储器指令

 

 

 

 

②WriteScratchpad(写暂存器指令)

读取暂存器和CRC字节

4Eh

读数据直到第9字节

2

③ReadScratchpad(读暂存器指令)

把字节写入暂存器的2,3和4(TH,TL和配置寄存器)

BEh

写入3个字节到DS18B20

3

④CopyScratchpad(拷贝暂存器指令)

把TH,TL和配置寄存器拷贝到EEPROM中

48h

1

⑤RecallE2(召回EEPROM指令)

把非易失性存储器中的值召回存储器(TH,TL和配置寄存器)

B8H

传送拷贝标识给总线控制器

 

⑥ReadPowerSupply(读电源模式指令)

标识DS18B20的供电模式

B4h

返回供电状态

 

备注:

(1)对于寄生电源模式下的DS18B20,在温度转换和拷贝数据到EEPROM期间,必须给单总线一个强上拉。

总线上在这段时间内不能有其它活动。

(2)总线控制器在任何时刻都可以通过发出复位信号中止数据传输。

(3)TH,TL和配置寄存器这3个字节的写入必须在复位信号发起之前。

温度传感器DS18B20的功能指令具体说明如下:

①CONVERTT[44h](温度转换指令)。

这条命令用以启动一次温度转换。

温度转换指令被执行,产生的温度转换结果数据以2个字节的形式被存储在高速暂存器中,而后DS18B20保持等待状态。

如果DS18B20以外部电源供电,总线控制器在发出该命令后跟着发出读时序,DS18B20如处于转换中,将在总线上返回0,若温度转换完成,则返回1。

②WRITESCRATCHPAD[4Eh](写暂存器指令)。

这条命令向DS18B20的暂存器写入数据,开始位置在TH寄存器(暂存器的第2个字节),接下来写入TL寄存器(暂存器的第3个字节),最后写入配置寄存器(暂存器的第4个字节)。

数据以最低有效位开始传送。

上述三个字节的写入必须发生在总线控制器发出复位命令前,否则会中止写入。

③READSCRATCHPAD[BEh](读暂存器指令)。

这条命令读取暂存器的内容。

读取将从字节0开始,一只进行下去,直到第9字节(字节8,CRC)读完,如果不想读完所有字节,控制器可以在任何时间发出复位命令来中止读取。

④COPYSCRATCHPAD[48h](拷贝暂存器指令)这条命令把TH,TL和配置寄存器(第2、3、4字节)的内容拷贝到EEPROM中。

⑤RECALLE2[B8H](召回EEPROM指令)。

这条命令把报警触发器的值(TH和TL)以及配置数据从EEPROM拷回暂存器。

总线控制器在发出该命令后读时序,DS18B20会输出拷回标识:

0标识正在拷回,1标识拷回结束。

这种拷回操作在DS18B20上电时自动执行,这样,器件一上电暂存器里马上就存在有效的数据了。

⑥READPOWERSUPPLY[B4h](读电源模式指令)。

总线控制器在这条命令发给DS18B20后发出读时序,若是外部电源模式,DS18B20将会把总线拉高。

每一次DS18B20的操作都必须满足以上3个步骤,若是缺少步骤或是顺序混乱,器件将不会返回值。

例如这样的顺序:

发起ROM搜索指令[F0h]和报警搜索指令[ECh]之后,总线控制器必须返回步骤1。

根据以上温度传感器DS18B20的工作原理及指令,编写本设计的软件程序,具体的程序设计将在第4章软件程序设计及调试中详细讨论。

2.3DS18B20工作时序

DS18B20需要严格的单总线协议以确保数据的完整性。

协议包括集中单总线信号类型:

复位脉冲、存在脉冲、写0、写1、读0和读1。

所有这些信号,除存在脉冲外,都是由总线控制器发出的。

和DS18B20间的任何通讯都需要以初始化序列开始,初始化序列见图2.2。

一个复位脉冲跟着一个存在脉冲表明DS18B20已经准备好发送和接收数据。

在初始化序列期间,总线控制器拉低总线并保持480us以发出(TX)一个复位脉冲,然后释放总线,进入接收状态(RX)。

单总线由5K上拉电阻拉到高电平。

当DS18B20探测到I/O引脚上的上升沿后,等待15-60us,然后发出一个由60-240us低电平信号构成的存在脉冲。

 

图2.2DS18B20初始化时序图

DS18B20的数据读写是通过时序处理位来确认信息交换的。

有两种写时序:

写1时序和写0时序。

总线控制器通过写1时序写逻辑1到DS18B20,写0时序写逻辑0到DS18B20。

所有写时序必须最少持续60us,包括两个写周期之间至少1us的恢复时间。

当总线控制器把数据线从逻辑高电平拉到低电平的时候,写时序开始(见图2.3)。

总线控制器要生产一个写时序,必须把数据线拉到低电平然后释放,在写时序开始后的15us释放总线。

当总线被释放的时候,5K的上拉电阻将拉高总线。

总控制器要生成一个写0时序,必须把数据线拉到低电平并持续保持(至少60us)。

总线控制器初始化写时序后,DS18B20在一个15us到60us的窗口内对I/O线采样。

如果线上是高电平,就是写1。

如果线上是低电平,就是写0。

总线控制器发起读时序时,DS18B20仅被用来传输数据给控制器。

因此,总线控制器在发出读暂存器指令[BEh]或读电源模式指令[B4H]后必须立刻开始读时序,DS18B20可以提供请求信息。

除此之外,总线控制器在发出发送温度转换指令[44h]或召回EEPROM指令[B8h]之后读时序。

所有读时序必须最少60us,包括两个读周期间至少1us的恢复时间。

当总线控制器把数据线从高电平拉到低电平时,读时序开始,数据线必须至少保持1us,然后总线被释放(见图2.3)。

在总线控制器发出读时序后,DS18B20通过拉高或拉低总线上来传输1或0。

当传输逻辑0结束后,总线将被释放,通过上拉电阻回到上升沿状态。

从DS18B20输出的数据在读时序的下降沿出现后15us内有效。

因此,总线控制器在读时序开始后必须停止把I/O脚驱动为低电平15us,以读取I/O脚状态。

图2.4标识TINIT,TRC和TSAMPLE之和必须小于15us。

图2.5指出,系统时间可以用下面办法达到最大:

TINIT和TRC保持时间尽可能校;把控制器采样时间放到15us周期的最后。

 

图2.3读/写时序图

 

 

图2.4控制器读1的详细时序图

 

 

图2.5推荐控制器读1时序图

 

3硬件电路设计

本设计的硬件电路设计分为单片机驱动电路设计、温度显示模块电路设计、温度测量模块电路设计及温度报警电路设计。

单片机驱动电路是单片机正常运作的条件,即单片机最小系统。

温度显示模块是本系统设计的显示装置,可以选择数码管或者液晶显示屏作为显示装置,本设计采用的是液晶显示屏LCD1602作为显示装置。

温度测量模块是本系统的重点设计,采用温度传感器DS18B20来实现。

温度传感器DS18B20与单片机的通信可以是单总线通信,也可以是并口通信,本设计采用数支温度传感器DS18B20与单片机并口连接的通信方式。

温度报警电路是用于提醒用户温度是否超出设定范围的装置,本设计采用蜂鸣器的声响

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1