基于单片机的恒温控制系统设计

中文摘要

随着科技的进步,越来越多的场合需要高精度、低成本的恒温控制,而目前的恒温控制技术成本较高,控制精度不够,实时性和准确性不强。为了解决上述问题,本设计提出了一种新的基于51单片机的恒温箱体控制系统,该系统成本低廉,能实时监测箱体中的温度值,并且能根据温度值,调整所接入电路的升温或降温模块,达到温度恒定的目的,该设计温度测量准确,反应速度快,可以通过按键设定温度的上限值和下限值,并能实时的将采集到的温度值显示在液晶显示屏上。在设计过程中,利用所选器件设计并制作了电路实物,经测试,系统工作稳定,能在温度低于或高于预定值时报警,并自动打开散热或者加热装置,实时性和稳定性强。

关键词:51单片机,恒温控制,散热和加热设备

English abstract

With the progress of science and technology, more and more occasions need high-precision and low-cost constant temperature control, but the current constant temperature control technology has a high cost, the control precision is not enough, and the real-time and accuracy are not strong. In order to solve the above problem, this design presents a new box based on 51 single chip microcomputer temperature control system, the cost is low, the system can real-time monitoring the temperature in the box body, and can according to the temperature, adjust the access circuit by the heating or cooling module, to achieve the purpose of constant temperature, the design temperature measurement accuracy, response speed, can through the button to set the upper limit and lower limit of temperature, the temperature will be collected and can real-time display on the LCD screen. In the design process, the circuit material was designed and made with the selected devices. After testing, the system works stably and can give an alarm when the temperature is lower or higher than the preset value and automatically open the heat dissipation or heating device. The real-time performance and stability are strong.

Key words: 51 MCU, constant temperature control, heat dissipation and heating equipment

目录

1.绪论... 1

1.1.研究背景和意义... 1

1.2.国内外研究现状... 1

1.3.本文主要研究内容... 5

2.总体设计... 6

2.1.主要解决的问题... 6

2.2 DS18B20温度测试模块... 6

2.3总体设计方案... 6

3.硬件设计... 6

3.1 主控芯片最小系统及按键电路设计... 6

3.2 DS18B20温度测试模块设计... 8

3.3 继电器驱动控制电路设计... 8

3.4 显示电路设计... 8

3.5 蜂鸣器报警电路设计... 10

4.软件设计... 11

4.1 LCD1602显示程序设计... 12

4.2 DS18B20温度测试模块控制程序设计... 13

4.3 输入模块控制程序设计... 13

5.试验测试... 15

5.1 系统仿真测试... 15

5.2 实际测试... 15

总结... 15

参考文献... 15

致    谢... 18

附件1:电路原理图... 18

附件2:系统程序设计... 18

1.绪论

1.1.研究背景和意义

温度是现如今各种工业产品生产时的重要控制条件之一,如冶金、炼油等行业,都需要通过精确的温度控制才能达到正常工作的水平,在瓷器烧制时,如果温度偏差达到10摄氏度,就会造成一整批产品的失败[1-3]。然而目前的温控系统大都存在控制滞后、反应灵敏度低、控制超调量大等缺点[4]。这样的控制会造成温度控制的偏差过大,甚至无法达到预期控制的效果,并且会多消耗大量能源,在需要精确控制的领域,完全不能工作[5,6]。

除了被控制系统本身的参数之外,温度控制还需要考虑各种环境因素,如系统工作时自身功率损耗会发热、发生化学反应时系统会吸热或者放热、不同的散热条件和内外温差时系统的热量散失也不一样[6,7]。因此温度的变化控制是一个复杂的系统工程问题,需要用到硬件软件等各种控制策略。

温度控制系统在各行各业中应用广泛。为了生产性能更高的工业产品,提升现场操作 人员的安全系数,对高精度、高可靠性温度控制系统进行研究和试验是必然的举措[8]。 工业现场数据采集分散,时效性差,且容易造成数据丢失。因此十分有必要对现场温度数据进行实时采集与可靠传输,并能利用采集的数据进行集中存储、处理与分 析,为控制算法验证及改进提供现场数据支持[8,9]。鉴于诸多实际需求,进行基于改进型 PID 算法的智能温控系统的研制十分具有现实意义。

恒温控制的过程中存在许多问题,首先现有的控制器温度采集精度差,不能实时的对温度进行监测,自动化程度低,控制系统放应缓慢,调节温度上下限值的过程繁琐,控制滞后。

