基于DS18B20的数字温度计课程设计.docx

上传人:b****3 文档编号:26917627 上传时间:2023-06-24 格式:DOCX 页数:31 大小:407.89KB
下载 相关 举报
基于DS18B20的数字温度计课程设计.docx_第1页
第1页 / 共31页
基于DS18B20的数字温度计课程设计.docx_第2页
第2页 / 共31页
基于DS18B20的数字温度计课程设计.docx_第3页
第3页 / 共31页
基于DS18B20的数字温度计课程设计.docx_第4页
第4页 / 共31页
基于DS18B20的数字温度计课程设计.docx_第5页
第5页 / 共31页
点击查看更多>>
下载资源
资源描述

基于DS18B20的数字温度计课程设计.docx

《基于DS18B20的数字温度计课程设计.docx》由会员分享,可在线阅读,更多相关《基于DS18B20的数字温度计课程设计.docx(31页珍藏版)》请在冰豆网上搜索。

基于DS18B20的数字温度计课程设计.docx

基于DS18B20的数字温度计课程设计

毕业设计(论文)题目

毕业设计(论文)英文题目

摘要

在日常生活及工业生产过程中,经常要用到温度的检测及控制,温度是生产过程和科学实验中普遍而且重要的物理参数之一。

在生产过程中,为了高效地进行生产,必须对它的主要参数,如温度、压力、流量等进行有效的控制。

温度控制在生产过程中占有相当大的比例。

温度测量是温度控制的基础,技术已经比较成熟。

传统的测温元件有热电偶和二电阻。

而热电偶和热电阻测出的一般都是电压,再转换成对应的温度,这些方法相对比较复杂,需要比较多的外部硬件支持。

我们用一种相对比较简单的方式来测量。

本文将介绍一种基于单片机控制的数字温度计,就是用单片机实现温度测量,进而达到数控制的目的。

传统的温度检测大多以热敏电阻为温度传感器,但热敏电阻的可靠性差,测量温度准确率低,而且必须经过专门的接口电路转换成数字信号才能由单片机进行处理。

本次采用DS18B20数字温度传感器来实现基于AT89C51单片机的数字温度计的设计用LED数码管以串口传送数据,实现温度显示,能准确达到以上要求,可以用于温度等非电信号的测量,主要用于对测温比较准确的场所,或科研实验室使用,能独立工作的单片机温度检测、温度控制系统已经广泛应用很多领域。

关键词温度计;单片机;数字控制;DS18B20

ABSTRACT

Indailylifeandindustrialproductionprocess,oftenusedinthedetectionandcontroloftemperature,temperatureistheproductionprocessandscientificexperimentsingeneralandoneoftheimportantphysicalparameter.Intheproductionprocess,inordertoefficientlycarryouttheproduction,tobeitsmainparameters,suchastemperature,pressure,flowcontrol,etc...Temperaturecontrolintheproductionprocessofalargeproportion.Temperaturemeasurementisthebasisoftemperature-controlled,morematuretechnology.Traditionalthermocoupleandtemperaturecomponentsarethesecondresistor.Thethermocoupleandthermalresistancearegenerallymeasuredvoltage,andthenreplacedbythecorrespondingtemperature,thesemethodsarerelativelycomplex,requiringarelativelylargenumberofexternalhardwaresupport.Weusearelativelysimplewaytomeasure.

Thisarticlewillintroducethesingle-chipmicrocomputer-basedcontrolofadigitalthermometerisusedtoachievesingle-chiptemperaturemeasurement,thetraditionaldetectionofmostofthetemperaturethermistorfortemperaturesensor,butthepoorreliabilityofthermistors,temperaturemeasurementaccuracyoflow-,andmustgothroughaspecialinterfacecircuittoconvertthedigitalsignalprocessedbythesinglechip.TheuseofdigitaltemperaturesensorDS18B20toAT89C51microcontroller-baseddesignofdigitalthermometerwithLEDdigitalcontroltotheserialtransmissionofdata,temperaturedisplay,accuratetoachievetheaboverequirements,canbeusedfortemperaturemeasurementandothernon-electricalsignal,mainlyusedformoreaccuratetemperaturemeasurementsites,orresearchlaboratoryuse,canworkindependentlyofthesingle-chiptemperaturedetection,temperaturecontrolsystemhasbeenwidelyusedinmanyareas

