数字温度计课程设计.docx

上传人:b****2 文档编号:2607535 上传时间:2023-05-04 格式:DOCX 页数:29 大小:287.50KB
下载 相关 举报
数字温度计课程设计.docx_第1页
第1页 / 共29页
数字温度计课程设计.docx_第2页
第2页 / 共29页
数字温度计课程设计.docx_第3页
第3页 / 共29页
数字温度计课程设计.docx_第4页
第4页 / 共29页
数字温度计课程设计.docx_第5页
第5页 / 共29页
数字温度计课程设计.docx_第6页
第6页 / 共29页
数字温度计课程设计.docx_第7页
第7页 / 共29页
数字温度计课程设计.docx_第8页
第8页 / 共29页
数字温度计课程设计.docx_第9页
第9页 / 共29页
数字温度计课程设计.docx_第10页
第10页 / 共29页
数字温度计课程设计.docx_第11页
第11页 / 共29页
数字温度计课程设计.docx_第12页
第12页 / 共29页
数字温度计课程设计.docx_第13页
第13页 / 共29页
数字温度计课程设计.docx_第14页
第14页 / 共29页
数字温度计课程设计.docx_第15页
第15页 / 共29页
数字温度计课程设计.docx_第16页
第16页 / 共29页
数字温度计课程设计.docx_第17页
第17页 / 共29页
数字温度计课程设计.docx_第18页
第18页 / 共29页
数字温度计课程设计.docx_第19页
第19页 / 共29页
数字温度计课程设计.docx_第20页
第20页 / 共29页
亲,该文档总共29页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

数字温度计课程设计.docx

《数字温度计课程设计.docx》由会员分享,可在线阅读,更多相关《数字温度计课程设计.docx(29页珍藏版)》请在冰点文库上搜索。

数字温度计课程设计.docx

数字温度计课程设计

数字温度计

摘要

本设计是一款简单实用的小型数字温度计,本文提出了基于MCS-51系列单片机的数字温度计的制作电路和编程思想。

该数字温度计以宏晶公司的STC89C52单片机为主控,配以DALLAS公司的DS18B20数字温度传感器,采用LCD1602双行英文字符液晶作显示。

实现了对温度的测量,显示和报警等功能。

本次数字温度计的设计共分为六部分:

主控制器,复位电路,时钟电路,传感器部分,显示部分,报警部分。

主控制器、复位电路和时钟电路组成单片机最小系统,用于存储程序和控制电路;传感器即温度传感器,用来采集温度,进行温度转换;显示部分用来显示采集到的温度;当温度不在预设温度范围时,报警电路工作。

测温的总过程是传感器采集到外部环境温度,并进行转换后传到单片机,经单片机处理判断后将温度传递到显示器显示。

关键词:

51单片机,DS18B20温度传感器,LCD1602显示器

DigitalThermometer

ABSTRACT

Thedesignisasimpleandpracticalsmalldigitalthermometer,makecircuitsbasedonMCS-51seriessingle-chipdigitalthermometerandprogrammingideas.TheDigitalThermometermacrocrystallineSTC89C52microcontrollerasmaster,togetherwiththeDallasDS18B20digitaltemperaturesensor,LCD1602two-lineEnglishcharacterLCDdisplay.Temperaturemeasurement,displayandalarmfunctions.

ThedesignoftheDigitalThermometerisdividedintosixparts:

themaincontroller,resetcircuit,clockcircuit,sensorpart,thedisplaysection,partofthealarm.Maincontroller,resetcircuitandclockcircuitcomposedofthesmallestsingle-chipsystem,usedtostoreprogramsandcontrolcircuit;sensortemperaturesensor,usedtocollecttemperature,temperatureconversion;showusedtodisplaythecollectedtemperature.

Thetotalprocessofthetemperaturemeasurementofthesensortotheexternalambienttemperature,andtheconvertedtothemicrocontroller,judgedbythemicrocontrollerprocessingtemperaturewillbepassedtothemonitordisplay.Whenthetemperatureisoutsidethepresettemperaturerange,thealarmcircuit.

KEYWORDS:

51MCUDS18B20temperaturesensor,LCD1602display

前言

在人类的生活环境中,温度扮演着极其重要的角色。

无论你生活在哪里,从事什么工作,无时无刻不在与温度打着交道。

自18世纪工业革命以来,工业发展对是否能掌握温度有着绝对的联系。

在冶金、钢铁、石化、水泥、玻璃、医药等等行业,可以说几乎80%的工业部门都不得不考虑着温度的因素。

温度对于工业如此重要,由此推进了温度传感器的发展。

