水温加热控制系统Word
- 格式:doc
- 大小:668.69 KB
- 文档页数:16
编号本科生毕业设计水温加热控制系统The heating water temperature control system学生姓名贾登魁专业电气工程及其自动化学号1134212指导教师胡贞分院电子工程分院2011年月第1章绪论1.1课题背景及研究意义随着新技术的不断开发与应用,近年来单片机发展十分迅速,一个以微机应用为主的新技术革命浪潮正在蓬勃兴起,单片机的应用已经渗透到电力、冶金、化工、建材、机械、食品、石油等各个行业。
传统的温度采集方法不仅费时费力,而且精度差,单片机的出现使得温度的采集和数据处理问题能够得到很好的解决。
温度是工业对象中的一个重要的被控参数。
然而所采用的测温元件和测量方法也不相同;产品的工艺不同,控制温度的精度也不相同。
因此对数据采集的精度和采用的控制方法也不相同。
传统的控制方式以不能满足高精度,高速度的控制要求,如温度控制表温度接触器,其主要缺点是温度波动范围大,由于他主要通过控制接触器的通断时间比例来达到改变加热功率的目的,受仪表本身误差和交流接触器的寿命限制,通断频率很低。
近几年来快速发展了多种先进的温度控制方式,如:PID控制,模糊控制,神经网络及遗传算法控制等。
这些控制技术大大的提高了控制精度,不但使控制变得简便,而且使产品的质量更好,降低了产品的成本,提高了生产效率。
本系统所使用的加热器件是电炉丝,功率为三千瓦,要求温度在400~1000℃。
静态控制精度为2.43℃。
本设计使用单片机作为核心进行控制。
单片机具有集成度高,通用性好,功能强,特别是体积小,重量轻,耗能低,可靠性高,抗干扰能力强和使用方便等独特优点,在数字、智能化方面有广泛的用途。
1.2国内外现状温度控制系统在国内各行各业的应用虽然已经十分广泛,但从国内生产的温度控制器来讲,总体发展水平仍然不高,同日本、美国、德国等先进国家相比,仍然有着较大的差距。
成熟的温控产品主要以“点位”控制及常规的PID控制器为主,它们只能适应一般温度系统控制,而用于较高控制场合的智能化、自适应控制仪表,国内技术还不十分成熟,形成商品化并广泛应用的控制仪表较少。
水温控制系统文摘为了实现高精度的水温控制,本文介绍了一种以SPCE061A单片机为控制核心、以PID算法控制以及PID参数整定相结合的控制方法来实现的水温控制系统。
文章着重介绍核心器件的选择、控制算法的确定、各部份电路及软件的设计。
SPCE061A单片机完善的内部结构、优良的性能和强大的中断处理能力,决定了该控制系统的特点:电路结构简单、程序简短、系统可靠性高等。
本次设计还充分利用了SPCE061A单片机成熟的语音处理技术和PC机的图形处理功能,来实现了语音播报温度和打印温度变化曲线的要求。
关键词 SPCE061A单片机;Pt1000;PID自70年代以来,由于工业过程控制的需要,特别是在电子技术的迅猛发展,以及自动控制理论和设计方法发展的推动下,国外温度控制系统发展迅速,并在智能化自适应参数自整定等方面取得成果。
在这方面以日本、美国、德国、瑞典等国技术领先,并且都生产出了一批商品化的性能优异的温度控制器及仪器仪表,在各行业广泛应用。
目前,国外温度控制系统及仪表正朝着高精度智能化、小型化等方面快速发展。
温度控制系统在国内各行各业的应用虽然已经十分广泛,但从国内生产的温度控制器来讲,总体发展水平仍然不高,同国外的日本、美国、德国等先进国家相比,仍然有着较大的差距。
目前,我国在这方面总体技术水平处于20世纪80年代中后期水平。
成熟产品主要以“点位”控制及常规的PID控制器为主,它只能适应一般温度系统控制,难于控制滞后复杂时变温度系统控制,而且适应于较高控制场合的智能化、自适应控制仪表国内技术还不十分成熟,形成商品化并广泛应用的控制仪表较少。
现在,我国在温度等控制仪表业与国外还有着一定的差距。
温度、压力,流量和液位是四种最常见的过程变量,其中温度是一个非常重要的过程变量,因为它直接影响燃烧、化学反应、发酵、烘烤、煅烧、蒸馏、浓度、挤压成形,结晶以及空气流动等物理和化学过程。
温度控制在工业领域应用非常广泛,由于其具有工况复杂、参数多变、运行惯性大、控制滞后等特点,它对控制调节器要求较高。
摘要温度控制是无论是在工业生产过程中,还是在日常生活中都起着非常重要的作用,过低的温度或过高的温度都会使水资源失去应有的作用,从而造成水资源的巨大浪费。
特别是在当前全球水资源极度缺乏的情况下,我们更应该掌握好对水温的控制,把身边的水资源好好地利用起来。
在现代冶金、石油、化工及电力生产过程中,温度是极为重要而又普遍的热工参数之一。
在环境恶劣或温度较高等场合下,为了保证生产过程正常安全地进行,提高产品的质量和数量,以及减轻工人的劳动强度、节约能源,要求对加热炉炉温进行测、显示、控制,使之达到工艺标准,以单片机为核心设计的炉温控制系统,可以同时采集多个数据,并将数据通过通讯口送至上位机进行显示和控制。
那么无论是哪种控制,我们都希望水温控制系统能够有很高的精确度(起码是在满足我们要求的范围内),帮助我们实现我们想要的控制,解决身边的问题。
在计算机没有发明之前,这些控制都是我们难以想象的。
而当今,随着电子行业的迅猛发展,计算机技术和传感器技术的不断改进,而且计算机和传感器的价格也日益降低,可靠性逐步提高,用信息技术来实现水温控制并提高控制的精确度不仅是可以达到的而且是容易,排除生活用水问题实施对水温的控制已成为我们电子行业的任务,以此来加强工业化建设,提高人民的生活水平。
方案论证与比较1、总体方案设计及论证根据题目的要求,我们提出了以下的三种方案:方案1:此方案是采用传统的二位模拟控制方法,选用模拟电路,用电位器设定给定值,采用上下限比较电路将反馈的温度值与给定的温度值比较后,决定加热或者不加热。
由于采用模拟控制方式,系统受环境的影响大,不能实现复杂的控制算法使控制精度做得高,而且不能用数码显示和键盘设定。
方案2:采用单片机AT89S2核心。
采用了热敏电阻来采集温度,A/D采样芯片ADC0804将其转换成数字信号并通过单片机处理后去控制,但热敏电阻线性度不好,精度不高。
而且外围电路比较复杂。
方案3:采用单片机AT89S52核心,使用单片机具有编程灵活,控制简单的优点,使系统能简单的实现温度的控制及显示,采用经常用到的并有很高精度的集成温度传感器DS18B20。
┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊序号(学号):021140840长春大学毕业设计(论文)水温加热控制系统姓名陈恺霖学院电子信息工程学院专业通信工程班级11408指导教师高钰致张平(助教)肖冰(讲师)2015 年 6 月 5 日┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊摘要随着人们生活质量的不断提高,生活节奏的加快,人们日常能花费在婴儿喂奶的时间有所减少但是对于婴儿能喝上温度最佳的奶品的需求日渐提高。
要实现温度控制的快速性和准确性,对于提高温奶器质量具有很重要的现实意义。
这种基于单片机的控制系统包括硬件和软件两个部分。
硬件电路以STC89C52单片机为微处理器,详细设计了温度信号采样电路,键盘及显示电路,温度控制电路,加温控制电路,降温控制电路、时钟信号电路以及系统电源供电设计等模块。
由键盘电路输入设定温度范围信号给单片机,温度信号采集电路采集现场温度信号给单片机,单片机根据输入的温度范围与反馈信号的偏差进行比较,输出控制信号给加温控制电路和降温控制电路。
液晶1602实现现场温度的实时监控。
软件方面应用PID算法来实现恒温控制。
在此基础上本设计又加入了液位检测报警系统,用来防止干烧以及沸腾以后的液体溢出导致的电器短路,从一定程度上增强了本设计产品的安全性能。
让本设计更贴近生活,源于生活。
关键词:STC89C52单片机;温度信号采样电路;PID算法┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊Design of temperature control in milk heaterABSTRACTWith the continuous improvement of people's living quality and accelerate the pace accelerating of the daily life, people cost decrease time in infant feeding. But for the demand that baby drink milk on the optimum temperature have been increasing. In order to improve the quality of milk heater,Achieving the rapid and accurate temperature control is very necessary.The single-chip microcomputer control system includes two parts of hardware and software based on. The hardware circuit based on STC89C52 MCU as its microprocessor, the detailed design of the temperature signal sampling circuit, keyboard and display circuit, temperature control circuit, heating control circuit, temperature control circuit, a clock signal circuit and the system power supply design module. Set the range of temperature signal to the microcontroller by the keyboard input circuit, the temperature signal acquisition circuit collect temperature signal to the microcontroller, the microcontroller according to the temperature range of the input is compared with the error feedback signal, the output control signals to the heating control circuit and temperature control circuit. LCD 1602 to achieve real-time monitoring the temperature. The software application of PID algorithm to achieve the temperature control.On the basis of this, the design add the liquid level detecting alarm system for preventing dry burning and boiling liquid overflow caused by electrical short circuit. To a certain extent this move enhances the safety performance of the product design. Let this design closer to life, from life.Keyword: single-chip microcomputer-STC89C52; The temperature signal sampling circuit; PID algorithm┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊目录第1章引言 (1)第2章系统概述 (4)2.1 温奶器温度控制概述 (4)2.1.1 温奶器温度控制设计任务 (4)2.1.2 系统设计 (4)2.2 简易水位检测报警系统 (6)2.3 温奶器整体实现的功能 (6)第3章系统硬件设计 (8)3.1系统硬件电路芯片选型介绍 (8)3.1.1 温度传感器选型介绍 (8)3.1.2 STC89C52单片机介绍 (9)3.2 温控系统硬件电路设计 (12)3.2.1单片机最小系统电路设计 (12)3.2.2系统供电电路设计 (14)3.2.3 按键调整电路设计 (15)3.2.4 温度采集电路设计 (15)3.2.5 LCD1602显示电路设计 (16)3.2.6 加温模块电路设计 (17)3.2.7 降温模块电路设计 (17)3.3水位报警系统设计 (17)3.3.1声光报警电路 (17)3.3.2水位检测装置 (18)3.4 系统整体电路及电路图绘制 (19)第4章系统软件设计 (21)4.1 C语言介绍 (21)4.2 系统整体及各部分程序流程 (21)4.2.1系统整体程序流程 (21)4.2.2 DS18B20温度传感器程序流程 (22)4.2.3 按键扫描子程序流程 (24)┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊4.2.4 加温、降温程序流程 (27)4.3 PID算法在本次设计中的必要性和实际意义 (29)第5章系统仿真与调试 (31)5.1 电路仿真调试 (31)5.1.1 Proteus 7 Professional仿真软件介绍 (31)5.1.2 仿真调试中的问题 (32)5.2 系统功能测试 (33)5.3 系统误差分析 (33)第6章总结 (34)致谢 (35)参考文献 (36)附录:C语言程序 (37)┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊第1章引言随着人们生活质量的不断提高,生活节奏的加快,人们日常能花费在婴儿喂奶的时间有所减少但是对于婴儿能喝上温度最佳的奶品的需求日渐提高。
水温加热控制系统LG GROUP system office room 【LGA16H-LGYY-LGUA8Q8-LGA162】编号本科生毕业设计水温加热控制系统The heating water temperature control system 学生姓名贾登魁专业电气工程及其自动化学号1134212指导教师胡贞分院电子工程分院2011年月第1章绪论课题背景及研究意义随着新技术的不断开发与应用,近年来单片机发展十分迅速,一个以微机应用为主的新技术革命浪潮正在蓬勃兴起,单片机的应用已经渗透到电力、冶金、化工、建材、机械、食品、石油等各个行业。
传统的温度采集方法不仅费时费力,而且精度差,单片机的出现使得温度的采集和数据处理问题能够得到很好的解决。
温度是工业对象中的一个重要的被控参数。
然而所采用的测温元件和测量方法也不相同;产品的工艺不同,控制温度的精度也不相同。
因此对数据采集的精度和采用的控制方法也不相同。
传统的控制方式以不能满足高精度,高速度的控制要求,如温度控制表温度接触器,其主要缺点是温度波动范围大,由于他主要通过控制接触器的通断时间比例来达到改变加热功率的目的,受仪表本身误差和交流接触器的寿命限制,通断频率很低。
近几年来快速发展了多种先进的温度控制方式,如:PID控制,模糊控制,神经网络及遗传算法控制等。
这些控制技术大大的提高了控制精度,不但使控制变得简便,而且使产品的质量更好,降低了产品的成本,提高了生产效率。
本系统所使用的加热器件是电炉丝,功率为三千瓦,要求温度在400~1000℃。
静态控制精度为℃。
本设计使用单片机作为核心进行控制。
单片机具有集成度高,通用性好,功能强,特别是体积小,重量轻,耗能低,可靠性高,抗干扰能力强和使用方便等独特优点,在数字、智能化方面有广泛的用途。
国内外现状温度控制系统在国内各行各业的应用虽然已经十分广泛,但从国内生产的温度控制器来讲,总体发展水平仍然不高,同日本、美国、德国等先进国家相比,仍然有着较大的差距。
水温加热控制系统设计1. 引言水温加热控制系统在许多工业和家庭应用中起着重要的作用。
它们被广泛应用于供暖系统、热水供应系统、工业加热过程等。
水温加热控制系统的设计和优化对于提高能源利用效率、保障设备安全运行以及提高使用者的舒适度至关重要。
本文旨在深入探讨水温加热控制系统的设计原理、关键技术以及优化方法。
2. 水温加热控制系统概述2.1 水温加热过程水温加热过程是指将冷却的水通过外部能源输入使其升温的过程。
常见的外部能源包括电力、天然气等。
在这个过程中,需要通过合适的控制手段来实现对水温度的精确控制。
2.2 水温加热控制系统组成典型的水温加热控制系统由以下组成部分构成:(1) 传感器:用于实时监测和测量水体的温度。
(2) 控制器:通过与传感器进行交互,根据设定值来调节能源输入,以实现对水温的控制。
(3) 加热器:负责将外部能源转化为热能,将水温升高。
(4) 水泵:用于将冷却的水送入加热器,以保证加热过程的连续性。
(5) 水箱:用于储存加热后的水,以满足实际需求。
3. 水温传感器3.1 温度传感器种类常见的温度传感器种类包括热电偶、电阻温度探头、红外线传感器等。
不同的传感器具有不同的测量范围、精度和响应时间。
3.2 温度传感器选择在选择合适的温度传感器时,需要考虑以下因素:(1) 测量范围和精度:根据具体应用需求选择合适范围和精度。
(2) 响应时间:根据加热过程中对实时性要求进行选择。
(3) 环境适应性:考虑到工作环境中可能存在的湿气、腐蚀等因素。
4. 控制策略4.1 开环控制与闭环控制在水温加热控制系统中,可以采用开环控制或闭环控制策略。
开环控制是指根据经验或预先设定的规则来调节能源输入,而闭环控制是根据传感器反馈的实时温度信息来调节能源输入。
4.2 PID控制器PID控制器是一种常用的闭环控制策略。
它通过比较实际温度与设定值之间的差异,计算出一个综合误差,并根据综合误差来调整能源输入。
PID控制器具有简单、稳定、可靠等优点,广泛应用于水温加热系统中。
水温控制系统摘要:该水温控制系统采用单片机进行温度实时采集与控制。
温度信号由“一线总线”数字化温度传感器DS18B20提供,DS18B20在-10~+85°C范围内,固有测温分辨率为0.5 ℃。
水温实时控制采用继电器控制电热丝和风扇进行升温、降温控制.系统具备较高的测量精度和控制精度,能完成升温和降温控制。
关键字:AT89C51 DS18B20 水温控制Abstract: This water temperature control system uses the Single Chip Microcomputer to carry on temperature real-time gathering and controling。
DS18B20,digitized temperature sensor, provides the temperature signal by "a main line”. In -10~+85℃the scope,DS18B20’s inherent measuring accuracy is 0.5 ℃. The water temperature real-time control system uses the electricity nichrome wire carring on temperature increiseament and operates the electric fan to realize the temperature decrease control。
The system has the higher measuring accuracy and the control precision,it also can complete the elevation of temperature and the temperature decrease control. Key Words:AT89C51 DS18B20 Water temperature control目录1.系统方案选择和论证 (2)1。
基于单片机的水温加热控制系统设计
随着科技的不断发展,单片机在各个领域的应用越来越广泛。
其中,基于单片机的水温加热控制系统在工业和家庭中都有着重要的应用。
本文将介绍一个基于单片机的水温加热控制系统的设计原理和实现方法。
设计原理:
水温加热控制系统的设计原理是通过测量水温并与设定温度进行比较,控制加热器的开关状态,以维持水温在设定范围内。
在这个系统中,我们将使用单片机来实现温度的测量和控制逻辑。
实现方法:
首先,我们需要选择合适的温度传感器来测量水温。
常用的温度传感器有NTC热敏电阻和DS18B20数字温度传感器等。
然后,将温度传感器连接到单片机的模拟输入引脚,通过模数转换器将模拟信号转换为数字信号。
接着,我们需要设定一个目标温度值,当测得的水温低于目标温度时,单片机控制加热器开启,反之则关闭。
在程序设计方面,我们可以使用C语言或者类似的编程语言编写控制逻辑。
通过单片机的IO口控制加热器的开关状态,实现水温的控制。
同时,我们还可以在单片机上设置一些保护措施,比如过温保护、短路保护等,以确保系统的安全运行。
总结:
基于单片机的水温加热控制系统设计,可以实现对水温的精准控制,提高了加热系统的稳定性和安全性。
这种系统不仅可以应用在家用热水器、暖气系统等家庭设备中,也可以应用在工业生产中的加热设备中,具有广阔的应用前景。
希望本文的介绍能够对读者有所帮助,同时也希望大家能够在实际应用中不断完善和改进这一系统,为生活和生产带来更多的便利和效益。
设计报告 1. 设计原理水温控制系统以STC89C52单片机作为控制核心,采用开关控制和PID控制算法相结合,通过控制单位时间内加热时间所占的比例(即控制波形占空比)来控制水的加热速度,实现对1L水的全量程(10℃――70℃)内的升温、降温功能的自动控制。
根据设计要求系统可划分为控制模块、温度测量模块、水温调节模块、键盘输入模块、显示电路模块等。
系统原理图如图所示STC89C52首先写命令给DS18B20开始转换数据,将转换后的温度数据送入89C52进行处理,处理后在液晶屏上实时显示。
并将实际测量温度值与键盘设定值进行比较,根据比较结果进行温度调节,当温差比较大时采用开关量调节,既全速加热和制冷,当温差小时采用PID算法进行调节,最终达到温度的稳定控制。
其中,加热采用内置(水中)电加热器实现,热量直接与水传递,加热效果好,控温方便;降温采用半导体制冷片实现。
其体积小,安装简单,易于控制,价格便宜,可短时间内反复启动,但其制冷速率不高,所以设计中配套散热风扇以达到快速降温的目的。
2.温度控制算法实际温度控制系统,常采用开关控制或数字PID控制方式。
开关控制的特点是可以使系统以最快的素的向平衡点靠近,但在实际应用却很容易造成系统在平衡点附近震荡,精度不高;而数字PID控制具有稳态误差小特点,实用性广泛的特点,但误差较大时,系统容易出现积分饱和,从而份致系统出现很大的超调量,甚至出现失控现象。
因此,本设计将开关控制,放积分饱和、防参数突变积分饱和等方法溶入PID控制算法组成复式数字PID控制方法,集各种控制策略的优点,既改善了常规控制的动态过程又保持了常规控制的稳态特性。
2.1控制算法的确定温度控制过程为 : 当水温温差大时,采用开关控制方式迅速减小温差,以缩短调节时间;当温差小于某一值后采用PID 控制方式,以使系统快速稳定并保持系统无静态误差。
在这种控制方法中, PID 控制在较小温差时开始进入,这样可有效避免数字积分器的饱和。
基于单片机的水温控制系统设计谢辉摘要:本水温控制系统以MCS-51单片机为中心控制器件,主要由温度传感模块,A/D转换放大模块,单片机编程模块,显示模块,控制模块等部分组成。
温度信号由温度传感器AD590采集,经过放大转化为电压信号进行编码,测温分辨率0.1℃。
水温实时控制由继电器电热丝和风扇进行升温和降温。
显示部分由“人机交互界面”的12864液晶显示,增加可读性。
该系统具备较高的测量精度,能较好的完成设计要求。
关键字:MCS-51单片机AD590 水温控制Abstract: The temperature control system ,which is regarded as the central control device of MCS-51 microcontroller, is constructed by the temperature sensing module, A/D converter amplifier module, control module, microcontroller programming module, display module and other components. Temperature signal is collected byte AD590 temperature sensor which is amplified into a voltage signal is encoded, temperature resolution is 0.1 ℃. Real-time control temperature can be heated by heating wire and electric fan. Display part is quoted by “man-machine interface” of 12864 LCD to increase the readability. The system features is of high accuracy, and it can have better complete of the design requirements.Keywords: MCS-51 microcontroller AD590 temperature control目录1.引言 (2)1.1设计任务 (2)1.2设计要求 (2)2.系统设计方案 (2)2.1各模块的电路的方案选择及论证 (3)2.1.1主机控制模块 (3)2.1.2温度控制模块 (3)2.1.3温度采集模块 (3)2.1.4显示模块 (4)2.2系统各模块的最终方案 (4)3.功能模块设计和参数计算 (4)3.1温度采集部分 (4)3.2 单片机控制部分 (6)3.3 温度控制电路 (6)3.4 键盘及数字显示部分 (7)4.软件设计 (7)4.1主程序 (7)4.2 液晶显示模块 (8)4.3 温度读取及加热散热控制 (9)5.系统测试及结果分析 (9)5.1实用仪器及型号 (9)5.2.2温度数据采集测试记录 (9)5.2.3水温控制测试 (10)5.2.4温度突变测试 (10)6.总结 (11)参考文献 (12)1.引言在能源日益紧张的今天,电热水器、饮水机、电饭煲之类的家用电器在保温时,由于简单的温度控制系统,因而会造成很大的能源浪费。
水温控制系统摘要用单片机系统对温度进行实时检测并做出分析和判断是本课题的一项最重要的内容。
为此,我们采用AD590进行数据的采集,结合模糊和PID两种控制方式,实现了对水温控制系统较为精确的定位。
一.理论分析与控制算法的确定该系统为一水温控制系统,主要特点表现在其响应的滞后性,所以其难点就体现在单片机对温度的控制上。
我们可以采用常用的两种控制——模糊控制和PID控制。
如果单纯采用模糊控制就很难做到对温度的精确定位和微调至稳定;如果只采用PID控制,就不容易在短时间内把温度加到一定的幅度。
由于水温具有很强的滞后性,如果加入积分项,虽然对于消除稳定误差有作用,但是会明显地使超调量变大。
综合考虑水温的稳定变化幅度指标和水温滞后性,因此用PD控制水温的稳定。
因此,我们在软件方面分为两方面来实现,首先通过模糊控制持续加热,在对温度进行实时控制的基础上,将检测的温度同设定的目标温度相比较,当实时温度小于1.8度时,进入PD控制加热,这样就会很好的保证不会超调量过大。
然后利用PD控制,可以实现对温度的精确控制,上下幅度大约在0.3度左右。
系统框图如下:二.方案论证与比较:1. 采样电路方案一:较为便宜的18B20芯片,但由于精度只有0.5°,基本指标的变化范围是上下1°,所以就很难做到对其控制。
方案二:采用AD590采样,其精度能够控制在0.3°以内,这样就基本能够满足要求。
所以我们采取方案方案二:控制电路如果采用LM358来放大,但是它的温漂有0.5V,经过放大之后影响就很大。
所以我们采用低温漂芯片OP07来控制放大。
方案三:基于方案一和方案二的比较,我们用AD590来控制采样,用OP07来进行放大,为了使采样电压输出保持较稳定的状态,我们在放大之前还加一级电压跟随电路,同样采用运放OP07来实现。
三.电路原理及分析硬件电路:1. 采样电路AD590采样芯片是输出电流的,它随外界的温度变化而变化,输出电流为1uA/K。
西安电子科技大学《模拟电子技术》课程设计题目水温控制与检测学生姓名专业班级 11级通信工程二班学号 2011院(系)信息工程学院指导教师完成时间 2013-5-30目录绪论................................................. (4)1 课程设计的目的 (4)2 课程设计的任务与要求 (1)2.1 设计任务 (1)2.2 设计要求 (1)3 设计方案与论证 (2)3.1 方案选择与论证 (2)3.2 水温控制器的原理方框图 (2)4 设计原理与功能说明 (3)4.1 元器件选用原理 (3)4.2 总体电路图 (8)5 单元电路设计 (9)5.1 信号处理单元 (9)5.2 温度显示单元 (10)5.3 控制单元 (11)6 电烙铁的使用 (12)7 总结 (13)参考文献 (16)附录一:总体电路原理图 (17)附录二:元器件清单 (18)绪论在钢铁、机械、石油化工、电力、等工业生产中,温度是极为普遍又极为重要的热工参数之一; 随着科学技术和生产发展,需要对各种参数进行测量,温度是工业对象中主要的被控参数之一.在冶金工业,化工生产,电力工程,机械制造和食品加工等许多领域中,人们都需要对各种环境中的温度进行检测和控制,温度控制对于大型工业和日常生活用品等工程都具有广阔的应用前景.例如冶金工业中的炼钢炉温度控制、化工生产中的培养皿温度控制、食品加工车间的温度控制等。
温度控制一般指对某一特定空间的温度进行控制调节,使其达到并满足工艺过程的要求。
温度测量与控制系统是自动控制技术、计算机技术、电子技术和通信技术的有机结合,综合发展的产物。
其内容十分的丰富,它包括各种数据的采集和处理系统、自动测量系统、生产过程自动控制系统等,广泛应用于工厂自动化、商业自动化、实验室自动化等人类活动的各个领域。
随着工业的发展,对温度控制提出了更多更高的要求,因而热处理技术也向着优质、高效、节能、无公害方向发展。
DS18B20 水温控制系统(全)上个月参加的学校的电子设计大赛,说真的,参加完除了没有感受之外,剩下的感受就是很累。
我是计算机科学与技术学院的,按道理说电子大赛和我的专业根本就不怎么挂钩,不过我还是在同学的督促下“上当”了。
学校的那个信息工程的老师很奇怪,对我们专业好像及其有偏见,也怪不得他被扯下来,不让他教书了。
对我们也是非常有意见,讲说的那天,也是专门和我们做对。
这个温度控制,是用最小系统板做的。
因为我们不会硬件电路一些焊接等。
所以就找了个系统板来做.代码用了36个小时,文档用了18个小时完成。
差不多90%都是自己做的,所以我才说累。
由于代码是汇编做的,我是用Keil来调试代码的,还好最小系统板ME300B有在线仿真功能。
不过也调试了几乎100多次。
做完这个,学校还算给面子,应付我们一个三等奖。
然后他们大赛选一批人去北京培训,然后回来参加广东省的电子大赛,呵呵,当然我是被选上了,但是我从一开始不怎么想做这个,所以我不怎么想去,后来金山公司的暑假实习培训,录取了我,所以我就爽快的拒绝了去北京的那件事。
现在我觉得自己的决定还是很明智的。
呵呵,我只想做自己喜欢做的。
单片机是今年刚刚学的,然后就可以作出这么一个东西来,我觉得自己的脑子还好,至少吸收掌握的比较快,估计和我的基础有关系吧。
但是我的兴趣仍然是高级编程,Windows编程,毕竟自己学了很久了。
不想就这么放弃。
好废话不多说了,这个文档是我花了一个小时整理到博客上的,我觉得这个博客还是非常的COOL的,竟然没有字数限制。
呵呵喜欢。
以后就用你了。
这是我第一篇发表的文章,还希望大家多多留言,提出宝贵的意见。
目录一.引言...二.设计目的...三.系统功能...四.系统设备...五.温度控制总体方案与原理...1.系统模块图...2.系统模块总关系图...六.温度转换核心及其算法...1.温度传感器DS18B20原理与特性...DSl8B20的管脚及特点...DS18B20的内部结构...DS18B20的内存结构...DS18B20的测温功能...DSl820工作过程中的协议...温度传感器与单片机通讯时序...2.温度转换算法及分析...七.硬件设计说明...1.系统总体电路图...2.各个模块电路图...输入系统...输出系统...芯片系统...八.软件设计说明...1.总模块的流程图...2.各个模块的流程图...读取温度DS18B20模块的流程...键盘扫描处理流程...九.操作指引...按键功能...显示温度...设定温度...十.参考文献...程序源代码...一.引言在一些温控系统中,广泛采用的是通过热电偶、热电阻或PN结测温电路经过相应的信号调理电路,转换成A/D转换器能接收的模拟量,再经过采样/保持电路进行A/D转换,最终送入单片机及其相应的外围电路,完成监控。
水温控制系统1 方案设计与论证分析题目本文要求设计制作一个水温控制系统,控制对象为1升净水,容器为搪瓷器皿,水温可以在范围内由人工设定,并能在环境温度降低时,实现自动调整,以保持设定温度基本不变。
静态控制精度为0.2摄氏度。
并具有较好的快速性与较小的超调,以及十进制数码管显示、温度曲线打印、语音播报温度等功能。
题目对控制温度要求较高,对调节时间和超调量也有要求,因而必须要用释放的控制算法,另外,还需要显示水温和打印水温变化曲线等。
1.1 总体方案设计经过题目的分析,根据题目要求,现提出以下三种设计方案。
方案一(框图如图1)图1 一位式模拟控制方案框图此方案是传统的一位式模拟控制方案,选用模拟电路,用电位器设定给定值,反馈的温度值和设定值比较后,决定加热或不加热。
其特点是电路简单,易于实现,但是系统所地结果的精度不高并且调节动作频繁,系统静差大,不稳定。
系统受环境影响大,不能实现复杂的控制算法,难以用数码管显示,难以用键盘设定。
方案2 (框图如图2)此方案是传统的二位式模拟控制方案,其基本思想与方案一相同,但由于采用上下限比较电路,所以控制精度有所提高。
这种方法还是模拟控制方式,因此也不能实现复杂的控制算法使精度做得较高,而且仍难以用数码管显示与键盘设定。
图2 二位式模拟控制方案框图方案3 (框图如图3)图3 单片机控制方案框图此方案采用单片机系统来实现。
单片机软件编程灵活、自由度大,可用软件编程实现各种控制算法和逻辑控制。
单片机系统可用数码管显示水温的实际值,能用键盘输入设定值,并可实现打印功能。
本方案可选用SPCE061A单片机(内部含有KB的EEPROM),不需要外扩展存储器可使系统整体结构更为简单。
方案一和方案二是传统的模拟控制方式,而模拟控制系统难以实现复杂控制规律,控制方案的修改也比较麻烦,而方案三是采用单片机为控制核心的控制系统,尤其对温度控制,它可达到核心的控制系统,尤其对温度控制,它可达到模拟控制所达不到的控制效果,并且可方便实现数码显示、打印、键盘设定、报警系统所测结果精度大大提高,故经过对三种方案的比较论证,本设计采用方案三,利用单片机安一定的控制算法对采集的温度数据进行处理,得到控制量,以次控制电炉的功率,从而实现对水温的控制。
水温加热控制系统指导教师:刘高锁设计组长:路凯淇组员:田柳章诗语徐术伟管梓钰班级:L102401系别:机电系长春汽车工业高等专科学校项目任务以单片机(Atmega16)为核心的定时控制,实现水温从室温到100摄氏度之间任意设定温度的恒温控制,并能显示温度设置温度和实时温度。
基本要求1. 从键盘设定加热温度,启动系统;2. 系统能显示规定的加热温度;3. 系统能够检测到实时温度并同步显示。
知识目标1.恒温控制系统的基本控制原理与系统构成2.了解学习DS18B20的使用方法及其工作原理,编程调试DS18B20。
3.键盘的基本应用知识项目的理解与设计根据项目基本要求,设计任务主要完成对壶内的水温进行控制,在加热的过程当中对有关的数据进行处理显示。
所以我们采用了DS18B20温度传感器和BC7281,采用DS18B20温度传感器是因为测量精度高,能把测到的数据直接传送给单片机而不需要传送装置,BC7281可以实现键盘控制.一 .总体方案简图二 . 项目芯片准备1.Atmega16单片机(1)Atmega16单片机介绍 ATmega16是基于增强的AVR RISC 结构的低功耗8 位CMOS 微控制器。
ATmega16 AVR 内核具有丰富的指令集和32 个通用工作寄存器。
由于其先进的指令集以及单时钟周期指令执行时间,ATmega16 的数据吞吐率高达1 MIPS/MHz ,从而可以减缓系统在功耗和处理速度之间的矛盾。
所有的寄存器都直接与运算逻单元(ALU) 相连接,使得一条指令可以在一个时钟周期内同时访问两个独立的寄存器。
这种结构大大提高了代码效率,并且具有比普通的CISC 微控制器最高至10 倍的数据吞吐率。
(2)引脚说明显示温度单片机 键盘控制 DS18B20温度传感器输入温度VCC 电源正GND 电源地端口A(PA7..PA0) 端口B(PB7..PB0) 端C(PD7..PD0) 端口D (PC7..PC0) 均为8 位双向I/O 口,具有可编程的内部上拉电阻。
其输出缓冲器具有对称的驱动特性,可以输出和吸收大电流。
作为输入使用时,若内部上拉电阻使能,端口被外部电路拉低时将输出电流。
在复位过程中,即使系统时钟还未起振,端口处于高阻状态。
端口A 还可做为A/D 转换器的模拟输入端。
端口B C也可以用做其他不同的特殊功能.RESET 复位输入引脚。
持续时间超过最小门限时间的低电平将引起系统复位。
持续时间小于门限间的脉冲不能保证可靠复位。
XTAL1反向振荡放大器与片内时钟操作电路的输入端。
XTAL2反向振荡放大器的输出端。
AVCC AVCC是端口A与A/D转换器的电源。
不使用ADC时,该引脚应直接与VCC连接。
使用ADC时应通过一个低通滤波器与VCC 连接。
AREF A/D的模拟基准输入引脚。
3.可控硅(1)概述可控硅是可控硅整流原件的简称。
是一种具有3个PN结的四层结构的大功率半导体器件,一般由两晶闸管反向连接而成。
(2)可控硅的主要功用1.可控整流普通可控硅最基本的用途就是可控整流。
大家熟悉的二极管整流电路属于不可控整流电路。
如果把二极管换成可控硅,就可以构成可控整流电路。
2. 无触点开关可控硅一个关键用途在于做为无触点开关。
在自动化设备中,用无触点开关代替通用继电器已被逐步应用。
其显著特点是无噪音,寿命长。
(3)可控硅的优点可控硅和其它半导体器件一样,其有体积小、效率高、稳定性好、工作可靠等优点。
它的出现,使半导体技术从弱电领域进入了强电领域,成为工业、农业、交通运输、军事科研以至商业、民用电器等方面争相采用的元件。
4. DS18B20温度传感器(1)DS18B20概述 DS18B20 是Dallas 半导体公司推出的单线数字式测温芯片,它的体积小适用电压更宽。
他能实现采集温度数据,并将数据直接转换 成数字量输出。
DS18B20的管脚排列如下:(2)DS18B20的内部结构DS18B20内部结构主要由四部分组成:64位光刻ROM 、温度传感器、非挥发的温度报警触发器TH 和TL 、配置寄存器。
DQ 为数字信号输入/输出端VDD 为外接供电电源输入端(在寄生电源接线方式时接地)GND 为电源地1.光刻ROM中的64位序列号是出厂前被光刻好的,它可以看作是该DS18B20的地址序列码。
光刻ROM的作用是使每一个DS18B20都各不相同,这样就可以实现一根总线上挂接多个DS18B20的目的。
2.DS18B20中的温度传感器可完成对温度的测量,以12位转化为例:以16位符号扩展的二进制补码读数形式提供,以0.0625℃/LSB形式表达,其中S为符号位。
这是12位转化后得到的12位数据,存储在18B20的两个8比特的RAM 中,二进制中的前面5位是符号位,如果测得的温度大于0,这5位为0,只要将测到的数值乘于0.0625即可得到实际温度;如果温度小于0,这5位为1,测到的数值需要取反加1再乘于0.0625即可得到实际温度。
3.温度传感器的储存器DS18B20温度传感器的内部存储器包括一个高速暂存RAM和一个非易失性的可电擦除的EEPRAM,后者存放高温度和低温度触发器TH,TL的结构寄存器。
4.配置寄存器该字节各位的意义低五位一直都是1,TM是测试模式位,用于设置DS18B20在工作模式还是在测试模式。
在DS18B20出厂时该位被设置为0,用户不要去改动。
R1和R0用来设置分辨率,如下表所示,(DS18B20出厂时被设置为12位)(3)完成温度转换根据DS18B20的通讯协议,主机控制DS18B20完成温度转换必须经过三个步骤:每一次读写之前都要对DS18B20进行复位,复位成功之后发送一条ROM指令,最后发送RAM指令,这样才能对DS18B20进行预定操作。
复位要求主CPU将数据线下拉500微秒,然后释放,DS18B20收到信号后等待16—60微秒左右,后发出60—240微秒的存在低脉冲,主CPU收到此信号表示复位成功。
程序#include<iom16v.h>#include<macros.h>#include<delay.h>#include"BC7281.h"#define port PORTA //定义A口为port#define ddrt DDRA //定义ddrt#define D0 0x20 //定义D0#define pin PINA // 定义PINunsigned int temprter;temprter1;/*******************************************************//****** 函数名称: init_1820() ******//****** 功能: 复位18B20 ******//****** 参数: 无 ******//****** 返回值 : 无 ******//*******************************************************/void init_1820(void){ddrt|=D0; //设置端口输出port|=D0; //输出一个脉冲port&=~D0;delay_nus(600); //延时480us以上port|=D0; //输出一个脉冲ddrt&=~D0;delay_nus(60); //15~60uswhile(pin&D0); //等待应答ddrt|=D0; //设置输出port|=D0; //输出高电平delay_nus(200); //60~240us}/*******************************************************//****** 函数名称: write_1820() ******//****** 功能: 写18B20 ******//****** 参数: x--要写的数据 ******//****** 返回值 : 无 ******//*******************************************************/ void write_1820(unsigned char x){unsigned char m;for(m=0;m<8;m++){port&=~D0; //写数据,从低位开始if(x&(1<<m)) //判断数据极性port|=D0;elseport&=~D0;delay_nus(60); //延时15~60usport|=D0;}port|=D0; //结束写数据,置高总线}/*******************************************************//****** 函数名称: read_1820() ******//****** 功能: 读18B20 ******//****** 参数: 无 ******/ /****** 返回值 : 读取的数据 ******/ /*******************************************************/ unsigned char read_1820(void){unsigned char temp=0,k,n;for(n=0;n<8;n++){port&=~D0; //输出一个起始脉冲port|=D0;ddrt&=~D0; //设端口为输入k=(pin&D0); //读数据,从低位开始if(k) //判断数据极性temp|=(1<<n);elsetemp&=~(1<<n);delay_nus(80); //延时60~120usddrt|=D0; //设端口为输出}return (temp); //返回读出的数据}/*******************************************************/ /****** 函数名称: Read_1820_temprter() ******/ /****** 功能: 读取18B20温度 ******/ /****** 参数: 无 ******/ /****** 返回值 : 读取的温度数据 ******/ /*******************************************************/ unsigned int Read_1820_temprter(void){unsigned int count;unsigned char temh,teml;init_1820(); //复位18b20write_1820(0xcc); //发出转换命令write_1820(0x44);delay_nus(400);init_1820();delay_nus(400);write_1820(0xcc); //发出读命令write_1820(0xbe);teml=read_1820(); //读数据temh=read_1820();count=(temh*256+teml)*6.25; //计算具体温度return count;//返回温度数据}/*******************************************************/ /****** 函数名称: main() ******/ /****** 功能: 读取18B20温度,在数码管显示 ******/ /****** 参数: 无 ******/ /****** 返回值 : 无 ******/ /*******************************************************/ void main(void){INT0_Init();BC7281_init();DDRB=0xff;while(1){temprter=Read_1820_temprter(); //读取温度a=(temprter%10000)/1000;b=((temprter%10000)%1000)/100;c=(((temprter%10000)%1000)%100)/10;d=(((temprter%10000)%1000)%100)%10;if(flag6==1){write7281(0x15,(0x00+(d&0x0f)));write7281(0x15,(0x10+(c&0x0f)));write7281(0x15,(0x20+(b&0x0f)));write7281(0x15,(0x30+(a&0x0f)));}temprter1=a*10+b;if(temprter1>(zhi-4)){PORTB=0x00;}if(temprter1<(zhi-4)){PORTB=0xff;}/*write7281(0x15,(0x70+shi));write7281(0x15,(0x60+ge));*/}}BC7281程序#define ksetclk PORTA|=(1<<7) //时钟置1#define koutclk DDRA|=(1<<7) //时钟置输出#define klowclk PORTA&=~(1<<7) //时钟清0#define kinclk DDRA&=~(1<<7) //时钟置输入#define ksetdat PORTA|=(1<<6) //数据置1#define koutdat DDRA|=(1<<6) //数据置输出#define klowdat PORTA&=~(1<<6) //数据清0#define kindat DDRA&=~(1<<6) //数据置输入volatile unsigned char GB_Number;GB_Number1;extern unsigned char a=0,b=0,c=0,d=0;extern unsigned char flag1=0,flag2=0,flag3=0;extern unsigned char flag4=0,flag5=0,flag6=0;unsigned char shi,ge,zhi;/*******************************************************//****** 函数名称:send_byte() ******//****** 功能:发送一个字节的数据 ******//****** 参数: send_byte 返回值 : 无 ******//*******************************************************/void keybyte_out(unsigned char send_byte){unsigned char bit_counter;do{klowclk; //clk置0 delay_nus(8);ksetclk; //clk置1 } while ((PINA&0X40)==0x40); //当DAT=1 klowclk; //clk置0delay_nus(8);ksetclk; //clk置1while (!((PINA&0X40)==0x40)); //当DAT=1,开始发送数据koutdat;for (bit_counter=0;bit_counter<8;bit_counter++){ // 发送8个比特if ((send_byte&0x80)==0){klowdat; // 如果待发bit为0, 置dat 为0}else{ksetdat; // 反之为DAT 1}send_byte=send_byte*2; // send_byte左移一位 klowclk; //CLK置0delay_nus(8);ksetclk; // CLK回1delay_nus(8); //短暂延时}ksetdat;kindat;delay_nus(20); //指令间设置一个微小延时}/*******************************************************//****** 函数名称: receive_byte() ******//****** 功能: 接收一个字节的数据 ******//****** 参数: 无 ******//****** 返回值 : in_byte ******//*******************************************************/unsigned char keybyte_in(void){unsigned char bit_counter;unsigned char in_byte=0;ksetdat;kindat;// ----产生一个clk脉冲----klowclk; //CLK=0delay_nus(8);ksetclk; //CLK=1delay_nus(8);while ((PINA&0X40)==0x40); //等待BC728X响应dat低电平// 产生一个clk脉冲klowclk; //CLK=0delay_nus(8);ksetclk; //CLK=1delay_nus(8);// ---接收8个bit---for (bit_counter=0;bit_counter<8;bit_counter++){delay_nus(8); // 短暂延时in_byte=in_byte*2; // in_byte左移一位if ((PINA&0X40)==0x40) // 如果dat为'1'{in_byte=in_byte|0x01; // bit0=1}//---产生一个clk脉冲---klowclk; //CLK=0delay_nus(8);ksetclk; //CLK=1}klowclk;delay_nus(8);ksetclk;delay_nus(20); //指令间设置一个微小延时return(in_byte);}/*******************************************************//****** 函数名称: BC7281_init() ******//****** 功能: 初始化 BC7281 ******/void BC7281_init(){unsigned int tmr;ksetclk; //CLK=1koutclk; //CLK设置成输出for(tmr=0;tmr<0xffff;tmr++); // 等待BC728x完成复位(延时等待) write7281(0x12,0x80); // 初始化BC728x 为164模式,不反相}/*******************************************************//****** 函数名称: write7281() ******//****** 功能: 向7281地址里写入数据 ******//****** 参数: reg_add , write_data ******//****** 返回值 : 无 ******//*******************************************************/void write7281(unsigned char reg_add, unsigned char write_data){keybyte_out(reg_add); //发送寄存器地址keybyte_out(write_data); //发送数据字节}/*******************************************************//****** 函数名称: read7281 () ******//****** 功能: 从7281地址里读数据 ******//****** 参数: reg_add ******//****** 返回值 : receive_byte() ******//*******************************************************/unsigned char read7281(unsigned char reg_add){keybyte_out(reg_add|0x80); // 发送读指令(bit7=1)return(keybyte_in()); //接收数据并返回}void Show_BC7281(unsigned char data) //---bc7281数码管显示数据----{unsigned char i;for(i=0;i<8;i++){write7281(0x15,(i*0x10+(data&0x0f)));}}void INT0_Init() //---外部中断0初始化---{CLI();MCUCR=0x00; //1 1 up 1 0 down |=BIT(ISC01)|BIT(ISC00)GIFR|=BIT(INTF0);GICR|=BIT(INT0);DDRD&=~BIT(2); ///********* set INT0 as input pin ********** PORTD|=BIT(2);SEI(); //register high}//---bc7281中断处理---#pragma interrupt_handler int0_isr:2void int0_isr(void){GB_Number=read7281(0x13); //读取按键值GB_Number1=read7281(0x13);if((GB_Number==0X0C)&&(flag1==0))//显示温度{CLI();write7281(0x15,(0x00+(d&0x0f)));write7281(0x15,(0x10+(c&0x0f)));write7281(0x15,(0x20+(b&0x0f)));write7281(0x15,(0x30+(a&0x0f)));write7281(0x18,0x17);GB_Number=0xff;flag6=1;SEI();}if((GB_Number==0X0D))//显示温度{CLI();write7281(0x15,(0x00+(0&0x0f)));write7281(0x15,(0x10+(0&0x0f)));write7281(0x15,(0x20+(0&0x0f)));write7281(0x15,(0x30+(GB_Number&0x0f)));GB_Number=0xff;flag6=0;flag3=1SEI();}if(flag3==1)//设置温度时数值的十位和个位输入{if(GB_Number<10){ flag4++;switch(flag4){case 1:{shi=GB_Number;GB_Number=0xff;}break;case2:{ge=GB_Number;flag4=0;flag3=2;GB_Number=0xff;}break;default:break;}}}if(flag3==2)//合成十位和个位{zhi=shi*10+ge;write7281(0x15,(0x70+shi));write7281(0x15,(0x60+ge));flag3=0;}}遇到的问题1.下不进程序以为芯片坏了,经过检查是芯片被锁,对芯片进行解锁。