DS18B20温度检测.docx
- 文档编号:9785647
- 上传时间:2023-02-06
- 格式:DOCX
- 页数:12
- 大小:284.86KB
DS18B20温度检测.docx
《DS18B20温度检测.docx》由会员分享,可在线阅读,更多相关《DS18B20温度检测.docx(12页珍藏版)》请在冰豆网上搜索。
DS18B20温度检测
温度监测系统硬件设计
摘要:
利用DS18B20为代表的新型单总线数字式温度传感器实现温度的监测,可以简化硬件电路,也可以实现单线的多点分布式温度监测,而不会浪费单片机接口,提供了单片机接口的利用率。
同时提高了系统能够的抗干扰性,使系统更灵活、方便。
本系统主要实现温度的检测、显示以及高低温的报警。
也可以通过单总线挂载多个DS18B20实现多点温度的分布式监测。
关键词:
DS18B20,单总线,温度,单片机
1引言
在科技广泛发展的今天,计算机的发展已经越来越快,它的应用已经越来越广泛。
而单片机的发展和应用是其中的重要一方面。
单片机在工业生产(机电、化工、轻纺、自控等等)和民用家电各方面有广泛的应用。
其中,单片机在工业生产中的应用尤其广泛。
单片机具有集成度高,处理能力强,可靠性高,系统结构简单,价格低廉的优点,因此被广泛应用。
在工业生产中,电流、电压、温度、压力、流量、流速和开关量都是常用的主要测量参数。
例如:
在冶金工业、化工工业、电力工程、机械制造和食品加工等许多领域中,人们都需要对各类加热炉、热处理炉、反映炉和锅炉,尤其是热学试验(如:
物体的比热容、汽化热、热功当量、压强温度系数等教学实验)中的温度进行测量,并经常会对其进行控制。
传统的方式是采用热电偶或热电阻,但是由于模拟温度传感器输出为模拟信号,必须经过A/D转换环节获得数字信号后才能够被单片机等微处理器接收处理,使得硬件电路结构复杂,制作成本较高。
近年来,美国DALLAS公司生产的DS18B20为代表的新型单总线数字式温度传感器以其突出优点广泛使用于仓储管理、工农业生产制造、气象观测、科学研究以及日常生活中。
这类温度传感器集温度测量和A\D转换于一生,直接输出数字量,传输距离远,可以很方便地实现多点测量,硬件电路结构简单,与单片机接口几乎不需要外围元件。
2系统描述
本文将介绍利用单片机与单总线数字式温度传感器实现温度的测量、显示以及温度报警,并实现温度的监测。
2.1系统功能
本设计要实现的功能如下:
(1)实现温度的测量
(2)可将温度信息通过LCD显示出来
(3)设定温度的高温界限,当温度超过一定值时,发出高温报警信息,相应的高温报警LED信号灯亮起、同时启动蜂鸣器示警,并将报警信息显示在LCD上。
(4)设定温度的低温界限,当温度低于一定值时,发出低温报警信息,相应的低温报警LED信号灯亮起、同时启动蜂鸣器,并将报警信息显示在LCD上。
(5)报警时能够通过按键实现温度正常范围值的显示。
2.2系统设计指标
本系统主要参数指标:
(1)温度的测量范围为0-100℃
(2)温度报警上限为80℃
(3)温度报警下限为60℃
(4)每一秒刷新一次温度信息
3系统的主要元件
3.1单片机
我们采用ATMEL公司的AVR单片机。
其是一种基于增强型精简指令集RISC结构、低功耗、CMOS技术的8位微控制器。
目前有tinyAVR、低功耗AVR和megaAVR3个系列。
它们的功能和外部引脚各有不同,但它们内核的基本结构相同,指令系统相容。
本设计中采用AVR系列中比较典型的ATmega16单片机。
其主要特点如下:
·具备1MIPS/MHz的高速运行处理能力
·I/O口驱动能力强:
推拉电流能力均达30mA,可以直接驱动蜂鸣器、继电器等
·片内资源丰富:
外部中断、定时/计数器、UART、SPI、TWI(I2C)、ADC、模拟比较器
·AVR单片机耗能低。
对于典型功耗情况,WDT关闭时为100nA,更适合用于电池供电的应用设备。
有的器件最低1.8V即可工作
·可选型号丰富,性价比高,保密性好
ATmega16的片内及接口资源如图3-1所示。
图3-2为ATmega16的引脚图。
图3-1ATmega16的资源介绍
图3-2ATmega16的引脚
3.2温度传感元件
温度传感器元件我们选用DALLAS半导体公司的DS18B20单总线数字温度计。
它是世界上第一种支持“单总线”接口的可组网数字式温度传感器,其能够直接读取被测对象的温度值。
DS18B20具有如下特性:
·独特的单线接口,只需一个接口引脚即可通信
·多点能力使分布式温度检测应用得以简化
·不需要外部元件
·可用数据线供电
·不需要备份电源
·测量范围从-55℃到+125℃,在-10℃到+85℃之间测量精度可达±0.5℃,稳定度为1%
·以9位数字值方式读出温度
·在1秒内把温度变换为数字
·用户定义的,非易失性的温度告警设置
·告警搜索命令识别和寻址温度在编定的极限之外的器件(温度告警情况)
·应用范围包括恒温控制,工业系统,消费类产品,温度计或任何热敏系统
DS18B20有多种封装可选,如TO-92、SOIC及CSP封装。
图3-3即为DS18B20的管脚排列图。
由图3-3可见,DS18B20只有一个数据输入/输出口,属于单总线专用芯片之一。
DS18B20工作时被测温度值直接以“单总线”的数字式传输,大大提高了系统的抗干扰能力。
每一个DS18B20在出厂时都已具有唯一的64位序列号,因此一条总线上可以同时挂接多个DS18B20,而不会出现混乱。
另外用户还可自设定非易失性温度报警上下限值TH和TL。
DS18B20在完成温度变换后,所测温度值将自动与存储在TH和TL内的触发值相比较,如果测温结果高于TH或低于TL,DS18B20内部的告警标志就会被置位,表示温值超出了测量范围,同时还有报警搜索命令识别出温度超限的DS18B20。
图3-3DS18B20的引脚排列
图3-4DS18B20内部存储器结构
图3-4为DS18B20的内部存储器结构图,它包括一个暂存RAM和一个非易失性电可擦除(E2)RAM。
其中暂存存储器的作用是在单线通信时确保数据的完整性,它包括8个字节,前两个字节表示测得的温度读数。
每一个DS18B20包括一个唯一的64位长的ROM编码。
开始的8位是单线产品系列编码,接着的48位是唯一的序列号,最后的8位是开始的56位CRC,如图3-5所示。
图3-564位ROM编码
3.3LCD显示屏
在本设计用,要将温度信息显示出来,所以我们采用LCD显示模块。
液晶显示器(LCD)由于体积小、重量轻、耗电小等优点已成为嵌入式系统常用的理想显示器。
本设计中采用的通用点阵字符液晶显示器是专用于显示数字、字母、图形符号和一些自定义符号的显示器。
这类显示器把LCD控制器、点阵驱动器、字符存储器全做在一个PCB板上,构成便于应用的显示器模块。
这类点阵字符液晶显示器模块在国际上已经规范化,一般采用日立公司的HD44780及其兼容电路。
本设计中采用的LM16L即为采用HD44780驱动器。
HD44780具有简单而功能较强的指令集,可实现字符移动、闪烁等功能。
它与MCU的数据传输可采用8位并行或4位并行传输两种方式。
可用于驱动40×4、16×1、16×2等多种点阵字符液晶显示器。
HD44780有14个引脚,与MCU的接口信号及定义如表3-1所示。
表3-1HD44780引脚功能定义表
引脚号
符号
I/0
功能
1
VSS
电源负端,接地(或接-5V)
2
VDD
电源正端,接+5V
3
V0
LCD亮度调整电压0~5V
4
RS
1
寄存器选择:
RS=0,选指令寄存器;RS=1,选数据寄存器
5
R/W
1
读/写选择:
R/W=0,写数据至LCD;R/W=1,从LCD读数据
6
E
1
输入允许:
R/W=0,E下降沿打入;R/W=1,E=1有效
7~10
DB0~DB3
I/O
数据总线:
使用4位并行传输时,仅用(DB4~DB7)4位;使用8位并行传输时,使用(DB0~DB7)8位
11~14
DB4~DB7
I/O
15~16
LCD背光电源的正极和负极(有些模块没有背光功能)
4硬件电路
4.1系统整体原理图
系统的整个电路如下图所示。
系统包含单片机晶振部分,LM016L与AVR单片机连接部分,DS18B20部分,以及外部按键中断和温度报警部分。
图4-1系统的整体电路
4.2单片机晶振电路
为ATmega16提供系统时钟时,可采用如下的几种方式:
(1)直接使用片内的1/2/4/8MHz的RC振荡源
(2)在引脚XTAL1和XTAL2上外接由石英晶体和电容组成的谐振电路,
配合片内的OSC振荡电路构成的振荡源。
(3)直接使用外部的时钟源输出的脉冲信号
本设计中采用较常规的方式
(2)时钟电路,采用4MHz外部晶振。
单片机的复位引脚
通过一个上拉电阻接系统电源,为高电平“1”。
在此条件下,一旦接通电源,AVR将进入上电复位状态。
单片机时钟电路如图4-2所示。
图4-2单片机复位与时钟电路
4.3温度传感器连接电路
DS18B20采用的是单总线传输数据。
因为,单总线空闲状态为高电平,所以要接一个近似为5
的上拉电阻,使数据线在空闲状态下能自动的上拉为高电平。
与DS18B20相连接的I/O需要设置成输入状态。
此外,DS18B20可以采用两种供电方式。
一种是寄生电源方式,由单片机的引脚提供电源,另一种是外部电源方式,即将DS18B20的VDD引脚接+5V的外部电源。
相对于寄生电源方式,外部电源供电允许在变换时间内其他数据在单总线上传输。
这样可以实现单总线挂载多个DS18B20传感器,实现单线的多点温度检测,大大的提高了单片机接口的利用率。
本设计中,即采用外部电源供电方式。
下图即为DS18B20的连接电路。
图4-3DS18B20电路
4.4LCD电路
从零开始编写HD44780的控制程序需要了解HD44780的内部结构、操作时序、指令集、内部REM与字符图形的对应关系和字符代码表等。
但由于这种点阵字符液晶显示器模块在国际上已经规范化,而且我们使用的CodeVisionAVR开发平台中扩展提供了一些基本的LCD应用接口函数。
因此,我们编程时直接调用了这些函数。
要使用CVAVR内部提供的LCD函数,则硬件连接必须按以下要求实现:
(1)与LCD的连接必须使用AVR的同一8位I/0端口,如PC(或者PA、
PB、PD),本设计中采用PC端口。
(2)LCD采用4位并行传输方式(即仅用DB4~DB7,4位数据总线)
(3)具体连接定义如下:
·3根控制总线:
PC0—RS,PC1—R/W,PC2—E。
·4根数据线:
PC4—DB4,PC5—DB5,PC6—DB6,PC7—DB7
具体的LM016L与MCU连接图如下:
图4-4LM016L接口电路
4.5报警和外部中断电路
当温度高于报警上限时,蜂鸣器响起同时高温报警LED灯闪烁。
当温度低于报警下限时,蜂鸣器响起同时低温报警LED灯闪烁。
同时,通过按键实现温度的报警上下限查询。
则我们通过外部中断INT0连接按键来处理温度报警上下限的查询功能,通过外部中断INT1连接按键来回复当前温度值的显示功能。
按键利用电容的延时作用,达到硬件防抖的目的。
图4-5即为报警与外部中断电路。
因为ATmega16的I/O驱动能力较强,可以提供最大40mA的驱动电流。
因此,我们用I/O口直接驱动LED灯及蜂鸣器,初始应该设置成低电平输出方式。
本设计中,外部中断采用低电平触发方式,因此在中断处理程序中需要加入延时防抖。
否则,只要低电平有效,就会一直响应中断。
图4-5报警与外部中断电路
5结论
本系统中,通过DS18B20检测温度信息,并通过LM016L显示出来。
当温度超过预先设定的范围时,就会发出报警信号,提示温度已经超过正常范围。
同时本系统也可以挂载多个DS18B20实现温度的多点分布式监测,而不会多占用单片机的接口。
由于时间关系,我们并没有实现多点监测,这点是我们需要继续完善的。
再者,本系统只是一个温度检测器,是一个开环结构。
在实际应用中,更多是实现温度的监测与控制。
这样,系统才有很好的实用价值。
参考文献:
[1]马潮.AVR单片机嵌入式系统原理与应用实践.北京:
北京航空航天大学出版社,2007
[2]李泓.AVR单片机入门与实践.北京:
北京航空航天大学出版社,2008
[3]易丽华.基于AT89C51单片机与DS18B20的温度测量系统.电子与封装,2009
[4]周月霞.DS18B20硬件连接及软件编程.信号与处理,2001
[5]徐益民.零基础学AVR单片机:
基于ATmega16、汇编及C语言.北京:
机械工业出版社,2011
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- DS18B20 温度 检测
![提示](https://static.bdocx.com/images/bang_tan.gif)