单片机控制自动恒温箱毕业设计论文_第1页
单片机控制自动恒温箱毕业设计论文_第2页
单片机控制自动恒温箱毕业设计论文_第3页
单片机控制自动恒温箱毕业设计论文_第4页
单片机控制自动恒温箱毕业设计论文_第5页
已阅读5页,还剩42页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 摘 要近年来单片机发展十分迅速,单片机的应用已经渗透到各个行业。而温度的测量及控制变得越来越重要,温度的控制在各个领域都有积极的意义。传统的温度采集方法不仅费时费力,而且精度差,单片机的出现使得温度的采集和数据处理问题能够得到很好的解决。所以采用单片机对温度进行控制不仅具有控制方便、简单、灵活性大等特点,而且还可以大幅度提高被控温度的技术指标,从而能够大大提高产品的质量。本设计是基于AT89C51单片机的恒温箱控制系统,系统分为硬件和软件两部分,其中硬件包括:温度传感器、显示、控制和报警的设计;软件包括:显示程序设计、控制程序设计和温度报警程序设计。编写程序结合硬件进行调试,能够实现设置和调

2、节初始温度值,进行显示屏显示,当加热到设定值后立刻报警。本设计从实际应用出发选取了体积小、精度相对高的数字式温度传感元件DS18B20作为温度采集器,单片机AT89C51作为主控芯片,LCD1602作为显示输出,并且其中包含了PID算法,实现了对温度的实时测量与恒定控制。关键词:单片机;恒温;控制;报警;PIDAbstract In recent years, microcontroller is developed very rapid,microcontroller applications have penetrated into various industries.And the m

3、easurement and control of temperature becomes more and more important, the temperature control has a positive significance in various fields.The traditional method of temperature acquisition is not only time-consuming and laborious, but poor accuracy,the emergence of microcontroller makes the proble

4、m of data acquisition and processing temperature can get very good settlement.So using microcontroller to control temperature is not only easy to control, simple, flexibility and other characteristics, but also can greatly improve the temperature which was charged with technical indicators, which ca

5、n greatly improve the quality of the product. Thermostatic control play a decisive role in the process of industrial production, temperature control directly affects the yield and quality of industrial production.This design is the constant temperature box control system based on AT89C51 microcontro

6、ller, the system is divided into two parts of hardware and software,the hardware includes:temperature sensor,display,control and alarm design;software includes:a display program design, programdesign and temperature alarm program design. Write a program combining hardware debugging,can realize the s

7、etting and adjusting the initial temperature, for display, alarm immediately when heated to the set value.The design from practical application selected small,relatively high accuracy digital temperature sensor DS18B20 as the temperature logger,AT89C51 microcontroller as the master chip, LCD1602 as

8、display output,and also contains the PID algorithm,realize the real-time measurement of temperature and constant control. Keywords:microcontroller;thermostat; control;alarm;PID 目 录第1章 绪论11.1 课题背景11.2 课题意义11.3 课题内容21.4 恒温箱的发展与趋势21.5 本文结构安排3第2章 系统概述42.1 设计思路分析42.2 系统需求分析42.3 方案选择52.4 恒温箱的工作过程62.5 本章小结

9、6第3章 系统硬件设计73.1 硬件电路设计概述73.2 系统功能介绍83.3 时钟频率电路设计83.4 显示电路的设计93.5 开关键盘设计113.6 温度报警电路设计123.7 温度采集电路133.8 本章小结19第4章 系统软件设计204.1 软件任务分析204.2 程序流程图204.3 系统控制算法244.4 参数整定264.5 本章小结27结 论28参考文献29致 谢30附 录31I本科生毕业设计(论文)第1章 绪论1.1 课题背景 二十一世纪是科技高速发展的信息时代,电子技术、微型单片机技术的应用更是空前广泛,是随着超大规模集成电路技术的发展而诞生的。由于它具有体积小、功能强、性价

10、比高等特点,所以广泛应用于电子仪表、家用电器、节能装置、军事装置、机器人、工业控制等诸多领域,使产品小型化。智能化,既提高了产品的功能和质量,又降低了成本,简化了设计。它迅猛的发展到了各个领域,人们也越来越感到应用单片机技术的优越性,因而单片机也得到了广泛的应用。同时,它也不断地完善和发展。 智能恒温箱的温度是医疗、工业生产和食品加工等领域的关键,因此对温度的测量及控制始终占据着重要的地位。市场上常见的温度传感器以电压输出为主要形式,不同的的传感器其非线性曲线也各不相同,缺乏一个产品应具备的通用性和互换性。温度传感器应用范围很广、使用数量很大,但是在常规的环境参数中由于温度受其它因素影响较大,

