当前位置:文档之家› 基于ds18b20的数字温度计设计

基于ds18b20的数字温度计设计

目录(一)设计内容及要求 (2)(二)系统的硬件选择及设计 (3)2.1核心处理器的设计 (3)1、AT89C51引脚图 (3)2、AT89C51引脚功能介绍 (3)2.2温度采集电路的设计 (5)1、单线技术 (5)2、DS18B20的简介 (6)3、DS18B20内部结构 (8)4、DS18B20测温原理 (11)5、温度采集电路 (12)2.3温度显示电路的设计 (13)1、LED数码管的操作 (13)2、温度显示电路 (13)(三)系统的软件设计 (15)3.1概述 (15)3.2 DS18B20的单线协议和命令 (15)(1)初始化 (15)(2)ROM操作命令 (15)(3)内存操作命令 (16)3.3温度采集程序流程图的设计 (18)3.4温度显示程序流程图的设计 (19)(四) 结论 (19)(五)汇编代码 (20)(六)参考文献 (27)基于DS18B20的数字温度计设计摘要:在本设计中选用AT89C51型单片机作为主控制器件,采用DS18B20数字温度传感器作为测温元件,通过两位共阴极LED数码显示管并行传送数据,实现温度显示。

本设计的内容主要分为两部分,一是对系统硬件部分的设计,包括温度采集电路和显示电路;二是对系统软件部分的设计,应用汇编语言实现温度的采集与显示。

通过DS18B20直接读取被测温度值,送入单片机进行数据处理,之后进行输出显示,最终完成了数字温度计的总体设计。

其系统构成简单,信号采集效果好,数据处理速度快,便于实际检测使用。

关键词:单片机AT89C51;温度传感器DS18B20;LED数码管;数字温度计(一)设计内容及要求本设计主要介绍了用单片机和数字温度传感器DS18B20相结合的方法来实现温度的采集,以单片机AT89C51芯片为核心,辅以温度传感器DS18B20和LED 数码管及必要的外围电路,构成了一个多功能单片机数字温度计。

本次设计的主要思路是利用51系列单片机,数字温度传感器DS18B20和LED 数码显示器,构成实现温度检测与显示的单片机控制系统,即数字温度计。

通过对单片机编写相应的程序,达到能够实时检测周围温度的目的。

通过对本课题的设计能够熟悉数字温度计的工作原理及过程,了解各功能器件(单片机、DS18B20、LED)的基本原理与应用,掌握各部分电路的硬件连线与程序编写,最终完成对数字温度计的总体设计。

其具体的要求如下:1、根据设计要求,选用AT89C51单片机为核心器件;2、温度检测器件采用DS18B20数字式温度传感器,利用单总线式连接方式与单片机的P2.2引脚相连;3、显示电路采用两位LED数码管以串口并行输出方式动态显示。

(二)系统的硬件选择及设计2.1核心处理器的设计1、AT89C51引脚图芯片AT89C51的引脚排列和逻辑符号如图2.1 所示。

图 2.1 AT89C51单片机引脚图2、AT89C51引脚功能介绍单片机芯片AT89C51为40引脚双列直插式封装。

本设计使用的其各个引脚功能介绍如下:(1) VCC:供电电压;(2) GND:接地;(3) P0口:一个8位漏级开路双向I/O口,每个管脚可吸收8TTL门电流。

本设计中使用P0作为两个共阴极LED数码管的位选和段选输出控制口,其中用到74HC573作为输出锁存,将段选和位选分开控制,由P2.7,P2.8开启。

电路图如下:(4) P1口:一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。

P1口被拉为低电平时将输出电流。

本设计中只用到P1.0管脚,当所测量温度超过预设报警温度时点亮LED灯,其中用到74HC573作为输出锁存,由P2.5开启该锁存器。

电路图如下:(5) P2口:一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流。

本设计中使用P2.2管脚和DS18B20的DQ管脚相连作为通信总线,AT89C51和 DS18B20都能对该线电平拉高和拉低操作来进行通信,当电平为高时总线传输“1”,当电平为低时总线传输“0”;P2.7,P2.8开启数码管的位选和段选的P0口的锁存;P2.5开启报警LED灯的P1口的锁存。

(6) RST:复位输入端。

当振荡器复位时,要保持RST脚两个机器周期的高电平时间。

2.2温度采集电路的设计1、单线技术该技术采用单根信号线,即可传输时钟,又能传输数据,而且数据传输时是双向的,因而这种单线技术具有线路简单,硬件开销少,成本低廉。

便于扩展的优点。

单线技术适用以单主机系统,单主机能够控制一个或多个从机设备。

主机可以是微控制器,从机可以是单线器件,它们之间的数据交换,控制都由这根线完成。

主机或从机通过一个漏极开路或三态端口连至该数据线,以允许设备在不发送数据时能够释放线,而让其它设备使用。

单线通常要求外接一个约5kΩ的上拉电阻,这样,当该线闲置时,器件状态为高电平。

主机和从机之间的通信主要分为3个步骤:初始化单线器件,识别单线器件和单线数据传输。

由于只有一根线通信,所以它们必须是严格的主从结构,只有主机呼叫从机时,从机才能应答,主机访问每个单线器件都必须严格遵循单线命令序列,从机遵守上述三个步骤的顺序。

如果命令序列混乱,单线器件将不会响应主机。

所有的单线器件都有遵循严格的协议,以保证数据的完整性。