针对上述温度控制中存在的问题,结合社会生产实际,提出了一种新的基于51单片机的恒温箱体控制系统,该系统成本低廉,能实时监测箱体中的温度值,并且能根据温度值,调整所接入电路的升温或降温模块,达到温度恒定的目的,该设计温度测量准确,反应速度快,可以通过按键设定温度的上限值和下限值,并能实时的将采集到的温度值显示在液晶显示屏上。

1.2. 国内外研究现状

目前恒温控制系统在国内外的应用十分广泛,产品也基本达到了正常工作的基本要求。根据不同的工作环境和恒温控制的目的和指标,普遍将恒温控制系统分为以下几种:有基于微型计算机的温度控制系统、有基于FPGA的温度控制系统、有基于单片机的温度控制系统 。

这些系统的结构和主控芯片虽然有较大的差异,但是正常工作的模式基本相同,首先,在主控芯片的控制下,系统通过温度采集芯片采集所控制部位的温度值,将温度量转换为电学量,并将这一温度值进行滤波、放大等处理,经过前端调理电路调理之后的温度值是一个随时间变化的电压信号。然后系统通过采集芯片对这一电压值进行量化,得到跟温度有关的一个二进制数,并将其发送给主控电路,主控电路对这一数字进行解码,得到系统的真实温度值,并判断这一温度是否超标等,按照之前设定好的策略对温度进行调整,所不同的是,基于微型计算机的温度控制系统的主控电路时微型计算机,其处理功能强大,显示界面丰富,能运行操作系统,控制方便,但是价格昂贵,电路结构复杂,成本高,通常用于大型设备中的温度控制。有基于FPGA的温度控制系统主控芯片采用可编程逻辑器件FPGA,这款芯片相较于微型计算机来说功能不如其强大,但是实时性好,能并行处理一些程序,运算能力强。基于单片机的温度控制系统价格便宜,电路稳定可靠,适应恶略的环境,可操作性强,但是运算能力较弱。

温度测量技术:接触式测温、非接触式测温、辐射式测温 [13]。温度控制技术:定值开关控制法、PID 线性控温法、智能温度控制法 [14]。其中接触式传感器需要通过与被测物体接触才能获得被测物体的准确温度,如体温传感等,非接触式传感器可以通过红外线得介质在非接触的情况下获得被测物体的温度。温度传感器按照原理可分为热电偶型和热敏电阻型;辐射式测温是通过辐射的原理换算出温度值。

目前国际上比较知名的温控产品有如下几种,第一种是加拿大 CSI 集团公司生产的名为BOILERWATCH 的温度实时监测系统,主要用于大型锅炉内侧的温度监控,其根据声学高温测量原理研究,可以同时测量8条线路上的温度值,每条线路挂在12个测温系统,共能同时测量出96个固定点的温度值[12] 。在数据处理方面,BOILERWATCH温度监测系统采用微型计算机进行处理,其可以直接将测量的温度值输入到厂内的控制系统,并提供温度变化的曲线,供工作人员查看。其根据采集到的温度,还可绘制出空间的温度分布曲线。

第二种为 WAVELENGTH 公司设计的 FPT-4000 恒温控制系统和 Stanford Research System 公司设计的名为LDC501的恒温控制系统等为例,WAVELENGTH 公司的恒温控制器 FPT-4000 采用分模块的方式进行设计,而且大部分采用模拟元器件,其中其为了实现对温度的准确测量,采用了多种传感器进行温度的测量,FPT-4000 的内部采用了过流、过压、过热等保护装置,以保证系统的正常工作状态,确保不会因外部环境的改变如误操作导致过压、过流,外部温度过高等,导致系统工作异常。经过测试,该系统在-99~150摄氏度的外围内,温度的稳定度<0.002 ℃。美国 Stanford Research System 公司生产的半导体激光器温度控制器 LDC501也是一个比较出名的温度控制系统,其内部的设计可靠性高,并且为用户提供一个电流源,在与外部通信时,其可以通过RS232 和以太网与上位机相连接,实现数据的传输。在其正常工作的温度范围之内,系统稳定性为±0.001 ℃,

俄罗斯圣彼得堡州立大学电机工程系利用 Anritsu MS9710C 光谱分析仪在600 nm 至 1750 nm 波段范围内时,所设计系统的精度为 0.07 nm。系统能够保证半导体激光器在波长位于 1530 nm 至 1570 nm 时的精度达到 0.05 nm,波长测量的稳定度达到±5 pm [9-11] 。

在控制算法上主要是通过PID控制算法实现对温度的长时间控制,常用的PID控制传递函数为:

式中, Kp 为比例系数, Ti 为微分时间常数, 为微分时间常数。