11、而且难以校准,因此,温度也是最难准确测量的一个参数。常规方法测量温度误差大、准确度低、测量滞后的时间长。 传统的温度检测大多以热敏电阻为温度传感器,但热敏电阻的可靠性差、测量温度准确率低,而且必须经过专门的接口电路转换成数字信号后才能由单片机进行处理。随着微电子技术的发展,单片微处理器功能日益增强,价格低廉,在各方面得到广泛应用。在温度控制器中应用单片机,具有设计简单、可靠性高、控制精度高,功能易扩展,有较强的通用性等优点。温度控制器主要实现对恒温箱温度的控制,并满足不同用户的个性需求。因此一个较完善的控制器应具有以下功能:温度的测量与显示;用户设定功能(如温度设定,定时设定等);对电加热管的

12、控制功能;一些功能键(如定时自动加热,恒温控制,手动加热等);安全措施(漏电检测,安全失效保护,限温保护等)。1.2 课题意义 温度控制是工业生产过程中经常遇到的过程控制,特别是在冶金、化工、建材、食品、机械、石油等工业中,具有举足重轻的作用,其温度的控制效果直接影响着产品的质量,因而设计一种较为理想的温度控制系统是非常有价值的。对于不同场所、不同工艺、所需温度高低范围不同、精度不同,则采用的测温元件、测温方法以及对温度的控制方法也将不同;产品工艺不同、控制温度的精度不同、时效不同,则对数据采集的精度和采用的控制算法也不同。因而,对温度的测控方法多种多样。随着电子技术和微型计算机的迅速发展,微

13、机测量和控制技术也得到了迅速的发展和广泛的应用。利用微机对温度进行测控的技术,也便随之而生,并得到日益发展和完善,越来越显示出其优越性。 单片机已经在测控中获得了广泛的应用,它除了可以测量电信号以外,还可以用于温度、湿度等非电信号的测量,能独立工作的单片机温度检测、温度控制系统已经广泛应用到很多领域。1.3 课题内容 本设计采用数字温度传感器DS18B20,其内部集成了A/D转换器,使得电路结构更加简单,而且减少了温度测量转换时的精度损失,使得测量温度更加精确。数字温度传感器DS18B20只用一个引脚即可与单片机进行通信,大大减少了接线的麻烦,使得单片机更加具有扩展性。由于DS18B20芯片的

14、小型化,更加可以通过单跳数据线就可以和主电路连接,故可以把数字温度传感器DS18B20做成探头,探入到狭小的地方,增加了实用性,更能串接多个数字温度传感器DS18B20进行多范围的温度检测。由于单片机功能强大,可大大加快系统的开发与调试速度,并具有控制方便、简单、灵活等特点,因此本设计采用单片机为主控制器,通过数字传感器测得箱内温度,再将温度信号送入主控制器,来完成恒温箱的温度控制。箱内温度可保持在设定的温度范围内,当设置的温度低于实时温度时,单片机送出加热信号;当设置的温度高于实时温度时,单片机送出停止信号。1.4 恒温箱的发展与趋势 温度控制技术在现代信息技术中是三大基础之一。恒温箱不管是

15、在生活上,还是在工业上都有着巨大的经济效益。恒温箱自动控制系统在国内外都到研究与发展。恒温箱的控制系统从开始的由人工调节达到需要的温度及控制,到现在发展到采用单片机的自动控制其温度。恒温箱最基础的器件是由温度检测系统,模数转换系统,单片机为核心,温度显示的组成。温度检测系统一般使用温度传感器。温度传感器从1821年由德国物理学家赛贝发明后到热电偶传感器。在德国西门子发明了铂电阻,后在半导体技术的支持下相继开发了半导体热电偶传感器、PN结温度传感器和集成温度传感器。20世纪90年代时又发明了智能温度传感器。这样可控制的温度范围有所加大,温度控制的精度也逐步提高。模数转换器是现实中各种模拟信号通向

16、数字化数字世界的桥梁。ADC模数转换器有8位,12,14,16,24位等。ADC的位数越高分辨率也越高,位数越高,精度也越高。现在工业需要高精度的电器也越来越多。对不同的产品要求的精度不一样,对ADC的选择也不一样。单片机是一种集成电路的芯片。从1976年起是单片机的开始阶段到1978年的单片机的完善阶段。到了1982年后到1990年,8位的单片机得到巩固发展,以及16位单片机推出。从1990到现在微控制器的全面发展阶段。所以单片机深入了各个领域的发展与应用。因此产品越来越智能化多样化。显示一般有数码管和液晶显示。  国内恒温箱的现状多为传统式电子产品,而国外温度控制技术发展较为成熟