KeywordsThermometer;Single-chip;DigitalControl;DS18B20

 

0引言

随着人们生活水平的不断提高,单片机控制无疑是人们追求的目标之一,它所给人带来的方便也是不可否定的,其中数字温度计就是一个典型的例子,但人们对它的要求越来越高,要为现代人工作、科研、生活、提供更好的更方便的设施就需要从数单片机技术入手,一切向着数字化控制,智能化控制方向发展。

随着时代的进步和发展,单片机技术已经普及到我们生活,工作,科研,各个领域,已经成为一种比较成熟的技术,单片机已经在测控领域中获得了广泛的应用

本设计所介绍的数字温度计与传统的温度计相比,具有读数方便,测温范围广,测温准确,其输出温度采用数字显示,该设计控制器使用单片机AT89C51,测温传感器使用DS18B20,用LED数码管以串口传送数据,实现温度显示,能准确达到以上要求。

1绪论

检测是人类认识客观世界的最基本的方法,是指生产、试验现场利用某种合适的检测仪器或系统对被检测对象进行在线实时的测量。

检测技术从广义上说是指寻找与自然信息独具有对应关系的种种表现形式的信号,确定被测量与显示量两者之间的定性、定量关系,并为进一步提高测量精度、改进试验方法及测量装置性能提供可行依据的整个过程。

检测设备的性能指标主要有精确度、稳定性、输入输出特性这3个方面。

温度是表征物体冷热程度的物理量,是工业生产和自动控制中最常见的工艺参数之一,生产过程中常常需要对温度进行检测和监控。

在传统的温度测控系统设计中,往往采用模拟技术进行设计,这样就不可避免地遇到诸如传感器外围电路复杂及抗干扰能力差等问题;而其中任何一环节处理不当,就会造成整个系统性能的下降。

采用数字温度传感器与单片机组成的温度检测系统进行温度检测、数值显示和数据存储,体积减小,精度提高,抗干扰能力强,并可组网进行多点协测,还可以实现实时控制等技术,在现代工业生产中应用越来越广泛。

由于本设计是测温电路,可以使用热敏电阻之类的器件利用其感温效应,在将随被测温度变化的电压或电流采集过来,进行A/D转换后,就可以用单片机进行数据的处理,在显示电路上,就可以将被测温度显示出来,这种设计需要用到A/D转换电路,感温电路比较麻烦。

进而考虑到用温度传感器,在单片机电路设计中,大多都是使用传感器,所以这是非常容易想到的,所以可以采用一只温度传感器DS18B20,此传感器,可以很容易直接读取被测温度值,进行转换,就可以满足设计要求。

 

2硬件介绍

2.1AT89C51单片机

2.1.1概述

AT89C51是美国ATMEL公司生产的低电压,高性能CMOS8位单片机,片内含4kbytes的可反复擦写的只读程序存储器(PEROM)和128bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器(CPU)和Flash存储单元,功能强大AT89C51单片机可为您提供许多高性价比的应用场合,可灵活应用于各种控制领域。

AT89C51单片机管脚图如图2-1所示。

2.1.2基本参数

·MCS-51产品指令系统完全兼容

·4k字节可重擦写Flash闪速存储器

·1000次擦写周期

·全静态操作:

0Hz-24MHz

·三级加密程序存储器

·128×8字节内部RAM

·32个可编程I/O口线

·2个16位定时/计数器

·6个中断源

图2-1AT89C51单片机管脚图

·可编程串行UART通道

·低功耗空闲和掉电模式

2.1.3功能特性

AT89C51提供以下标准功能:

4k字节Flash闪速存储器,128字节内部RAM,32个I/O口线,两个16位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。

同时,AT89C51可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。