出信号为:PID控制器的传递函数可写成:

        比例控制(P)能按比例放大系统的误差,使系统更迅速的达到稳定状态附近,然而比例控制由于会将偶然误差放大,单独使用时稳定性不够;积分控制(I)能将相对于基准值的误差进行积分运算,不断扩大自身在整体中的影响。因此当时间积累到足够长时,积分控制的输出结果就足以抵消整个误差,是系统的稳态误差变为零,。微分控制(D)可以加快系统的动态响应速度,使系统更加迅速的达到稳定状态[15-17]。

        上世纪二十年代,美国科学家Elmer Sperry设计了世界上第一台PID 控制器,并在汽车、船舶等领域广泛应用。美国科学家 Minorsky 在上世纪30年代发表了第一篇关于PID控制器的文章[19,20-22],明确提出了PID的应用公式和优点。但是在当时自动化理论还未完全发展的情况下,积分和微分的实现并不容易,因此早期的控制主要是通过定值开关控制的,只能实现比例控制且增益系数为1。近几十年以来,三极管等全控器件广泛出现和大量应用,使PID的实现出现了可能,但是只是通过模拟器件实现的PID调节,动作缓慢、体积庞大,不具有智能性。进入21世纪以来,数字计算机技术得到了快速的发展,各种微处理器大面积出现,并且得到了广泛的应用,通过计算机或者微处理器芯片等运算能力极强的元器件可以实现快速的逻辑运算,并且能将PID算法固化在程序当中,运行起来十分方便。

PID 温度控制器的核心在于参数的整定,在不同的系统中、由于受控对象不同、环境影响、干扰等原因,导致其参数需要不断改变。而针对参数整定方法也层出不穷,根据被测量个数的不同分为两种:

第一种:是单变量 PID 参数整定,受控对象只有一个控制变量时,只需分析此单一变量调整 PID 的参数[18];

第二种:是多变量 PID 参数整定,多变量系统内部的相互耦合给系统的控制带来困难,需要对多个变量进行解耦合以便确定 PID 参数[19]。

根据研究方法分为:

第一种:是理论计算方式整定,主要是根据不同条件下被测量的变化建立参数模型,通过数学模型得到具体参数,再根据实际工程的要求调整参数。

第二种:是工程整定,此方法依靠操作人员的经验,通过对受控系统的试验确定参数。这种方法相对简单,不需要有太多数学建模基础,也比较容易掌握,实际应用中也相对使用较为广泛,市场上较为常见的继电器式的 PID 温度控制器大多基于此方法。

上世纪七十年代初期的时候,恒温控制系统还未大面积普及,恒温操作主要通过人工手动操作,这种控制方式费时费力,控制成本高,且实时性和可靠性都很差。随着社会科技的发展,微电子技术得到大面积普及和长足的发展,收到科技进步的影响,恒温控制系统产生了巨大的飞跃性进步。具体体现为新型控制器替代了传统的人力控制系统,通过微型计算机、微处理器控制的新型恒温系统得到广泛应用,各种温度控制算法发展迅速,仿真工具以及温度测量仪器都有了长足进步,使得温度控制的精确控制变得可能。

国内对温度控制系统的研究方面起步交晚,但是随着我们国家经济的不断提升,各种科研投入也随之变大,目前国产的温度控制系统也已经达到了较为先进的水平,在控制算法上也紧跟国外的脚步,不断提出新的思路和方法,其中赵国强等人针对电阻炉温度控制时,提出了模糊控制的PID改进模型,具有环境适应能力强,控制效果好,控制精度高,系统稳定性高等优点。国内以实物形式出现的恒温控制器主要以研究所样机为主,其中中国科学院安徽光学精密仪器仪器研究所提出了一个基于DS18B20和S3C2410处理器的恒温系统,达到了比较先进的水平,在其正常工作的温度范围之内,控制精度可达0.1℃。

1.3. 本文主要研究内容

了解温控系统技术以及发展现状。给出器件选项的理论分析,设计出对应的硬件电路图;完成开题报告与设计说明书等材料。完成对温控系统的硬件电路设计,软件的编写以及实验测试,恒温控制系统旨在通过合理设计温控算法,对某一密闭空间的温度进行自动控制,有效提高控制精度和响应速度。

为了解决上述问题,本设计提出了一种新的基于51单片机的恒温箱体控制系统,该系统成本低廉,能实时监测箱体中的温度值,并且能根据温度值,调整所接入电路的升温或降温模块,达到温度恒定的目的,该设计温度测量准确,反应速度快,可以通过按键设定温度的上限值和下限值,并能实时的将采集到的温度值显示在液晶显示屏上。