17、。温度传感器采用热敏电阻或热电阻,部分产品温度设定和电热丝开关通过触摸键和液晶显示屏实现人机交互界面,电热丝开关切换自动完成,运算放大电路和开关电路实现双位调节。这类智能恒温箱产品改善了人机交互界面,解决了“温度设定分度值过粗”等问题,但仍存在“控制精度不高”、“时间常数大”、“操作较复杂”等问题。近年来,温度控制器正朝着高精度、多功能、总线标准化、高可靠性及安全性、开发虚拟温度控制器和网络温度控制器、研制单片测温控温系统等高科技的方向迅速发展。以当今控制技术的发展智能控制温控器将会很快取代传统式电子产品。1.5 本文结构安排第1章 :绪论。简要介绍了智能恒温箱的发展现状,说明了课题研究的内容

18、。第2章 :恒温箱的概述。说明了恒温箱的工作过程和主要功能,介绍了设计中需要用的单片机的基础知识。第3章 :恒温箱的硬件电路设计。详细描述了本课题各个组成电路单元的设计。第4章 :恒温箱的软件设计。编写程序。第2章 系统概述单片机已经在测控中获得了广泛的应用,它除了可以测量电信号以外,还可以用于温度、湿度等非电信号的测量,能独立工作的单片机温度检测、温度控制系统已经广泛应用到很多领域。单片机的接口信号是数字电信号,要想用单片机获取温度这类非电信号的信息,毫无疑问,必须使用温度传感器。温度传感器的作用是将温度信息转换为电流或电压输出,如果转换后的电流或电压输出是模拟信号,那么还必须进行A/D转换

19、,以满足单片机接口的需要。随着微电子技术的发展,单片微处理器功能日益增强,价格低廉,在各方面得到广泛应用。在温度控制器中应用单片机,具有设计简单、可靠性高、控制精度高,功能易扩展,有较强的通用性等优点。温度控制器主要实现对恒温箱温度的控制,并满足不同用户的个性需求。因此一个较完善的控制器应具有以下功能: 温度的测量与显示;温度设定功能;对灯泡的控制功能;安全措施等。本文将采用一种数字温度传感器DS18B20来实现基于51单片机的恒温箱控制系统设计。整个控制系统分为硬件电路设计和软件程序设计两部分。2.1 设计思路分析 设计51单片机的恒温箱控制系统设计时,需要考虑下面4个方面的内容: (1)选

20、择合适的温度传感器芯片。显然,本文中的核心器件是单片机和温度传感器,单片机采用常用的51单片机即可,而温度传感器的选择则需慎重。 (2)单片机和温度传感器的接口电路设计。 (3)控制温度传感器实现温度信息采集以及数据传输的软件设计。 (4)程序设计中运用PID算法保证精确控制。2.2 系统需求分析 (1)在使用中可以将采集来的温度数据计算转换为我们熟悉的摄氏温度。 (2)在0125的范围内,人们可以自由调节预期达到的温度。(3)将设定的预期温度和实时温度能显示出来。(4)可以将实时温度与设定温度进行比对,以调节温度。2.3 方案选择2.3.1温度传感器选择方案一:采用热敏电阻,可满足4090的

21、测量范围,但热敏电阻精度、重复性、可靠性都比较差,其测量温度范围相对较小,稳定性较差,不能满足本系统温度控制的范围要求。方案二:采用温度传感器铂电阻 Pt1000。铂热电阻的物理化学性能在高温和氧化性介质中很稳定,它能用作工业测温元件,且此元件线性较好。在 0100 摄氏度时,最大非线性偏差小于 0.5 摄氏度。铂热电阻与温度关系是,Rt = R0(1+At+Bt*t) ;其中 Rt 是温度为 t 摄氏度时的电阻;R0 是温度为 0 摄氏度时的电阻;t 为任意温度值,A,B 为温度系数。方案三:采用模拟温度传感器AD590K,AD590K具有较高精度和重复性(重复性优于0.1),其良好的非线性

22、可以保证优于±0.1的测量精度。但其测量的值需要经过运算放大、模数转换再传给单片机,硬件电路较复杂,调试也会相对困难,所以本系统不宜采用此法。方案四:采用数字温度传感器DS18B20,DS18B20提供九位温度读数,测量范围-55125,采用独特1-WIRE 总线协议,只需一根口线即实现与MCU 的双向通讯,具有连接简单,高精度,高可靠性等特点。并且DS18B20支持一主多从。若想实现多点测温,可方便扩展。综合以上四种方案,本设计采用第四种方案,利用数字温度计DS18B20作为温度传感器。2.3.2 显示部件选择方案一:采用I/O口直接驱动,需要占用大量可贵的I/O口资源,且系统运行

23、后,更换元件不易,不符合系统设计的可靠性、易扩展性原则。方案二:采用串行口驱动、静态显示,利用单片机的串行口输出数据,显示多位数码,可节省大量的I/O口,但每个数码管必须有一个驱动芯片,且每位段码须接一个限流电阻,所须元件多,硬件电路比较复杂。方案三:采用串行口驱动、动态扫描显示,利用单片机的串行口输出数据,显示多位数码,多个数码管可共用驱动芯片和限流电阻。这样既可以简化硬件电路,又可以节省大量的I/O口线,为功能扩展留下空间。综合以上三种方案,本设计采用方案三:串行口驱动、动态显示。根据系统具体指标要求,可以对每一个具体部分进行分析设计。2.4 恒温箱的工作过程 (1)设定预期温度。调节预期