空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。

掉电方式保存RAM中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。

2.1.4引脚说明

Vcc:

电源电压

GND:

P0口:

P0口是一组8位漏极开路型双向I/O口,也即地址/数据总线复用口。

作为输出口用时,每位能吸收电流的方式驱动8个TTL逻辑门电路,对端口写“1”可作为高阻抗输入端用。

在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数据总线复用,在访问期间激活内部上拉电阻。

P1口:

P1是一个带内部上拉电阻的8位双向I/O口,P1的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。

对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。

作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。

P2口:

P2是一个带有内部上拉电阻的8位双向I/O口,P2的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。

对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口,作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。

在访问外部程序存储器或16位地址的外部数据存储器(例如执行MOVX@DPTR指令)时,P2口送出高8位地址数据。

在访问8位地址的外部数据存储器(如执行MOVX@RI指令)时,P2口线上的内容(也即特殊功能寄存器(SFR)区中R2寄存器的内容),在整个访问期间不改变。

P3口:

P3口是一组带有内部上拉电阻的8位双向I/O口。

P3口输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。

对P3口写入“1”时,它们被内部上拉电阻拉高并可作为输入端口。

作输入端时,被外部拉低的P3口将用上拉电阻输出电流(IIL)。

RST:

复位输入。

当振荡器工作时,RST引脚出现两个机器周期以上高电平将使单片机复位。

XTAL1:

振荡器反相放大器的及内部时钟发生器的输入端。

XTAL2:

振荡器反相放大器的输出端。

2.2DS18B20单线数字温度传感器

2.2.1概述

新的“一线器件”DS18B20体积更小、适用电压更宽、更经济。

Dallas半导体公司的数字化温度传感器DS1820是世界上第一片支持“一线总线”接口的温度传感器。

一线总线独特而且经济的特点,使用户可轻松地组建传感器网络,为测量系统的构建引入全新概念。

现在,新一代的“DS18B20”体积更小、更经济、更灵活。

使您可以充分发挥“一线总线”的长处。

2.2.2DS1820的应用

DS1820数字温度计以9位数字量的形式反映器件的温度值。

DS1820通过一个单线接口发送或接收信息,因此在中央微处理器和DS1820之间仅需一条连接线(加上地线)。

用于读写和温度转换的电源可以从数据线本身获得,无需外部电源。

因为每个DS1820都有一个独特的片序列号,所以多只DS1820可以同时连在一根单线总线上,这样就可以把温度传感器放在许多不同的地方。

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

2.2.3DS18B20的结构介绍

图2-2的方框图示出了DS1820的主要部件。

DS1820有三个主要数字部件:

1)64位激光ROM,2)温度传感器,3)非易失性温度报警触发器TH和TL。

器件用如下方式从单线通讯线上汲取能量:

在信号线处于高电平期间把能量储存在内部电容里,在信号线处于低电平期间消耗电容上的电能工作,直到高电平到来再给寄生电源(电容)充电。

DS1820也可用外部5V电源供电。

图2-2DS18B20的结构方框图

2.3数码管

数码管是一种半导体发光器件,其基本单元是发光二极管。

数码管按段数分为七段数码管和八段数码管,八段数码管比七段数码管多一个发光二极管单元(多一个小数点显示);按能显示多少个“8”可分为1位、2位、4位等等数码管;按发光二极管单元连接方式分为共阳极数码管和共阴极数码管。

共阳数码管是指将所有发光二极管的阳极接到一起形成公共阳极(COM)的数码管。

共阳数码管在应用时应将公共极COM接到+5V,当某一字段发光二极管的阴极为低电平时,相应字段就点亮。

当某一字段的阴极为高电平时,相应字段就不亮。

共阴数码管是指将所有发光二极管的阴极接到一起形成公共阴极(COM)的数码管。

共阴数码管在应用时应将公共极COM接到地线GND上,当某一字段发光二极管的阳极为高电平时,相应字段就点亮。

当某一字段的阳极为低电平时,相应字段就不亮。