本文结构安排如下:

第一章为绪论,里面详细介绍了本文的研究背景和所用技术的国内外发展现状,着重阐释了本文的研究目的和意义,通过分析国内外所用技术的发展情况确定本文的设计方案。

第二章为总体设计的章节,首先分析本设计所要面对的问题,然后分析了当前温度传感器的种类和每种传感器的优缺点,并分析了传感器的误差来源和解决的办法,根据不同传感器的优缺点,确定的了本设计所使用的传感器模块,并最终确定了文章设计的整体方案。

第三章的是恒温箱体控制系统的硬件设计与实现部分,主要包括主控芯片最小系统及按键输入模块设计、DS18B20温度测试模块设计、继电器驱动控制电路设计、显示电路设计和蜂鸣器报警电路设计,文章中详细给出了元器件选择的理由和标准,并介绍了设计元器件的外围电路设计和理由。

第四章中为本设计的软件部分,包括LCD1602显示程序设计、DS18B20温度测试模块控制程序设计和输入模块控制程序设计,其中首先对所需的功能进行分类,并将能在同一程序段实现的功能归为一类,然后对程序进行模块化编程,文章中详细叙述了各个程序模块的执行流程,并阐述了程序的总体设计流程图,分析了程序执行的具体过程。

第五章为恒温箱体控制系统的调试部分,由于设计中不包含箱体的设计,只能在室内环境中测试,而室内空间过大,加热和散热系统均不能有效提升或降低室内的温度,因此不能观察出系统的升温和降温设备的可用性,但是能通过改变温度的上下限值来观察继电器是否工作判断出系统的温度调节的可用性,测试了系统输入模块、蜂鸣器报警模块和显示模块的可用性。

2.总体设计

2.1.主要解决的问题

本课题结合实际问题提出了一种新的基于51单片机的恒温箱体控制系统,该系统成本低廉,能实时监测箱体中的温度值,并且能根据温度值,调整所接入电路的升温或降温模块,达到温度恒定的目的,该设计温度测量准确,反应速度快,可以通过按键设定温度的上限值和下限值,并能实时的将采集到的温度值显示在液晶显示屏上,其主要面临的问题有:

(1)解决原有温度控制系统反应速度慢、温度控制精度差的问题。

(2)解决手动控制加热设备或散热设备投入系统或切除系统的问题;

(3)确定设计中所用到的元器件,并根据这些器件设计外围电路,和软件控制程序。

(4)完成样机的实验测试,记录实验测试数据;

(5)进行实验数据分析,得到测量误差数据。说明样机功能和性能指标是否满足设计指标要求。

2.2 DS18B20温度传感器模块

温度传感器产生于十七世纪,并得到了快速发展,目前其市场份额已经超过了其他各种传感器的市场份额,按照使用方法温度传感器可分为两种接触式和非接触式,接触式传感器需要通过与被测物体接触才能获得被测物体的准确温度,如体温传感等,非接触式传感器可以通过红外线得介质在非接触的情况下获得被测物体的温度。温度传感器按照原理可分为热电偶型和热敏电阻型;

热电偶型:热电偶型温度传感器是使用最广泛的温度传感器。其通过两条不同的金属线构成,当两条金属线的其中一条受温度影响时,会在两条金属线上产生电势差,通过电势差反应温度的变化。

热敏电阻型:热敏电阻是一种自生电阻值随温度变化的元器件,其线性度差,阻值变化范围很大,精度较热偶电阻型传感器高,体积小,响应速度快,适合小范围的温度测量,价格较热偶电阻型传感器高。

DS18B20温度传感器模块是一种热电偶型的温度传感器,其构造简单,使用方便,抗干扰能力强,并且反应迅速,温度采样率在1.33Hz,其工作电压为3.3V~5.5V的宽电压范围,不需要任何外围电路即可将采集到的温度值通过1根连接线发送给单片机,并且单片机也可通过这根线向其发送指令,其温度测量范围在-55℃~+125℃之间,通过12位数据与单片机通信,适应能力极强。

DS18B20主要分为四个部分:64位ROM 、热电偶型温度传感器、温度报警触发器TH和TL、配置寄存器。64位光刻ROM的作用是给每个DS18B20一个特有的标签,使得当多个温度传感器并联使用对多点温度测量的时候,能这分辨出哪个传感器的温度值。温度报警触发器TH和TL是内部工作时的一个触发寄存器,配置寄存器的主要作用是为了对传感器工作模式的配置,为8位。

2.3总体设计方案