24、的温度,如果想加一摄氏度就按下“加”键,如果想减一摄氏度就按一下“减”键,温度LCD显示屏上会显示改变后的温度,调整范围为0125。 (2)温度采集和计算。单片机通过与温度传感器进行通信,获取实时温度信息,并将所获取的温度信息数据转化为摄氏温度的形式存储起来。(3)温度比较和温度调节。将存储的实时摄氏温度与设定的预期温度经行比较。如果实时温度高于设定温度,则熄灭灯泡;如果实时温度低于设定温度,则开启灯泡。(4)设定温度显示。LCD显示屏上“Set”后为存储的设定温度。 (5)实时温度显示。LCD显示屏上“Now”后为存储的实时温度。 总而言之,本课题利用89C51单片机及外围接口实现的温度控制

25、系统设计了恒温箱,该恒温箱提高了系统的可靠性,简化了电路结构,节约了成本,是一个实用的设计工程。2.5 本章小结 本章主要讲述了恒温箱主要部件的选择及其工作原理。在说明工作原理的过程中,突出了电路的组成单元以及这些单元如何实现温度采集和温度控制等功能。 第3章 系统硬件设计3.1 硬件电路设计概述 本设计分为硬件设计和软件设计,这两者相互结合,不可分离:从时间上看,硬件设计的绝大部分工作量是在最初阶段,到后期往往还要做一些修改。只要技术准备充分,硬件设计的大量返工是比较少的,软件设计的任务是贯彻始终的,到中后期基本上都是软件设计任务,随着集成电路计数器的飞速发展,各种功能很强的芯片不断出现,使

26、硬件电路的集成度越来越高,硬件设计的工作量在整个项目中所占的比重逐渐下降,为使硬件电路设计尽可能合理,应注意以下几个方面: (1)尽可能采用功能强的芯片,以简化电路。功能强的芯片可以代替若干个普通芯片,随着生产工艺的提高,新型芯片的价格在不断下降,并不一定比若干个普通芯片价格总和高。 (2)留有设计余地。在设计硬件电路时,要考虑到将来修改扩展的方便。因为很少有一锤定音的电路设计,如果现在不留余地,将来可能要为一点小小的修改或扩展而被迫进行全面返工。 (3)程序空间。选用片内程序空间足够大的单片机,本设计采用80C51单片机。 (4)RAM空间,80C51单片机内部RAM不多,当要增强软件数据处

27、理功能时,往往觉得不足。如果系统配置了外部RAM,则建议多留一些空间。如果选用8155作I/O接口,就可以增强256字节RAM。如果有大批数据需要处理,则应配置足够的RAM,如6264、62256等。随着软件设计水平提高,往往只要改变或者增加软件中的数据处理算法,就可以使系统功能提高很多,而系统的硬件不必做任何更换就使系统升级换代。只要在硬件电路设计初期考虑到这一点,就应该为系统将来升级留有足够的RAM空间。I/O端口,在样机研制出来后进行现场试用时,往往会发现一些被忽视的问题,而这些问题不是靠单纯的软件措施来解决的。如果有些新的信号需要采集,就必须增加输入检测端:有些物理量需要控制,就必须增

28、加输出端。如果在硬件电路设计就预留出一些I/O端口,虽然当时空着没用,那么要用的时候就能派上用场了。3.2 系统功能介绍 根据恒温箱控制器的功能要求,并结合对51系列单片机的资源分析,即单片机软件编程自由度大,可用编程实现各种控制算法和逻辑控制。所以采用AT89C51作为电路系统的控制核心。恒温箱控制器的总体布局如图3-1所示。按键将设置好的温度值传给单片机,通过温度显示模块显示出来。初始温度设置好后,单片机开启输出控制模块,使灯泡开始加热,同时将从数字温度传感器DS18B20测量到的温度值实时的显示出来,当加热到设定温度值时,单片机控制声光报警模块,发出声光报警,同时发出信号关闭灯泡。当自然

29、冷却到设定温度以下时,单片机再次启动加热器,如此循环反复,以达到恒温控制的目的。系统结构框图如图3-1所示。温度采集输出控制声光报警按键控制温度显示微控制器图3-1 系统结构框图 本系统是采用模块化设计的智能恒温箱,在生活中有广泛的应用,系统上电后默认设定的恒温温度为30,使用时可以自行调节预期的恒温温度,调节范围为0125。调节好后系统会将采集来的实时温度与设定的预期温度进行比较,如果实时温度比设定温度高就关闭加热设备,如果实时温度比预期温度低就开启加热设备。3.3 时钟频率电路设计 单片机必须在时钟的驱动下才能工作,在单片机内部有一个时钟振荡电路,只需要外接一个振荡源就能产生一定周期的时钟

