基于DS18B20的测温系统的设计
【摘要】DS18B20是DALLAS公司生产的数字温度传感器,多个传感器可通过一根口线与微处理器相连。针对单线总线数字温度传感器DS18B20的工作特性,本文对基于DS18B20的测温系统进行了硬件和软件的设计。该测温系统具有电路结构简单、测试精度高的优点,适用于工业控制的实时检测和监控。
【关键词】DS18B20 单线总线 时序 测温系统 数字温度传感器
The Design of Testing Temperature Base on
DS18B20
【Abstract】 DS18B20 DALLAS production company is digital temperature sensor, multiple sensors can pass a root mouth line and microprocessor connected. Aiming at singleline bus digital temperature sensor DS18B20 operating characteristics, this paper based on the chip DS18B20 temperature measuring the system hardware and software design. The temperature measuring system has the circuit structure is simple, the advantage of high measurement precision, suitable for industrial control real-time detecting and monitoring.
【Keywords】DS18B20 1-wire bus Timing System of testing temperature digtal thermo-sensor
温度是我们人类生活环境中的一项基本参数,无论是在工业还是农业或者其它领域的生产过程中,都要对温度进行监控。那么传统的温度测量装置一般都是通过热电偶、热电阻或PN结测温电路经过相应的信号调理电路,转换成A/D转换器能接收的模拟量,再经过采样/保持电路进行A/D转换,最终送入单片机及其相应的外围电路来完成监控的。以这种方式的话,电路实现较为复杂,同时也比较容易受到干扰,精度不高。因此设计一种基于Atmel公司的 AT89C51的温度测量系统,利用一种新型的智能集成温度传感器DS18B20来实现温度的精确测量,以RT1602C为字符液晶显示器显示被测温度,具有实用价值。
1 测温系统硬件电路设计
1.1 DS18B20数字温度传感器功能介绍
DS18B20数字温度传感器是美国达拉斯半导体公司生产的新型温度检测器件,为单片结构。DS18B20数字温度器件可提供9个二进制位的温度信号指示,信息无论输入或输出都可以通过一根接口线实现。因此,在DS18B20数字温度传感器和中央CPU处理器之间只需一根
1
连线。在读、写和执行温度转换期间,所需要的电能可通过数据线自身获取,也可由外部电源来提供,因此,DS18B20数字温度传感器的外部电源输入是可选的。由于每个DS18B20数字温度传感器包含唯一的数字序列号,所以,多个DS18B20数字温度传感器的数据可同时在一根公共线上存在,放在不同的地点能够实现分布式的温度监测。DS18B20数字温度传感器的测温范围为-55ºC~+125 ºC¹,分辨率为0.5 ºC,完全可以满足温度数据采集的基本要求。
如图1所示,DS18B20数字温度传感器主要由3部分组成:①64-bit的激光ROM:②温度传感器:③温度报警触发器TH和TL。DS18B20数字温度传感器可以从其唯一的1根通讯信号线上得到电能供给,当信号上是高电平时,给以内部电容充电:当信号线上为低电平时,该电容放电,充当了寄生电源。另外,DS18B20数字温度传感器也可以靠外部的+5V电源供电,增加了DS18B20数字温度传感器的应用灵活性。 1.2系统硬件框架
测温系统硬件电路如图2所示,该系统主要由AT89C51单片机、数字温度传感器DS18B20及液晶显示器1602三大部分组成。在此系统中,作为温度采集单元的DS18B20采用外部电源供电方式,与AT89C51单片机进行双向通信,无需A/D转换电路就可以直接将被测温度转换为数字信号供单片机进行处理,最终将换算得到的测量温度显示在液晶显示器1602上。
在此系统中还采用了单片机的中断功能K1、K2.、K3及K4四个键进行键扫描,调整报警
2
温度的上限值和下限值,若测试温度不在上限值和下限值的范围内蜂鸣器自动报警。
2 测温系统软件设计
软件部分采用模块化程序设计,其流程图如图3所示,
开始开中断,初始化1602P3.2引脚的键按下Y N启动温度转换Y匹配24位ROM地址进入中断键扫描,按键设置报警温度上限制和下限值温度转换及显示1602显示报警温度上限制和下限值温度值在允许的范围N蜂鸣器报警返回中断图3 测温系统程序流程图Figure 3 Temperature measuring system programming flowchart
其中程序采用汇编语言进行编写,主要完成LCD1602初始化、DS18B20初始化、从DS18B20读取数据、向DS18B20写数据及温度转化等子程序的编写。
此外,在进行程序的编写时一定要严格保证DS18B20读写程序时序的正确性,否则无法读取测温结果²。其初始化时序和写时序的程序分别如下: 2.1 DS18B20初始化时序
初始化时序包括一个主机发出的复位脉冲以及从机的应答脉冲,这一过程如图4所示,复位脉冲是一个480~960us的低电平,然后释放总线将总线拉至高电平,时间持续15~60us。之后从机开始向总线发出一个应答脉冲,该脉冲是一个60~240us的低电平信号,表示从机已经准备好。在初始化过程中,主机接收脉冲的时间至少为480us。
3
DS18B20初始化程序 INIT_1820: SETB DQ NOP CLR DQ MOV R0,#06BH TSR1:
DJNZ R0,TSR1 SETB DQ MOV R0,#25H TSR2:
JNB DQ,TSR3 DJNZ R0,TSR2
LJMP TSR4 TSR3:
SETB FLAG1 LJMP TSR5 TSR4:
CLR FLAG1 LJMP TSR7 TSR5:
MOV R0,#06BH TSR6:
4
DJNZ R0,TSR6 TSR7:
SETB DQ RET
2.2 DS18B20的写程序
DS18B20的写时序如图5所示,分为写0和写1时序两个过程,主机把单线总线从高电平拉至低电平时表示一个写周期的开始。当要写0时序时,单总线要被拉至少60us保证DS18B20在15~45us之间能够正确的采样总线上的低电平;要写1时序时单总线要被拉低以后在15us之内就得释放单总线,将单总线拉为高电平。此外,两个写周期之间至少要有1us的恢复时间。
写DS18B20的程序 WRITE_1820: MOV R2,#8 CLR C WR1:
CLR DQ MOV R3,#6 DJNZ R3,$ RRC A MOV DQ,C MOV R3,#23 DJNZ R3,$ SETB DQ
5
NOP
DJNZ R2,WR1 SETB DQ RET
3结束语
程序升、降温是科研和生产中经常遇到的一类控制。该测温系统具有电路结构简单,测试速度快,测试精度高等优点。若对该系统稍加修改实现多点温度的测量,这为智能化控制和自动化控制领域提供了广阔的发展前景。 【参考文献】
[1]苗宝增,王蕊. DS18B20及其在测温系统中的应用.电气时代,2009 [2]朱群峰,王晓芳,黄磊.基于DS18B20的多路温度采集系统.船电技术,2009
6
因篇幅问题不能全部显示,请点此查看更多更全内容