基于单片机控制的DS18B20数字温度计设计.docx
《基于单片机控制的DS18B20数字温度计设计.docx》由会员分享,可在线阅读,更多相关《基于单片机控制的DS18B20数字温度计设计.docx(35页珍藏版)》请在冰豆网上搜索。
基于单片机控制的DS18B20数字温度计设计
基于单片机控制的DS18B20数字温度计设计
摘要
温度是一种最基本的环境参数,人们生活与环境温度息息相关,在工业生产过程中需要实时测量温度,在工业生产中也离不开温度的测量,因此研究温度的测量方法和控制具有重要的意义。
一种以单片机为主要控制器件,以DS18B20为温度传感器的新型数字温度计。
主要包括硬件电路的设计和系统程序的设计。
硬件电路主要包括主控制器,测温控制电路和显示电路等,主控制器采用单片机AT89S52,温度传感器采用美国DALLAS半导体公司生产的DS18B20,显示电路采用8位共阴极LED数码管。
测温控制电路由温度传感器和预置温度值比较报警电路组成,当实际测量温度值大于预置温度值时,发出报警信号,即发光二级管亮。
系统程序主要包括主程序,测温子程序和显示子程序等。
DS18B20新型单总线数字温度传感器是DALLAS公司生产的单线数字温度传感器,集温度测量和A/D转换于一体,直接输出数字量,具有接口简单、精度高、抗干扰能力强、工作稳定可靠等特点。
由于采用了改进型智能温度传感器DS18B20作为检测元件,与传统的温度计相比,本数字温度计减少了外部的硬件电路,具有低成本和易使用的特点。
DS18B20温度计还可以在高温报警、远距离多点测温控制等方面进行应用开发,具有很好的发展前景。
关键词:
单片机数字型温度传感器多点测控
DS18B20digitalthermometerdesignbasedonsinglechipmicrocomputercontrol
Abstract
Thetemperatureisabasicenvironmentalparametersofpeople'slivesarecloselyrelatedtotheambienttemperatureinindustrialprocessesrequirereal-timemeasurementsoftemperature,isalsoinseparablefromthetemperaturemeasurementinindustrialproductionoftemperaturemeasurementandcontrolofimportantsignificance.
Amicrocontrollerasthemaincontroldevice,temperaturesensorDS18B20isanewdigitalthermometer.Includingthedesignofhardwarecircuitdesignandsystemprocedures.Hardwarecircuitincludesamaincontroller,thetemperaturecontrolcircuitanddisplaycircuit,themaincontrollerusingmicrocontrollerAT89S52is,thetemperaturesensorDS18B20DALLASSemiconductorproduction,thedisplaycircuit8commoncathodeLEDdigitaltube.Thetemperaturecontrolcircuittemperaturesensorandapresettemperaturealarmcircuitcomposedofanalarmsignalwhentheactualmeasuredtemperaturevalueisgreaterthanthepresettemperaturevalue,ie,lightemittingdiodelights.Thesystemprogramincludingthemainprogram,thetemperaturesubroutineanddisplayroutines.TheDS18B20newsingle-busdigitaltemperaturesensorDALLASproductionofsingle-wiredigitaltemperaturesensor,andsettemperaturemeasurementandA/Dconverterinone,anddirectdigitaloutput,withasimpleinterface,highprecision,stronganti-jammingcapability,stableandreliablecharacteristics.
AsaresultofimprovedsmarttemperaturesensorDS18B20asdetectiondevices,comparedwiththetraditionalthermometer,digitalthermometertoreduceexternalhardwarecircuit,withlowcostandeaseofusefeatures.DS18B20thermometeratahightemperaturealarm,long-distancemulti-pointtemperaturecontrolandotheraspectsofapplicationdevelopment,withgoodprospects.
Keywords:
single-chipdigitaltemperaturesensormonitoringandcontrol
第1章前言
近年来单片机系统在工业测控领域的应用越来越广泛,它既可以测量电信号,又可以测量温度、湿度等非电信号,在日常生活及工农业生产等许多领域,经常要用到温度的检测及控制,本文介绍一种采用数字温度传感器实现的基于单片机的数字温度计。
日常生活及工农业生产中经常要用到温度的检测及控制,在治金、食品、加工、化工等工业生产过程中,广泛使用的各种加热炉、热处理炉、反应炉等,都要求对温度进行严格的控制。
在日常生活中,电烤箱、微波炉、电热水器、烘干箱等电器也需要进行温度检测与控制。
传统的测温元件有热电偶和热电阻。
而热电偶和热电阻测出的一般是电压,再转换成对应的温度,需要比较多的外部硬件支持,硬件电路复杂,软件调试复杂,制作成本高。
而采用单片机对温度进行控制,不仅具有控制方便,简单和灵活等优点,而且可以大幅度提高温度控制的技术指标。
测量温度的关键是温度传感器,温度传感器正从模拟式向数字式、从集成化向智能化、网络化的方向发展。
在测温电路中,可以使用热敏电阻之类的器件利用其感温效应,将随被测温度变化的电压或电流采集过来,先进行A/D转换,然后用单片机进行数据的处理,再在显示电路上,将被测温度显示出来。
这种设计需要用到A/D转换电路,因此感温电路的设计比较复杂。
进而想到采用智能温度传感器来设计数字温度计。
本数字温度计的设计采用美国DALLAS半导体公司继DS18B20之后推出的一种改进型智能温度传感器DS18B20作为检测元件,其温度值可以直接被读出来,通过核心器件单片机AT89S52控制温度的读写和显示,用LED数码管显示。
测温范围为-55℃~+125℃,最大分辨率可达0.0625℃。
而且采用3线制与单片机相连,减少了外部的硬件电路,具有低成本和易使用的特点。
按照系统功能的要求,确定系统有5个模块组成:
主控制器、温度传感器DS18B20、报警电路、按键预置温度值电路及显示电路。
控制器使用AT89S51,温度传感器使用DS18B20,用8位共阳极LED数码管以动态扫描法实现温度显示。
系统程序主要包括主程序、温度控制子程序及显示子程序等等。
第2章设计任务及方案分析
2.1设计方案及要求
设计一个基于单片机的DS18B20数字温度计。
课程设计要求:
1.5V供电;
2.温度采集采用DS18B20;
3.4位LED显示;
4.3个按键;
5.设计温度控制器原理图,学习用PROTEL画出该原理图,并用proteus进行仿真;设计和绘制软件流程图,用C语言进行程序编写;焊接硬件电路,进行调试。
2.2温度测量的方案与分析
2.2.1DS18B20芯片简介
(1)适应电压范围更宽,电压范围:
3.0V~5.5V,在寄生电源方式下可由数据线供电。
(2)独特的单线接口方式,DS18B20在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯。
(3)DS18B20在使用中不需要任何外围原件,全部传感元件及转换电路集成在形成一只三极管的集成电路内。
(4)测温范围—55℃~+125℃时精度为±0.5℃.
(5)可编程的分辨率为9~12位,对应的可分辨温度分别为0.5℃,0.25℃,0.125℃,0.0625℃,可实现高精度测温。
(6)在9位分辨率时最多在93.75ms内把温度转换为数字,12位分辨率时最多在750ms内把温度值转换数字,速度更快。
(7)测量结果直接输出数字温度信号,以“一线总线”串行传送给CPU同时可传送CRC效验码,具有极强的抗干扰纠错能力。
(8)负压特性:
电源极性接反时,芯片不会因为发热而烧毁,但不能正常工作。
2.2.2芯片选择
本设计的测温系统采用芯片DS18B20,DS18B20是DALLAS公司的最新单线数字温度传感器,它的体积更小、适用电压更宽、更经济,DS18B20是世界上第一片支持“一线总线”接口的温度传感器,具有一线总线独特而且经济的特点。
采用智能温度传感器DS18B20作为检测元件,测温范围-55℃~+125℃,最大分辨率可达0.0625℃。
DS18B20可以直接读出被测量的温度值,而且采用3线制与单片机相连,减少了外部的硬件电路,具有低成本和易使用的特点。
2.3系统的设计原则
一般系统的设计原则包含安全性(稳定抗干扰性),操作的便利性(人性化),实时性,通用性和经济性。
(1)安全可靠
首先要选用高性能的AT89S52单片机,保证在恶劣的工业环境下能正常运行。
其次是设计可靠的控制方案,并具有各种安全保护措施,如报警、事故预测、事故处理和不间断电源等。
(2)操作维护方便
操作方便表现在操作简单、直观形象和便于掌握且不强求操作工要掌握计算机知识才能操作。
(3)实时性强
选用高性能的AT89C51单片机的实时性,表现在内部和外部事件能及时地响应,并做出相应的处理。
(4)通用性好
系统设计时应考虑能适应不同的设备和各种不同设备和各种不同控制对象,并采用积木式结构,按照控制要求灵活构成系统。
主要表现在两个方面:
一是硬件板设计采用标准总线结构(如PC总线),配置各种通用的模板,以便扩充功能时,只需增加功能模板就能实现;二是软件功能模块或控制算法采用标准模块结构,用户使用时不需要二次开发,只需各种功能模块,灵活地进行控制系统组态。
(5)经济效益高
第3章硬件设计
3.1主要器件说明
3.1.1主控制器单片机
51单片机是对目前所有兼容Intel8031指令系统的单片机的统称。
该系列单片机的始祖是Intel的8031单片机,后来随着Flashrom技术的发展,8031单片机取得了长足的进展,成为目前应用最广泛的8位单片机之一,其代表型号是ATMEL公司的AT89系列,它广泛应用于工业测控系统之中。
目前很多公司都有51系列的兼容机型推出,在目前乃至今后很长的一段时间内将占有大量市场。
51单片机是基础入门的一个单片机,还是应用最广泛的一种。
需要注意的是52系列的单片机一般不具备自编程能力。
当前常用的51系列单片机主要产品有:
*Intel的:
80C31、80C51、87C51,80C32、80C52、87C52等;
*ATMEL的:
89C51、89C52、89C2051等;
*Philips、华邦、Dallas、Siemens(Infineon)等公司的许多产品
目前,国产宏晶STC单片机以其低功耗、廉价、稳定性能,占据着国内51单片机较大市场。
主要功能:
8位CPU·4kbytes程序存储器(ROM)(52为8K)
·256bytes的数据存储器(RAM)(52有384bytes的RAM)
·32条I/O口线·111条指令,大部分为单字节指令
·21个专用寄存器
·2个可编程定时/计数器·5个中断源,2个优先级(52有6个)
·一个全双工串行通信口
·外部数据存储器寻址空间为64kB
·外部程序存储器寻址空间为64kB
·逻辑操作位寻址功能·双列直插40PinDIP封装
·单一+5V电源供电
CPU:
由运算和控制逻辑组成,同时还包括中断系统和部分外部特殊功能寄存器;
RAM:
用以存放可以读写的数据,如运算的中间结果、最终结果以及欲显示的数据;
ROM:
用以存放程序、一些原始数据和表格;
I/O口:
四个8位并行I/O口,既可用作输入,也可用作输出;
T/C:
两个定时/记数器,既可以工作在定时模式,也可以工作在记数模式;
五个中断源的中断控制系统;
一个全双工UART(通用异步接收发送器)的串行I/O口,用于实现单片机之间或单片机与微机之间的串行通信;
片内振荡器和时钟产生电路,石英晶体和微调电容需要外接。
最高振荡频率为12M。
内部结构:
图3-1
单片机AT89S51具有低电压供电和体积小等特点,四个端口只需要两个口就能满足电路系统的设计需要,很适合便携手持式产品的设计使用系统可用二节电池供电。
如图3-2所示。
图3-2
主要特性:
·与MCS-51兼容
·4K字节可编程闪烁存储器
寿命:
1000写/擦循环
数据保留时间:
10年
·全静态工作:
0Hz-24Hz
·三级程序存储器锁定
·128*8位内部RAM
·32可编程I/O线
·两个16位定时器/计数器
·5个中断源
·可编程串行通道
·低功耗的闲置和掉电模式图2.1
·片内振荡器和时钟电路
3.1.2显示器LED
显示电路采用4位共阳LED数码管,利用动态扫描方式,从P2口输出段码,P1口的P1.0、P1.1、P1.2,P1.3输出位码。
(1)LED数码有共阳和共阴两种,把这些LED发光二极管的正极接到一块(一般是拼成一个8字加一个小数点)而作为一个引脚,为共阳管。
如下图所示:
图3-3图3-4
3.1.3数字型温度传感器DS18B20
DS18B20数字温度传感器接线方便,封装成后可应用于多种场合,如管道式,螺纹式,磁铁吸附式,不锈钢封装式,型号多种多样,有LTM8877,LTM8874等等。
主要根据应用场合的不同而改变其外观。
封装后的DS18B20可用于电缆沟测温,高炉水循环测温,锅炉测温,机房测温,农业大棚测温,洁净室测温,弹药库测温等各种非极限温度场合。
耐磨耐碰,体积小,使用方便,封装形式多样,适用于各种狭小空间设备数字测温和控制领域。
DS18B20温度传感器是采用美国DALLAS公司生产的DS18B20可组网数字温度传感器芯片,经焊接,外加不锈钢保护管封装而成,具有耐磨耐碰,体积小,使用方便,封装形式多样,适用于各种狭小空间设备数字测温和控制领域,并且可根据实际要求通过简单的编程实现9~12位的数字值读数方式。
1.技术性能描述
*独特的单线接口方式,DS1820在与微处理器连接时仅需要一条口线即可实现微处理器与DS1820的双向通讯,在使用中不需要任何外围元件。
*测温范围-55℃~+125℃,固有测温分辨率0.5℃。
-
*支持多点组网功能,多个DS1820可以并联在唯一的三线上,实现多点测温。
*工作电源:
3~5V/DC
*测量结果以9位数字量方式串行传送。
*不锈钢保护管直径
*适用于1/2”,3/4”,1”,DN40~DN250各种介质工业管道和狭小空间设备测温
2.应用范围
* 该产品适用于冷冻库,粮仓,储罐,电讯机房,电力机房,电缆线槽等测温和控制领域
* 供热/制冷管道热量计量,中央空调分户热能计量和工业领域测温和控制 ,其封装外形如图3-5:
图3-5
3.DS18B20的性能特点如下:
*独特的单线接口仅需要一个端口引脚进行通信;
*多个DS18B20可以并联在惟一的三线上,实现多点组网功能;
*无须外部器件;
*可通过数据线供电,电压范围为3.0~5.5V;
*零待机功耗;
*温度以9或12位数字;
*用户可定义报警设置;
*负电压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作;
DS18B20采用3脚PR-35封装或8脚SOIC封装,其内部结构框图如下图3-6所示。
图3-6
DS18B20内部结构主要由四部分组成:
64位光刻ROM、温度传感器、非挥发的
温度报警触发器TH和TL、配置寄存器。
DS18B20的管脚排列如图3-7所示:
图3-7
DS18B20温度传感器的内部存储器还包括一个高速暂存RAM和一个非易失性的可电擦除的EERAM。
高速暂存RAM的结构为8字节的存储器。
头2个字节包含测得的温度信息,第3和第4字节TH和TL的拷贝,是易失的,每次上电复位时被刷新。
第5个字节,为配置寄存器,它的内容用于确定温度值的数字转换分辨率。
DS18B20工作时寄存器中的分辨率转换为相应精度的温度数值。
低5位一直为1,TM是工作模式位,用于设置DS18B20在工作模式还是在测试模式,DS18B20出厂时该位被设置为0,用户要去改动,R1和R0决定温度转换的精度位数,来设置分辨率。
由表3-1可见,DS18B20温度转换的时间比较长,而且分辨率越高,所需要的温度数据转换时间越长。
因此,在实际应用中要将分辨率和转换时间权衡考虑。
表3-1DS18B20温度转换时间表
R1
R0
分辨率/位
温度最大转换时间/MS
0
0
9
93.75
0
1
10
187.5
1
0
11
375
1
1
12
750
高速暂存RAM的第6、7、8字节保留未用,表现为全逻辑1。
第9字节读出前面所有8字节的CRC码,可用来检验数据,从而保证通信数据的正确性。
当DS18B20接收到温度转换命令后,开始启动转换。
转换完成后的温度值就以16位带符号扩展的二进制补码形式存储在高速暂存存储器的第1、2字节。
单片机可以通过单线接口读出该数据,读数据时低位在先,高位在后,数据格式以0.0625℃/LSB式表示。
当符号位S=0时,表示测得的温度值为正值,可以直接将二进制位转换为十进制;当符号位S=1时,表示测得的温度值为负值,要先将补码变成原码,再计算十进制数值。
表2是一部分温度值对应的二进制温度数据。
DS18B20完成温度转换后,就把测得的温度值与RAM中的TH、TL字节内容作比较。
若T>TH或T<TL,则将该器件内的报警标志位置位,并对主机发出的报警搜索命令做出响应。
因此,可用多只DS18B20同时测量温度并进行报警搜索。
在64位ROM的最高有效字节中存储有循环冗余检验码(CRC)。
主机ROM的前56位来计算CRC值,并和存入DS18B20的CRC值作比较,以判断主机收到的ROM数据是否正确。
另外,由于DS18B20单线通信功能是分时完成的,它有严格的时隙概念,因此读写时序很重要。
系统对DS18B20的各种操作按协议进行。
操作协议为:
初使化DS18B20(发复位脉冲)→发ROM功能命令→发存储器操作命令→处理数据。
分别说明如下:
(1)初始化单总线的所有处理均从初始化开始。
初始化过程是主机通过向作为从机的DS18B20芯片发一个有时间宽度要求的初始化脉冲实现的。
初始化后,才可进行读写操作。
(2)ROM操作命令总线主机检测到DS18B20的存在便可以发出ROM操作命令之一这些命令表3-2:
表3-2ROM操作命令
指令
代码
ReadROM(读ROM)
[33H]
MatchROM(匹配ROM)
[55H]
SkipROM(跳过ROM)
[CCH]
SearchROM(搜索ROM)
[F0H]
Alarmsearch(告警搜索)
[ECH]
(3)存储器操作命令如表3-3:
表3-3存储器操作命令
指令
代码
WriteScratchpad(写暂存存储器)
[4EH]
ReadScratchpad(读暂存存储器)
[BEH]
CopyScratchpad(复制暂存存储器)
[48H]
ConvertTemperature(温度变换)
[44H]
RecallEPROM(重新调出)
[B8H]
ReadPowersupply(读电源)
[B4H]
(4)时序主机使用时间隙(timeslots)来读写DS18B20的数据位和写命令字的位
图2.7初始化时序
图3-8
①初始化时序见图3-8,主机总线to时刻发送一复位脉冲(最短为480us的低电平信号),接着在tl时刻释放总线并进入接收状态。
DS18B20在检测到总线的上升沿之后等待15-60us,接着DS18B20在t2时刻发出存在脉冲(低电平持续60-240us)。
如图中虚线所示:
②写时间隙
图3-9写0时序图3-10写1时序
当主机总线to时刻从高拉至低电平时,就产生写时间隙见图3-9和图3-10。
从to时刻开始15us之内应将所需写的位送到总线上,DSl820在to后15-60us间对总线采样。
若低电平,写入的位是0。
若高电平写入的位是1。
连续写2位间的间隙应大于1us。
③读时间隙
见图3-11,主机总线to时刻从高拉至低电平时,总线只须保持低电平lus。
之后在t1时刻将总线拉高,产生读时间隙,读时间隙在t1时刻后t2时刻前有效,t2距to为15us。
也就是说t2时刻前主机必须完成读位,并在to后的60us一120us内释放总线,读位子程序(读得的位到C中)。
图3-11读时序
4.DSl820多路测量简介
图3-12DSl8B20原理框图
图3-13
每一片DSl820在其ROM中都存有其唯一的48位序列号,出厂前已写入片内ROM中,主机在进入操作程序前必须逐一接入DS18B20用读ROM(33H)命令将该DS18B20的序列号读出并登录。
当主机需要对众多在线DS18B20的某一个进行操作时,首先要发出匹配ROM命令(55H),紧接着主机提供64位序列(包括该DS18B20的48位序列号)。
之后的操作就是针对该DS18B20的。
而所谓跳过ROM命令即:
MOVA,#0CCH。
图中先有跳过ROM,即是启动所有DS18B20进行温度变换,之后通过匹配ROM再