30、信号送到单片机内部的各个单元,决定单片的工作频率,时钟电路如图3-2所示。图3-2 时钟电路 一般选用石英晶体振荡器。此电路大约延迟10ms后振荡器起振,在XTAL2引脚产生幅度为3V左右的正弦波时钟信号,其振荡频率主要有石英晶体的频率确定。电路中两个电容C3、C4的作用有两个:一是帮助振荡器起振;二是对振荡器的频率进行微调。C3、C4的典型值为22pF。单片机工作时,由内部振荡器产生或由外直接输入的送至内部控制逻辑单元的时钟信号的周期称为时钟周期,其大小是时钟信号频率的倒数,时钟信号频率常用fosc表示。3.4 显示电路的设计3.4.1 显示电路概述显示功能与硬件关系极大,在这里我们使用的是

31、LCD显示屏显示,通常在显示上我们采用的方法一般包括两种:一种是静态显示,一种是动态扫描。其中静态显示的特点是显示稳定不闪烁,程序编写简单,但占用端口资源多;动态扫描的特点是显示稳定程度没有静态显示好,程序编写复杂,但是相对静态显示而言最大的优点是占用端口资源少。由于本设计需要较多的端口用于其它的功能因此采用占用端口少的动态扫描显示的办法。以下将对显示电路的各个部件及整体设计做详细的介绍。3.4.2 LCD显示屏工业字符型液晶,能够同时显示16x02即32个字符。(16列2行)1602液晶也叫1602字符型液晶,它是一种专门用来显示字母、数字、符号等的点阵型液晶模块。它由若干个5X7或者5X1

32、1等点阵字符位组成,每个点阵字符位都可以显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用,正因为如此所以它不能很好地显示图形。1602LCD是指显示的内容为16x2,即可以显示两行,每行16个字符液晶模块(显示字符和数字)。本次设计所用的LCD显示屏的引脚如图3-3所示。图3-3 LCD显示屏引脚图 1602采用标准的16脚接口,其中: 第1脚:GND为电源地; 第2脚:VCC接5V电源正极; 第3脚:VL为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高(对比度过高时会 产生“鬼影”,使用时可以通过一个10K的电位器调整对比度)。 第4

33、脚:RS为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器。 第5脚:RW为读写信号线,高电平(1)时进行读操作,电平(0)时进行写操作。 第6脚:E(或EN)端为使能(enable)端,高电平(1)时读取信息,负跳变时执行指令。第714脚:D0D7为8位双向数据端。第1516脚:空脚或背灯电源。15脚背光正极,16脚背光负极。 1602LCD有以下特性:1) 3.3V或5V工作电压,对比度可调;2) 内含复位电路;3) 提供各种控制命令,如:清屏、字符闪烁、光标闪烁、显示移位等多种功能;4) 有80字节显示数据存储器DDRAM;5) 内建有192个5x7点阵的字型的字符发生器C

34、GROM;6) 8个可由用户自定义的5x7的字符发生器CGRAM。 特征应用:微功耗、体积小、显示内容丰富、超薄轻巧,常用在袖珍式仪表和低功耗应用系统中。3.4.3 显示电路整体设计显示电路如图3-4所示:图3-4 显示电路图中VEE接一外接电阻R4,VDD接电源,VSS接地,RS、RW、E分别接单片机的P1.0、P1.1、P1.2,而单片机的P0.0P0.7则接D0D7。3.5 开关键盘设计 按键开关为机械弹性开关,当按下键帽时,按键内的复位弹簧片被压缩,动片触电与静片触电相连,键盘的两个引脚被接通;松手后,复位弹簧将动片弹开,使动片与静片脱离接触,键盘的两个引脚被断开。由于机械接触点的弹性

35、作用,一个按键从开始接上至接触稳定要经过510ms的抖动时间,在此期间,有抖动发生。按键抖动波形如图3-5所示。 图3-5 按键抖动电压波形 按键开关输入需要解决的两个主要问题是判断是否有按键按下和消除按键抖动的影响。按键的确认反映在电压上,就是和按键相连的引脚呈现出高电平还是低电平。消除按键的抖动通常有硬件、软件两种消除方法。一般在按键较多时,采用软件的方法消除抖动,即在第一次检测到有按键按下时,执行一段延时1215ms的子程序后,再确认该键电平是否任保持为闭合状态电平,如果保持为闭合状态电平就可以确认真有按键按下,从而消除抖动的影响。 一般电子装置中都设计有按键输入,用以控制程序执行时数据