数码管外形如图2-3,数码管电路结构如图2-4。

3硬件设计

3.1整体设计

系统整体硬件电路包括,传感器数据采集电路,温度显示电路,上下限报警调整电路,单片机主板电路等组成。

系统框图主要由主控制器、单片机复位、报警按键设置、时钟振荡、LED数码管显示、温度传感器组成。

系统框图如图3-1所示。

图3-1系统基本方框图

1)主控制器

单片机AT89C51具有低电压供电和体积小等特点,四个端口只需要两个口就能满足电路系统的设计需要,很适合便携手持式产品的设计使用系统可用二节电池供电。

2)显示电路

显示电路采用LED三位8段显示数码管,从P2口输出段码。

显示电路是使用的串口显示,这种显示最大的优点就是使用口资源比较少,只用p2口的p2.0-p2.7进行串口的发送和接收。

3)温度传感器

温度传感器采用美国DALLAS半导体公司生产的DS18B20温度传感器。

DS18B20输出信号全数字化。

便于单片机处理及控制,在0—100摄氏度时,最大线形偏差小于1摄氏度,采用单总线的数据传输,可直接与计算机连接。

用AT89C51芯片控制温度传感器DS18B20进行实时温度检测并显示,能够实现快速测量环境温度,并可以根据需要设定上下限报警温度。

3.2时钟振荡器

AT89C5l中有一个用于构成内部振荡器的高增益反相放大器,引脚XTAL1和XTAL2分别是该放大器的输入端和输出端。

这个放大器与作为反馈元件的片外石英晶体或陶瓷谐振器一起构成自激振荡器,振荡电路参见图3-2。

外接石英晶体(或陶瓷谐振器)及电容C1、C2接在放大器的反馈回路中构成并联振荡电路。

对外接电容C1、C2虽然没有十分严格的要求,但电容容量的大小会轻微影响振荡频率的高低、振荡器工作的稳定性、起振的难易程序及温度稳定性,如果使用石英晶体,我们推荐电容使用30pF±10pF,而如使用陶瓷谐振器建议选择40pF±10F。

 

图3-2内部振荡电路

由于外部时钟信号是通过一个2分频触发器后作为内部时钟信号的,所以对外部时钟信号的占空比没有特殊要求,但最小高电平持续时间和最大的低电平持续时间应符合产品技术条件的要求。

3.3DS18B20的供电方式

DS1820供电的方法是从VDD引脚接入一个外部电源,见图3-3。

这样做的好处是I/O线上不需要加强上拉,而且总线控制器不用在温度转换期间总保持高电平。

这样在转换期间可以允许在单线总线上进行其他数据往来。

另外,在单线总线上可以挂任意多片DS1820,而且如果它们都使用外部电源的话,就可以先发一个SkipROM命令,再接一个ConvertT命令,让它们同时进行温度转换。

注意当加上外部电源时,GND引脚不能悬空。

图3-3DS18B20用VDD供电电路图

3.4数码管的驱动方式

数码管要正常显示,就要用驱动电路来驱动数码管的各个段码,从而显示出我们要的数字,因此根据数码管的驱动方式的不同,可以分为静态式和动态式两类。

1)静态显示驱动:

静态驱动也称直流驱动。

静态驱动是指每个数码管的每一个段码都由一个单片机的I/O端口进行驱动,或者使用如BCD码二-十进制译码器译码进行驱动。

静态驱动的优点是编程简单,显示亮度高,缺点是占用I/O端口多,如驱动5个数码管静态显示则需要5×8=40根I/O端口来驱动(要知道一个89C51单片机可用的I/O端口才32个呢),实际应用时必须增加译码驱动器进行驱动,增加了硬件电路的复杂性。

2)动态显示驱动:

数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划"a,b,c,d,e,f,g,dp"的同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位选通COM端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。

通过分时轮流控制各个数码管的的COM端,就使各个数码管轮流受控显示,这就是动态驱动。

本设计中数码管采用的是动态驱动方式。

4软件调试

4.1整体设计