随着现代信息技术的飞速发展和传统工业改造的逐步实现,能够独立工作的温度检测和显示系统应用于诸多领域。

传统的温度检测以热敏电阻为温度敏感元件。

热敏电阻的成本低,但需后续信号处理电路,而且可靠性相对较差,测温准确度低,检测系统也有一定的误差。

与传统的温度计相比,本设计的数字温度计具有读数方便,测温范围广,测温精确,数字显示,适用范围宽等特点。

选用STC89C52单片机作为主控制器件,DSl8B20作为测温传感器通过LCD1602并行传送数据,实现温度显示。

通过DSl8B20直接读取被测温度值,进行数据转换,该器件的物理化学性能稳定,线性度较好,在-55℃~125℃最大线性偏差小于0.1℃。

该器件可直接向单片机传输数字信号,便于单片机处理及控制。

另外,该温度计还能直接采用测温器件测量温度,从而简化数据传输与处理过程。

第1章系统总体设计

1.1设计方案论证与选择

1.1.1显示电路方案

方案一:

采用数码管动态显示

使用七段LED数码管,采用动态显示的方法来显示各项指标,此方法虽然价格成本低,但是显示单一,且功耗较大。

方案二:

采用LCD液晶显示

采用1602LCD液晶显示,此方案显示内容相对丰富,且价格不高。

综合上述原因,采用方案二,使用LCD1602液晶作显示电路。

1.1.2测温电路方案

方案一:

采用模拟温度传感器测温

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

方案二:

采用数字温度传感器

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

综合考虑,很容易看出,采用方案二,电路比较简单,软件设计也比较简单,故采用了方案二。

1.2基本设计方案

本次的设计主要是利用了数字温度传感器DS18B20测量温度信号,计算后可以在LCD数码管上显示相应的温度值。

其温度测量范围为-55~125℃,精确到0.5℃。

数字温度计所测量的温度采用数字显示,控制器使用单片机STC89C51,测温传感器使用DS18B20,用LCD1602实现温度显示。

从温度传感器DS18B20可以很容易直接读取被测温度值,进行转换即满足设计要求。

根据DS18B20的通讯协议,单片机控制DS18B20完成温度转换必须经过三个步骤:

每一次读写之前都要对DS18B20进行复位操作,复位成功后发送一条ROM指令,最后发送RAM指令,这样才能对DS18B20进行预定的操作。

复位要求主CPU将数据线下拉500微秒,然后释放,当DS18B20收到信号后等待16~60微秒左右,后发出60~240微秒的存在低脉冲,主CPU收到此信号表示复位成功。

由于DS18B20单线通信功能是分时完成的,它有严格的时隙概念,因此读写时序很重要。

系统对DS18B20的各种操作必须按协议进行。

操作协议为:

初始化DS18B20(发复位脉冲)→发ROM功能命令→发存储器操作命令→处理数据。

于是,给DS18B20不同的时序,可以读取温度传感器的值,根据温度算法算出当时的温度值,在给显示部分,通过LCD1602显示出来。

这个课题主要实现温度的检测以及通过LCD显示这两个大功能,以及读取这个相对容易的功能。

因此在温度检测这一模块上,利用DS18B20这一目前比较先进的温度传感器,可以很精确地感测实时温度,对于DS18B20的通讯协议的控制,读取测量的温度值,经过一定的算法,可以把温度转化为十进制,分别为高位和低位,先暂存起来。

经显示模块调用,最终在LCD1602上显示。

图1-1所示为系统总体设计框图。

图1-1给出了系统总体设计框图

 

第2章硬件设计

2.1DS18B20温度传感器

DS18B20温度传感器是DALLAS公司生产的1-Wire总线技术的典型产品。

它可以将被测温度直接转换成数字量,因此单片机可以方便的通过串行总线实现读取。

另外,由于1-Wire具有成本低、节省I/O口、抗干扰能力强、便于总线扩展和维护等特点。

DS18B20通过编程后,可以实现9~12位的温度度数。

由于DS18B20可以由数据线本身提供电源,所以一条单总线上可以挂接多片DS18B20,特别适合构成多点温度测控系统。

DS18B20的工作性能如下:

(1)1-Wire数据通信;

(2)可用数据线供电,电业范围3~5.5V;

(3)最高12位分辨率;

(4)12位分辨率时的最大工作周期为750ms;

(5)可选择寄生工作方式;

(6)检测温度范围为-55℃~+125℃;

(7)被测温度在-10℃~+85℃时,精度为±0.5℃;

(8)内置E²PROM,限温报警功能;

(9)64位光刻ROM,内置产品序列号,方便多机挂接;

(10)封装形式多样;

