基于DS18B20的温度传感器设计摘要2009年6月14日随着时代的进步和发展,单片机技术已经普及到我们生活、工作、科研、各个领域,已经成为一种比较成熟的技术。
本文主要介绍了一个基于AT89C52单片机的测温系统,详细描述了利用液晶显示器件传感器DS18B20开发测温系统的过程,重点对传感器在单片机下的硬件连接,软件编程以及各模块系统流程进行了详尽分析,特别是数字温度传感DS18B20的数据采集过程。
对各部分的电路也一一进行了介绍,该系统可以方便的实现实现温度采集和显示,并可根据需要任意设定上下限报警温度,它使用起来相当方便,具有精度高、量程宽、灵敏度高、体积小、功耗低等优点,适合于我们日常生活和工、农业生产中的温度测量,也可以当作温度处理模块嵌入其它系统中,作为其他主系统的辅助扩展。
DS18B20与AT89C52结合实现最简温度检测系统,该系统结构简单,抗干扰能力强,适合于恶劣环境下进行现场温度测量,有广泛的应用前景。
关键词:单片机AT89C51;DS18B20温度传感器;液晶显示LCD1602。
目录摘要 (I)第一章前言 (1)第二章设计任务及要求 (2)2.1 设计任务 (2)2.2 设计要求 (2)第三章课程设计方案及器材选用 (3)3.1设计总体方案 (3)3.1.1方案论证 (3)3.1.2 系统的具体设计与实现 (4)3.2器材选用分析 (5)3.2.1 DS18B20温度传感器 (5)3.2.2 AT89S52单片机介绍 (12)3.3 软件流程图 (15)3.3.1 主程序 (15)3.3.2读出温度子程序 (15)3.3.3 温度转换命令子程序 (15)3.3.4 计算温度子程序 (16)第四章硬件电路的设计 (17)4.1 proteus简介 (17)4.2 proteus仿真图 (17)第五章调试性能及分析 (19)总结 (20)参考文献 (21)附录1 源程序 (22)附录2 原理图 (26)第一章前言目前,单片机已经在测控领域中获得了广泛的应用,它除了可以测量电信以外,还可以用于温度、湿度等非电信号的测量,能独立工作的单片机温度检测、温度控制系统已经广泛应用很多领域。
单片机是一种特殊的计算机,它是在一块半导体的芯片上集成了CPU,存储器,RAM,ROM,及输入与输出接口电路,这种芯片称为:单片机。
由于单片机的集成度高,功能强,通用性好,特别是它具有体积小,重量轻,能耗低,价格便宜,可靠性高,抗干扰能力强和使用方便的优点,使它迅速的得到了推广应用,目前已成为测量控制系统中的优选机种和新电子产品中的关键部件。
单片机已不仅仅局限于小系统的概念,现已广泛应用于家用电器,机电产品,办公自动化用品,机器人,儿童玩具,航天器等领域。
本次课程设计,就是用单片机实现温度控制,传统的温度检测大多以热敏电阻为温度传感器,但热敏电阻的可靠性差,测量温度准确率低,而且必须经过专门的接口电路转换成数字信号才能由单片机进行处理。
本次采用DS18B20数字温度传感器来实现基于51单片机的数字温度计的设计。
传统的温度计有反应速度慢、读数麻烦、测量精度不高、误差大等缺点而下面利用集成温度传感器AD590设计并制作了一款基于AT89C51的4位数码管显示的数字温度计,其电路简单,软硬件结构模块化,易于实现。
该数字温度计利用AD590集成温度传感器及其接口电路完成温度的测量并转换成模拟电压信号,经由模数转换器ADC0804转换成单片机能够处理的数字信号,然后送到单片机AT89C51中进行处理变换,最后将温度值显示在D4、D3、D2、D1共4位七段码LED显示器上。
系统以AT89C51单片机为控制核心,加上AD590测温电路、ADC模数转换电路、4位温度数据显示电路以及外围电源、时钟电路等组成。
第二章设计任务及要求2.1 设计任务以MCS-51系列单片机为核心器件,组成一个数字温度计,采用数字温度传感器DS18B20为检测器件,进行单点温度检测,检测精度为±0.1摄氏度。
温度显示采用LCD1602显示,两位整数,一位小数如图2.1。
图2.1 系统总体方针图2.2 设计要求设计一个基于单片机的DS18B20数字温度计。
课程设计要求:➢5V供电;➢温度采集采用DS18B20;➢1602LCD液晶显示器;➢设计温度控制器原理图,学习用PROTEL画出该原理图,并用proteus进行仿真;设计和绘制软件流程图,用C语言进行程序编写,然后进行调试。
第三章 课程设计方案及器材选用3.1设计总体方案提及到温度的检测,我们首先会考虑传统的测温元件有热电偶和热电阻,而热电偶和热电阻测出的一般都是电压,再转换成对应的温度,需要比较多的外部硬件支持,硬件电路复杂,软件调试也复杂,制作成本高。
因此,本数字温度计设计采用智能温度传感器DS18B20作为检测元件,测温范围为-55°C 至+125°C ,最大分辨率可达0.0625°C 。
DS18B20可以直接读出被测量的温度值,而采用三线制与单片机相连,减少了外部的硬件电路,具有低成本和易使用的特点。
按照系统设计功能的要求,确定系统由三个模块组成:主控制器STC89C51,温度传感器DS18B20,驱动显示电路。
总体电路框图3.1:图3.1 系统总体框图3.1.1方案论证(1)温度传感模块方案一:采用热敏电阻,热敏电阻精度、重复性、可靠性较差,对于检测1摄氏度的信号是不适用的,也不能满足测量范围。
在温度测量系统中,也常采用单片温度传感器,比如AD590,LM35等。
但这些芯片输出的都是模拟信号,必须经过A/D 转换后才能送给计算机,这样就使测温系统的硬件结构较复杂。
另外,这种测温系统难以实现多点测温,也要用到复杂的算法,一定程度上也增加了软件实现的难度。
方案二:采用单总线数字温度传感器DS18B20测量温度,直接输出数字信号。
便于单片机处理及控制,节省硬件电路。
且该芯片的物理化学性很稳定,此元件线形性能好,在0—100摄氏度时,最大线形偏差小于1摄氏度。
DS18B20的最大特点之一采用了单总线的数据传输,由数字温度计DS18B20和微控制器AT89C51构成的温度装置,它直接输出温度的数字信号到微控制器。
每只DS18B20具有一个独有的不可修改的64位序列号,根据序列号可访问不同的器件。
这样一条总线上可挂接多个DS18B20报警模块传感器,实现多点温度测量,轻松的组建传感网络。
综上分析,我们选用第二种方案图3.2。
图3.2 温度传感模块仿真图(2) 显示模块方案一:采用8位段数码管,将单片机得到的数据通过数码管显示出来。
该方案简单易行,但所需的元件较多,且不容易进行操作,可读性差,一旦设定后很难再加入其他的功能,显示格式受限制,且大耗电量大,不宜用电池给系统供电。
方案二:采用液晶显示器件,液晶显示平稳、省电、美观,更容易实现题目要求,对后续的园艺通兼容性高,只需将软件作修改即可,可操作性强,也易于读数,采用RT1602两行十六个字符的显示,能同时显示其它的信息如日期、时间、星期、温度。
综上分析,我们采用了第二个方案图3.3图3.3 显示模块仿真图3.1.2 系统的具体设计与实现采用AT89S52单片机作为控制核心对温度传感器DS18B20控制,读取温度信号并进行计算处理,并送到液晶显示器LCD1602显示。
按照系统设计功能的要求,确定系统由3个模块组成:主控制器、测温电路和显示电路。
数字温度计总体电路结构框图如图3.4所示。
图3.4 总体设计方框图 3.2器材选用分析3.2.1 DS18B20温度传感器1. DS18B20的特点本设计的测温系统采用芯片DS18B20,DS18B20是DALLAS 公司的最新单线数字温度传感器,它的体积更小,适用电压更宽,更经济。
实现方法简介DS18B20采用外接电源方式工作,一线测温一线与STC89C51连接,测出的数据放在寄存器中,将数据经过BCD 码转换后送到LED 显示。
DS18B20温度传感器是美国DALLAS 半导体公司最新推出的一种改进型智能温度传感器,与传统的热敏电阻等测温元件相比,它能直接读出被测温度,并且可根据实际要求通过简单的编程实现9~12位的数字值读数方式。
DS18B20的性能特点如下:●独特的单线接口仅需要一个端口引脚进行通信;●多个DS18B20可以并联在惟一的三线上,实现多点组网功能;●无须外部器件;●可通过数据线供电,电压范围为3.0~5.5V;●零待机功耗;●温度以9或12位数字;●用户可定义报警设置;●报警搜索命令识别并标志超过程序限定温度(温度报警条件)的器件;●负电压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作; DS18B20内部结构主要由四部分组成:64位光刻ROM,温度传感器,非挥发的温度报警触发器TH 和TL,高速暂存器。
DS18B20的管脚排列如图3.5所示。
64位光刻ROM 是出厂前被光刻好的,它可以看作是该DS18B20的地址序列号。
不同的器件地址序列号不同。
图3.5 DS18B20的内部结构图3.6 DS18B20的引脚分布图64位ROM 的结构开始8位是产品类型的编号,接着是每个器件的惟一的序号,共有48位,最后8位是前面56位的CRC 检验码,这也是多个DS18B20可以采用一线进行通信的原因。
温度报警触发器TH 和TL ,可通过软件写入户报警上下限。
DS18B20温度传感器的内部存储器还包括一个高速暂存RAM 和一个非易失性的可电擦除的EERAM 。
高速暂存RAM 的结构为8字节的存储器,结构如图3.6所示。
头2个字节包含测得的温度信息,第3和第4字节TH 和TL 的拷贝,是易失的,每次上电复位时被刷新。
第5个字节,为配置寄存器,它的内容用于确定温度值的数字转换分辨率。
DS18B20工作时寄存器中的分辨率转换为相应精度的温度数值。
该字节各位的C 64位ROM和 单 线 接 口高速缓存存储器与控制逻辑 温度传感器 高温触发器TH 低温触发器TL 配置寄存器8位CRC 发生器 Vdd定义如图3.7所示。
低5位一直为1,TM 是工作模式位,用于设置DS18B20在工作模式还是在测试模式,DS18B20出厂时该位被设置为0,用户要去改动,R1和R0决定温度转换的精度位数,来设置分辨率。
TM R11R01111....图3.7 DS18B20的字节定义DS18B20高速暂存器共9个存存单元,如表3-1所示:表3-1 DS18B20的引脚分布图数据,存储在18B20的两个高低两个8位的RAM 中,二进制中的前面5位是符号位表3-2所示。
如果测得的温度大于0,这5位为0,只要将测到的数值乘于0.0625即可得到实际温度;如果温度小于0,这5位为1,测到的数值需要取反加1再乘于0.0625才能得到实际温度表3-2。