温度曲线升降可控的恒温箱控制系统_第1页
温度曲线升降可控的恒温箱控制系统_第2页
温度曲线升降可控的恒温箱控制系统_第3页
温度曲线升降可控的恒温箱控制系统_第4页
温度曲线升降可控的恒温箱控制系统_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

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

文档简介

温度曲线升降可控的恒温箱控制系统设计摘要:本次主要是设计一个温度曲线升降可控的恒温箱控制系统,介绍了该系统的工作原理和设计方法。本设计采用数字温度传感器DS18B20采集实时温度,固态继电器控制灯泡和电扇进行加热和制冷,LCD12864显示实时温度曲线,4*4矩阵按键设置目标温度,LED和蜂鸣器组成声光报警器,AT89S52单片机作为主控制器。本系统的精确度为0.1℃,最终能实现温度可控并能实时显示温度曲线的功能。关键词:AT89S52;DS18B20;恒温箱ControlsystemdesignofconstanttemperaturecontrolcurveliftAbstract:Thismajoristodesignatemperaturecurveliftcontrollableincubatorcontrolsystem,andintroducestheworkingprincipleanddesignmethodofthesystem.Thisdesignusesthereal-timedigitaltemperaturesensorDS18B20collectingtemperature,solidstaterelaycontrollightsandheatingandcoolingfan,LCD12864displayreal-timetemperaturecurve,4*4matrixbuttonssetthetargettemperatureoftheLEDandbuzzersoundandlightalarm,AT89S52microcontrollerasthemaincontroller.Theaccuracyofthissystemis0.1℃,eventuallycanrealizetemperaturecontrolledandcanreal-timedisplaythefunctionofthetemperaturecurve.Keywords:AT89S52;DS18B20;thermostat目录TOC\o第1章绪论 11.1课题的背景与意义 11.2国内外恒温控制技术研究现状及存在问题 21.3课题的主要设计内容 2TOC\o第2章系统方案设计 32.1系统组成结构设计 32.2系统功能设计说明 3第3章系统硬件设计 53.1系统主要部分设计 53.1.1温度采集模块 53.1.2温度控制模块 63.1.3温度显示模块 83.1.4键盘模块 123.1.5报警模块 133.1.6单片机模块 133.2系统整体电路设计 16第4章系统软件设计 174.1程序框架结构 174.2程序流程图 174.2.1DS18B20采集温度程序 194.2.2温度控制程序 204.2.3LCD12864温度显示程序 214.2.44*4矩阵按键程序 22第5章系统调试 245.1单元软硬件联机调试 245.2系统功能调试与实验记录 24结束语 26设计心得 27致谢 28参考文献 29附录1:原理图 30附录2:程序源代码 31第1章绪论1.1课题的背景与意义恒温箱是指在一定的温度下,用以饲养或培养生物或生物的一部分(细胞等)的箱型器具。常用的恒温箱主要分为三类:高温恒温箱(高于60℃);中温恒温箱(-10~60℃);低温恒温箱(低于-1O℃)。随着计算机技术的发展,恒温箱控制系统已经广泛应用于社会生活的各个领域,并且取得了巨大的成果。在生活中,电冰箱、空调、电热水器、烘干箱便是恒温箱的典型应用;在工业生产中,一些原料的保存、禽类孵化器、大棚蔬菜、育种等更是应用到恒温箱;在实验室里,特别是微生物的培养实验室里,恒温箱更是必不可少;在医疗领域,恒温箱也是应用广泛,如试剂的储存、运输,疫苗、随着社会电子技术和各个领域应用需求的发展,单片机技术得到了迅速的发展,特别是在高集成度、高速度、低功耗以及高性能方面取得了很大的发展。伴随着科技的进步,电子技术有了更高的发展,我们现在完全可以用单片机和电子温度传感器对某处进行温度检测,并且可以很容易地做到多点的温度检测,如果对此原理图进行一些改进,我们就可以进行不同地点的实时温度检测以及控制。温度是科学技术中最基本的物理量之一,化学、物理、生物等学科都离不开温度。同样,在工业生产等很多领域也常常离不开温度,温度是常用的被控参数之一。由此可见,温度的测量和控制是非常重要的。单片机因为其体积小、价格低廉、性能稳定、使用方便以及可用来构成计算机控制系统中的主控制单元等优点,受到了广大技术人员的青睐。目前,单片机已经渗透到我们生活的各个领域中,几乎每个领域都有单片机的踪迹,导弹的导航装置、飞机上各种仪表的控制、计算机的网络通讯与数据传输、工业自动化过程的实时控制和数据处理、广泛使用的各种智能IC卡、民用豪华轿车的安全保障系统、录象机、摄象机、全自动洗衣机的控制、程控玩具、电子宠物、机器人、智能仪表、医疗器械等等都离不开单片机。将单片机应用到温度检测和温度控制中将使温控系统具有控制方便、体积小、应用广泛等优点,并能够提高温控系统的自动化、智能化程度。本文通过恒温箱控制系统设计,一方面系统而全面的了解了单片机对温度控制的应用方法,另一方面把所学知识与实际联系起来,学以致用,这是非常有意义的。1.2国内外恒温控制技术研究现状及存在问题目前,恒温控制系统已在社会生活、工业生产、科技研究、医疗等各个领域得到了广泛应用,并产生了巨大的经济效益和社会效益。由于在不同的领域内,环境、目标、成本等因素不同,需要针对各种情况进行设计,以期取得最佳的效果。国外对温度控制技术研究较早,始于20世纪70年代,在计算机技术和电子技术的迅猛发展下,国外温度控制系统得到了迅速发展,并在自动化、智能化等方面取得了巨大的成果,在这方面尤其以美国、德国、日本、瑞典等国技术领先,并且都生产出了一批性能良好的温度控制仪器仪表。目前,国外温度控制系统及仪表正朝着高精度智能化、小型化等方面快速发展。我国对于温度控制技术的研究较晚,始于20世纪80年代,我国技术人员在吸收发达国家温度控制技术的基础上,才掌握了温度室内微机控制技术,该技术仅限于对温度的单项环境因子的控制。我国温度测控设施计算机应用在总体上正从消化吸收、简单应用阶段向实用化、综合性应用阶段过渡和发展。在技术上,我国主要以单片机控制的单参数单回路系统居多,与发达国家相比,存在着较大差距,我国温度测量控制还远远达不到工厂化的程度,在生产实际中,存在着装备配套能力差、产业化程度低、环境控制水平落后、可靠性差和软硬件资源不能共享等缺点。1.3课题的主要设计内容本次主要是设计一个温度曲线升降可控的恒温箱控制系统,恒温箱采用木箱或纸箱(外形尺寸不大于30cm×30cm×30cm),内置白炽灯泡(功率不大于100W)用于加热。系统设计具体要求如下:(1)温度采集传感器采用一体化数字温度传感器DS18B20。(2)控制灯泡亮度或发热量,采用固态继电器控制或用可控硅平滑控制升温速率,同时安装散热风扇控制降温速率,风扇实现开关控制。(3)采用单片机作为控制器。(4)采用LCD作为显示器,同时显示给定温度和实际温度。(5)采用自制按键或PC机的键盘作为温度给定值输入。(6)恒温箱实际温度达到给定值时(误差要求±1℃)需声光提示。(7)恒温箱最高温度≤50℃。第2章系统方案设计2.1系统组成结构设计本系统主要包括单片机、显示电路、键盘、温度采集、温度控制以及报警电路几部分。单片机选用AT89S52单片机,把它作为整个系统的核心,对恒温箱进行控制;键盘采用4*4矩阵键盘,用来输入目标温度;显示电路主要以LCD12864液晶显示器为主,用来显示目标温度和实际温度以及实时温度曲线;温度采集电路主要以温度传感器DS18B20为主,测量箱内温度并将其转化为数字信号传送给单片机,用于控制和显示;温度控制电路主要由固态继电器、三极管、加热灯泡、散热风扇组成,用来控制恒温箱的温度升降;报警电路则采用蜂鸣器和发光二极管,进行声光报警。系统总体设计框图如图2-1所示。LCD12864显示器LCD12864显示器4*4矩阵键盘报警继电器温度传感器DS18B20AT89S52灯泡继电器风扇图2-1系统总体设计框图2.2系统功能设计说明本系统采用AT89S52单片机作为主控制中心,数字温度传感器DS18B20测量箱内温度并将其转化为数字信号传送给单片机AT89S52,LCD12864进行设置温度、实际温度以及实时温度曲线的显示,4*4矩阵按键设置目标温度,LED和蜂鸣器组成声报警器。根据温度传感器DS18B20反馈给单片机的温度与通过4*4矩阵按键设置的温度进行比较,判断进行加热或制冷工作。单片机AT89S52通过NPN型三极管控制两个继电器,进而控制系统进行加热还是制冷。若实际温度低于目标温度,则单片机发送高电平信号使三极管导通,继电器使电源与灯泡接通,灯泡开始进行加热,当加热到设定温度值时,单片机控制声光报警模块,发出声光报警,同时关闭加热器;若实际温度高于目标温度,则单片机发送高电平信号使三极管导通,继电器使电源与风扇接通,风扇开始进行降温,当降温到设定温度值时,单片机控制声光报警模块,发出声光报警,同时关闭制冷器;若实际温度等于目标温度,单片机发送低电平信号控制声光报警模块,发出声光报警。由此反复工作,使箱子达到恒温的效果。本次设计采用DS18B20采集实际温度,它的分辨率可达0.0625℃,因此本次设计的精确度可达0.1℃。本次设计的误差要求为±1℃。第3章系统硬件设计3.1系统主要部分设计3.1.1本次设计温度采集模块选用DALLAS公司生产的一线式数字温度传感器DS18B20,它具有微型化、低功耗、高性能抗干扰能力、测量范围广、强易配处理器等优点,DS18B20可以直接将温度转化成串行数字信号(按16位二进制数字)给单片机处理,它具有三引脚TO-92小体积封装形式,温度测量范围为-55~+125℃,可编程为9~12位A/D转换精度,测温分辨率可达0.0625℃,被测温度用符号扩展的16位数字量方式串行输出,其工作电源既可在远端引入,也可采用寄生电源方式产生,工作电压为3~5V/DC,支持多点组网功能,多个DS18B20可以并联到三根或者两根线上,CPU只需一根端口线就能与多个DS18B20通信,占用微处理器的端口较少,可节省大量的引线和逻辑电路,该芯片的物理化学性很稳定,它能用做工业测温元件,且此元件线形较好,在0—100摄氏度时,最大线形偏差小于1摄氏度,该芯片可直接向单片机传输数字信号,便于单片机处理及控制。DS18B20接线图、实物图和封装图见下图3-1、3-2和3-3所示。图3-1DS18B20接线图图3-2DS18B20实物图图3-3DS18B20管脚图DS18B20有3个管脚,管脚说明如下:GND:接地DQ:数据I/O口VDD:电源DS18B20的测温工作原理:当DS18B20接收到温度转换命令后,开始启动转换。经转换而获得的温度值就以16位带符号扩展的二进制补码形式存储在高速暂存存储器的第1和第2个字节。单片机可通过单线接口读到该数据,读取时低位在前,高位在后,数据格式以0.0625℃/LSB形式表示。DS18B20的温度计算:当符号位S=0时,表示测得的温度值为正值,可直接将测到的温度值乘以0.0625就可得到实际温度;当S=1时,表示测得的温度值为负值,要先将补码变为原码,再进行计算。因为本次设计是0~+50℃的测量,所以本次设计中只计算为正值的温度值,即直接将测到的温度值乘以0.0625就可得到实际温度。3.1.2温度控制模块本设计温度控制部分主要由三极管、继电器、加热灯泡以及散热风扇组成,用来控制恒温箱的温度升降,其控制电路如图3-4所示。单片机通过NPN三极管控制继电器的通断,进而控制加热灯泡和散热风扇。当实际温度低于设定温度时,单片机发送高电平使NPN型三极管Q1导通,继电器使电源与加热灯泡接通,加热灯泡加热,温度慢慢升高,直至达到设定温度。当实际温度高于设定温度时,单片机发送高电平使NPN型三极管Q2导通,继电器使电源与散热风扇接通,散热风扇工作,温度慢慢降低,直至达到设定温度。由此,恒温箱达到维持恒温的效果。继电器是一种电控制器件。它具有控制系统(又称输入回路)和被控制系统(又称输出回路)之间的互动关系。通常应用于自动化的控制电路中,它实际上是用小电流去控制大电流运作的一种“自动开关”。故在电路中起着自动调节、安全保护、转换电路等作用。只要在线圈两端加上一定的电压,线圈中就会流过一定的电流,从而产生电磁效应,衔铁就会在电磁力吸引的作用下克服返回弹簧的拉力吸向铁芯,从而带动衔铁的动触点与静触点(常开触点)吸合。当线圈断电后,电磁的吸力也随之消失,衔铁就会在弹簧的反作用力返回原来的位置,使动触点与原来的静触点(常闭触点)释放。这样吸合、释放,从而达到了在电路中的导通、切断的目的。本系统采用松乐5V直流继电器,其实物图如图3-5所示。该继电器为无极性电磁继电器,吸合电压为5V,最低为3.75V,吸合额定电流为71.2mA,落下电压为0.5V。它一共有5个引脚,其中一边有三只引脚,中间是输出出点的公共端子,另外两个引脚是线圈引脚,即接驱动端,还有两个脚分别是常开和常闭点,本次设计采用NPN型三极管8050驱动继电器。图3-4温度控制电路图3-5继电器实物图3.1.3温度显示模块液晶显示一般常用的有两种,一种是LCD1602液晶显示,一种是LCD12864液晶显示。因为本次设计不仅需要显示设置温度和实际温度,还需要显示实时温度曲线,因此本次设计温度显示系统采选用LCD12864液晶显示屏作为温度显示器。其实物图如图3-6所示。LCD12864是带中文字库的128X64是一种具有4位/8位并行、2线或3线串行多种接口方式,内部含有国标一级、二级简体中文字库的点阵图形液晶显示模块;其显示分辨率为128×64,内置8192个16*16点汉字和128个16*8点ASCII字符集,利用该模块灵活的接口方式和简单、方便的操作指令,可构成全中文人机交互图形界面,可以显示8×4行16×16点阵的汉字,也可完成图形显示。LCD12864主要特性有:(1)低电源电压(VDD:+3.0--+5.5V)(2)显示分辨率:128×64点(3)内置汉字字库,提供8192个16×16点阵汉字(简繁体可选)(4)内置128个16×8点阵字符(5)2MHZ时钟频率(6)显示方式:STN、半透、正显(7)驱动方式:1/32DUTY,1/5BIAS(8)视角方向:6点(9)背光方式:侧部高亮白色LED,功耗仅为普通LED的1/5—1/10(10)通讯方式:串行、并口可选(11)内置DC-DC转换电路,无需外加负压(12)无需片选信号,简化软件设计(13)工作温度:0℃-+55℃,存储温度:-20图3-6LCD12864实物图LCD12864的数据线DB0~DB7与单片机的P0口相连,由于P0口作为通用I/O口时,输出级是开漏电路,当它驱动负载时,需要外接上拉电阻才有高电平输出,所以在LCD12864数据线和P0口相连时要接一个排阻,LCD12864的RS、R/W、E、PSB、RESET与单片机的其他I/O口相连,其接线图如图3-7所示。图3-7LCD12864接线图LCD12864总共有20个引脚,其管脚功能表如表3-1所示。表3-1LCD12864管脚功能表管脚号管脚名称电平管脚功能描述1VSS0V电源地2VCC3.0~+5V电源正3V0-对比度(亮度)调整4RS(CS)H/LRS=“H”,表示DB7——DB0为显示数据RS=“L”,表示DB7——DB0为显示指令数据5R/W(SID)H/LR/W=“H”,E=“H”,数据被读到DB7——DB0R/W=“L”,E=“H→L”,DB7——DB0的数据被写到IR或DR6E(SCLK)H/L使能信号7DB0H/L三态数据线8DB1H/L三态数据线9DB2H/L三态数据线10DB3H/L三态数据线11DB4H/L三态数据线12DB5H/L三态数据线13DB6H/L三态数据线14DB7H/L三态数据线15PSBH/LH:8位或4位并口方式,L:串口方式16NC-空脚17/RESETH/L复位端,低电平有效18VOUT-LCD驱动电压输出端19AVDD背光源正端(+5V)20KVSS背光源负端LCD12864主要有两套控制命令,基本指令和扩充指令如下表3-2和3-3所示。表3-2LCD12864基本指令表指