36、的输入或是特殊功能的设置及操作。在控制电路中,如果按键数不多时可以使用一个按键对应一条输入位线控制,即独立式按键。这种接法,一根输入线上的按键是否被按下,不会影响其他输入线上的工作状态。因此,通过检测输入线的电平状态就可以很容易判断哪个键按下了。独立式按键可以用单稳态锁存器消除抖动。如果监控程序中的读键操作安排在主程序(后台程序)或键盘中断(外部中断)子程序中,则该延时子程序便可直接插入读键过程中。如果读键过程安排在定时中断子程序中,就可省去专门的延时子程序,利用两次定时中断的时间间隔来完成抖动处理。按键电路如图3-6所示。图3-6 按键电路3.6 温度报警电路设计报警电路如图3-7所示,该电

37、路采用一个小功率三极管Q2驱动蜂鸣器SPEAKER,当单片机接收到超额温度信号或危险信号时,输出脚SPEAKER输出高点平,Q2导通,致使蜂鸣器SPEAKER得电工作,发出报警声。同时,电路中的发光二极管指示出电路的工作状态。图3-7 温度报警电路3.7 温度采集电路3.7.1 DS18B20测温电路 DS18B20数字温度计是Dallas公司生产的1Wire器件,即单总线器件。与传统的热敏电阻有所不同,DS18B20可直接将被测温度转化成串行数字信号,以供单片机处理,具有连线简单、微型化、低功耗、高性能、抗干扰能力强、精度高等特点。因此用它来组成一个测温系统,具有电路简单,在一根通信线上可以

38、挂很多这样的数字温度计,十分方便。目前已被众多行业进行广泛的运用(锅炉、温控表粮库、冷库、工业现场温度监控、仪器仪表温度监控、农业大棚温度监控等)。 通过编程,DS18B20可以实现912位的温度读数。信息经过单线接口送入DS18B20或从DS18B20送出,因此从微处理器到DS18B20仅需连接一条信号线和地线。读、写和执行温度变换所需的电源可以由数据线本身提供,而不需要外部电源。 每片DS18B20在出厂时都设有唯一的产品序列号,因此多个DS18B20可以挂接于同一条单线总线上,这允许在许多不同的地方放置温度传感器,特别适合于构成多点温度测控系统。3.7.2DS18B20的特点介绍(1)

39、独特的单线接口方式,与单片机通信只需一个引脚,DS18B20与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯。 (2)在使用中不需要任何外围元件。 (3)可用数据线供电,电压范围:+3.0+5.5 V。 (4)测温范围为-55 +125 。在-10+85范围内误差为0.5 。 (5)通过编程可实现912位的数字读数方式。 (6)用户可自设定非易失性的报警上下限值。 (7)支持多点组网功能,通过识别芯片各自唯一的产品序列号从而实现单线多挂接,多个DS18B20可以并联在唯一的线上,简化了分布式温度检测的应用,实现多点测温。 (8)负压特性,电源极性接反时,温度计不会因发热

40、而烧毁,但不能正常工作。 (9)告警寻找命令可以识别和寻址那些温度超出预设告警界限的器件。3.7.3单线(1-wire)技术 目前常用的微机和外设之间数据传输的串行总线有I2C总线、SPI总线等,其中,I2C总线采用同步串行两线(一根时钟线、一根数据线)方式,而SPI总线采用同步串行三线(一根时钟线、一根输入线和一根数据出线)方式。这两种总线需要至少两根或两根以上的信号线。美国达拉斯半导体公司推出了一项特有的单线(1-wire)技术。该技术与上述总线不同,它采用单根信号线,即可传输时钟,又能传输数据,而且数据传输是双向的,因而这种单线技术具有线路简单、硬件开销少、成本低廉、便于扩展的优点。单线

41、技术适用于单主机系统,单主机能够控制一个或多个从机设备。主机可以是微控制器,从机可以是单线器件,它们之间的数据交换、控制都由这根线完成。主机或从机通过一个漏极开路或三态端口连至数据线,以允许设备在不发送数据时能够释放该线,而让其他设备使用。单线通常要外接一个约5K的上拉电阻,这样,当该线闲置时,其状态为高电平。主机和从机之间的通信主要分3个步骤:初始化单线器件、识别单线器件和单线数据传输。由于只有一根线通信,所以它们必须是严格的主从结构,只有主机呼叫从机时,从机才能应答,主机访问每个单线器件必须严格遵循单线命令序列,即遵守上述3个步骤的顺序。如果命令序列混乱,单线器件将不会响应主机。所有的单线

42、器件都要遵循严格的协议,以保证数据的完整性。1-wire协议由复位脉冲、应答脉冲、写0、写1、读0和读1这几种信号类型组成。这些信号中,除了应答脉冲,其他均由主机发起,并且所有命令和数据都是字节的地位在前。3.7.4DS18B20的引脚及功能介绍 DS18B20的外形及TO-92封装引脚排列见图3-8,其引脚功能描述见表3-1。图3-8 DS18B20表3-1 DS18B20引脚功能描述序号名称引脚功能描述1GND地信号2DQ数据输入/输出引脚。开漏单总线接口引脚。当被用着在寄生电源下,也可以向器件提供电源。3VDD可选择的VDD引脚。当工作于寄生电源时,此引脚必须接地。3.7.5 DS18B

