目录1引言12系统描述22.1系统功能22.2系统设计指标33系统的主要元件33.1单片机33.2温度传感元件43.3LCD显示屏74硬件电路84.1系统整体原理图84.2单片机晶振电路84.3温度传感器连接电路94.4LCD电路104.5报警和外部中断电路115结论12温度监测系统硬件设计摘要:利用DS18B20为代表的新型单总线数字式温度传感器实现温度的监测,可以简化硬件电路,也可以实现单线的多点分布式温度监测,而不会浪费单片机接口,提供了单片机接口的利用率。
同时提高了系统能够的抗干扰性,使系统更灵活、方便。
本系统主要实现温度的检测、显示以及高低温的报警。
也可以通过单总线挂载多个DS18B20实现多点温度的分布式监测。
关键词:DS18B20,单总线,温度,单片机1引言在科技广泛发展的今天,计算机的发展已经越来越快,它的应用已经越来越广泛。
而单片机的发展和应用是其中的重要一方面。
单片机在工业生产(机电、化工、轻纺、自控等等)和民用家电各方面有广泛的应用。
其中,单片机在工业生产中的应用尤其广泛。
单片机具有集成度高,处理能力强,可靠性高,系统结构简单,价格低廉的优点,因此被广泛应用。
在工业生产中,电流、电压、温度、压力、流量、流速和开关量都是常用的主要测量参数。
例如:在冶金工业、化工工业、电力工程、机械制造和食品加工等许多领域中,人们都需要对各类加热炉、热处理炉、反映炉和锅炉,尤其是热学试验(如:物体的比热容、汽化热、热功当量、压强温度系数等教学实验)中的温度进行测量,并经常会对其进行控制。
传统的方式是采用热电偶或热电阻,但是由于模拟温度传感器输出为模拟信号,必须经过A/D转换环节获得数字信号后才能够被单片机等微处理器接收处理,使得硬件电路结构复杂,制作成本较高。
近年来,美国DALLAS公司生产的DS18B20为代表的新型单总线数字式温度传感器以其突出优点广泛使用于仓储管理、工农业生产制造、气象观测、科学研究以及日常生活中。
这类温度传感器集温度测量和A\D转换于一生,直接输出数字量,传输距离远,可以很方便地实现多点测量,硬件电路结构简单,与单片机接口几乎不需要外围元件。
2系统描述本文将介绍利用单片机与单总线数字式温度传感器实现温度的测量、显示以及温度报警,并实现温度的监测。
2.1系统功能本设计要实现的功能如下:(1)实现温度的测量(2)可将温度信息通过LCD显示出来(3)设定温度的高温界限,当温度超过一定值时,发出高温报警信息,相应的高温报警LED信号灯亮起、同时启动蜂鸣器示警,并将报警信息显示在LCD上。
(4)设定温度的低温界限,当温度低于一定值时,发出低温报警信息,相应的低温报警LED信号灯亮起、同时启动蜂鸣器,并将报警信息显示在LCD上。
(5)报警时能够通过按键实现温度正常X围值的显示。
2.2系统设计指标本系统主要参数指标:(1)温度的测量X围为0-100℃(2)温度报警上限为80℃(3)温度报警下限为60℃(4)每一秒刷新一次温度信息3系统的主要元件3.1单片机我们采用ATMEL公司的AVR单片机。
其是一种基于增强型精简指令集RISC 结构、低功耗、CMOS技术的8位微控制器。
目前有tiny AVR、低功耗AVR和mega AVR 3个系列。
它们的功能和外部引脚各有不同,但它们内核的基本结构相同,指令系统相容。
本设计中采用AVR系列中比较典型的ATmega16单片机。
其主要特点如下:·具备1MIPS / MHz的高速运行处理能力·I/O口驱动能力强:推拉电流能力均达30mA,可以直接驱动蜂鸣器、继电器等·片内资源丰富:外部中断、定时/计数器、UART、SPI、TWI(I2C)、ADC、模拟比较器·AVR单片机耗能低。
对于典型功耗情况,WDT关闭时为100nA,更适合用于电池供电的应用设备。
有的器件最低1.8V即可工作·可选型号丰富,性价比高,XX性好ATmega16的片内及接口资源如图3-1所示。
图3-2为ATmega16的引脚图。
图3-1 ATmega16的资源介绍图3-2ATmega16的引脚3.2温度传感元件温度传感器元件我们选用DALLAS半导体公司的DS18B20单总线数字温度计。
它是世界上第一种支持“单总线”接口的可组网数字式温度传感器,其能够直接读取被测对象的温度值。
DS18B20具有如下特性:·独特的单线接口,只需一个接口引脚即可通信·多点能力使分布式温度检测应用得以简化·不需要外部元件·可用数据线供电·不需要备份电源·测量X围从-55℃到+125℃,在-10℃到+85℃之间测量精度可达±0.5℃,稳定度为1%·以9位数字值方式读出温度·在1秒内把温度变换为数字·用户定义的,非易失性的温度告警设置·告警搜索命令识别和寻址温度在编定的极限之外的器件(温度告警情况)·应用X围包括恒温控制,工业系统,消费类产品,温度计或任何热敏系统DS18B20有多种封装可选,如TO-92、SOIC及CSP封装。
图3-3即为DS18B20的管脚排列图。
由图3-3可见,DS18B20只有一个数据输入/输出口,属于单总线专用芯片之一。
DS18B20工作时被测温度值直接以“单总线”的数字式传输,大大提高了系统的抗干扰能力。
每一个DS18B20在出厂时都已具有唯一的64位序列号,因此一条总线上可以同时挂接多个DS18B20,而不会出现混乱。
另外用户还可自设定非易失性温度报警上下限值TH和TL。
DS18B20在完成温度变换后,所测温度值将自动与存储在TH和TL内的触发值相比较,如果测温结果高于TH或低于TL,DS18B20内部的告警标志就会被置位,表示温值超出了测量X围,同时还有报警搜索命令识别出温度超限的DS18B20。
图3-3DS18B20的引脚排列图3-4DS18B20内部存储器结构图3-4为DS18B20的内部存储器结构图,它包括一个暂存RAM和一个非易失性电可擦除(E2)RAM。
其中暂存存储器的作用是在单线通信时确保数据的完整性,它包括8个字节,前两个字节表示测得的温度读数。
每一个DS18B20包括一个唯一的64位长的ROM编码。
开始的8位是单线产品系列编码,接着的48位是唯一的序列号,最后的8位是开始的56位CRC,如图3-5所示。
图3-5 64位ROM编码3.3LCD显示屏在本设计用,要将温度信息显示出来,所以我们采用LCD显示模块。
液晶显示器(LCD)由于体积小、重量轻、耗电小等优点已成为嵌入式系统常用的理想显示器。
本设计中采用的通用点阵字符液晶显示器是专用于显示数字、字母、图形符号和一些自定义符号的显示器。
这类显示器把LCD控制器、点阵驱动器、字符存储器全做在一个PCB板上,构成便于应用的显示器模块。
这类点阵字符液晶显示器模块在国际上已经规X化,一般采用日立公司的HD44780及其兼容电路。
本设计中采用的LM16L即为采用HD44780驱动器。
HD44780具有简单而功能较强的指令集,可实现字符移动、闪烁等功能。
它与MCU的数据传输可采用8位并行或4位并行传输两种方式。
可用于驱动40×4、16×1、16×2等多种点阵字符液晶显示器。
HD44780有14个引脚,与MCU的接口信号及定义如表3-1所示。
表3-1HD44780引脚功能定义表引脚号符号I/0 功能1 V SS电源负端,接地(或接-5V)2 V DD电源正端,接+5V3 V0LCD亮度调整电压0~5V4 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/O15~16 LCD背光电源的正极和负极(有些模块没有背光功能)4硬件电路4.1系统整体原理图系统的整个电路如下图所示。
系统包含单片机晶振部分,LM016L与AVR单片机连接部分,DS18B20部分,以及外部按键中断和温度报警部分。
图4-1 系统的整体电路4.2单片机晶振电路为ATmega16提供系统时钟时,可采用如下的几种方式:(1)直接使用片内的1/2/4/8 MHz的RC振荡源(2)在引脚XTAL1和XTAL2上外接由石英晶体和电容组成的谐振电路,配合片内的OSC振荡电路构成的振荡源。
(3)直接使用外部的时钟源输出的脉冲信号本设计中采用较常规的方式(2)时钟电路,采用4MHz外部晶振。
单片机的复位引脚RESET通过一个上拉电阻接系统电源,为高电平“1”。
在此条件下,一旦接通电源,AVR将进入上电复位状态。
单片机时钟电路如图4-2所示。
图4-2 单片机复位与时钟电路4.3温度传感器连接电路DS18B20采用的是单总线传输数据。
因为,单总线空闲状态为高电平,所以要接一个近似为5k 的上拉电阻,使数据线在空闲状态下能自动的上拉为高电平。
与DS18B20相连接的I/O需要设置成输入状态。
此外,DS18B20可以采用两种供电方式。
一种是寄生电源方式,由单片机的引脚提供电源,另一种是外部电源方式,即将DS18B20的VDD引脚接+5V的外部电源。
相对于寄生电源方式,外部电源供电允许在变换时间内其他数据在单总线上传输。
这样可以实现单总线挂载多个DS18B20传感器,实现单线的多点温度检测,大大的提高了单片机接口的利用率。
本设计中,即采用外部电源供电方式。
下图即为DS18B20的连接电路。
图4-3 DS18B20电路4.4LCD电路从零开始编写HD44780的控制程序需要了解HD44780的内部结构、操作时序、指令集、内部REM与字符图形的对应关系和字符代码表等。
但由于这种点阵字符液晶显示器模块在国际上已经规X化,而且我们使用的Code Vision AVR 开发平台中扩展提供了一些基本的LCD应用接口函数。
因此,我们编程时直接调用了这些函数。
要使用CVAVR内部提供的LCD函数,则硬件连接必须按以下要XX现:(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-4 LM016L接口电路4.5报警和外部中断电路当温度高于报警上限时,蜂鸣器响起同时高温报警LED灯闪烁。