单线协议有复位脉冲,其他均由主机发起,并且所有命令和数据都是字节的低位在前。

2、DS18B20的简介DALLAS 最新单线数字温度传感器DS18B20是一种新型的”一线器件”,其体积更小、更适用于多种场合、且适用电压更宽、更经济。

温度测量范围为-55~+125 摄氏度,可编程为9位~12 位转换精度,测温分辨率可达0.0625摄氏度,分辨率设定参数以及用户设定的报警温度存储在EEPROM 中,掉电后依然保存。

被测温度用符号扩展的16位数字量方式串行输出;其工作电源既可以在远端引入,也可以采用寄生电源方式产生;多个DS18B20可以并联到3 根或2 根线上,CPU只需一根端口线就能与诸多DS18B20 通信,占用微处理器的端口较少,可节省大量的引线和逻辑电路。

因此用它来组成一个测温系统,具有线路简单,在一根通信线,可以挂很多这样的数字温度计,十分方便。

DS18B20 的性能特点如下:▲独特的单线接口方式,DS18B20在与微处理器连接时仅需要一条总线即可实现微处理器与DS18B20的双向通讯;▲ DS18B20支持多点组网功能,多个DS18B20可以并联在唯一的三线上,实现组网多点测温;▲ DS18B20在使用中不需要任何外围元件,全部传感元件及转换电路集成在形如一只三极管的集成电路内;▲适应电压范围更宽,电压范围:3.0~5.5V,在寄生电源方式下可由数据线供电;▲测温范围-55℃~+125℃,在-10~+85℃时精度为±0.5℃;▲零待机功耗;▲可编程的分辨率为9~12位,对应的可分辨温度分别为0.5℃、0.25℃、0.125℃和0.0625℃,可实现高精度测温;▲在9位分辨率时最多在93.75ms内把温度转换为数字,12位分辨率时最多在750ms内把温度值转换为数字,速度更快;▲用户可定义报警设置;▲报警搜索命令识别并标志超过程序限定温度(温度报警条件)的器件;▲测量结果直接输出数字温度信号,以"一线总线"串行传送给CPU,同时可传送CRC校验码,具有极强的抗干扰纠错能力;▲负电压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作以上特点使DS18B20非常适用与多点、远距离温度检测系统。

DS18B20内部结构主要由四部分组成:64位光刻ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。

DS18B20的管脚排列、各种封装形式如图 2.4 所示。

其中,DQ 为数据输入/输出引脚,也可用作开漏单总线接口引脚,当被用在寄生电源工作方式下,可以向器件提供电源;GND为地信号;VDD 为可选择的电源引脚,当工作于寄生电源时,此引脚必须接地。

其电路图 2.5所示。

图2.4 外部封装形式图2.5 传感器电路图3、DS18B20内部结构图2.6为DS1820的内部结构框图,它主要包括寄生电源、温度传感器、64位激光ROM单线接口、存放中间数据的高速暂存器(内含便笺式RAM),用于存储用户设定的温度上下限值的TH和TL触发器存储与控制逻辑、8位循环冗余校验码(CRC)发生器等七部分。

图2.6 DS18B20内部结构框图DS18B20采用3脚PR-35封装或8脚SOIC封装。

(1)64 bit闪速ROM的结构如下:8bit 校验CRC 48bit 序列号8bit 工厂代码MSB LSB MSB LSB MSB LSB开始的8位是产品类型的编号,接着是每个器件的惟一的序号,共有48 位,最后8位是前面56 位的CRC 检验码,这也是多个DS18B20可以采用一线进行通信的原因。

温度报警触发器TH和TL,可通过软件写入户报警上下限。

主机操作ROM 的命令有五种,在软件设计时会提到。

(2)高速暂存RAM的结构为8字节的存储器结构如图2.7所示。

图2.7 高速暂存RAM结构图其中,前2个字节包含测得的温度信息,第3和第4字节TH和TL的拷贝,是易失的,每次上电复位时被刷新。

第5个字节,为配置寄存器,它的内容用于确定温度值的数字转换分辨率。

DS18B20工作时寄存器中的分辨率转换为相应精度的温度数值。

暂存存储器的第5个字节是配置寄存器,可以通过相应的写命令进行配置,其内容如下:0 R1 R0 1 1 1 1 1 1MSB LSB其中R0和R1是温度值分辨率位,可按表2.3进行配置。

表2.3 温度值分辨率配置表R1 R0 分辨率最大转换时间(ms)0 0 9位93.75ms(tconv/8)0 1 10位183.50ms(tconv/4)1 0 11位375ms(tconv/2)1 1 12位750ms(t)conv 当DS18B20接收到温度转换命令后,开始启动转换。

转换完成后的温度值就以16位带符号扩展的二进制补码形式存储在高速暂存存储器的第1、2字节。

单片机可通过单线接口读到该数据,读取时低位在前、高位在后,数据格式以0.0625℃/LSB形式表示。

温度值格式如下:低232221202-12-22-32-4高S S S S S 262524MSB LSB这是12位转化后得到的12位数据,存储在DS18B20的两个8比特的RAM中,二进制中的前面5位是符号位,如果测得的温度大于0,这5位为0,只要将测到的数值乘于0.0625即可得到实际温度;如果温度小于0,这5位为1,测到的数值需要取反加1再乘于0.0625即可得到实际温度。

相关主题