43、20在电路中的连接 1-wire总线支持一主多从式结构,当一方完成数据通信需要释放总线时,只需将总线置高点平即可;若需要获得总线进行通信时则要监视总线是否空闲,若空闲,则置低电平获得总线控制权。 温度采集电路如图3-9所示:图3-9 温度采集电路 图中U2为温度采集电路的核心部件,温度传感器DS18B20。下面将详细介绍它的参数和用法。 DS18B20内部的低温度系数振荡器是一个振荡频率随温度变化很小的振荡器,为计数器1提供一频率稳定的计数脉冲。 高温度系数振荡器是一个振荡频率对温度很敏感的振荡器,为计数器2提供一个频率随温度变化的计数脉冲。 初始时,温度寄存器被预置成-55,每当计数器1从预

44、置数开始减计数到0时,温度寄存器中寄存的温度值就增加1,这个过程重复进行,直到计数器2计数到0时便停止。 初始时,计数器1预置的是与-55相对应的一个预置值。以后计数器1每一个循环的预置数都由斜率累加器提供。为了补偿振荡器温度特性的非线性性,斜率累加器提供的预置数也随温度相应变化。计数器1的预置数也就是在给定温度处使温度寄存器寄存值增加1计数器所需要的计数个数。 DS18B20内部的比较器以四舍五入的量化方式确定温度寄存器的最低有效位。在计数器2停止计数后,比较器将计数器1中的计数剩余值转换为温度值后与0.25进行比较,若低于0.25,温度寄存器的最低位就置0;若高于0.25,最低位就置1;若

45、高于0.75时,温度寄存器的最低位就进位然后置0。这样,经过比较后所得的温度寄存器的值就是最终读取的温度值了,其最后位代表0.5,四舍五入最大量化误差为±1/2LSB,即0.25。 温度寄存器中的温度值以9位数据格式表示,最高位为符号位,其余8位以二进制补码形式表示温度值。测温结束时,这9位数据转存到暂存存储器的前两个字节中,符号位占用第一字节,8位温度数据占据第二字节。 DS18B20测量温度时使用特有的温度测量技术。DS18B20内部的低温度系数振荡器能产生稳定的频率信号;同样的,高温度系数振荡器则将被测温度转换成频率信号。当计数门打开时,DS18B20进行计数,计数门开通时间由

46、高温度系数振荡器决定。芯片内部还有斜率累加器,可对频率的非线性度加以补偿。测量结果存入温度寄存器中。一般情况下的温度值应该为9位,但因符号位扩展成高8位,所以最后以16位补码形式读出。 DS18B20工作过程一般遵循以下协议:初始化ROM操作命令存储器操作命令处理数据(1)初始化单总线上的所有处理均从初始化序列开始。初始化序列包括总线主机发出一复位脉冲,接着由从属器件送出存在脉冲。存在脉冲让总线控制器知道DS1820 在总线上且已准备好操作。(2)ROM操作命令一旦总线主机检测到从属器件的存在,它便可以发出器件ROM操作命令之一。所有ROM操作命令均为8位长。这些命令列表如下:Read ROM

47、(读ROM)33H此命令允许总线主机读DS18B20的8位产品系列编码,唯一的48位序列号,以及8位的CRC。此命令只能在总线上仅有一个DS18B20的情况下可以使用。如果总线上存在多于一个的从属器件,那么当所有从片企图同时发送时将发生数据冲突的现象(漏极开路会产生线与的结果)。Match ROM( 符合ROM)55H此命令后继以64位的ROM数据序列,允许总线主机对多点总线上特定的DS18B20寻址。只有与64位ROM序列严格相符的DS18B20才能对后继的存贮器操作命令作出响应。所有与64位ROM序列不符的从片将等待复位脉冲。此命令在总线上有单个或多个器件的情况下均可使用。Skip ROM

48、( 跳过ROM )CCH在单点总线系统中,此命令通过允许总线主机不提供64位ROM编码而访问存储器操作来节省时间。如果在总线上存在多于一个的从属器件而且在Skip ROM命令之后发出读命令,那么由于多个从片同时发送数据,会在总线上发生数据冲突(漏极开路下拉会产生线与的效果)。Search ROM( 搜索ROM)F0H当系统开始工作时,总线主机可能不知道单线总线上的器件个数或者不知道其64位ROM编码。搜索ROM命令允许总线控制器用排除法识别总线上的所有从机的64位编码。Alarm Search(告警搜索)ECH此命令的流程与搜索ROM命令相同。但是,仅在最近一次温度测量出现告警的情况下,DS1