本设计通过51单片机实现对温度传感器模块数据的读取,并判断当前的温度是否在设定的温度限值之间,当当前温度值大于所设置的温度限值时,单片机控制散热系统进行散热,当温度传感器回传的温度小于设置的最低限值时,单片机控制加热系统对温度进行加热,并且需要能手动调节温度的上下限值,能将采集的温度实时显示在液晶屏幕上,以此为基础选择所需要的单片机(STC89C51RC)、DS18B20温度传感器模块、继电器控制模块、LCD1602显示屏、电源、按键输入模块、蜂鸣器报警模块,其电路的整体结构如图2.1所示;

51单片机

液晶显示

按键模块

温度传感器

报警模块

继电器输出

最小系统

图2.1 硬件结构框图

如图2.1所示,本设计主要分为以上六个部分,其中最小系统指的是单片机的最小系统,包括复位电路和晶振电路,实现单片机正常工作的时钟和时序产生,液晶显示模块采用LCD1602,实现对当前温度值的显示,和温度限值的显示。按键模块是系统的输入部分,通过按键输入改变系统的温度上限值和下限值。温度传感器采用DS18B20温度传感器模块,其能实时的采集空间中的温度大小,并将温度值以12位二进制数传递给单片机。警报模块指的是蜂鸣器和发光二极管模块,其能在温度超出设定的温度限值时,进行声音报警并实现发光二极管发光。继电器输出指的是两个分别控制加热和降温的继电器,当温度过高时,控制降温模块的继电器打开,当温度过低时,控制升温模块的继电器打开,

正常工作时,程序实时对温度传感器的数值进行采集,并检测是否有控制输入的按键按下,当温度传感器的回传温度过低时,程序控制相应的继电器动作和相应的警报系统动作。

3.硬件设计

3.1 主控芯片最小系统及按键电路设计

为了使系统能正常运行,需要对系统的主控芯片进行选择,目前市场上的控制芯片主要有两种,可编程逻辑器件(FPGA)和单片机。可编程逻辑器件功能强大,可并行处理进程,实时性高,但是其成本较高,外围电路结构复杂,需要多个电压进行供电才能正常工作,程序烧录较为复杂。单片机中主要以51单片机和STM32芯片使用较多,STM32是32位的控制芯片,功能较51单片机强大,但是其外围电路较复杂,成本偏高。51单片机成本很低,外围电路简单,虽然是8位处理器,但是针对目前的问题,并不需要更高的处理器。51单片机内置8KB FLASH程序存储器,实际工作频率可达48MHz,共有32个I/O口,完全能满足本设计的需要。

为了实现对整个电路的控制,需要设计51单片机的最小系统,其具体结构如图3.1所示,其40号引脚和20号引脚分别是电源的输入端和地,电源电压在3.4V~5.5V之间电路就会正常工作。其工作所需的时钟信号通过12MHz的晶振提供,由于无源晶振稳定性不高,上升沿不够陡峭,因此在无源晶振两侧并联电容滤除谐波。在电路上电时或者程序跑飞时,需要对电路进行复位,设计了如图所示的复位电路,当上电瞬间,电容器充电,电容器处于导通状态,电源电压直接加在单片机的RES引脚上,使单片机复位,当时间变长后,电容器的电压升高,处于断路状态,单片机的RES引脚通过10KΩ电阻与大地相连,完成复位功能。当程序跑飞或其他情况需要对单片机进行复位时,按下复位按键K1,电源电压直接通过非自锁开关流入复位引脚9脚,完成复位触发,按键被抬起后,复位引脚通过10K电阻接地,程序正常执行。

为了实现对程序中上限温度和下限温度的设置,需要设计输入按键对其进行更改,因此设计了如图所示的按键电路,将三个按键K2、K3、K4的一端与大地相连,另一端与单片机的P3.1、P3.2、P3.3相连接,通过程序设置这3个引脚是高电平,当按键被按下时,引脚通过按键与大地相连,使单片机引脚为低电平。单片机通过扫描方式判断出哪个按键被按下,并执行固定的语句。其中K2为设置键,K3为数值减0.1摄氏度,K4为数值加0.1摄氏度。当使用时,首先按下设置键,程序自动跳到设置界面,然后可以通过K3和K4更改所要设置的数字,更改结束后按下设置键,退出设置界面,重新回到正常工作的状态。

图3.1主控芯片最小系统及按键电路设计

3.2 DS18B20温度测试模块设计