指令码功能令RSR/WD7D6D5D4D3D2D1D0

清除显示0000000001将DDRAM填满"20H",并且设定DDRAM的地址计数器(AC)到"00H"地址归位000000001X设定DDRAM的地址计数器(AC)到"00H",并且将游标移到开头原点位置;这个指令不改变DDRAM的内容显示状态开/关0000001DCBD=1:整体显示ONC=1:游标ON

B=1:游标位置反白允许进入点设定00000001I/DS指定在数据的读取与写入时,设定游标的移动方向及指定显示的移位游标或显示移位控制000001S/CR/LXX设定游标的移动与显示的移位控制位;这个指令不改变DDRAM的内容功能设定00001DLXREXXDL=0/1:4/8位数据RE=1:扩充指令操作RE=0:基本指令操作设定CGRAM地址0001AC5AC4AC3AC2AC1AC0设定CGRAM地址设定DDRAM地址0010AC5AC4AC3AC2AC1AC0设定DDRAM地址(显示位址)第一行:80H-87H第二行:90H-97H读取忙标志和地址01BFAC6AC5AC4AC3AC2AC1AC0读取忙标志(BF)可以确认内部动作是否完成,同时可以读出地址计数器(AC)的值写数据到RAM10数据将数据D7——D0写入到内部的RAM(DDRAM/CGRAM/IRAM/GRAM)读出RAM的值11数据从内部RAM读取数据D7——D0(DDRAM/CGRAM/IRAM/GRAM)表3-3LCD12864基本指令表指