49、8B20才对此命令作出响应。告警的条件定义为温度高于TH 或低于TL。只要DS18B20一上电,告警条件就保持在设置状态,直到另一次温度测量显示出非告警值或者改变TH或TL的设置,使得测量值再一次位于允许的范围之内。贮存在EEPROM内的触发器值用于告警。(3)存储器操作命令Write Scratchpad(写暂存存储器)4EH这个命令向DS18B20的暂存器中写入数据,开始位置在地址2。接下来写入的两个字节将被存到暂存器中的地址位置2和3。可以在任何时刻发出复位命令来中止写入。 Read Scratchpad(读暂存存储器)BEH 这个命令读取暂存器的内容。读取将从字节0开始,一直进行下去,

50、直到第9(字节8,CRC)字节读完。如果不想读完所有字节,控制器可以在任何时间发出复位命令来中止读取。Copy Scratchpad(复制暂存存储器)48H这条命令把暂存器的内容拷贝到DS18B20的E2存储器里,即把温度报警触发字节存入非易失性存储器里。如果总线控制器在这条命令之后跟着发出读时间隙,而DS18B20又正在忙于把暂存器拷贝到E2存储器,DS18B20就会输出一个“0”,如果拷贝结束的话,DS18B20 则输出“1”。如果使用寄生电源,总线控制器必须在这条命令发出后立即起动强上拉并最少保持10ms。Convert T(温度变换)44H这条命令启动一次温度转换而无需其他数据。温度转

51、换命令被执行,而后DS18B20保持等待状态。如果总线控制器在这条命令之后跟着发出读时间隙,而DS18B20又忙于做时间转换的话,DS18B20将在总线上输出“0”,若温度转换完成,则输出“1”。如果使用寄生电源,总线控制器必须在发出这条命令后立即起动强上拉,并保持500ms。Recall E2(重新调整E2)B8H这条命令把贮存在E2中温度触发器的值重新调至暂存存储器。这种重新调出的操作在对DS18B20上电时也自动发生,因此只要器件一上电,暂存存储器内就有了有效的数据。在这条命令发出之后,对于所发出的第一个读数据时间片,器件会输出温度转换忙的标识:“0”=忙,“1”=准备就绪。Read P

52、ower Supply(读电源)B4H对于在此命令发送至DS18B20之后所发出的第一读数据的时间片,器件都会给出其电源方式的信号:“0”=寄生电源供电,“1”=外部电源供电。(4)处理数据DS18B20的高速暂存存储器由9个字节组成,其分配如表3-2所示。当温度转换命令发布后,经转换所得的温度值以二字节补码形式存放在高速暂存存储器的第0和第1个字节。单片机可通过单线接口读到该数据,读取时低位在前,高位在后。表3-2 DS18B20暂存器字节分配温度/二进制表示十六进制表示符号位(5位)数据位(11位)+1250 0 0 0 01 1 1 1 1 0 1 0 0 0 007D0H+25.062

53、50 0 0 0 00 0 1 1 0 0 1 0 0 0 10191H+10.1250 0 0 0 00 0 0 1 0 1 0 0 0 1 000A2H+0.50 0 0 0 00 0 0 0 0 0 0 1 0 0 00008H00 0 0 0 00 0 0 0 0 0 0 0 0 0 00000H-0.51 1 1 1 11 1 1 1 1 1 1 1 0 0 0FFF8H-10.1251 1 1 1 11 1 1 0 1 0 1 1 1 1 0FF5EH-25.6251 1 1 1 11 1 0 0 1 1 0 1 1 1 1FE6FH-551 1 1 1 11 0 0 1 0 0

54、1 0 0 0 0FC90H 上表是DS18B20温度采集转化后得到的12位数据,存储在DS18B20的两个8比特的RAM中,二进制中的前面5位是符号位,如果测得的温度大于或等于0,这5位为0,只要将测到的数值乘于0.0625即可得到实际温度;如果温度小于0,这5位为1,测到的数值需要取反加1再乘于0.0625即可得到实际温度。温度转换计算方法举例:例如当DS18B20采集到+125的实际温度后,输出为07D0H,则:实际温度=07D0H0.0625=20000.0625=125.0。例如当DS18B20采集到-55的实际温度后,输出为FC90H,则应先将11位数据位取反加1得370H(符号位不变,也不作为计算),则:实际温度=370H0.0625=8800.0625=55.0。3.8 本章小结本章详细的讲述了以AT89C51为核心元件的恒温箱的硬件电路具体设计过程,分析了具体电路的工作原理。在设计过程中,实现温度控制的是通过编写程序的方法集成在89C51内部。接着将程序下载到硬件电路中,配合周边的温度采集电路,时钟电路,温度报警电路,显示电路等,制作出符合设计要求的恒温箱。第4章 系统软件设计4.1 软件任务分析软件任务分析和硬件电路设

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论