DS18B20温度测试模块外围电路简单,如图3.2所示,其只有三个引脚,分别是GND,DQ和VCC引脚,其中地线接电源的负极,VCC引脚与电源的正极相连接,本设计中,电源的电压为5V,在接入传感器之前,需要将电压输入口处并联一个0.01uF的电容,起到防止电压过冲、储能和滤波作用。传感器的DQ引脚与单片机的P3.7相连接,通过P3.7与单片机进行通信,芯片推荐手册中推荐了寄生电源的方式进行供电,即把温度传感器芯片的电压端也与大地相连,通过芯片内部的寄生电源对芯片进行供电,这样的供电方式虽然可以少连接一根电源线,但是其稳定性不高,通过本文设计的电路,虽然多连接一根电源线,但是其可以更加稳定的供电,甚至当输入电压低至3V时,系统任可输出精确的温度信息。由于该温度传感器模块在温度转换时需要I/O口提供1mA左右的驱动电流,I/O口的驱动能力较弱,因此采用图中R11的方式进行驱动电流的补充,通过将I/O口并联电源和10K电阻的方式,可以有效提高单片机I/O口的负载能力。

图3.2 DS18B20温度测试模块设计

3.3 继电器驱动控制电路设计

为了实现对恒温箱体内温度的调控,当温度低于设置的最低极限值时,需要对恒温箱体进行升温,当温度高于恒温箱体的最高极限值时对箱体进行降温,需要设计加热控制系统和通风扇控制系统,温度过高时,打开通风扇系统使温度下降,当温度过低时打开加热控制系统使温度升高,由于系统的加热系统和通风系统不是一直工作的,因此需要通过单片机对其进行控制,然而,由于单片机输出电流太小,不能直接驱动加热装置和风扇系统,因此采用继电器对其进行控制,本设计采用的继电器为SDR-05系列,该继电器的负载能力达到10A,动作速度在1MS左右,所需的驱动电流为20mA左右,因此单片机也不能驱动继电器进行工作,为了使继电器正常工作,采用如图所示的三极管驱动电路驱动继电器,所选用的三极管为S9012,这是一种PNP型三极管,导通时压降很小,其基极通过导线与单片机的输出引脚相连,其中L与单片机P1.4相连,R与单片机P1.2相连接,图中D1和D2分别是两个发光二极管,用于指示温度过高或过低,例如,当温度过低时,单片机通过P1.4引脚输出高电平,触发三极管的基极,使三极管导通,三极管导通后,会使继电器的控制端流过较大的电流,进而触发继电器,使其工作,其导通后,使外接的发热装置接入电路当中,温度就会升高,由于三极管的触发电流比较小,因此采用图中R16电阻进行限流,当三极管导通时,发光二极管D1会被接入电路当中,其通过R17限流之后正常发光,指示温度过低。

图3.3继电器驱动控制电路设计

3.4 显示电路设计

显示电路主要用于显示当前的温度、温度的上限值和温度的下限值,采用LCD1602作为显示这些量的显示装置,利用51单片机对显示模块的输出进行控制,LCD1602具体连接方式如图3.4(a)所示;

LCD1602是带中文字库一种通过7根引脚进行并行控制的接口方式,内部含有国标字符库的点阵型液晶显示模块,能显示16*2个字符 [19],低电压低功耗是其显著特点。在本设计中,由于需要显示的字符数不多,也没有图案要求显示,因此利用LCD1602液晶屏可以实现本设计中的需求。通过51单片机的P0.0、P0.1、P0.2、P0.3、P0.4、P0.5、P0.6、P0.7引脚分别控制液晶屏从D0到D7的八个引脚,通过3脚外接电阻接地,控制LCD1602的亮度,此外,通过控制LCD1602的四脚(使能端)、六脚(复位端)对其进行使能和复位控制。

如图所示,LCD1602共有16个引脚,其每个引脚的功能如表3.1所示;通过单片机的引脚向LCD1602写入指令,就可以刷新液晶屏的显示内容。LCD1602共有11条指令,当刷新数据时通过读写指令向LCD1602发送要输出的字符地址,其具体控制时序如图3.4(b)所示。

表3.1 LCD1602引脚功能

编号

符号

引脚说明

编号

符号

引脚说明

1

VSS

电源地

9

D2

数据

2

VDD

电源正极

10

D3

数据

3

VL

液晶显示偏压

11

D4

数据

4

RS

数据/命令选择

12

D5

数据

5

R/W

读/写选择

13

D6

数据

6

E

使能信号

14

D7

数据

7

D0

数据

15

BLA

背光源正极

8

D1

数据

16

BLK

背光源负极

(a)LCD1602电路图

(b)LCD1602控制时序

图3.4 显示模块控制