(11)负压特性。

电源极性接反时,芯片不会烧毁。

2.1.1DS18B20内部结构及测温原理

图2-1所示为DS18B20的内部框图,它主要包括寄生电源、温度传感器、64位激光ROM单线接口、存放中间数据的高速暂存器、用于存储用户设定的温度上下限值的TH和TL触发器存储与控制逻辑、8位循环冗余校验码(CRC)发生器等七部分。

图2-1DS18B20内部结构

通过寄生电源电路,DS18B20可以从1-Wire上去的其工作电源。

在信号线为高电平的时间周期内,会把能量贮存在内部的电容器中;在但信号线为低电平的时间期内,断开此电源,直到信号线变为高电平重新接上寄生(电容)电源为止。

当然,DS18B20也可以直接通过将+5V电源接至VDD引脚为其供电。

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

图2-2给出了DS18B20内部温度测量电路的方框图。

图2-2DS18B20内部温度测量电路的方框图

高、低温度系数振荡器分别是向计数器1和计数器2提供计数脉冲的振荡器。

这两个振荡器的区别是,低温度系数振荡器的振荡频率随温度变化很小,而高温度系数振荡器的振荡频率随温度变化很敏感。

测温电路初始工作时,温度寄存器被预置为-55℃,同时计数器1也预置为与-55℃相对应的预置数。

然后,计数器1从预置数开始尖技术,当寄存器中的数值减至0时,温度寄存器中的温度值就会增加1℃,这是计数器1的预置数也改为由斜率累加器来提供。

以后,温度寄存器以同样的方式进行工作,其中的数值是随计数器1的工作不断修改的,只有当计数器2中的预置数减到0时,温度寄存器的数值才会停止变化。

斜率累加器所提供的预置数也是随温度变化的,可以对补偿感温振荡器的抛物线特性进行补偿。

图2-2中比较器是用来确定温度寄存器的最低有效位。

例如在DS18B20设置为9为分辨率,当计数器2停止技术时,它会将计数器1中的计数值转换为温度值与0.25℃相比较;若高于0.75℃,将最低进位后位置0。

2.1.2DS18B20的封装及引脚功能

DS18B20有8引脚SO封装、8引脚μSOP封装以及3引脚T0-92封装三种形式。

图2-3给出了DS18B20芯片SO/μSOP封装以及引脚。

图2-3DS18B20封装及引脚分布

DS18B20的引脚和引脚功能如表2-1所示。

表2-1DS18B20对ROM的操作指令

8引脚SOIC封装

T0-9封装

符号

说明

5

1

GND

接地

4

2

DQ

数据输入/输出引脚

3

3

VDD

可选的VDD引脚

2.1.3DS18B20的存储器

DS18B20的存储器由暂存器和E²PROM组成。

暂存器用于1-Wire通信时确保数据传输的正确性。

进行数据通信时,数据首先会被写入暂存器中,接着完成校验后才可以被送入E²PROM中。

DS18B20内部暂存器的顺序如图2-4所示。

温度低位

温度高位

TH

TL

配置

保留

保留

保留

8位CRC

字节0

字节1

字节2

字节3

字节4

字节5

字节6

字节7

字节8

图2-4内部暂存器结构

字节0和字节1:

温度值。

其中,字节0是温度值低字节,字节1为高字节。

温度高位、低位寄存器格式如下:

温度低位寄存器:

D7

D6

D5

D4

D3

D2

D1

D0

1/2¹

1/2²

1/2³

1/24

温度高位寄存器:

D7

D6

D5

D4

D3

D2

D1

D0

s

s

s

s

1/21

26

25

24

温度高位寄存器中的s表示符号位。

当s=0时,表示温度是正值,可以直接将二进制位转换为十进制数;当s=1时,表示温度是负值,需要先将补码转换为源码后,再转换为十进制数。

字节2和字节3:

非易失性报警温度上限和下限,可以通过软件进行修改。

上电后,会自动从E²PROM中拷贝到暂存器。

字节4:

配置寄存器。

用于确定温度值的数字转换分辨率,上电时也会自动从E²PROM中拷贝到暂存器。

该寄存器格式如下:

D7

D6

D5

D4

D3

D2

D1

D0

0

R1

R0

1

1

1

1

1

通过写命令来配置寄存器中的R0和R1,能够设置DS18B20的分辨率。

R0和R1的取值与分辨率的关系以及不同分辨率下的转换时间表如表2-2所示。

表2-2DS18B20存储器操作命令

R1

R0

分辨率

转换时间

0

0

9位(0.5℃)

93.75ms

0

1

10位(0.25℃)

187.5ms

1

0

