温度控制器的设计与制作共13页
温度控制器的设计与技巧
放大 元件基极 电流 的很小变化就 能使集 电极 电流有很大 的变 控 硅 SCR的 控 制 极 与 阴 极 之 间 就 电 阻 较 大 ,有 一 定 的 控 制
化 ,在其集 电极 电阻上会产生较高 的电压变化 ,该 电压变化 电压 ,控 制 极 与 阳 极 之 间就 导通 ,负 载 RL中 就 有 电 流通 过 ,
原理 进行 必 要 的研 究。
下 降 到 规 定 值 时 , Rt的 电 阻 值 就 增 大 到 合 适 值 一_÷Rt上
1.恒温控制方案介绍
电 压 就 相 应 地 增 大 到 合 适 值 一-÷Vl基 极 电流 就 增 大 到 合 适 值 一_÷Vl的集 电极 电流就放大到合适值 一-÷R2上 电压就放
二 极 管 :D6、D3、D2、D1为 整 流 二 极 管, 如 1N4001~ 1N4005;DIO、 D9、 D8、D7也 是 整 流 二 极 管 ,由可控硅 SCR决定其工作 电流 :D5为 1.5V的红色发光
LED。
三极管 :V1为 9015型 ;V2和 V3为 9014型。 电阻:Rt= lkQ(负温度 系数),Rpl: lOkD微调 电阻,
WWW ele169 ̄om l 43
如图 l'恒温控制 电路系统 由温度 探头 ,温度探 头感 觉 大到合适 值 一_÷V2就变成饱和而 导通 一_÷V2的集 电极 电位
到的微小 信号作为放大 元件 的基极信 号;放大元件运用 的三 就下 降到饱和值 一_÷V3的集 电极 电位就升高到截止值 一_÷D4
极管 是 PNP型,开关元件运用 的三极管是 NPN型 ,于是 , 与 D5中无 电流就 不发光 ,光电耦合器 中的 V4不 导通,可
关键词 :传感元件;可控硅 ;恒温控 制;加热元件
20 智能温度控制器操作手册》
DC200B-20DF 智能温度控制器说明书DC200B-20DF智能温度控制器概述智能温度控制器,配合美国DALLAS 专用总线式温度传感器,基于工业用MODBUS-RTU 协议,实现低成本温度状态在线监测与控制的的实用型一体化设备,本仪器可应(1)SMT 行业温度数据监控 (2) 电子设备厂温度数据监控(3) 冷藏库温度监测(4) 仓库温度监测 (5) 药厂GMP 监测系统(6) 环境温度监控(7) 电信机房温监控 (8)空调控制系统及其它节能应用需求场合。
为便于工程组网及工业应用,本模块采用工业广泛使用的MODBUS-RTU 通讯协议,支持二次开发,并提供随机测试与二次开发软件。
用户只需根据我们的通讯协议即可使用任何串口通讯软件实现模块数据的查询和设置。
主要特点:• 21路一线温度采集• 20路与参照温度差值报警, • 支持350米超长传感器总线; • 可一键自动搜索传感器;• 一键批量读取或设置报警差值;• 基于MODBUS-RTU协议,可直接与PLC或组态软件连接; • 强大的通讯功能,随机配送二次开发软件技术参数参数值显示测温范围 -40℃~+100℃ 测温精度 ±0.5℃(0-85℃) 波特率 9600 通讯端口 RS485供电电源 总线供电,DC7V-36V 1A 耗电 2W存储温度 -40 - 85℃ 运行环境: -40 - 85℃外形尺寸 155×111×60mm³DC200B-20DF控制接口带载能力 2A 120V AC | 2A 24V DC接口说明1.电源及RS485接口如右图所示,该接口共有4个引脚,其中VCC、GND为供电电源,A、B为RS485通讯接口。
引脚定义如下:【B】脚—B- 【A】脚—A+【VCC】DC 6-37V+ 【GND】DC 6-37V-2.传感器接口及继电控制触点输出如上图所示,仪器共有上下两个接线排,下侧接线排引脚如上图所示,前3个引脚为传感器引脚,其余的为控制输出接线排。
温度控制器的设计与制作
6.4实施—制作过程6.4.1硬件设计温度测量采用最新的单线数字温度传感器DS18B20,DS18B20是美国DALLAS 半导体公司最新推出的一种改进型智能温度传感器。
与传统的热敏电阻相比,它能够直接读出被测温度并且可根据实际要求通过简单的编程实现9~12位的数字值读数方式。
可以分别在93.75ms 和750ms 内完成9位和12位的数字量,并且从DS18B20读出的信息或写入DS18B20的信息仅需要一根口线(单线接口)读写,温度变换功率来源于数据总线,总线本身也可以向所挂接的DS18B20供电,而无需额外电源。
因而,使用DS18B20可使系统结构更趋简单,可靠性更高。
降温控制系统采用低压直流电风扇。
当温度高于设定最高限温度时,启动风扇降温,当温度降到指定最高限温度以下后,风扇自动停止运转。
温控系统的温度显示和温度的设定直接采用综合实训板上的显示和键盘。
当环境温度低于设定的最低限温度值时,也采用综合实训板上的蜂鸣器进行报警。
用0#、1#键作为温度最高限、最低限的设定功能键;2#、3#键作为温度值设定的增加和减小功能键。
0#键:作为最高限温度的设定功能键。
按一次进入最高限温度设定状态,选择最高限温度值后,再按一次确认设定完成。
1#键:作为最低限温度的设定功能键。
按一次进入最低限温度设定状态,选择最低限温度值后,再按一次确认设定完成。
2#键:+1功能键,每按一次将温度值加1,范围为1~99℃。
3#键:-1功能键,每按一次将温度值减1,范围为99~1℃。
6.4.2软件设计(1)温控系统采用模块化程序结构,可以分成以下程序模块:①系统初始化程序:首先完成变量的设定、中断入口的设定、堆栈、输入输出口及外部部件的初始化工作。
②主程序MAIN :完成键盘扫描、温度值采集及转换、温度值的显示。
当温度值高于设定最高限时,驱动风扇工作;当温度值低于设定最低限时,驱动蜂鸣器报警。
③键盘扫描程序KEYSCAN :完成键盘的扫描并根据确定的键值执行相应的功能,主要完成最高温度、最低温度的设定。
温度控制系统的设计与实现
温度控制系统的设计与实现汇报人:2023-12-26•引言•温度控制系统基础知识•温度控制系统设计目录•温度控制系统实现•温度控制系统应用与优化01引言目的和背景研究温度控制系统的设计和实现方法,以满足特定应用场景的需求。
随着工业自动化和智能制造的快速发展,温度控制系统的性能和稳定性对于产品质量、生产效率和能源消耗等方面具有重要影响。
03高效、节能的温度控制系统有助于降低生产成本、减少能源浪费,并提高企业的竞争力。
01温度是工业生产过程中最常见的参数之一,对产品的质量和性能具有关键作用。
02温度控制系统的稳定性、准确性和可靠性直接关系到生产过程的稳定性和产品质量。
温度控制系统的重要性02温度控制系统基础知识温度控制系统的性能指标包括控制精度、响应速度、稳定性和可靠性等,这些指标直接影响着系统的性能和效果。
温度控制原理是利用温度传感器检测当前温度,并将该信号传输到控制器。
控制器根据预设的温度值与实际温度值的差异,通过调节加热元件的功率来控制温度。
温度控制系统通常由温度传感器、控制器和加热元件组成,其中温度传感器负责检测温度,控制器负责控制加热元件的开关和功率,加热元件则是实现温度升高的设备。
温度控制原理温度传感器是温度控制系统中非常重要的组成部分,其工作原理是将温度信号转换为电信号或数字信号,以便控制器能够接收和处理。
常见的温度传感器有热敏电阻、热电偶、集成温度传感器等,它们具有不同的特点和适用范围。
选择合适的温度传感器对于温度控制系统的性能和稳定性至关重要。
温度传感器的工作原理加热元件的工作原理加热元件是温度控制系统中实现温度升高的设备,其工作原理是通过电流或电阻加热产生热量,从而升高环境温度。
常见的加热元件有电热丝、红外线灯等,它们具有不同的特点和适用范围。
选择合适的加热元件对于温度控制系统的性能和安全性至关重要。
控制算法是温度控制系统的核心部分,其作用是根据预设的温度值和实际温度值的差异,计算出加热元件的功率调节量,以实现温度的精确控制。
温度控制器实验报告
温度控制器实验报告目录一、实验概述 (2)1. 实验目的 (2)2. 实验设备与材料 (2)3. 实验原理 (3)二、实验内容与步骤 (4)1. 实验内容 (5)1.1 温度控制器的基本操作 (6)1.2 温度控制器的参数设置与调整 (7)2. 实验步骤 (8)2.1 安装温度控制器 (9)2.2 校准温度计 (9)2.3 设置温度控制器参数 (11)2.4 观察并记录实验数据 (13)2.5 分析实验结果 (13)三、实验数据与结果分析 (14)1. 实验数据 (15)1.1 温度控制器的温度读数 (17)1.2 温度控制器的设定温度 (18)1.3 温度控制器的实际输出温度 (19)2. 结果分析 (19)2.1 温度控制器的性能评价 (20)2.2 温度控制器在不同条件下的适应性分析 (21)四、实验结论与建议 (22)1. 实验结论 (23)2. 实验建议 (24)一、实验概述本实验旨在通过设计和制作一个温度控制器,让学生了解温度控制器的基本原理、结构和工作原理,并掌握温度控制器的制作方法。
学生将能够熟练掌握温度控制器的设计、制作和调试过程,为今后从事相关领域的工作打下坚实的基础。
本实验的主要内容包括,在实验过程中,学生将通过理论学习和实际操作相结合,全面掌握温度控制器的相关知识和技能。
1. 实验目的本实验旨在探究温度控制器的性能及其在实际应用中的表现,通过一系列实验,了解温度控制器的控制原理、操作过程以及性能特点,验证其在实际环境中的温度控制精度和稳定性。
本实验也旨在培养实验者的实践能力和问题解决能力,为后续相关领域的深入研究和实践打下坚实的基础。
2. 实验设备与材料温度控制器:作为实验的核心设备,本实验选择了高精度数字式温度控制器,具备较高的稳定性和精确度,能够确保实验结果的可靠性。
恒温箱实验箱:为了模拟不同的环境温度,采用了具有温控功能的恒温箱或实验箱。
通过调节箱内的温度,可以观察温度控制器在不同环境下的表现。
PID温度控制器的设计
1
(1)在对温度控制发展现状、系统控制要求进行研究的基础上,选择了整个控制系统的控制方案;
(2)完成系统的硬件设计,包括采样电路、A/D转换电路、主控制电路、保护电路等等的设计;
(3)完成该系统的软件设计,包括主程序模块、控制运算模块、数据输入输出及处理模块等一些子功能模块的设计;
1.
采用PID控制原理研制成适合用于小功率器件的温度控制器,该控制器能达到很好的控制效果,若精心选择PID的各种参数,温度控制的精度可以达到0.05℃,完全可以保证器件的正常工作。在一定的控制系统中,首先将需要控制的被测参数(温度)由传感器转换成一定的信号后再与预先设定的值进行比较,把比较得到的差值信号经过一定规律的计算后得到相应的控制值,将控制量送给控制系统进行相应的控制,不停地进行上述工作,从而达到自动调节的目的。PID是目前广泛使用的控制方法,其控制规律的数学模型为:
实现PID控制原理的具体方法因系统的不同而不同。在我们的系统中,采用了增量式计算方法,而控制量的输出则采用了位置式的输出形式。在数值控制系统中,其控制规律的数学模型演化为:
其中:T为采集周期;ei、ei-1、ei-2为此时刻、前一时刻、再前一时刻的差值信号。这种方法的好处在于只需保持前三时刻的差值信号,同时输出控制量的初始设定值不必准确,就能较快地进入稳定控制过程。
PID控制器的参数整定是控制系统设计的核心内容。它是根据被控过程的特性确定PID控制器的比例系数、积分时间和微分时间的大小。PID控制器参数整定的方法很多,概括起来有两大类:一是理论计算整定法。它主要是依据系统的数学模型,经过理论计算确定控制器参数。这种方法所得到的计算数据未必可以直接用,还必须通过工程实际进行调整和修改。二是工程整定方法,它主要依赖工程经验,直接在控制系统的试验中进行,且方法简单、易于掌握,在工程实际中被广泛采用。PID控制器参数的工程整定方法,主要有临界比例法、反应曲线法和衰减法。三种方法各有其特点,其共同点都是通过试验,然后按照工程经验公式对控制器参数进行整定。但无论采用哪一种方法所得到的控制器参数,都需要在实际运行中进行最后调整与完善。现在一般采用的是临界比例法。利用该方法进行PID控制器参数的整定步骤如下:(1)首先预选择一个足够短的采样周期让系统工作;(2)仅加入比例控制环节,直到系统对输入的阶跃响应出现临界振荡,记下这时的比例放大系数和临界振荡周期;(3)在一定的控制度下通过公式计算得到PID控制器的参数。
基于78F9234单芯片的数字温度控制器的设计与制作
基于78F9234单芯片的数字温度控制器的设计与制作Minli Tang , Hengyu Wu(Corresponding author),Baoru HanDepartment of Electronic Engineering,Hainan Software Profession Institute Qionghai,Hainan ,571400 ,Chinagslstml@ , whytml@,6183191@摘要:该系统是一个以78F9234单片机控制核心的模型,采用DS18B20温度传感器采集温度数据,数码管显示器显示温度数据,温度控制键的上下来调节温度上升和下降,还有加热指示设备,过热保护和蜂鸣器报警功能,以及单片机的烧写口和防死机电路。
该系统使用方便,成本相对较低,在不增加硬件成本的前提下可以通过控制系统软件进一步提高其扩展功能,这也将提高温度控制器的性价比。
关键词:单片机78F9234 ;自动控制技术;数字式温度控制器;介绍温度是在工业自动化,家庭电器,环境保护,安全生产,汽车产业等领域中最基本的检测参数之一。
因此,温度检测是非常重要的。
随着科学技术的发展,企业提出了更高的要求,希望利用新的检测方法,以生产出适应性强,精度更高,更稳定并且智能的新一代温度检测系统。
本文将单芯片数字控制技术整合进数字温度控制技术的设计当中,设计出了一种新型的数字化温度控制系统。
整体设计方案微控制器的数字控制系统的温度控制装置,是基于以78F9234为核心的单片机。
整个系统的硬件组成包括键盘输入电路,单片机控制,加热指示电路,过热保护电路,温度检测电路,数码显示电路,控制和防死机电路,报警电路,和烧写口部分。
微控制器的设计图数字温控装置如图1。
该系统可通过键盘输入,可以根据需要预先设定控制温度,然后系统自动完成预设的任务。
同时,系统显示模块可实时显示当前系统的温度。
78F9234单片机是整个温度控制系统的核心部件。
温度的检测显示和控制器的设计制作
一、实验目的1.学习温度传感器的原理、特性及基本使用方法。
2.熟悉集成运算放大器在测量电路中的实际运用。
3.学习并掌握对非电量信号的检测与控制及其电路的设计与调试。
二、实验原理温度检测电路是由温度传感器、调整放大电路等构成,温度值的数字显示由A/D 转换器级相应的显示电路等构成,检测电路与显示电路构成温度的测量系统。
根据温度的测量值与预先设定的值进行比较,决定被控制对象是否进行加热从而使被控制对象的温度维持在设定值附近就构成了温度控制系统,温度的控制系统由温度设定电路,比较控制电路和驱动加热电路构成。
如下图所示为测量与控制系统的系统原理方框图。
系统原理方框图1、温度传感器本设计采用的是集成温度传感器LM35,LM35是美国国家半导体公司生产的,具有很高的工作精度和较宽的的线性工作范围,工作电压范围为4~30v。
其输出电压与摄氏温度成线性比例关系,非线性温度误差低于 0.25℃,线性的温度系数为+10mv/℃,无需其外部校准或微调。
输出电压与温度的表达式为Uout=10mv/°C×t°CLM35的典型应用如下图,其供电模式有单电源与正负双电源两种模式。
正负双电源模式可提供-55℃到150℃的全程范围测量;单电源供电模式在25℃下的电流约为50uA。
温度传感器LM35测量温度的范围0到100℃,其输出电压范围为0到1v。
LM35两种供电模式2、控制驱动电路系统控制就是为了克服各种扰动的影响,对系统中的某一个或某一物理量进行偏差纠正的运行,已达到预期的系统稳定目标。
最基本的的控制方式就是闭环控制,也称反馈控制。
其要解决的主要问题是系统动态过程和稳态时的性能,归结为三个字:稳、快、准。
自动控制系统简单说是由被控制的装置和被控制的对象组成,就是在无人直接参与的情况下,通过外加的装置(控制器),使被控制对象的某个工作状态或参数(被控量)自动的按照预定的要求运行。
下图为温度自动控制系统的工作原理图。
温度控制器的设计与制作
温度控制器的设计与制作一、功能要求设计并制作一个温度控制器,用于自动接通或断开室内的电加热设备,从而使室内温度达到设定温度要求,并能实时显示室内温度。
当室内温度大于等于设定温度时,控制器断开电加热设备;当室内温度比设定温度小2时,控制器接通电加热设备。
控温范围:0~51控温精度:≤1二、硬件系统设计1.硬件系统由七部分组成,即单片机及看门狗电路、温度检测电路、控制输出电路、键盘电路、显示电路、设置温度储存电路及电源电路。
(1)单片机及看门狗电路根据设计所需的单片机的内部资源(程序存储器的容量、数据存储器的容量及I/O口数量),选择AT89C51-24PC较合适。
为了防止程序跑飞,导致温度失控,进而引起可怕的后果,本设计加入了硬件看门狗电路IMP813L,如果它的WDI脚不处于浮空状态,在1.6秒内WDI不被触发(即没有检测到上什沿或下降沿),就说明程序已经跑飞,看门狗输出端WDO将输出低电平到手动复位端,使复位输出端RST发出复位信号,使单片机可靠复位,即程序重新开始执行。
(注:如果选用AT89S51,由于其内部已具有看门狗电路,就不需外加IMP813L)(2)温度检测电路温度传感器采用AD590,它实际上是一个与绝对温度成正比的电流源,它的工作电压为4~30V,感测的温度范围为-550C~+1500C,具有良好的线性输出,其输出电流与温度成正比,即1μA/K。
因此在00C时的输出电流为273.2μA,在1000C时输出电流为373.2μA。
温度传感器将温度的变化转变为电流信号,通过电阻后转变电压信号,经过运算放大器JRC4558运算处理,处理后得到的模拟电压信号传输给A/D转换部分。
A/D转换器选用ADC0804,它是用CMOS集成工艺制成的逐次逼近型模数转换芯片,分辨率8位,转换时间100μs,基准电压0~5V,输入模拟电压0~5V。
(3)控制输出电路控制信号由单片机的P1.4引脚输出,经过光耦TLP521-1隔离后,经三极管C8550直接驱动继电器WJ108-1C-05VDC,如果所接的电加热设备的功率≤2KW,则可利用继电器的常开触点直接控制加热设备,如果加热设备的功率>2KW,可以继电器控制接触器,由接触器直接控制加热设备。
实训一 温度控制电路设计
实训一温度控制电路设计
1、实训目的
1)熟悉PTC元件的特性;
2)学会使用专用集成电路TC620组成温度控制的典型应用。
2、温度集成电路知识
1)PTC元件基本特性
在正常工作范围内时,阻值随着温度的升高而升高的元件称为正温度系数热敏电阻,简称PTC元件。
PTC最重要的指标是居里温度点,当温度低于居里温度时,PTC元件电阻随温度变化非常缓慢,当超过居里温度时,阻值急剧增大。
PTC元件广泛用于恒温控制、过热保护、温度补偿等场所。
2)温度控制器
本实验所用到的TC620是一款可编程逻辑输出温度探测器,具体应用参数指标见TC620 datasheet。
TC620工作原理如图1.1所示。
图1-1
TC620结构框图如图1.2所示。
3、实训原理
RSL接120k,对应温度是35度。
基于单片机的温度控制器设计
3 温度数 据 的处理 方法
温度 的数据需要一定 的处理 ,一般来说 ,在读 出的两字节的二进制 值温度 , 需要转换成为十进制 的数值 , 才能输出显示 出来。相对起来 , 1位的分辨率温度都是以0 6 5 2 . 2 步进的 , 由于两个字节 的温度采用补 0 而 码来表示 ,所以必须要先进行判断才能读出温度 的最高位数 ,也就是说 才能判 断得出是正还是负,然后才能求补码转化成正温。如果读出来 的 温度数值是负的,在进行显示处理的时候 , 在温度数的前面人为显示 负 号就可 以了。需要注意 的是 , 在小数部分 的温度需要将4 位乘 以0 6 5 .2, 0
8 2
应用科学
科 第期 2年 1 0 9 1 霸 O
基于单片机 的温度控制器设 计
张 佳 贤
( 江阴华姿职业学 校 ,江苏江阴 2 4 0 14 0)
摘 要 在我们 的 日常生活 中,尤其 是在科研生产 以及教学实验 的过 程中 ,时常需要 检测 温度 以及控制 温度 ,在这个 过程中 ,利用单 片机
应 的处 理 。
然后对乘积取其小觌 后的一位数。
4 湿度控 翩器 的软 件设计
温度控制器的软件设计是在单片机上并 由它来进行控制工作 。主控 的程序包括 :初始化 ;键盘显示管理 ; 各子程序调用。铂 电阻的电阻值 与其所受 的温度并不完全是线性的 ,正是 因为这样 , 才设计了非等距分 段线险插值线哇化程序来对铂 电阻进行非线性进行补偿。
能够有效 的提高测量效果 。在此进行简单 的分析探讨 。 关 键词 单片机 ;温度 ;控制 ;设计
中 豳分 类号 T 3 文 献标 识码 A 文 章 编号 17—6 1( 1) 10 8— 1 P 63 97一2 01 — 020 0 0
基于单片机的空调温度控制器的设计
基于单片机的空调温度控制器设计The design of air conditioning temperature controller based on MCU学院:信息科学与工程专业班级:测控技术与仪器1003班学号:100401316学生姓名:刘和平指导教师:颜华(教授)2014 年6 月摘要随着经济的发展和人们生活水平的提高,空调机受到了广泛的应用。
空调机的温度控制器主要是由温度传感器感受室内温度变化,将采集到的温度信号处理后与设定的温度值进行比较,控制继电器的通断,使温度被控制在设定值左右,使空调器的工作状态随着人们要求和环境状态而自动变化,迅速准确的达到人们的要求,并使空调器的工作状态保持在最合理的状态下。
在工农业生产、科学研究和在人们的生活领域中,温度测控系统占有很重要的地位,得到了广泛的应用。
因此,温度传感器的应用数量居各种传感器之首。
目前,温度传感器正从模拟式向数字集成式方向飞速发展。
本文主要从硬件和软件两方面介绍了单片机温度控制系统的设计。
该系统以STC12C5608AD单片机为核心,主要由温度检测电路、按键与显示电路、继电器控制电路等构成。
在本系统中,主要是同过DS18B20采集被测温度并转换成数字信号送单片机,以单片机为核心数据处理系统,通过两位数码管,显示设定温度,通过继电器来控制压缩机、四通阀从而控制空调制冷或制热。
本论文概述了温控器的发展及基本原理,介绍了温度传感器的原理及特性,分析了DS18B20温度传感器的优劣。
在此基础上描述了系统研制的理论基础,对测温系统的一些主要参数进行了讨论。
同时在介绍温度控制系统功能的基础上,提出了系统的总体构成。
针对测温系统温度采集、接收、处理、显示部分的总体设计方案进行了论证,进一步介绍了单片机在系统中的应用,分析了系统各部分的硬件及软件实现。
关键词:DS18B20;单片机;温度控制;空调AbstractWith the development of economy and the improvement of people's living standard, the air conditioner has been widely applied. Temperature controller of air conditioner is mainly composed of sensors to monitor indoor temperature, the temperature signal processing the collected with the set temperature value, to control the on-off relay, the temperature is controlled in the set value, the air conditioner working condition with people demand and the state of the environment changes rapidly and automatically, accurate to the requirements of the people, and make the air conditioner working state is maintained in a reasonable state. In the industrial and agricultural production, scientific research and in people's lives, temperature measurement and control system plays a very important role, has been widely applied. Therefore, the number of temperature sensor applications of various sensors of the first home. At present, the temperature sensor from analog to digital integrated development.This paper mainly describes the hardware and software aspects of the design of single-chip temperature control system. The system STC12C5608AD microcontroller core, mainly by the temperature detection circuit, buttons and display circuit, relay control circuit, etc.. In this system, mainly through the DS18B20 collection with the measured temperature and converted into a digital signal sent to the microcontroller, microcontroller as the core data processing system, through two digital tube display set temperature, the compressor is controlled by relays, Stone valve to control the air conditioning, refrigeration or heating. This paper outlines the development and the basic principles of the thermostat, introduced the principle and characteristics of the temperature sensor. Analysis of the merits of the DS18B20 temperature sensor. Based on this description of the theoretical basis for the development of the system, some of the key parameters of the measurement system were discussed. While the introduction of a temperature control system functions is proposed based on the overall structure of the system. Temperature measurement system for collecting, receiving, processing, display part of the overall design has been demonstrated, further describes the SCM applications in the system, and analyzes the various parts of the system hardware and software.Keywords: DS18B20; single chip microcomputer; temperature control; air conditioningII目录摘要 (I)Abstract (II)第1章绪论 (1)1.1 课题研究目的 (1)1.2 课题研究意义 (1)第2章系统总体方案设计 (3)2.1 温度传感器产品分类与选择 (3)2.1.1 常用的测温方法 (3)2.1.2 温度传感器产品分类 (3)2.1.3 温度传感器的选择 (5)2.2 总体方案的确定 (6)2.3 系统实现框图 (7)第3章系统单元电路设计 (8)3.1 系统相关硬件及模块介绍 (8)3.1.1 温度采集电路 (8)3.1.2 STC12C5608AD介绍 (9)3.1.3 时钟电路 (11)3.1.4 复位电路 (11)3.1.5 温度显示电路 (12)3.1.6 按键功能设置电路 (13)3.1.7 继电器驱动电路 (14)3.1.8 继电器控制电路 (14)3.1.9 压缩机、四通阀 (15)3.1.10 电动机电路 (15)第4章系统软件设计 (17)4.1 DS18B20数据通信概述 (17)4.2 控制接口时序说明 (19)4.3 软件程序设计 (20)4.3.1 主程序模块流程图 (21)4.3.2 DS18B20测温程序及流程图 (22)4.3.3 按键扫描程序及流程图 (25)4.4程序调试 (26)4.4.1 Keil uVision2软件 (26)4.4.2程序调试过程中遇到的问题及解决办法 (27)第5章结论 (28)参考文献 (29)致谢 (31)附录1 系统硬件电路图 (32)附录2 系统软件程序................................................................................ 错误!未定义书签。
简易温度控制器制作
电子技术综合训练设计报告题目:简易温度控制器制作姓名:***学号:班级:自动化同组成员:指导教师:日期:电子技术综合训练任务书5摘要本次课程设计的主题是做一个简易温度控制器。
根据课题,制定方案,经赛选比较、分析以及所学知识,最后用纯比较运算放大器实现其任务要求。
具体方法是采用Pt100热敏电阻作为温度采集,将温度模拟量转化为数字量,再利用比较运算放大器与设定温度值进行比较,输出高或低电平至电路控制元件从而对控制对象进行控制。
整个电路分为四个部分:测温电路,比较电路,报警电路,控制电路。
其中后三者为课题重点。
为模拟温度变化,此设计用滑动变阻器代替Pt100热敏电阻,加热部分用俩个绿色LED灯模拟实现,报警部分用一红一绿LED灯模拟实现。
关键词:温度控制、温度模拟量、放大比较目录1、设计任务和要求 (4)1.1设计任务 (4)1.2设计要求 (4)2、系统设计 (4)2.1系统要求 (4)2.2方案设计 (5)2.3系统工作原理 (5)3、单元电路设计 (8)3.1 测温部分单元电路 (8)3.1.1电路结构及工作原理 (8)3.1.2电路仿真 (8)3.1.3元器件的选择及参数确定 (8)3.2 比较部分单元电路 (8)3.2.1电路结构及工作原理 (8)3.2.2电路仿真 (9)3.2.3元器件的选择及参数确定 (9)3.3 报警部分单元电路 (9)3.3.1电路结构及工作原理 (9)3.3.2电路仿真 (10)3.3.3元器件的选择及参数确定 (10)3.4 控制部分单元电路 (10)3.4.1电路结构及工作原理 (11)3.4.2电路仿真 (11)3.4.3元器件的选择及参数确定 (11)3.5电源设计 (11)3.5.1电路结构及工作原理 (11)3.5.2电路仿真 (11)4、系统仿真 (13)5、电路安装、调试与测试 (16)5.1电路安装 (16)5.2电路调试 (16)5.3系统功能及性能测试 (17)5.3.1测试方法设计 (17)5.3.2测试结果及分析 (17)6、总结和体会 (20)7、参考文献 (19)8、附录 (21)1、设计任务及要求1.1设计任务设计并制作一个温度监控系统,用温度传感器检测容器内水的温度,以检测到的温度信号控制加热器的开关,将水温控制在一定的范围之内。
电饭锅温度控制器设计-电路图-PCB图
电饭锅温度控制器设计-电路图-P C B图(总17页)--本页仅作为文档封面,使用时请直接删除即可----内页可以根据需求调整合适字体及大小--电饭锅温度控制器设计目录一、设计要求二.设计作用、目的 (2)三.设计的具体实现 (3)设计概述 (3)单元电路设计,仿真与分析 (6)版电路制作 (13)四.心得体会 (14)五.附录 (15)元件明细表 (15)电路原理图 (16)六.参考文献 (17)2一、设计要求(1)自主设计电路,了解学习元件性能特性,设计参数,进行MULTISIM仿真并制作PCB电路板。
(2)主要设计电饭温温度控制器,实现电饭锅温度加热和保温过程受温度控制,自动切换。
使电饭锅的温度稳定保持在65°——70°之间。
(3)开启阶段,电路温度较低,温控电阻较大,实现电路加热,三极管导通,红灯亮起。
当加热温度达到103°,加热停止,绿灯亮起,进入保温阶段。
二.设计的作用、目的模拟电子技术是自动化专业重要的专业基础课程。
电子电路设计及制作课程设计是电子技术基础课程的实践性教学的重要环节。
通过设计,仿真,制版等相关程序,帮助我们深入了解模电理论知识,熟练掌握相关实践,对我们知识的学习和运用起到积极的作用。
3电饭煲等家用电器和我们的生活息息相关,温控系统在电饭煲加热和保温过程中都起到重要作用,了解其中的主要工作原理和相关元件性能的应用,制作MULTISIM仿真图和PCB板子是此次设计的主要目的。
温度控制器是电饭煲必不可少的部分,而且绝大多数是智能电脑控制系统,能自动实现温度加热和保温过程,给人们生活带来方便。
温控系统不仅应用于电饭煲之中,而且广泛应用于壁挂等加热设备中,是节能采暖综合体系中一个极为突出的最重要的环节。
方便——每天自动定时控制提前或延后开关调节电饭煲,免去人工操作,对上班一族日常生活十分必要。
节能——温控系统通过三极管导通与否控制双向晶闸管加热开关,从而控制热敏电阻,使电饭煲温度控制在65°~70°之间,省去了不必要的加热过程,起到了节能的作用。
智能温度控制器的设计
0 引言
低温地板辐射采暖是一种不 同于对流式散热器采 暖的新型采 暖方式 , 具有舒 适性好 、 温度分 布均匀 、 节 约能源和容易实现 分户计量 等优点 , 是一 种具有 广 泛发展前途 和推广价值的采暖方式 。
成 0~ 5 V的电压信号送入单 片机 的 A 。 口, A D N端 经 /
的设计 思路 、 软件 编程 , 后分别在恒 温控制和分时段 控制 2 最 种方式下 对开 发的控 制器进 行 了实验 , 结果 表 明该温度 控制 器具 有较 好 的
控制效 果。
关键 词 :温度控制 器
PC单片 机 I
温 度检测 可靠 性
高 精度
中图分 类号 :T 3 8 1 V6 .
文 献标志码 :A
Ab ta t: T e eo h mb d d c n rls se ta utbefrmo eT he t gs h me。a d ma et er o tmp r tr utmaial d sr c o d v lp tee e de o to ytm h ts i l o d il ai c e a n n k h o m e eau ea o t l a — c y
近年来 , 低温地板辐射采 暖的研究工作逐渐增 多 , Pr r im n sS n. w nC o和 H ro等人分 别对 e e Sm od 、ugH a h t a u
低温地板辐射采暖进行了一些实验研究 。通过这些研 究, 使人们对地面辐射采暖有 了较为深入的理解 。
但要 真 正 实 现 节 约 能 源 和 分 户 计 量 的 功 能 , 控 温 器 是 必不 可 少 的 器 件 。 。 因此 , 发 一 种 实 用 的 温 研
摘
电子技术课程设计报告---温度控制器设计报告
电子技术课程设计报告学院:自动化学院专业班级:自动化10-05班学生姓名:指导教师:完成时间:2012年7月9日成绩:评阅意见:评阅教师日期温度控制器设计报告一. 设计要求(1)、设计一个能控制周围环境温度的控制器。
(2)、画出温度控制器的电路图。
(3)、撰写课程设计说明书,要求:课题名称;设计任务及要求 附图及原理说明;二.设计的作用、目的设计一个可以控制所在环境温度的温度控制器,使周边环境温度控制在一个适度的范围内。
本实验的目的是应用所学的模拟和数字电子技术知识设计并熟练掌握相应的控制电路设计方法和思路,并且逐步将理论与生活实际相结合。
三.设计的具体实现1. 系统概述通过模拟温度感应部来提取周围环境的温度模拟信号,之后通过选择比较器来进行信号的筛选和传递,由控制部分对信号做出相应的反应,后控制开启关闭模拟温度调节系统开关以达到控制环境的温度的目的。
如图示结构所示:2.单元电路设计(或仿真)与分析模拟温度感应部应用滑动变阻器的调节阻值的功能来模仿热敏电阻等温度感应器件的相应作用。
同时模拟温度感应部 模拟温度调节开关 控制指示部分选择比较器调节时,效果比较直观,易于观察和分析。
因为知识简单的模拟,所以应用的器件较为简单。
75%R17Key = A6kΩ其功能主要用来产生温度感应信号。
并且可以通过调节阻值来模拟各个温度的反应信号,并输送到选择比较部分电路中。
选择比较器(LM324D )我们选用LM324D作为这部分的关键元件。
用U1A 作为比较器,来对信号进行第一步的采样,之后通过后两级的比较器,最终将感应信号传送到下一级的控制指示电路中LM324引脚图R1 2kΩ R22kΩR310kΩR42kΩR510kΩR9 2kΩR102kΩR112kΩR1210kΩR1310kΩR1410kΩVDD5VVDD5VU1ALM324D321141U1BLM324D561147U1CLM324D1091148U4PHOTO_TRANSISTOR_RATED选择比较部分示意图注:用光电三极管表示温度感应部控制与指示系统部分当温度适宜不需要升降温调节时,控制器的左端接入的是高电平,使三极管处于导通状态,则U3发光;当温度需要调节时,接入的是低电平,三极管处于截止状态,则U2发光,同时,集电极有电流流过,接于其上的温度控制开关部分开启,开始调节温度,直到温度适宜时,接入变为高电平。
自制可调温度控制器
自制可调温度控制器作者:温正伟原载:无线电杂志按一下S2电路开始显示和监测,如再按一下S2进入温度设定状态,设定值每秒闪烁一次,这时可以按S1或S3进行调节,再按下S2时退回显示当前温度状态并保存温度值到DS18B20。
使用2051的第9脚做控制输出端,低电平有效,笔者用它通过9012去驱动一个5V的继电器。
笔者把这个电路安装到电脑前面板上,继电器触头端接机箱的散热风扇,设定一个温度值如28度,当机箱内的温度超出28度时,控制端为低电平,继电器闭合,风扇启动进行散热。
图三就是装在电脑面板上的实物照片。
图2:电原理图4.软件实现这个温度控制器制作的最大难点应该算是2051程序的编写和调试。
因在电路中有数字显示,按键设定,数据采集和继电器控制。
首先要考虑的是在电路中3个数码管的阴极是接在P1上的,也就是说要使用动态显示的编程方法,笔者在程序中使用了一个定时中断去处理显示,定时器的定时值为20毫秒,每间隔20毫秒程序但会执行定时中断显示所要显示的数字,同时在这个定时中断中还会去扫描按键,看是否有键被按下并对其结果进行处理。
在这20ms的时间里程序还会完成温度数据的采集和转换和对当前温度和设置温度的对比等等。
在编写采集DS18B20数据的函数时运用了DS18B20的单总线协议,在读写DS18B20时IO口的电平时序上应尽可能做到与资料上提供的数据相一致。
程序大部分使用模块化设计,读者朋友修改或使用它的函数编写自己温控程序,程序的最新版本可以访问笔者的个人网站。
图三实物图用实验板搭建的实物图源程序如下:/*-------------------------------温度控制器V1.51显示为三个共阳极LED温度传感器用单总线DS18B20CPU为2051,三个按键,分别为UP,DOWN,SET 温度调节上限为125度,下限为-55度只能用于单只18B20本软件仅供学习与参考,引用时请注明版权-------------------------------*/#include <AT89X051.H>#include <intrins.h>#define Key_UP P3_0 //上调温度#define Key_DOWN P3_1 //下调温度#define Key_SET P1_7 //设定键(温度设定,长按开电源)#define RelayOutPort P3_5 //继电器输出#define LEDPort P1 //LED控制口#define LEDOneC P3_2 //LED DS1控制(百位)#define LEDTwoC P3_3 //LED DS2控制(十位)#define LEDThreeC P3_4 //LED DS3控制(个位)#define TMPort P3_7 //DS1820 DataPortunsigned char codeLEDDis[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0xFF,0xBF}; //0-9的LED笔划,0xFF为空,0xF7为负号static unsigned char bdata StateREG; //可位寻址的状态寄存器sbit DS1820ON = StateREG^0; //DS1820是否存在sbit SetTF = StateREG^1; //是否是在温度设置状态sbit KeySETDown = StateREG^2; //是否已按过SET键标识sbit PowTF = StateREG^3; //电源电源标识sbit KeyTF = StateREG^4; //键盘是否允许//sbit KeySETDowning = StateREG^5; //SET是否正在按下static unsigned char bdata TLV _at_ 0x0029; //温度变量高低位static unsigned char bdata THV _at_ 0x0028;static signed char TMV; //转换后的温度值static unsigned char KeyV,TempKeyV; //键值static signed char TMRomV _at_ 0x0027; //高温限制static signed char TMSetV _at_ 0x0026; //温度设定值static unsigned char KSDNum; //SET键连按时的采集次数static unsigned char IntNum,IntNum2,IntNum3; //中断发生次数,IntNum用于SET长按检测,IntNum2用于设定状态时LED闪烁static signed char LED_One,LED_Two,LED_Three; //LED的显示位LED_One为十位,LED_Two为个位static unsigned char Sign; //负号标识void main(void){void InitDS1820(void); //定义函数void ROMDS1820(void);void TMVDS1820(void);void TMRDS1820(void);void TMWDS1820(void);void TMREDS1820(void);void TMERDS1820(void);void ReadDS1820(void);void WriteDS1820(void);void Delay_510(void);void Delay_110(void);void Delay_10ms(void);void Delay_4s(void);void V2ToV(void);StateREG = 0; //初始化变量SetTF = 1;PowTF = 1; //关电源THV = 0;TLV = 0;TMV = 0;KeyV = 0;TempKeyV = 0;KSDNum = 0;IntNum = 0;IntNum2 = 0;IntNum3 = 0;LED_One = 0;LED_Two = 0;InitDS1820(); //初始化ROMDS1820(); //跳过ROMTMERDS1820(); //E2PRAM中温度上限值调入RAMInitDS1820(); //初始化ROMDS1820(); //跳过ROMTMRDS1820(); //读出温度指令ReadDS1820(); //读出温度值和上限值TMSetV = TMRomV; //拷贝保存在DS18B20ROM里的上限值到TMSetVEA = 1; //允许CPU中断ET0 = 1; //定时器0中断打开TMOD = 0x1; //设定时器0为模式1,16位模式TH0=0xB1;TL0=0xDF; //设定时值为20000us(20ms)TR0 = 1; //开始定时while(1);}//定时器0中断外理中键扫描和显示void KeyAndDis_Time0(void) interrupt 1 using 2{TH0=0xB1;TL0=0xDF; //设定时值为20000us(20ms)LEDPort = 0xFF;if (!Key_UP)KeyV = 1;if (!Key_DOWN)KeyV = 2;if (!Key_SET)KeyV = 3;//KeySETDowning = 0; //清除if (KeyV != 0) //有键按下{Delay_10ms(); //延时防抖按下10ms再测if (!Key_UP)TempKeyV = 1;if (!Key_DOWN)TempKeyV = 2;if (!Key_SET)TempKeyV = 3;if (KeyV == TempKeyV) //两次值相等为确定接下了键{if (KeyV == 3) //按下SET键,如在SET状态就退出,否则进入{//KeySETDowning = 1; //表明SET正在按下PowTF = 0; //电源标识开if (!KeyTF)if (SetTF){SetTF = 0; //标识位标识退出设定InitDS1820(); //初始化ROMDS1820(); //跳过ROMTMWDS1820(); //写温度上限指令WriteDS1820(); //写温度上限到DS18B20ROMWriteDS1820(); //写温度上限到DS18B20ROMWriteDS1820(); //写温度上限到DS18B20ROMInitDS1820(); //初始化ROMDS1820(); //跳过ROMTMREDS1820(); //温度上限值COPY回E2PRAM}elseSetTF = 1;if (!KeySETDown) //没有第一次按下SET时,KeySETDown标识置1KeySETDown = 1;elseKSDNum = KSDNum + 1; //前一秒内有按过SET则开始计数}if (SetTF) //在SET状态下{if ((KeyV == 1) && (!KeyTF))TMSetV = TMSetV + 1; //上调温度if ((KeyV == 2) && (!KeyTF))TMSetV = TMSetV - 1; //下调温度if (TMSetV <= -55) //限制温度上下限TMSetV = -55;if (TMSetV >= 125)TMSetV = 125;}if ((!KeyTF) && (IntNum3 == 0)) KeyTF = 1; //当键盘处于可用时,锁定}if (KeySETDown) //在2秒内按下了SET则计中断发生次数用于长按SET时计时用IntNum = IntNum + 1;if (IntNum > 55) //中断发生了55次时(大约1.2秒)75为1.5秒左右{IntNum = 0;KeySETDown = 0;if (KSDNum == 55) //如一直长按了SET1.2秒左右{RelayOutPort = 1; //关闭继电器输出PowTF = 1; //电源标识关LEDOneC = 0;LEDTwoC = 0;LEDThreeC = 0;LEDPort = 0xBF; //显示"--"Delay_4s(); //延时LEDOneC = 1;LEDTwoC = 1; //关显示LEDThreeC = 1;Delay_4s();IntNum = 0;IntNum2 = 0;IntNum3 = 0;}KSDNum = 0;}}KeyV = 0;TempKeyV = 0; //清空变量准备下次键扫描if (!PowTF){InitDS1820(); //初始化ROMDS1820(); //跳过ROMTMVDS1820(); //温度转换指令Delay_510();Delay_510(); //延时等待转换完成InitDS1820(); //初始化ROMDS1820(); //跳过ROMTMRDS1820(); //读出温度指令ReadDS1820(); //读出温度值V2ToV(); //转换显示值if (TMV > TMSetV) //根据采集到的温度值控制继电器{RelayOutPort = 0;}else{RelayOutPort = 1;}if (SetTF) IntNum2 = IntNum2 + 1; //用于闪烁计数if (IntNum2 > 50 ) IntNum2 = 0;if (KeyTF) IntNum3 = IntNum3 + 1; //用于防止按键连按if (IntNum3 > 25){IntNum3 = 0;KeyTF = 0;}if ((SetTF) && (IntNum2 < 25)) goto InitEnd; //计数在后半段时显示LEDPort = LED_One;LEDOneC = 0;Delay_510();LEDOneC = 1; //显示百位数LEDPort = LED_Two;LEDTwoC = 0;Delay_510();LEDTwoC = 1; //显示十位数LEDPort = LED_Three;LEDThreeC = 0;Delay_510();LEDThreeC = 1; //显示个位数}InitEnd:;}void V2ToV(void) //数值转换{TLV = TLV >> 4;THV = THV << 4; //读出的高低位数值移位TMV = TLV | THV; //合并高低位放入TM为实际温度值Sign = 0;if (SetTF || !Key_SET)Sign = TMSetV >> 7; //取符号elseSign = TMV >> 7;if (Sign){if (SetTF || !Key_SET){LED_One = (~(TMSetV-1)) / 100; //SET状态下显示设定值LED_Two = ((~(TMSetV-1)) - LED_One * 100)/10;LED_Three = (~(TMSetV-1)) - LED_One * 100 - LED_Two * 10;}else{LED_One = (~(TMV-1)) / 100; //转换百位值LED_Two = ((~(TMV-1)) - LED_One * 100)/10;LED_Three = (~(TMV-1)) - LED_One * 100 - LED_Two * 10;}}else{if (SetTF || !Key_SET){LED_One = (TMSetV) / 100; //SET状态下显示设定值LED_Two = (TMSetV - LED_One * 100)/10;LED_Three = TMSetV - LED_One * 100 - LED_Two * 10;}else{LED_One = (TMV) / 100; //转换百位值LED_Two = (TMV - LED_One * 100)/10;LED_Three = TMV - LED_One * 100 - LED_Two * 10;}}//转LED字段if (LED_One) //超过百时十位的处理LED_Two = LEDDis[LED_Two];else{if (LED_Two == 0)LED_Two = LEDDis[10];elseLED_Two = LEDDis[LED_Two];}if (Sign)LED_One = LEDDis[11];else{if (LED_One == 0)LED_One = LEDDis[10];elseLED_One = LEDDis[LED_One];}LED_Three = LEDDis[LED_Three];}void InitDS1820(void) //初始化DS1820{TMPort = 1; //拉高TMPort_nop_(); //保持一个周期TMPort = 0; //拉低TMPortDelay_510(); //延时DS1820复位时间要500us的低电平TMPort = 1; //拉高TMPort_nop_(); //保持_nop_();_nop_();Delay_110(); //延时110us 等待DS1820回应if (!TMPort) //回应信号为低电平DS1820ON = 1;elseDS1820ON = 0;Delay_110(); //延时Delay_110();TMPort = 1; //拉高TMPort}void ROMDS1820(void) //跳过ROM匹配{#pragma asmMOV A,#0CCHMOV R2,#8CLR CWR1:CLR P3_7MOV R3,#6DJNZ R3,$RRC AMOV P3_7,CMOV R3,#23DJNZ R3,$SETB P3_7NOPDJNZ R2,WR1SETB P3_7#pragma endasm}void TMVDS1820(void) //温度转换指令{#pragma asmMOV A,#44HMOV R2,#8CLR CWR2:CLR P3_7MOV R3,#6DJNZ R3,$RRC AMOV P3_7,CMOV R3,#23DJNZ R3,$SETB P3_7NOPDJNZ R2,WR2SETB P3_7#pragma endasm}void TMRDS1820(void) //读出温度指令{#pragma asmMOV A,#0BEHMOV R2,#8CLR CWR3:CLR P3_7MOV R3,#6DJNZ R3,$RRC AMOV P3_7,CMOV R3,#23DJNZ R3,$SETB P3_7NOPDJNZ R2,WR3SETB P3_7#pragma endasm}void TMWDS1820(void) //写入温度限制指令{#pragma asmMOV A,#04EHMOV R2,#8CLR CWR13:CLR P3_7MOV R3,#6DJNZ R3,$RRC AMOV P3_7,CMOV R3,#23DJNZ R3,$SETB P3_7NOPDJNZ R2,WR13SETB P3_7#pragma endasm}void TMREDS1820(void) //COPY RAM to E2PRAM {#pragma asmMOV A,#48HMOV R2,#8CLR CWR33:CLR P3_7MOV R3,#6DJNZ R3,$RRC AMOV P3_7,CMOV R3,#23DJNZ R3,$SETB P3_7NOPDJNZ R2,WR33SETB P3_7#pragma endasm}void TMERDS1820(void) //COPY E2PRAM to RAM{#pragma asmMOV A,#0B8HMOV R2,#8CLR CWR43:CLR P3_7MOV R3,#6DJNZ R3,$RRC AMOV P3_7,CMOV R3,#23DJNZ R3,$SETB P3_7NOPDJNZ R2,WR43SETB P3_7#pragma endasm}void WriteDS1820(void) //写入温度限制值{#pragma asmMOV A,26H //发出4EH写ROM指令后连发两个字节分别为上下限MOV R2,#8CLR CWR23:CLR P3_7MOV R3,#6DJNZ R3,$RRC AMOV P3_7,CMOV R3,#23DJNZ R3,$SETB P3_7NOPDJNZ R2,WR23SETB P3_7#pragma endasm}void ReadDS1820(void) //读出温度值{#pragma asmMOV R4,#3 ; 将温度高位和低位,高温限制位从DS18B20中读出MOV R1,#29H ; 低位存入29H(TEMPER_L),高位存入28H(TEMPER_H),高温限制位存入27H(TMRomV)RE00:MOV R2,#8RE01:CLR CSETB P3_7NOPNOPCLR P3_7NOPNOPNOPSETB P3_7MOV R3,#09RE10:DJNZ R3,RE10MOV C,P3_7MOV R3,#23RE20:DJNZ R3,RE20RRC ADJNZ R2,RE01MOV @R1,ADEC R1DJNZ R4,RE00#pragma endasm}void Delay_510(void) //延时510微秒{#pragma asmMOV R0,#7DHMOV R1,#02HTSR1:DJNZ R0,TSR1MOV R0,#7DHDJNZ R1,TSR1#pragma endasm}void Delay_110(void) //延时110微秒{#pragma asmMOV R0,#19HMOV R1,#02HTSR2:DJNZ R0,TSR2MOV R0,#19HDJNZ R1,TSR2#pragma endasm}void Delay_10ms(void) //延时10ms {#pragma asmMOV R0,#19HMOV R1,#0C8HTSR3:DJNZ R0,TSR3MOV R0,#19HDJNZ R1,TSR3#pragma endasm}void Delay_4s(void) //延时4s{#pragma asmMOV R2,#28HTSR5:MOV R0,#0FAHMOV R1,#0C8H TSR4:DJNZ R0,TSR4 MOV R0,#0FAH DJNZ R1,TSR4 DJNZ R2,TSR5 #pragma endasm }。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
温度控制器的设计与制作一、功能要求设计并制作一个温度控制器,用于自动接通或断开室内的电加热设备,从而使室内温度达到设定温度要求,并能实时显示室内温度。
当室内温度大于等于设定温度时,控制器断︒时,控制器接通电加热设备。
开电加热设备;当室内温度比设定温度小2C控温范围:0~51C︒控温精度:≤1C︒二、硬件系统设计1.硬件系统由七部分组成,即单片机及看门狗电路、温度检测电路、控制输出电路、键盘电路、显示电路、设置温度储存电路及电源电路。
(1)单片机及看门狗电路根据设计所需的单片机的内部资源(程序存储器的容量、数据存储器的容量及I/O口数量),选择AT89C51-24PC较合适。
为了防止程序跑飞,导致温度失控,进而引起可怕的后果,本设计加入了硬件看门狗电路IMP813L,如果它的WDI脚不处于浮空状态,在1.6秒内WDI不被触发(即没有检测到上什沿或下降沿),就说明程序已经跑飞,看门狗输出端WDO将输出低电平到手动复位端,使复位输出端RST发出复位信号,使单片机可靠复位,即程序重新开始执行。
(注:如果选用AT89S51,由于其内部已具有看门狗电路,就不需外加IMP813L)(2)温度检测电路温度传感器采用AD590,它实际上是一个与绝对温度成正比的电流源,它的工作电压为4~30V,感测的温度范围为-550C~+1500C,具有良好的线性输出,其输出电流与温度成正比,即1μA/K。
因此在00C时的输出电流为273.2μA,在1000C时输出电流为373.2μA。
温度传感器将温度的变化转变为电流信号,通过电阻后转变电压信号,经过运算放大器JRC4558运算处理,处理后得到的模拟电压信号传输给A/D转换部分。
A/D转换器选用ADC0804,它是用CMOS集成工艺制成的逐次逼近型模数转换芯片,分辨率8位,转换时间100μs,基准电压0~5V,输入模拟电压0~5V。
(3)控制输出电路控制信号由单片机的P1.4引脚输出,经过光耦TLP521-1隔离后,经三极管C8550直接驱动继电器WJ108-1C-05VDC,如果所接的电加热设备的功率≤2KW,则可利用继电器的常开触点直接控制加热设备,如果加热设备的功率>2KW,可以继电器控制接触器,由接触器直接控制加热设备。
(4)键盘电路键盘共有四个按键,分别是S1(设置)、S2(+)、S3(-)、S4(储存)。
通过键盘来设置室内应达到的温度,键盘采用中断方式控制。
(5)显示电路显示电路由两位E10501_AR数码管组成,由两片74LS164驱动,实现静态显示,74LS164所需的串行数据和时钟由单片机的P3.0和P3.1提供。
对于学过“串行口”知识的班级,实习时,可以采用串行口工作于方式0,即同步移位寄存器的输出方式,通过串行口输出显示数据(实时温度值或设置温度值);对于没学过“串行口”知识的班级,实习时,可以采用模拟串行口的输出方式,实现显示数据的串行输出。
(6)设置温度存储电路为了防止设定温度在电源断电后丢失,此设计加入了储存电路,储存器选用具有I2C总线功能的AT24C01或FM24C01均可。
每次通过键盘设置的室内设定温度都通过储存器储存起来,即使是电源断电,储存器存储的设定温度也不丢失,在电源来电后,单片机自动将设定温度从储存器中读出,一方面避免了断电后的更新设置工作;另一方面也保护了控制器控制的安全性,可靠性。
(7)电源电路电源采用了串联型集成稳压器电路,电源有两路输出,一路由L7805CV稳压输出+5V,除JRC4558、AD590外,电路的其它部分均由+5V供电;一路由MC78L12和LM79L12稳压输出±12V,给JRC4558、AD590供电。
当然这里还可以选择现成的开关型稳压电源,但它的价格相对来说要高一些。
2.硬件系统电路原理图:3三、软件系统设计1.温控系统采用模块化程序结构,可分为四大模块:(1)系统初始化模块:完成变量的设定、中断入口的设定、各变量赋初值、堆栈设定、读设置温度、定时器T0工作方式及初值的设定并启动、开中断。
(2)循环模块:完成A/D转换及温度值的换算、温度值显示、温度比较、看门狗的触发。
(3)定时器T0中断模块:完成1秒的定时。
(4)外部中断INT1中断模块:完成键盘对温度值的设定。
2.软件流程框图:3.参考程序:;温度控制器源程序s1 bit p1.0 ;s1按键控制口位s2 bit p1.1 ;s2按键控制口位s3 bit p1.2 ;s3按键控制口位s4 bit p1.3 ;s4按键控制口位wdkz bit p1.4 ;温度控制口位wdi bit p1.5 ;看门狗触发端sda bit p1.7 ;AT24C01的数据线scl bit p1.6 ;AT24C01的时钟线drxd bit p3.0 ;74LS164数据dtxd bit p3.1 ;74ls164时钟intr bit p3.2 ;A/D转换结束信号控制口位szled bit p3.5 ;设置LEDsbz bit 00h ;秒标志位swwd equ 30h ;十位温度的BCD码存储单元gwwd equ 31h ;个位温度的BCD码存储单元adpj equ 32h ;A/D转换后的平滑滤波值存储单元szwd equ 33h ;设置温度值存储单元adwz equ 34h ;5次A/D值的初始位置,即34h~38hmjsz equ 39h ;1秒记数值(50ms次数)smjsz equ 3ah ;3秒记数值(200ms次数)shmjsz equ 3bh ;10秒记数值(200ms次数)org 0000hljmp startorg 000bhljmp timezd ;T0中断org 0013hljmp temszzd ;INT1中断org 0030hstart: clr sbzmov mjsz,#20mov shmjsz,#50mov sp,#60h;--------------赋初值;lcall durommov szwd,a;--------------读设置温度mov tmod,#01hmov th0,#3chmov tl0,#0b0hsetb tr0;--------------定时器T0的设定及启动 setb it1setb ex1setb et0setb ea;--------------开中断(INT1和T0中断) cyc: lcall adzhmov a,adpjlcall bcdzhlcall displcall tembjjnb sbz,$clr sbzlcall wdogsjmp cyc;模数转换子程序名:adzh;入口参数:无;出口参数:adpjadzh: push pswpush accmov r1,#adwzmov r2,#5adzh1: movx @r0,ajb intr,$movx a,@r0mov @r1,ainc r1djnz r2,adzh1;--------------5次A/D值完成mov r0,#adwzmov r2,#5lcall paix;--------------5次A/D值排序mov r6,#00hmov r7,#3mov a,#adwzadd a,#1mov r1,ajiafa: mov a,@r1add a,r5mov r5,amov a,r6addc a,#0mov r6,ainc r1djnz r7,jiafa;--------------去极值后,余下的3个值求和(和在r6r5中) chufa: mov r3,#16mov r4,#30mov r7,#0mov a,r5add a,r5mov r5,amov a,r6addc a,r6mov r6,amov a,r5add a,#15mov r5,amov a,r6addc a,#0mov r6,a;--------------为"四舍五入"作准备即和值乘以2加上15除以30 chufa1: clr cmov a,r5rlc amov r5,amov a,r6rlc amov r6,amov a,r7rlc asubb a,r4jnc chufa2add a,r4sjmp chufa3chufa2: inc r5chufa3: mov r7,adjnz r3,chufa1mov adpj,r5;-------------完成温度平均值pop accpop pswret;排序子程序名:paix(从大到小);入口参数:R0指向数据存储区的首地址,R2存放数据长度paix: push pswpush accpaix0: mov a,r0mov r1,amov a,r2mov r5,adec r5clr f0paix1: mov a,@r1inc r1clr csubb a,@r1jnc paix2setb f0add a,@r1xch a,@r1dec r1mov @r1,ainc r1paix2: djnz r5,paix1jnb f0,paix3clr f0dec r2cjne r2,#01h,paix0paix3: pop accpop pswret;T0中断程序名:timezd;出口参数:sbittimezd: mov th0,#3chmov tl0,#0b0hdjnz mjsz,timezd1mov mjsz,#20setb sbztimezd1: reti;温度设置中断程序名:temszzd ;入口参数:szwd;出口参数:szwdtemszzd: push pswpush accclr rs1setb rs0clr tr0mov a,szwdlcall bcdzhlcall disptemsz0: lcall wdoglcall delay200msjb s1,temsz0aljmp temsz0btemsz0a: ljmp ret0temsz0b: djnz smjsz,temsz0 mov smjsz,#15clr szledwdog1: lcall wdoglcall delay200msjnb s1,wdog1ljmp temsz2temsz1: lcall delay200msdjnz shmjsz,temsz2 mov shmjsz,#50ljmp ret0temsz2: jb s2,temsz3lcall delay20msjb s2,temsz3wdog2: lcall wdoglcall delay200msjnb s2,wdog2inc szwdmov a,szwdcjne a,#52,temsz2a mov a,#51mov szwd,atemsz2a: lcall bcdzhlcall dispmov shmjsz,#50sjmp temsz2temsz3: jb s3,temsz4lcall delay20msjb s3,temsz4wdog3: lcall wdoglcall delay200msjnb s3,wdog3dec szwdmov a,szwdcjne a,#255,temsz3a mov a,#0mov szwd,atemsz3a: lcall bcdzhlcall dispmov shmjsz,#50sjmp temsz2temsz4: jb s4,temsz1lcall delay20msjb s4,temsz1wdog4: lcall wdoglcall delay200msjnb s4,wdog4lcall xieromret0: setb szledmov a,adpjlcall bcdzhlcall displcall wdogsetb tr0pop accpop pswreti;bcd码转换子程序名:bcdzh;入口参数:a;出口参数:swwd、gwwd bcdzh: push pswpush bmov b,#10div abmov swwd,amov gwwd,bpop bpop pswret;温度比较子程序名:tembj;入口参数:adpj、szwd;出口参数:wdkztembj: push pswpush accmov a,adpjcjne a,szwd,tembj0tembj0: jc tembj1setb wdkzsjmp tembj3tembj1: add a,#2cjne a,szwd,tembj2tembj2: jnc tembj3clr wdkztembj3: pop accpop pswret;读ROM子程序名:durom;出口参数:adurom: push pswclr sda ;启动AT24C01mov a,#0a0hlcall a_sendmov a,#08hlcall a_sendsetb sclsetb sdaclr sdamov a,#0a1hlcall a_sendlcall a_receiveclr sdanopnopsetb sclnopnopsetb sdapop pswret;字节发送子程序名:a_send;入口参数:aa_send: push pswmov r0,#08ha_send1: clr sclrlc amov sda,cnopsetb sclnopnopnopdjnz r0,a_send1clr sclnopnopnopsetb scla_loop: mov c,sdajc a_loopclr sclpop pswret;字节接收子程序名:a_receive ;出口参数:aa_receive:push pswmov r0,#08ha_rec: setb sclnopnopmov c,sdarlc aclr sclnopnopdjnz r0,a_recsetb sdanopnopsetb sclnopnopclr sclpop pswret;写ROM子程序名:xierom;入口参数:szwdxierom: push pswpush accsetb sclsetb sdaclr sdamov a,#0a0hlcall a_sendmov a,#08hlcall a_sendmov a,szwdlcall a_sendclr sdanopnopsetb sclnopnopsetb sdalcall delay50mspop accpop pswret;延时200mS子程序名:delay200ms delay200ms:mov r7,#4del1: mov r6,#200del2: mov r5,#123nopdjnz r5,$djnz r6,del2djnz r7,del1ret;延时50ms子程序名:delay50ms delay50ms:mov r7,#200dela1: mov r6,#123nopdjnz r6,$djnz r7,dela1ret;延时20ms子程序名:delay20ms delay20ms:mov r7,#80delay1: mov r6,#123nopdjnz r6,$ret;看门狗子程序名:wdog wdog: clr wdisetb wdiclr wdiret;显示子程序disp;入口参数:swwd、gwwd disp: push pswpush accpush bmov dptr,#tabmov a,swwdcjne a,#00h,n0mov a,#0ffhajmp n1n0: movc a,@a+dptrn1: lcall zjfsmov a,gwwd movc a,@a+dptr lcall zjfspop bpop accpop pswretzjfs: mov r0,#08hclr czjfs1: rrc amov drxd,csetb dtxdnopnopnopnopnopnopclr dtxdnopnopnopnopnopnoprettab: db 0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90hend四、系统调试1. 硬件系统的调试(1)看温度检测电路部分,图中标有V i1、V i2、V o ,由运放构成的差分比例运算电路可得: 21)22321)(424231()223211(i i o V R RP R RP R R V R RP R V +++-++= 搭接电路前,要准确调整RP3,保证422321=+R RP R ;要准确调整RP4,保证4142423=+RP R R ;保证了上述两项,即保证了)(521i i o V V V -=。