3.5 蜂鸣器报警电路设计

本设计通过设计报警器对温度超过设定值或者低于设定值进行报警,通过设置直流电机对设计结果进行验证,其具体电路如图3.5所示;

3.5蜂鸣器控制电路设计

如图3.5所示,其中BUZZ与单片机的P3.0引脚相连接,由于蜂鸣器所需的驱动电流较大,因此通过单片机对三极管基极进行控制,利用三极管驱动蜂鸣器。图中三极管的型号为S9012,这是一种PNP型三极管,导通时压降很小,其基极通过导线与单片机的输出引脚相连,当温度传感器回传的温度过高或过低时,单片机通过输出引脚P3.6输出周期性方波,电源连接在三极管的发射极上,蜂鸣器一端与大地相连一段与三极管的集电极相连。当单片机输出高电平时,三极管就会导通,蜂鸣器就与电源相连,当单片机输出低电平时,三极管就会关断,蜂鸣器就处于断电状态。通过这样的方式,使周期性的高电平与蜂鸣器相连,进而达到发出警报的作用。

4.软件设计

为了实现 对温度的实时控制,需要对单片机中的软件进行设计,根据本设计的要求,单片机的程序主要功能是实现温度的实时测量、实现温度的实时显示、温度变化时进行升温或降温控制、实现最高、最低温度限制的输入和更改。

为了实现上述功能,设计了如图4.1所示的整体程序结构流程,当电路上电之后,首先对DS18B20温度测试模块进行初始化,当温度传感器初始化失败之后,重新进行初始化,初始化成功后,需要对当前的温度进行读取,并显示当前的温度,之后程序进入循环阶段,开始等待是否有按键输入,这部分程序采用循环扫描的方式进行控制,大约每50ms对按键进行一次扫描,当监测到设置按键SET被按下时,程序执行更改温度限值部分,开始等待温度加减值的输入,如果设置按键没被按下,程序每50ms向DS18B20温度测试模块写入读取温度的命令,并对其内部的RAM进行读取,读取到温度值之后,程序开始判断这一温度值是否大于设置的温度最大值极限,如果比这一极限大,程序自动拉高单片机控制引脚,控制继电器触发,使风扇降温系统开始工作,并触发蜂鸣器进行报警,发光二极管发光,当温度值小于设置的温度最小值极限,程序会自动拉高控制加热系统的单片机引脚,当这一引脚被拉高后,三极管控制继电器触发,加热系统会被接入到电路当中,指示温度过低的发光二极管发光,蜂鸣器报警。当检测到的温度值在最低温度限度和最高温度限度之间时,程序自动返回到显示部分,将传感器采集到的温度显示在屏幕上。当执行过一遍循环之后,程序自动跳到最开始的部分,开始执行对按键的扫描程序。

4.1 LCD1602显示程序设计

本设计采用LCD1602作为显示模块, LCD1602采用3.0-5.5V之间的电压供电,分辨率大128x64,利用单片机对其提供2MHz的时钟信号,实时显示下一站的名称。其具体的控制流程如图4.2所示。

图4.2 LCD1602控制流程

如图4.2所示,首先对LCD1602进行初始化,然后实时监测是否设定的50ms时间到来,当时间到达时,说明已经开始取得了温度传感器上传的温度,并对所获得的温度值进行了解码。获得当前空间中的温度值,并控制LCD1602显示在屏幕上,并且实时显示温度的上限和下限值。当执行完一次之后,程序自动调回到等待触发的状态。

4.2 DS18B20温度测试模块控制程序设计

根据DS18B20的通讯协议,主机(单片机)控制DS18B20完成温度转换必须经过三个步骤:每一次读写之前都要对DS18B20进行 复位操作,复位成功后发送一条ROM指令,最后发送RAM指令,这样才能对DS18B20进行预定的操作。复位要求主CPU将数据线下拉500微秒,然后 释放,当DS18B20收到信号后等待16~60微秒左右,后发出60~240微秒的存在低脉冲,主CPU收到此信号表示复位成功。

根据上述通信协议,设计了如图4.3所示的DS18B20温度测试模块控制程序流程图,如图所示,当上电之后,程序首先对DS18B20进行初始化复位处理,然后判断是否初始化成功,当初始化不成功时,显示模块显示温度值,但是这一温度值是空的,以此提示传感器模块初始化未成功或者不存在,当初始化成功后,利用单片机内部的定时器,每50毫秒向DS18B20传感器中写入一个温度转换命令,并进行延时,根据芯片手册,延时需要在400微妙左右,然后对传感器进行复位,温度转换的时间大概为100毫秒左右,复位之后可以进行温度的读取,单片机通过控制引脚将读取温度的指令写入芯片中,芯片即将当前采集到的温度值通过16位二进制数回传给单片机,虽然回传的数据为16位的,但是该传感器模块的分辨率只有12位或者8位,回传数据的前5位指示的是温度的正负值,剩余的11位才代表了温度采集的精度,单片机会将传感器回传的温度进行处理,通过去除基线、减去固有误差进行温度的校正,校正之后温度的测量精度能达到0.5摄氏度。