指令码功能令RSR/WD7D6D5D4D3D2D1D0

待命模式0000000001进入待命模式,执行其他指令都终止待命模式卷动地址开关开启000000001SRSR=1:允许输入垂直卷动地址SR=0:允许输入IRAM和CGRAM地址反白选择00000001R1R0选择2行中的任一行作反白显示,并可决定反白与否。初始值R1R0=00,第一次设定为反白显示,再次设定变回正常睡眠模式0000001SLXXSL=0:进入睡眠模式SL=1:脱离睡眠模式扩充功能设定00001CLXREG0CL=0/1:4/8位数据RE=1:扩充指令操作RE=0:基本指令操作G=1/0:绘图开关设定绘图RAM地址0010AC60AC50AC4AC3AC3AC2AC2AC1AC1AC0AC0设定绘图RAM先设定垂直(列)地址AC6AC5…AC0再设定水平(行)地址AC3AC2AC1AC0将以上16位地址连续写入即可3.1.4键盘模块本设计采用4*4矩阵按键,其实物图如图3-8所示。矩阵键盘又称为行列式键盘,它是用4条I/O线作为行线、4条I/O线作为列线组成的键盘,它在行线和列线的每一个交叉点上设置一个按键,这样键盘中按键的个数就是4×4个,交叉点的行列线是不连接的,当按键按下的时候,此交叉点的行线和列线导通。在电路结构上,一般将行和列分别接到单片机的一个8位的并行端口上,程序中分别对行线和列线进行不同的操作便可以确定按键的状态。这样,只占用一个8位的并行端口就可以实现16个按键,因此,这种行列式键盘结构能够有效地提高单片机系统中I/O口的利用率。在本次设计中,4*4矩阵按键的4条行线分别连接P1.0、P1.1、P1.2和P1.3,4条列线分别连接P1.4、P1.5、P1.6和P1.7,具体电路如图3-9所示。图3-8矩阵按键实物图图3-9矩阵按键接线图3.1.5报警模块本次设计报警模块采用声光报警,即用一个蜂鸣器和发光二极管组成。设计要求是当实际温度达到设定温度时,单片机AT89S52将发送低电平信号驱动蜂鸣器和发光二极管进行声光报警。报警部分电路图如图3-10所示:图3-10报警电路图3.1.6单片机模块单片机是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统,其使用起来非常简单灵活方便。本次设计选用51系列单片机中的AT89S52单片机作为主控制器。AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器,使用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容,片上Flash允许程序存储器在系统可编程,亦适于常规编程器,在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得AT89S52在众多嵌入式控制应用系统中得到广泛应用。AT89S52单片机主要特性:(1)与MCS-51单片机产品兼容;(2)8K字节在系统可编程Flash存储器;(3)1000次擦写周期;(4)全静态操作:0Hz-33MHz;(5)三级加密程序存储器;(6)32个可编程I/O口线;(7)三个16位定时器/计数器;(8)六个中断源;(9)全双工UART串行通道;(10)低功耗空闲和掉电模式;(11)掉电后中断可唤醒;(12)看门狗定时器;(13)双数据指针;(14)掉电标识符。单片机引脚图如图3-11所示。图3-11单片机引脚图AT89S52管脚说明:VCC:电源GND:地P0口:即P0.0~P0.7(Pin39~Pin32),是一个8位漏极开路的双向I/O口,作为输出口,P0口每位能驱动8个TTL逻辑电平。应当注意的是它在程序校验时需要上拉电阻。P1口:即P1.0~P1.7(Pin1~Pin8),是一个具有内部上拉电阻的8位双向I/O口,P1输出缓冲器能驱动4个TTL逻辑电平。P2口:即P2.0~P2.7(Pin21~Pin28),是一个具有内部上拉电阻的8位双向I/O口,P2输出缓冲器能驱动4个TTL逻辑电平。P3口:即P3.0~P3.7(Pin10~Pin17),是一个具有内部上拉电阻的8位双向I/O口,P3输出缓冲器能驱动4个TTL逻辑电平。RST(Pin9):复位输入,当振荡器工作时,RST引脚只要出现两个机器周期以上高电平就能使单片机复位。XTAL1(Pin19):振荡器反相放大器和内部时钟发生电路的输入端。XTAL2(Pin18):振荡器反相放大器的输出端。一般情况下,51系列单片机最小系统包括单片机、晶振电路以及复位电路,其最小系统如图3-12所示。晶振电路中,晶振一般取11.0592MHz,然后外接两个电容,一般取值为30pF,最后接在XTAL1和XTAL2这两个引脚上。复位电路中,只需RST引脚出现两个机器周期以上高电平就能使单片机复位。单片机的复位方式有手动复位和上电复位两种,因为在实际中有时需要手动复位,因此本设计采用上电+手动复位的方式,其中电阻采用1K的阻值,电容采用22uF的电容值。按下按键,VCC给RST一个高电平,按键松开,RST引脚恢复为低电平,复位完成。图3-12单片机最小系统图3.2系统整体电路设计本系统主要包括单片机电路、显示电路、键盘电路、温度采集电路、温度控制电路以及报警电路。其系统整体电路图见附录1。第4章系统软件设计4.1程序框架结构一个系统的软件设计是由各个在系统里起着不同作用的单元模块组合在一起,从而实现系统的所有要实现的功能。本系统主要包括主控制程序、DS18B20温度采集程序、LCD12864液晶屏温度显示程序、4*4矩阵按键程序以及温度控制程序。该系统程序结构框图如图4-1所示。程序结构程序结构DS18B20温度采集程序LCD12864温度显示程序4*4矩阵按键程序温度控制程序图4-1系统程序结构框图4.2程序流程图C语言有良好的可读性和可移植性,因此本设计采用C语言编程。首先系统处于初始化状态,这时设置目标温度,然后温度采集系统采集当前实际温度,并送往显示器显示;然后开始比较,若实际温度低于目标温度,则启动加热电路进行加热,当加热到设定温度值时,单片机控制声光报警模块,发出声光报警,同时关闭加热器;若实际温度高于目标温度,则启动制冷电路进行降温,当降温到设定温度值时,单片机控制声光报警模块,发出声光报警,同时关闭制冷器;若实际温度等于目标温度,单片机控制声光报警模块,发出声光报警。系统软件程序流程图如图4-2所示。主程序代码见附录2。系统初始化系统初始化开始设置目标温度读取实际温度温度显示温度比较当实际温度低于目标温度进行声光报警加热制冷结束当实际温度高于目标温度YYNN图4-2程序流程图4.2.1DS18B20温度采集程序DS18B20数字温度传感器对时序的要求十分严格,因此读写时序非常重要,系统对DS18B20的各种操作必须按协议进行。它的操作协议为:初始化DS18B20(发复位脉冲)→发ROM功能命令→发存储器操作命令→处理数据,其工作时序包括初始化时序、写时序以及读时序。DS18B20的初始化:和DS18B20的所有通信都是由复位脉冲组成的初始化序列开始的。该初始化序列由主机发出,后跟由DS18B20发出的存在脉冲(presencepulse),当发出应答复位脉冲的存在脉冲后,DS18B20通知主机它已经在总线上并且做好准备操作了;在初始化步骤中,总线上的主机通过拉低单总线至少480μs来产生复位脉冲;然后总线主机释放总线并进入接收模式,当总线释放后,5kΩ的上拉电阻把单总线上的电平拉回高电平,当DS18B20检测到上升沿后等待15到60us,然后以拉低总线60-240us的方式发出存在脉冲。其时序图如图4-3所示。图4-3DS18B20初始化时序图DS18B20的写时序:

DS18B20有两种写时序:写“0”时序和写“1”时序。总线主机使用写“1”时序向DS18B20写入逻辑1,使用写“0”时序向DS18B20写入逻辑0,所有的写时序必须有最少60us的持续时间,相邻两个写时序必须要有最少1us的恢复时间。两种写时序都通过主机拉低总线产生。为产生写1时序,在拉低总线后主机必须在15μs内释放总线。在总线被释放后,由于5kΩ上拉电阻的作用,总线恢复为高电平。为产生写0时序,在拉低总线后主机必须继续拉低总线以满足时序持续时间的要求(至少60μs)。在主机产生写时序后,DS18B20会在其后的15到60us的一个时间窗口内采样单总线。在采样的时间窗口内,如果总线为高电平,主机会向DS18B20写入1;如果总线为低电平,主机会向DS18B20写入0。读写时序图如图4-4所示。DS18B20的读时序:DS18B20只有在主机发出读时序时才能发送数据到主机,因此,主机必须在BE命令,B4命令后立即产生读时序以使DS18B20提供相应的数据;另外,在44命令,B8命令后也要产生读时序,所有的读时序必须至少有60us的持续时间,相邻两个读时序必须要有最少1us的恢复时间,所有的读时序都由拉低总线,持续至少1us后再释放总线(由于上拉电阻的作用,总线恢复为高电平)产生,DS18B20输出的数据在下降沿产生后15us后有效;因此,释放总线和主机采样总线等动作要在15us内完成。读/写时序图下图4-4所示。图4-4DS18B20读写时序图只要严格按照时序图写程序,DS18B20即可运行,DS18B20具体程序见附录2。4.2.2温度控制程序温度控制部分主要由固态继电器、加热灯泡、散热风扇组成,用来控制恒温箱的温度升降。当实际温度低于设定温度时,单片机发送高电平使NPN型三极管导通,继电器使电源与加热灯泡接通,灯泡进行加热,温度慢慢升高。当实际温度高于设定温度时,单片机发送高电平使NPN型三极管导通,继电器使电源与制冷风扇接通,风扇进行制冷工作,温度慢慢降低。当实际温度等于设定温度时,AT89S52将发送低电平信号驱动蜂鸣器和LED灯进行声光报警。具体程序见附录2。4.2.3LCD12864温度显示程序LCD12864的读写操作时序几乎和LCD1602的读写操作时序完全一样,其读写时序图如图4-5和4-6所示。图4-5LCD写操作时序图4-6LCD读操作时序LCD12864的写操作:(1)RS=1(写数据操作);或者RS=0(写命令操作)(2)RW=0(3)E=1(4)DB=data(5)E=0LCD12864的初始化:(1)芯片上电(2)延时400ms以上(3)复位操作:RST出现一个上升沿(RST=1;RST=0;RST=1;)(4)功能设定(5)延时100us以上(6)再次进行功能设定(7)延时37us(8)显示开关设置(9)延时100us以上(10)清除显示(11)延时10ms以上(12)进入点设置(13)初始化结束根据时序图再加上LCD12864的指令表就可以写LCD12864的程序了,程序代码见附录2。4.2.44*4矩阵按键程序本系统采用4*4矩阵按键,在这种行列式矩阵键盘非编码键盘的单片机系统中,键盘处理程序首先执行等待按键并确认有无按键按下的程序段,当确认有按键按下后,下一步就要识别哪一个按键按下。对按键的识别通常有逐行扫描查询法、逐点扫描法和全局扫描法等。本设计中采用逐行扫描法,逐行扫描法是先判断有无按键按下,设P1口的高4位为1,低4位为0,即f0,然后检测P0口的电平,如果此时P0口有变化,则说明有按键按下,经过延时去抖动处理后依次设置P1口的值为0xfe,0xfd,0xfb,0xf7,找出哪一行有按键按下,再逐行检测列线,最终确定按键值。按键程序流程图如图4-3所示,程序代码见附录2。开始开始结束取键值扫描行列位置延时去抖NYNY图4-3按键程序流程图按键是否按下按键是否按下第5章系统调试5.1单元硬软件联机调试根据画好的电路图焊接实际电路,焊接好后用万用表检查电路是否有错误,比如是否出现短路、断路等情况。将写好的程序进行编译,编译成功后下载至实验板上,看是否可以下载程序。程序下载至单片机AT89S52后,检查DS18B20温度传感器是否能正确采集到温度。通过矩阵按键是否能设置目标温度,LCD12864是否能正常工作,显示设定温度、实际温度以及温度曲线,检查蜂鸣器和发光二极管是否可以按照预期的,当实际温度达到设置的目标温度时是否会进行声光报警。利用单片机AT89S52控制继电器是否能正常进行加热或制冷工作。检测结果每个单元均能正常工作,说明没有问题。5.2系统功能调试与实验记录在所有单元软硬件联机调试成功后,将整个系统程序进行编译,编译成功后下载至实验板上,进行调试。调试成功后,进行实际测量。在实际测量过程中,因为风扇的电流较小,因此降温时温度的改变很慢。测量过程中不断改变设置的目标温度进行测量。将部分测量记录成表5-1,LCD12864实时温度曲线显示如图5-1。表5-1部分测量记录表目标温度(℃)实际温度(℃)一段时间后的温度(℃)252825.1302529.9403039.9测量过程中发现温度始终保持在一个范围内,并不能保持在一个温度点上,系统在设定温度±1℃时,LED亮,蜂鸣器响;高于设定温度1℃时,停止加热,开始制冷;低于设定温度1℃时,停止制冷,开始加热。同时由于系统的滞后性,系统改变比较缓慢,在测量过程中发现,在升温过程中改变设定温度让系统进行降温会出现灯泡和风扇同时工作的现象。图5-1LCD12864实时温度曲线显示图结束语本次设计的恒温箱控制系统以AT89S52单片机为控制核心,通过4*4矩阵按键设置目标温度,采用DS18B20温度传感器采集实际温度,通过LCD12864显示温度,通过AT89S52控制继电器来控制灯泡的加热或风扇的制冷工作,蜂鸣器和发光二极管进行声光报警,以示实际温度是否达到设置的目标温度。这次设计的恒温箱控制系统成本低,易于实现,在现实生活中能被广泛应用,具有一定的实用意义。本次设计的程序基于C语言编写,并且采用模块化设计,具有良好的可读性和可移植性。当然,本设计也有可以改进的地方,比如说可以给恒温控制系统配上语音功能以实现报温、报警功能;或者是采用更先进的神经网络控制和模糊PID控制等控制算法,提高精度;又或者是采用无线通信,利用PC机作为主控制机,数据采集器采集信息,这对于工业控制来说显得更方便一点。但因为本人能力有限,不足以实现这些功能。设计心得本次设计的论文题目是温度曲线升降可控的恒温箱控制系统设计,在这次设计过程中,我受益良多。这是我经历的第一次全面了解实际电子产品生产的全过程。从最初的总体方案设计,到软硬件的设计,再到实物的焊接、调试、测量,都是我逐一亲自动手操作完成的。在这次设计过程中,我遇到了不少问题,但正是因为有了这些问题,才有了我更加深入学习的机会。为了解决这些问题,我上网查找资料,与同学一起探讨,请教老师,充分利用自己身边的一切资源来学习。这样的学习过程让我对所学内容理解得更加深刻,而且大大提高了我的团结协作能力。在实际操作焊接的过程中,我刚开始有点紧张,但孰能生巧,从笨拙到熟练,我的动手能力不断提高,有了很大的进步,这为我以后步入工作岗位做了良好的铺垫。总之,这次毕业设计做下来,我受益匪浅,各方面的能力都得到很大的提高。同时在这次设计过程中,我更加清醒的认识到,只有过硬的知识才可以在未来的学习和工作中迎接一次又一次的任务和挑战,我相信在这一次又一次的锻炼中,我可以变得更加强大。致谢经过一个多月的辛苦和努力,我的毕业设计终于完成了,我的知识和能力也得到了一定的扩展和提高。在这里,我首先要特别感谢我的导师聂老师,本次论文从选题到开题报告到最厚的完成,每一步都给了我无私的帮助和耐心的指导。此次毕业设计能够顺利完成与聂老师的悉心指导是分不开的,没有聂老师的孜孜教诲与辛勤栽培就没有我毕业设计的顺利完成。在此,我要向聂老师致以最真诚的谢意和敬意!同时,还要感谢我的同学在我做毕业设计时给予的帮助!另外,我还要感谢那些曾经给我授过课的老师,谢谢你们教会我专业知识,让我终身受益。参考文献[1]王晓员,姚旻.基于单片机多点温度控制的硬件构建设计[J].湛江师范学院学报,2010