11位(0.125℃)

375ms

1

1

12位(0.0625℃)

750ms

字节5~字节7:

未定义,字节中各位全部为逻辑1.

字节9:

前面8个字节的循环冗余校验字节。

2.1.4DS18B20的操作命令

根据DS18B20的通信协议,微处理器与DS18B20通讯需要有初始化DS18B20、ROM操作命令和DS18B20存储器操作命令三个步骤。

每一步操作必须符合1-Wire总线的协议要求,否则将无法读取测量结果。

对ROM的操作命令可以分为读ROM、匹配ROM、跳过ROM、搜索ROM、报警搜索等,表2-3中列出了这些操作的命令代码及其功能。

 

表2-3DS18B20对ROM的操作命令

指令

代码

功能

读ROM

33H

用于读取DS18B20其中的ROM编号

匹配ROM

55H

发出此命令后,接着发送64位ROM编码,来访问1-Wire总线上与该编码相一致的DS18B20

跳过ROM

CCH

忽略64位ROM地址,直接可以运行内存操作命令

搜索ROM

F0H

用于确定挂接在同一总线上DS18B20的个数和识别ROM地址,为操作各器件做好准备

报警搜索

ECH

执行后,只有在最近一次温度测量超过设定值上限或下限的DS18B20才会作出相应

DS18B20存储器操作命令可以分为温度转换、写暂存器、读暂存器、复制暂存器、重调E²PROM、读取供电方式等,表2-4中列出了这些操作的命令代码及其功能。

表2-4DS18B20存储器操作指令

指令

代码

功能

温度转换

44H

启动DS18B20进行温度转换。

如果在此命令后主机产生读时隙,那么只要器件在进行温度转换就会输出0,转换完成后,再输出1

写暂存器

4EH

向DS18B20的暂存RAM中写入数据,考试位置在字节2(TH),接下来写入的两个字节被存储放到暂存器中的字节3和4(TL和配置寄存器),完全写入3个字节后才开始发出复位信号

读暂存器

BEH

读取内部RAM中9字节的内容。

主机可以随时发起复位脉冲以停止此操作

复制暂存器

48H

将暂存器中内容复制到E²PROM,以便将温度报警触发字节存入非易失内存。

如果在此命令后主机产生读时隙,那么只要器件在进行复制就会输出0,复制完毕后,输出1

重调E²PROM

B8H

将DS18B20的E²PROM中的内容恢复到暂存RAM中3、4字节中。

该操作会在DS18B20上电时自动产生

读供电方式

B4H

该命令发出后的每个读数据时隙,器件会选择它的电源模式,寄生供电时,DS18B20发送“0”;外接电源供电时,发送“1”

2.2模块电路设计

2.2.1时钟电路

图2-4时钟电路

89C51芯片内部有一个高增益反相放大器,用于构成振荡器。

反相放大器的输入端为XTAL1,输出端为XTAL2,两端跨接石英晶体及两个电容可以构成稳定的自激振荡器。

电容器C1和C2通常选取30pF左右,可稳定频率并对振荡频率有微调作用。

振荡脉冲频率范围为0~24MHz。

本设计采用12MHz的晶振。

2.2.2复位电路

图2-5复位电路

复位操作有上电自动复位和按键手动复位两种方式。

本设计采用两种复位方式。

2.2.3温度采集电路

图2-6温度采集电路

温度采集电路如上图,DS18B20采用外部供电方式。

2.2.4显示电路

图2-7显示电路

本设计采用LCD1602显示所测温度值,1602接P0口,需外接上拉电阻。

2.2.5报警电路

图2-8报警电路

采用发光二极管进行报警,温度值在20℃以下时,黄灯亮;温度值在21℃-25℃之间时,绿灯亮;温度值在25度以上时,红灯亮。

第3章软件设计

系统程序主要包括主程序,读出温度子程序,温度转换命令子程序,计算温度子程序,报警子程序和显示数据子程序等。

3.1DS18B20的读操作

DSl8B20的主要数据元件有:

64位激光LaseredROM,温度灵敏元件和非易失性温度告警触发器TH和TL。

DSl8B20可以从单总线获取电源,当信号线为高电平时,将能量贮存在内部电容器中;当单信号线为低电平时,将该电源断开,直到信号线变为高电平重新接上寄生(电容)电源为止。

此外,还可外接5V电源,给DSl8B20供电。

DSl8B20的供电方式灵活,利用外接电源还可增加系统的稳定性和可靠性。

DS18B20读写时序如图3-1所示。

图3-1DS18B20的复位时序图

图3-2DS18B20的写数据时序图

图3-3DS18B20的读数据时序图