图4.3 DS18B20温度测试模块控制程序流程图

4.3 输入模块控制程序设计

在本设计中,按键的主要功能是对温度的上限值和下限值进行设置,通过按键加减的方式,增加或者减小所控制数字,由于DS18B20的随机误差是1摄氏度,因此采取的温度控制步进值为1摄氏度。其主要的流程图如下图4.4所示:

图4.4 按键流程图

当上电之后,首先初始化显示模块 ,显示模块正常工作之后,开始对按键进行扫描判读,当监测到设置按键SET被按下时,首先进行按键去抖,当判断出是正产按键而非误触发时,程序进入更改温度上下限的函数段中,此时屏幕上自动将温度上限值的个位闪烁,以提示所更改的位置,此时程序继续对按键模块进行扫描,如果检测到SET又被按下,此时说明已经对温度上限值设置完成,屏幕上的下限值个位开始闪烁。程序此时依然扫描按键模块,如果检测到控制数值增加的按键被按下时,就在对应的数字上加一,反之,如果检测到控制数值减小的按键被按下时,就在对应的数字上减一。每次更改之前都需要对按键进行去抖处理,防止非人为因素造成的误触发和连续触发现象,每次更改之后都需要将对应的数值在屏幕上显示出来,以提示更改成功,当更改成功后,再次按下SET键,程序人为设置已经完成,自动跳回到正常工作的界面。

5.试验测试

5.1 系统仿真测试

为了验证系统的整体可用性,首先设计基于proteus软件的仿真电路图,该软件可以对设计过程中的一些问题进行仿真分析,避免不必要的错误。具体仿真图如图5.1所示。

经过仿真,可以验证系统的电路设计稳定,按照这个电路进行焊接理论上可以实现电路的全部功能。

5.2 实际测试

根据设计的电路,购买了51单片机等全部器件,焊接电路并对系统的整体功能进行测试。具体电路如图5.2(a)所示。  

(a)硬件电路焊接图

   

(b)正常工作时温度过低时               (c)正常工作温度过高时

  

(d)通过按键调节最高温度预值            (e)通过按键调节最低温度预值

(f)系统正常工作状态

如上图5.2(a)所示,电路包括继电器部分、蜂鸣器部分、单片机控制部分和显示部分等。打开电路后的界面如图5.2(b),(c),(f)所示。当系统预设的最低温度高于当前温度值时,如图(b)中,系统会驱动蜂鸣器报警,并使加热继电器的红灯报警。当系统预设的最高温度低于当前温度值时,如图(c)中,系统会驱动蜂鸣器报警,并使散热继电器的黄灯报警。当系统所在环境温度在最大值与最小值之间时,系统状态如图(f)所示。如图(d)、(e)所示,为系统通过按键控制系统预设温度改变的效果图,更改的温度值会在屏幕上闪烁,通过电路板的按键控制温度的增减,系统程序设置系统不允许最低温度高于最高温度。

总结

随着科技的进步,越来越多的场合需要高精度、低成本的恒温控制,而目前的恒温控制技术成本较高,控制精度不够,实时性和准确性不强。为了解决上述问题,本设计提出了一种新的基于51单片机的恒温箱体控制系统,该系统成本低廉,能实时监测箱体中的温度值,并且能根据温度值,调整所接入电路的升温或降温模块,达到温度恒定的目的,该设计温度测量准确,反应速度快,可以通过按键设定温度的上限值和下限值,并能实时的将采集到的温度值显示在液晶显示屏上。在设计过程中,利用所选器件设计并制作了电路实物,经测试,系统工作稳定,能在温度低于或高于预定值时报警,并自动打开散热或者加热装置,实时性和稳定性强。

在设计过程中也产生了一些设计不当之处,遇见了某些问题,比如系统在设计时采用的温度传感器精度不高,导致在控制工程中出现不及时控制的问题,换用精度更高的传感器可以提高控制精度,采用的加热设备功率较小,换用更大的加热设备可以使温度变化更迅速。

程序及源代码及PCB原理图下载链接(  扣扣 ):

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值