(3):70-73.[2]杨南芬.恒温箱控制系统的研究与设计[D].江苏:江苏大学,2011.[3]赵建领,薛园园.51单片机开发与应用技术详解.北京:电子工业出版社,2009.1.[4]孙育才,王荣兴,孙华芳.ATMEL新型AT89S52系列单片机及其应用.北京:清华大学出版社,2005.[5]HeDongPo,RenGuiBo,HanChunPeng,ZhangHongRu.ApplicationofDS18B20inthetemperaturefieldmeasuringofhighwaysubgradeinseasonalfrostregions.ApplicationofElectronicTechnique,2010(4).[6]邱泽宇,李梦平.固态继电器的简介及其应用[J].中国电子商务,2012(11).[7]彭真真.单片机驱动LCD12864显示的应用——科学计算器设计与制作[J].电子制作,2011[8]YuLiXia,MaShe,CuiYunJun.DesigningandApplicationofMinitypeandHigh-accuracyThermostatedContainer.EnvironmentalTechnology,2012(3)[9]DuYunDong,LiuShengLi,BaoXiYong,LiuJiankang.AControlofIncubatorsBasedofSignalChipMicroccmputer.AcademicJournalElectronicPublishHouse,2008[10]李善寿,方潜生,肖本贤,汪小龙.基于单片机的恒温控制器的设计和实现[J].计算机技术与发展,2008,18(12)[11]郑金辉,张齐,李登红,帅仁俊.基于单片机的数字温度控制系统设计[J].微机计算机信息,2009(26)[12]陆秋,程小辉,蒙务天.基于单片机的恒温箱节能控制设计[J].计算机测量与控制,2012[13]赵丽洁.基于单片机的菜窖恒温控制系统设计[J].职业时空,2012(7)[14]吕俊亚.一种基于单片机的温度控制系统设计与实现[J].计算机仿真,2012(7)[15]邓红,曾屹.单片机应用技术实例.北京:冶金工业出版社,2011[16]DS18B20ProgrammableResolution1-WireDigitalThermometer附录1系统硬件原理图附录2程序源代码主程序:#include<reg52.h>#include"Lcd12864.h"#include"ds18b20.h"#include"delay.h"#include<math.h>#include"keyboard.c"#defineucharunsignedchar#defineuintunsignedintsbitHEAT=P2^2; //加热sbitCOOL=P2^3; //制冷sbitLED=P3^4;sbitBEEP=P3^5; //声光报警/******************************画墙壁,初始化界面*******************************/voidDrawBoard(void)/*----------------显示图形-----------------*/voidimg_disp(ucharcode*img){uchari,j;for(j=0;j<32;j++){for(i=0;i<8;i++){Lcd_WriteCmd(0x34);//扩充指令操作。Lcd_WriteCmd(0x80+j);//设定绘图RAM地址。yLcd_WriteCmd(0x80+i);//同上。x1Lcd_WriteCmd(0x30);//基本指令操作。Lcd_WriteData(img[j*16+i*2]);Lcd_WriteData(img[j*16+i*2+1]);}}for(j=32;j<64;j++){for(i=0;i<8;i++){Lcd_WriteCmd(0x34);Lcd_WriteCmd(0x80+j-32);Lcd_WriteCmd(0x88+i); //x2Lcd_WriteCmd(0x30);Lcd_WriteData(img[j*16+i*2]);Lcd_WriteData(img[j*16+i*2+1]);}}Lcd_WriteCmd(0x36);}voidMain(){ ucharx=10,y; uchari=0; ucharkey_result; uchardisp_TEMP_CR[5]; uchardisp_TEMP_Set[5]; uinttemp_cr,temp_set=37; HEAT=0; COOL=0; LED=1; BEEP=1; Init_cpu(); Lcd_Reset();//初始化LCD屏 Lcd_Clear(0);//清屏 DrawBoard(); delay_ms(200); Lcd_Clear(0);//清屏img_disp(img); Init_DS18B20(); delay_ms(10); while(1) { temp_cr=ReadTemperature(); if(aa>10) { aa=0; x++; y=56-temp_cr/10; Lcd_HoriLine(x,y,1,1); if(x>127) { x=10; Lcd_Clear(0);//清屏 img_disp(img); } } key_result=KeyScan(); if(key_result<=9&&ke

温馨提示

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

评论

0/150

提交评论