软件部分的设计主要包括DS18B20的测温操作,报警操作以及为温度显示三部分内容。

整体设计框图如下图4-1所示

 

图4-1测温操作设计示意图

4.2测温操作

DS18B20通过一种片上温度测量技术来测量温度。

图4-2表示出了温度测量电路的方框图。

图4-2DS18B20测温电路结构图

DS1820是这样测温的:

用一个高温度系数的振荡器确定一个门周期,内部计数器在这个门周期内对一个低温度系数的振荡器的脉冲进行计数来得到温度值。

计数器被预置到对应于-55℃的一个值。

如果计数器在门周期结束前到达0,则温度寄存器(同样被预置到-55℃)的值增加,表明所测温度大于-55℃。

同时,计数器被复位到一个值,这个值由斜坡式累加器电路确定,斜坡式累加器电路用来补偿感温振荡器的抛物线特性。

然后计数器又开始计数直到0,如果门周期仍未结束,将重复这一过程。

斜坡式累加器用来补偿感温振荡器的非线性,以期在测温时获得比较高的分辨力。

这是通过改变计数器对温度每增加一度所需计数的的值来实现的。

因此,要想获得所需的分辨力,必须同时知道在给定温度下计数器的值和每一度的计数值。

最高有效(符号)位被复制充满存储器中两字节温度寄存器的高MSB位,由这种“符号位扩展”产生出了示于表1的16bit温度读数。

可用下述方法获得更高的分辨力。

首先,读取温度值,将0.5℃位(LSB)从读取的值中截去,这个值叫做TEMP_READ。

然后读取计数器中剩余的值,这个值是门周期结束后保留下来的值(COUNT_REMAIN)。

最后,我们用到在这个温度下每度的计数值(COUNT_PER_C)。

用户可以用下面的公式计算实际温度值:

(公式4-1)

DS1820的测温操作程序代码如下:

//ds1820开始转换

voidtmstart(void)

{

dmsec

(1);

tmreset();

tmpre();

dmsec

(1);

tmwbyte(0xcc);//skiprom

tmwbyte(0x44);//转换

}

/读取温度

unsignedchartmrtemp(void)

{

unsignedchara,b,y1,y2,y3;

tmreset();

tmpre();

dmsec

(1);

tmwbyte(0xcc);//skiprom

tmwbyte(0xbe);//转换

a=tmrbyte();//LSB低8位

b=tmrbyte();//MSB高8位

if((b&0x80)==0x80)//判断温度正负

{

b=~b;a=~a+1;//负温度处理(DS18B20的负温度是正的反码,即将它取反+1,就得到正的温度)

y1=a>>4;//降低精度(去掉小数点)

y2=b<<4;//减小测量范围(-55°C---99°C)

y3=y1|y2;

Tflag=0;

}

else//正温度

{

y1=a>>4;

y2=b<<4;

y3=y1|y2;

Tflag=1;

}

return(y3);

}

4.3报警操作

DS1820完成一次温度转换后,就拿温度值和存储在TH和TL中的值进行比较。

因为DS18B20的寄存器是8位的,所以0.5℃位被忽略不计。

TH或TL的最高有效位直接对应16位温度寄存器的符号位。

如果测得的温度高于TH或低于TL,器件内部就会置位一个报警标识。

每进行一次测温就对这个标识进行一次更新。

当报警标识置位时,DS18B20会对报警搜索命令有反应。

这样就允许许多DS18B20并联在一起同时测温,如果某个地方的温度超过了限定值,报警的器件就会被立即识别出来并读取,而不用读未报警的器件。

报警操作程序代码如下:

//温度报警值设置函数

voidremp()

{

ge=wendu%10;

shi=wendu/10;

if(kflag==1)

{

digitalshow(0,shi,ge);

if(up==0)

{

dmsec(50);

if(up==0)

{

while(up==0);

wendu++;

if(wendu==99)

wendu=0;

}

}

if(down==0)

{

dmsec(50);

if(down==0)

{

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

当前位置:首页 > 农林牧渔 > 林学

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

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