恒温箱控制器
西华大学课程设计说明书 sh |
1 前言 ............................................................................................................. 1 2温度测控
设计 .................................................................................. 2 2.1总体方案概述 .................................................. 2 2.2方案论证.......................................................3
2(2(1温度传感器 ................................................ 3
2(2(2显示模块 .................................................. 3
2(2(3输出控制.................................................. 3
3单元模块介绍 ................................................................................................ 4 3(1温度采集传感器 ................................................. 4 3(2 电源模块 ...................................................... 5 3(3 数码管显示模块 ................................................ 5 3(4 单片机模块 .................................................... 6 3(5 加热模块 ...................................................... 8 3(6 冷却模块 ...................................................... 8 }西华大学课程设计说明书
4软件设计 ....................................................................................................... 9 4(1软件描述 ....................................................... 9 4(2键盘管理模块 ................................................... 9 4(3显示模块 ...................................................... 10 4(4控制模块 ...................................................... 10 4(5主程序和中断服务程序流程 ...................................... 10
5 系统仿真与调试.......................................................................................... 12
5(1系统仿真..................................................... 12
第 0 页
西华大学课程设计说明书 sh |
6 总结 ........................................................................... 错误~未定义书签。15 7 致谢 ........................................................................... 错误~未定义书签。16 8参考文献 ..................................................................... 错误~未定义书签。17 附录1:系统电路图 ....................................................... 错误~未定义书签。18 附录2:系统程序 .......................................................... 错误~未定义书签。19
}西华大学课程设计说明书
第 1 页
西华大学课程设计说明书 sh |
1前言
温度控制是工业生产过程中经常遇到的过程控制,特别是在冶金、化工、建材、食品、机械、石油等工业中,具有举足重轻的作用,其温度的控制效果直接影响着产品的质量,因而设计一种较为理想的温度控制系统是非常有价值的。对于不同场所、不同工艺、所需温度高低范围不同、精度不同,则采用的测温元件、测温
以及对温度的控制方法也将不同;产品工艺不同、控制温度的精度不同、时效不同,则对数据采集的精度和采用的控制算法也不同。因而,对温度的测控方法多种多样。随着电子技术和微型计算机的迅速发展,微机测量和控制技术也得到了迅速的发展和广泛的应用。利用微机对温度进行测控的技术,也便随之而生,并得到日益发展和完善,越来越显示出其优越性。然而现有的温度传感元件大多为模拟器件(热电耦)体积大、应用复杂、而且不容易实现数字化等缺点,阻碍了应用领域的扩展。本设计从实际应用出发选取了体积小、精度相对高的数字式温度传感元件DS18B20作为温度采集器,单片机AT89C51作为主控芯片,数码管作为显示输出,实现了对温度的实时测量与恒定控制。
}西华大学课程设计说明书
第 2 页
西华大学课程设计说明书 sh |
2温度测控方案设计
,,,总体方案概述
温度控制器主要实现对恒温箱温度的控制,并满足不同用户的个性需求。因此一个较完善的控制器应具有以下功能: 温度的测量与显示;用户设定功能(如温度设定,定时设定等); 对电加热管的控制功能; 一些功能键(如定时自动加热,恒温控制,手动加热等)。本系统是基于经典C51系列单片机得应用开发,集环境温度的信号采集、数据的处理及温度的保持控制等等为一体的数字控制系统。同时,该系统设计有友好的人机交互界面以及简易的设置按键。
系统由如下功能模块组成:MCU模块,显示模块,电源模块,按键设置模块,温度采集模块,冷却模块以及加热模块。
整个控制系统又可分为硬件电路设计和软件程序设计两部分
}西华大学课程设计说明书
图1系统方案框图
第 3 页
西华大学课程设计说明书 sh |
2.2方案论证
2.2.1 温度传感器
方案一:采用热敏电阻,可满足40,90?的测量范围,但热敏电阻精度、重复性、可靠性都比较差,其测量温度范围相对较小,稳定性较差,不能满足本系统温度控制的范围要求。
方案二:采用温度传感器铂电阻 Pt1000。铂热电阻的物理化学性能在高温和氧化性介质中很稳定,它能用作工业测温元件,且此元件线性较好。在 0—100 摄氏度时,
最大非线性偏差小于 0.5 摄氏度。铂热电阻与温度关系是,Rt = R0(1+At+Bt*t);其中 Rt 是温度为 t 摄氏度时的电阻;R0 是温度为 0 摄氏度时的电阻;t 为任意温度值,A,B 为温度系数。
方案三:采用数字温度传感器DS18B20,DS18B20提供九位温度读数,测量范围-55?~125?,采用独特1-WIRE 总线
,只需一根口线即实现与MCU 的双向通讯,具有连接简单,高精度,高可靠性等特点。并且,DS18B20支持一主多从,若想实现多点测温,可方便扩展。
综合以上三种方案,本设计采用第三种方案,利用数字温度计DS18B20作为温度传感器。
2.2.2 显示模块
方案一:采用I/O口直接驱动,需要占用大量可贵的I/O口资源,且系统运行后,更换元件不易,不符合系统设计的可靠性、易扩展性原则。
}西华大学课程设计说明书 方案二:采用串行口驱动、静态显示,利用单片机的串行口输出数据,显示多位数码,可节省大量的I/O口,但每个数码管必须有一个驱动芯片,且每位段码须接一个限流电阻,所须元件多,硬件电路比较复杂。
方案三:采用串行口驱动、动态扫描显示,利用单片机的串行口输出数据,显示多位数码,多个数码管可共用驱动芯片和限流电阻。这样既可以简化硬件电路,又可以节省大量的I/O口线,为功能扩展留下空间。
综合以上三种方案,本设计采用方案三:串行口驱动、动态显示。根据系统具体指标要求,可以对每一个具体部分进行
设计。
2.2.3 输出控制
方案一:采用继电器,易于控制,且实行比较简单。
方案二:采用光电藕合器,控制信号与输出信号可以很好的隔离,增强了系统的安全性和抗干扰能力。
综合以上两种方案,本设计采用普通单刀继电器控制负载工作。
第 4 页
西华大学课程设计说明书 sh |
3单元模块介绍
本节主要介绍设计中系统各单元模块的具体功能、核心器件、电路结构、工作原理、以及各个单元模块之间的联接关系。
3(1温度采集传感器
以单总线操作DS18B20温度传感器作为温度采集器。DS18B20数字温度计是Dallas公司生产的1,Wire器件,即单总线器件。与传统的热敏电阻有所不同,DS18B20可直接将被测温度转化成串行数字信号,以供单片机处理,具有连线简单、微型化、低功耗、高性能、抗干扰能力强、精度高等特点。因此用它来组成一个测温系统,具有电路简单,在一根通信线上可以挂很多这样的数字温度计,十分方便。目前已被众多行业进行广泛的运用(锅炉、温控表粮库、冷库、工业现场温度监控、仪器仪表温度监控、农业大棚温度监控等)。
通过编程,DS18B20可以实现9,12位的温度读数。信息经过单线接口送入DS18B20或从DS18B20送出,因此从微处理器到DS18B20仅需连接一条信号线和地线。读、写和执行温度变换所需的电源可以由数据线本身提供,而不需要外部电源。
每片DS18B20在出厂时都设有唯一的产品序列号,因此多个DS18B20可以挂接于同一条单线总线上,这允许在许多不同的地方放置温度传感器,特别适合于构成多点温度测控系统。
从温度传感器获取温度值的方法非常简洁,无需接A/D转化器,即可实现对温度测量并将测量数据直接送单片机处理,且可使系统实现温度的巡回测量和显示。其中,温度传感器的数据管接单片机的p3~5管脚。 }西华大学课程设计说明书
图2温度传感器
第 5 页
西华大学课程设计说明书 sh |
3(2 电源模块
本模块主要用于输出5V的直流电源保证单片机的正常运行。输入电压经过整流滤波,接入稳压芯片7805转变为5v直流电压(vcc)以供给MCU及其外设系统使用。
图3电源
电子产品中,常见的三端稳压集成电路有正电压输出的78 ×× 系列和负电压输出的79××系列。顾名思义,三端IC是指这种稳压用的集成电路,只有三条引脚输出,分别是输入端、接地端和输出端。它的样子象是普通的三极管,TO- 220 的标准封装,也有9013样子的TO-92封装。
用78/79系列三端稳压IC来组成稳压电源所需的外围元件极少,电路内部还有过流、}西华大学课程设计说明书
过热及调整管的保护电路,使用起来可靠、方便,而且价格便宜。该系列集成稳压IC型号中的78或79后面的数字代表该三端集成稳压电路的输出电压,如7806表示输出电压为正6V,7909表示输出电压为负9V。
因为三端固定集成稳压电路的使用方便,电子制作中经常采用
3(3 数码管显示模块
该模块主的任务就是利用数码管完成所测量温度的显示。
第 6 页
西华大学课程设计说明书 sh |
图4数码管显示
数码管按段数分为七段数码管和八段数码管,八段数码管比七段数码管多一个发光二极管单元(多一个小数点显示);按能显示多少个“8”可分为1位、2位、4位等等数码管。
按发光二极管单元连接方式分为共阳极数码管和共阴极数码管。共阳数码管是指将所有发光二极管的阳极接到一起形成公共阳极(COM)的数码管。共阳数码管在应用时应将公共极COM接到+5V,当某一字段发光二极管的阴极为低电平时,相应字段就点亮。}西华大学课程设计说明书
当某一字段的阴极为高电平时,相应字段就不亮。。共阴数码管是指将所有发光二极管的阴极接到一起形成公共阴极(COM)的数码管。共阴数码管在应用时应将公共极COM接到地线GND上,当某一字段发光二极管的阳极为高电平时,相应字段就点亮。当某一字段的阳极为低电平时,相应字段就不亮。
3(4 单片机模块
该模块就STC89C51单片机基本外围电路及报警电路作一个简单的介绍。
第 7 页
西华大学课程设计说明书 sh |
图5 单片机基本外围电路
89C51是Intel公司生产的一个单片机系列的名称。该公司继1976推出MCS-48系列8位单片机后,又于1980年推出了89C51系列高档8位单片机。属于这一系列的单片机芯片有很多种,如8051,8031,8751,80C51BH等等,它们的基本组成、基本性能}西华大学课程设计说明书
和指令系统都是相同的。为了叙述方便,今后如不作说明,则常用89C51代表MCS51系列单片机。
89c51的体系结构是冯-诺依曼结构:冯-诺依曼结构的数据总线和指令总线是分时复用的,在同一总线上,有时传送的是数据有时是指令,因此它取指令和访问数据是无法同时进行的。哈弗结构中程序存储器和数据存储器地址编码分开,因而有相互独立的指令总线和数据总线。访问指令和访问数据可以同时进行的。
单片机有如下功能部件组成:
1)微机处理器(CPU) 它是一个8位的CPU,不仅可以处理字节数据,还可以进
行位变量的处理。
2)数据存储器(RAM) 片内为128B,片外最多可外扩64KB。数据存储器来存储
单片机运行期间的工作变量、运算的中间结果、数据暂存和缓冲、标专位等。
3)程序存储器(ROM/EPROM) 用来存储程序。如果片内只读存储器的容量不够,
则需用扩展片外只读存储器,片外最多可外扩至64K。
第 8 页
西华大学课程设计说明书 sh |
4)4个并位8位I/O口(P0口、P1口、P2口、P3口)
5)1个全双工串行口 可用来串行通信,扩展并行I/O口,甚至与多个单片机相连
构成多机系统,从而使单片机的功能更强且应用更广。
6)2个16位定时器/计数器 在单片机的应用中,往往需要精确的定时,或对外部事
件进行计数,因而需在单片机内部设置定时器/计数器部件。
7)中断系统 89C51单片机有5个中断源,2个中断优先权。采用中断系统可以提
高单片机的工作效率,而且有实时处理的优势。
8)特殊功能寄存器(SFR) 特殊功能寄存器共有21个,用于CPU对片内各功能
部件进行管理、控制、监视。实际上是片内各功能部件的控制寄存器和状态寄存
器,是一个具有特殊功能的RAM区。
3(5 加热模块
主要根据设定恒温值与采样温度值的比较结果进行工作,即,采样温度值大于设定值时,继电器闭合并接通电阻加热,否则断开。Jd1,jd2分别接串联水泥电阻及交流电源的一端,该继电器由单片机得p2~4管脚控制。
}西华大学课程设计说明书
图6加热模块
3(6 冷却模块
安装了小型风扇,以5v直流电压供电,以继电器控制风扇的工作状态,以实现智能化控制。主要根据设定恒温值与采样温度值的比较结果进行工作。即当采样温度值大于设定值时,继电器闭合并启动风扇冷却,否则断开,该继电器由单片机的p2~3控制。
第 9 页
西华大学课程设计说明书 sh |
4软件设计
4.1软件描述
在软件设计时,必须先弄清恒温控制系统的操作过程和工作过程。加热器开始时处于停止状态,首先设定温度,显示器显示温度,温度设定后则可以启动加热。温度检测系统不断检测并显示系统中的实时温度,当达到设定值后停止加热,当温度下降到下限(小于设定值3?)时再自动启动加热,这样不断的循环,使温度保持在设定范围之内。启动加热以后就不能再设定温度,因为温度的设定可以根据实验要求改变。若要改变设定的温度,可以先按复位,停止键再重复上述过程。
根据以上对操作和工作过程的分析,程序的主要任务是:
(1)初始化系统。主要完成相关单片机寄存器的配置,初始化全局变量等
2)判断“设置按键是否按下”。若按下,则转让设置处理,并定时10s,若10s (
后仍没有按键按下,则跳出设置处理。
(3)采集温度并处理数据。主要对DS18B20复位并读取数值,对所取得数据作相关处理并最终转入为十进制数以便数码管显示。
4.2键盘管理模块
键盘管理子程序流程如图所示。
}西华大学课程设计说明书
图7键盘处理程序流程
当通电或复位以后,系统进入键盘管理状态,单片机只接收设定温度和启动。当检测到有键闭合时先去除抖动,这里采用软件延时的方法,延时一段时间后,再确定是否有键闭合,然后将设定好的值送入预置温度数据区,并调用温度合法检测报警程序,当
第 10 页
西华大学课程设计说明书 sh |
设定温度超过最大值如90?时就会报警,最后当启动键闭合时启动加热。
键盘设定:用于温度设定。共三个按键。
KEY1(P1.1): 状态切换;温度设置确认;温度重新设置。
KEY2(P1.2): 设置温度“+”。
KEY3(P1.3): 设置温度“-”。
系统上电后,数码管全部显示为零,根据按 KEY1 次数,决定显示的状态,根据相应的状态,利用KEY2、KEY3进行加减,当温度设定好之后,再按KEY1确定,系统开始测温,开启加热器。
4.3显示模块
显示子程序的功能是将缓冲区的二进制数据先转换成3个BCD码,再将其分别存入百位、十位、个位3个显示缓冲区,送往串行口,利用单片机的P2口进行扫描,让数据动态的显示出来,可显示设置温度和测量温度。
4.4控制模块
温度控制子程序流程如图10所示,将当前温度与设定好的温度比较,当当前温度小于设定温度时,开启电热器;当当前温度大于设定温度时,关闭电热器;当二者相等时,电热器保持这一状态。
}西华大学课程设计说明书
图8控制模块程序流程
4.5主程序和中断服务程序流程
主程序采用中断嵌套方式设计,各功能模块可直接调用。主程序完成系统的初始化,温度预置及其合法性检测,预置温度的显示及定时器0设置。定时器0中断服务子程序
第 11 页
西华大学课程设计说明书 sh |
是温度控制体系的主体,用于温度检测、控制和报警(包括启动温度转换、读入采样数据、数字滤波、越限温度报警和越限处理、输出控制脉冲等)。中断由定时器0产生,根据需要每隔15 s中断一次,即每15 s采样控制一次。但系统采用6 MHz晶振,最大定时为130 ms,为实现15 s定时,这里另行设了一个软件计数器。
图9主程序流程图
}西华大学课程设计说明书
图10中断服务程序流程图
5系统调试
第 12 页
西华大学课程设计说明书 sh |
5.1 系统仿真
因本系统是利用单片机进行系统控制,所以需采用单片机仿真工具Proteus进行仿真。Proteus软件是来自英国Labcenter electronics公司的EDA工具软件,Proteus软件有十多年的历史,在全球广泛使用,除了其具有和其它EDA工具一样的原理布图、PCB自动或人工布线及电路仿真的功能外,其革命性的功能是,他的电路仿真是互动的,针对微处理器的应用,还可以直接在基于原理图的虚拟原型上编程,并实现软件源码级的实时调试,如有显示及输出,还能看到运行后输入输出的效果,配合系统配置的虚拟仪器如示波器、逻辑分析仪等,Proteus为使用者建立了完备的电子设计开发环境~
[8]Proteus产品系列也包含了革命性的VSM技术,用户可以对基于微控制器的设计连同所有的周围电子器件一起仿真,是一款非常优秀的单片机仿真软件。可以使用Keil c51和 Proteus进行联调,使调试、仿真更为方便。
首先画好仿真图,将程序的二进制文件调入单片机对话框的Program File栏内
}西华大学课程设计说明书
图11
仿真开始时,仿真图如图12所示,数码管都显示为零,只有红色“未加热状态灯”D1亮。
第 13 页
西华大学课程设计说明书 sh |
图12
系统启动加热一段时间后,达到设定的温度值,系统停止加热,状态灯D1重新
点亮
}西华大学课程设计说明书
第 14 页
西华大学课程设计说明书 sh |
6结论
本文利用AT89C51对温度进行控制,采用单总线传输方式的DS18B20作为温度传感器,与按键、数码显示等外部辅助硬件共同组成一个温度控制系统。设计中用到了KEIL C51 V8.01、PROTEL99SE、PROTEUS6.7等设计与仿真软件,作者本着安全性、可靠性、稳定性和易扩展性等设计原则,对各方案进行了细心的比较,并对设计中使用的芯片进行了仔细的分析,力求设计出一个安全、稳定、可靠的温度控制系统。因此,本系统的安全性和可扩展性都比较好。在仿真过程中,由于仿真软件库内没有DS18B20这个元件,并且动态显示在仿真时数码显示不稳定,所以仿真时采用了静态显示,并利用软件来模拟温度的变换,从而仿真得到系统工作的整个过程。
}西华大学课程设计说明书
第 15 页
西华大学课程设计说明书 sh |
致谢
在此,我要感谢所有曾经教导过我的老师和关心过我的同学,他们在我成长过程中给予了我很大的帮助。本文能够成功的完成,要特别感谢我的指导老师对我的精心指导,让我获得了丰富的理论知识,极大地提高了实践能力。在本次课程设计过程中,郭老师对该设计的构思到最后定稿的各个环节给予细心指引与教导,使我和我的同伴最终得以顺利完成本次课程设计。在此我致上诚挚的谢意。
在设计过程中所涉猎的各种软件(如visio、protel、protuse 、keil)也使我的知识构架更为丰富。同时,通过这次做课程设计我也及时发现自己
上的漏洞,真正起到了查漏补缺的效果。
这次课程设计能够顺利完成,我也非常感谢在我身边默默帮助与支持的朋友。因为从他们身上我不仅学得了很多实用的专业知识,同时也学到了团队合作精神的重要性获得了更为坚实的友谊,学会了从不同的角度去思考和看待问题。
在学习中,郭老师严谨的治学态度、丰富渊博的知识、敏锐的学术思维、精益求精的工作态度以及侮人不倦的师者风范是我终生学习的楷模,导师的高深精湛的造诣与严谨求实的治学精神,将永远激励着我。在此,感谢郭老师的支持和帮助,致以衷心的感谢和崇高的敬意。
}西华大学课程设计说明书
第 16 页
西华大学课程设计说明书 sh |
参考文献
[1] 《单片微型计算机原理及应用》西安:西安电子科技大学出版社(
[2] 《单片机外围电路设计》北京:北京电子工业出版社
[3] 《基于单片机8051的嵌入式开发指南》电子工业出版社,2003(胡大可等(
[4] 《单片机应用系统开发实例导航》求是科技靳达编著人民邮电出版社 2003年10月
[5] 《51系列单片机高级实例开发指南(附CD-ROM光盘一张)》李军 等编著 北京航空航天大学出版社2004年06月
}西华大学课程设计说明书
第 17 页
西华大学课程设计说明书 sh |
附录1
}西华大学课程设计说明书
第 18 页
西华大学课程设计说明书 sh |
附录2
主程序
void()
{
init();
while(1)
{
if(flag)//按键标志。按下为“1”;未按下为“0”。
{
//设置状态下显示设置温度值
set_tmp();//设置处理
display(balance_tmp);
}
else
{//正常状态下显示采样温度值;
display(current_tmp);
tead_es18b20();
setjdq();
}
}西华大学课程设计说明书 }
}
数码管显示程序;
voiddisplay(unit shu) {
ucharbaishige;
uinttemp;
temp=shu;
//十进制分别分离出白、十、个位
bai=temp/100;
shi=(temp%100)/10;
第 19 页
西华大学课程设计说明书 sh |
ge=temp%10;
weil=0;
p1=table[bai];//显示百位上的数
delay(5);
wei1=1;
wei2=0;
p1=table_daidian[shi];
delay(5);
wei2=1;
wei3=0;
p1=table[ge];
delay(5);
wei3=1;
}
温度控制子程序;
void set_jdq()
{
//控制继电器从而判断是否加热
if(current_temp
balance_tmp+3)
//采样温度(实际温度)大于所设恒温值
jdq2=0;//启动继电器2风冷
else
jdq2=1;//关闭继电器2
}
第 20 页