由时序图可知,DS18B20在复位时需要480us的低电平,等待15us后MCU将总线拉高,等待DS18B20的响应信号;DS18B20在写数据时分为写“0”和写“1”操作,写“0”操作时,DS18B20需要至少60us的总线被拉低,然后在60us内将“0”写入DS18B20中,持续时间至少1us,写“1”操作是只需将写入的“0”改为“1”即可;DS18B20读操作也分为读“0”和读“1”操作,读“0”操作时,总线需要15us被拉低,再拉高45us,然后再15us内将数据读走,读“1”操作同读“0”操作。

程序流程图如图3-4所示。

图3-4DS18B20读取温度的流程图

3.2DS18B20的温度数据处理

读出温度数据后,LOW的低四位为温度的小数部分,可以精确到0.0625℃,LOW的高四位和HIGH的低四位为温度的整数部分,HIGH的高四位全部为1表示负数,全为0表示正数。

所以先将数据提取出来,分为三个部分:

小数部分、整数部分和符号部分。

小数部分进行四舍五入处理:

大于0.5℃的话,向个位进1;小于0.5℃的时候,舍去不要。

图3-5为温度数据处理程序的流程图。

图3-5温度数据处理

3.31602显示部分

1602的读写时序图如下:

图3-61602液晶的读时序图

图3-71602液晶的写时序图

1602显示程序流程图如图3-8所示。

图3-81602显示程序流程图

3.4主程序

主程序流程图如图3-9所示。

图3-9主程序流程图

 

结论

本设计KeilC51对单片机多点温度测量系统进行了软件编写。

在编写过程中,必须严格按照DS18B20的工作时序严格编写,否则温度无法准确测量。

硬件电路的设计与仿真是通过Proteus软件来设计,仿真毕竟是仿真,是一个理想化的环境,与制作实物还是有很多差别的。

本课题通过分析对比各种不同的温度传感器,选定DS18B20,这种单总线数字温度传感器的通信方式比较独特,软件编写要求的比较新颖,特点突出。

用其构建的系统有很多优点:

硬件连线简单,省去了使用模拟传感器要进行放大、A/D转换等工作。

另外,由于DS1820单线通信功能是分时完成的,遵循严格的时隙概念,因此,系统对DS1820和各种操作必须按协议进行,即:

初始化DS1820(发复位脉冲)—发ROM功能命令—发存储器操作命令—处理数据。

现场温度直接以“一线总线”的数字方式传输,每一个自带地址,大大减少了系统的电缆数,提高了系统的稳定性和抗干扰性。

通过调试成型系统发现了DS18B20除了上述优点外,还有一些缺点,如:

简单的硬件连接的代价是复杂的软件时序,DS18B20在测量温度的时候,灵敏度不够高,温度快速变化时无法迅速显示出其变化。

通过一系列的实验发现:

由DS18B20构建的测温小系统适用于环境温度监控,对温度小变化较敏感;不适合应用于要求实时性强、温度跨度大的测温方式。

 

谢辞

本设计是在张丽娟老师的指导下完成的,张丽娟老师是一位极其负责任的指导老师。

课程设计初期时,就制定了详细的设计安排与要求,而且按时要求完成。

期间,多次对同学分析指导,提供修改意见。

为此,对张丽娟老师在课程设计期间提供的悉心指导与帮助表示衷心的感谢!

此外,特别要感谢在这次课程设计中为我提供宝贵意见的同学,有了大家的建议让我这次课程设计顺利完成!

 

参考文献

【1】刘国荣,梁景凯.计算机控制技术与应用.北京:

机械工业出版社,2011.

【2】姜涛.基于单片机的数字式温度计设计.西安:

西北电力学校出版社,2012.

【3】林立,张俊亮,曹旭东.单片机原理及应用(基于Proteus和Keil).北京:

电子工业出版社,2009.

【4】马云峰.单片机与数字温度传感器DS18B20的接口设计.计算机测量与控制,2002(04).

【5】赵海兰、赵祥伟.智能温度传感器DS18B20的原理与应用[J].现代电子技术,2003,26(14).

【6】高金源,等.计算机控制系统.北京:

北京航空航天大学出版社,2001.

【7】张晋格,等.计算机控制原理与应用.北京:

电子工业出版社,1995.

【8】何利民.单片机应用系统设计.北京:

北京航空航天大学出版社,1995.

 

附录

附录一原理图

图2-9总体硬件原理图

 

附录二实物图

 

附录三源程序

#include

#defineucharunsignedchar

#defineuintunsignedint

ucharcodetable1[]="XiaolongDS18B20";

ucharcodet

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

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2