产品选型

单片机 th tl 智能温控系统的设计

小编 2024-11-25 产品选型 23 0

智能温控系统的设计

摘 要 : 温度是生产、生活及科学研究等方面中的一个重要参数,在很多场合起着极为关键的作用,需要精确控制。因此,高精度温度控制器具有广阔的市场前景和迫切的应用需求。研究和设计了一个由单片机控制的具有一定智能水平的温度控制系统,能够按照实际需要设定温度控制的范围,并根据在温度调整过程中的温度变化情况,输出智能控制信号,实现温度的精确控制。

0 引言

随着社会发展和科技进步,温度的测量及控制在人们的生产、生活和科学研究中发挥着越来越重要的作用[1-3]。在现代社会中,对各种过程的控制要求日趋精密,对于温度的测量和控制要求也进一步提高[4-9]。目前国内的传统温控箱控制精度低,价格高,难以满足高精度温度控制的要求,国外的温度控制箱控制精度高,但价格昂贵,如德国西门子(Siemens)、恩德斯豪斯公司(Endress+Hauser)、美国江森(Johnson)、霍尼韦尔(Honeywell)、罗斯蒙特公司(Rosemount)、英国森威尔(Saswell)、瑞士ABB公司、日本松下公司(Panasonic)等都生产性能优良的温度控制箱,在社会各行业中得到广泛的应用。为满足国内低成本温度控制要求,本文研制了一个采用单片机控制的高精度智能温度控制箱,它具有结构紧凑、工艺简单、智能化等优点。

1 温控系统硬件设计

温度控制的基本原理是在需要进行温度控制的场合用传感器测量其温度值,与控制器内存储的温度值进行比较,当测得的温度高于或低于设定值时,启动加热或降温设备,使温度回归到设定值范围内,其原理如图1所示。

1.1系统总体结构设计

本温控箱以单片机STC89C52作为温控中心,用温度传感器DS18B20作为温度测量单元,将采集的温度值经过串行通信方式传输到温控中心进行判断,并进行智能处理。当测得的温度T低于设定的最低温度Tl时,单片机发出控制信号,启动加热器件;当测得的温度T高于设定的温度Th时,单片机发出控制信号,启动降温器件,将温度保持在设定的范围内,完成温控工作。本温控器带有LCD显示模块和按键输入模块,可显示实时温度值和现场设定温度控制范围。温控系统主要由温度检测模块、单片机控制模块、温度显示模块、温控执行模块(继电器及加热、降温器件)等部分组成。

1.2 温度检测单元设计

为提高测温精度,降低成本,本温控箱采用较成熟的DS18B20温度传感器来完成温控箱内部和外部的温度检测。DS18B20是由Dallas公司生产的一线式数字温度传感器,它将温度感测、信号变换、数据存储、A/D转换等功能集成于一体,其温度检测范围宽,达到-55℃~+125℃,可以用一线总线方式连接微处理器,以编程方式(9~12位)转换精度,测温分辨率达0.062 5 ℃。DS18B20温度传感器的工作电源可从外部输入,也可采用寄生电源方式工作;多个DS18B20可以并联连接到CPU,实现多个DS18B20与CPU的通信,因此连线少,可节省引线和逻辑电路,减少CPU端口的占用,但以增加软件复杂性为代价,对读写的数据位有着严格的时序要求。

DS18B20温度传感器具有体积小、功能强、精度高、连接方便、抗干扰性好等优点,在工业控制、智能家居等环境中得到较广泛的应用。

1.3 温度控制执行部分设计

由于单片机的输出功率较小,不宜直接驱动继电器,否则会造成单片机功耗过大,加重单片机内部电源的负担,易导致单片机工作不稳定。为安全平稳控制继电器,本温控系统采用固态继电器SSR-40DA,固态继电器也称作固态开关SSR(Solid State Relay),它是利用现代微电子技术与电力电子技术相结合而发展起来的一种新型无触点电子开关,集光电藕合、大功率双向晶闸管及触发电路、阻容吸收回路于一体,用于代替传统的电磁式继电器,实现对单相或者三相电动机的正反转控制,或者其他控制。无触点无动作噪音,具有开关速度快、无火花干扰和可靠性高等优点。

1.4 温度显示模块

温度显示模块采用1602C型字符型液晶显示器。1602C型显示器具有功耗低、体积小、显示内容丰富、超薄轻巧等优点,在袖珍式仪表和低功耗应用系统中应用广泛,是一种专门用于显示字母、数字、符号等点阵式的LCD,显示的格式为16×2行。在模块内部已经存储了160个不同的点阵字符图形,这些字符包括:英文字母的大小写、阿拉伯数字、常用的符号等,每一个字符都有一个固定的代码。

1.5 加热/通风执行机构

当单片机检测到温度不在调控范围以内时,需要启动加热或降温器件使温度回到温控范围内。一般加热的方式为电热丝和风扇,本系统用电热丝为加热器件,以风扇为降温器件。为使温度变化过程平稳,通常要对加热或降温器件的功率进行调整。功率调整的方法一般用可控硅,具体的方式有调相和PWM。调相就是调整加在负载上的电压的导通角,PWM是通过调整单位时间内加在负载上的电压次数来改变负载功率。为降低对电网的污染和对其他用电器件的干扰,本系统采用PWM方式对温控器件进行调整。

1.6 报警电路

本温控箱采用声光报警方式进行异常状态报警,以晶体管和蜂鸣器构成声音报警电路,以红、绿色发光二极管构成光线报警电路。在系统正常工作时,只有绿色发光二极管点亮;当系统测得的温度超出设定的温度范围,绿色发光二极管熄灭,红色二极管点亮,同时由单片机控制蜂鸣器发出报警声,10 s后停止声音报警。

2 温控系统软件设计

2.1 控制流程图

智能温控系统控制流程如图2所示。系统开机后首先初始化程序,接着进行温度测量,将测得的温度值通过显示屏显示;检测是否有按键操作,若有则执行按键扫描及处理程序,存储新输入的温度控制范围,若无按键操作则直接显示当前温度及设定值;将测得的温度值与设定值进行比较,若在设定范围内,程序自动返回测量温度,若不在设定范围内,则程序根据测得的温度与设定值,确定调温停止的温度,进行智能处理后输出控制信号,启动报警,运行加热或降温设备进行温度调节。

2.2 软件设计

为实现上述控制流程,达到温度控制目的,本系统设计了温度采集程序、LCD显示程序、按键扫描及处理程序、温度比较及计算程序、智能控制程序、报警程序等,其控制过程如图2所示。

温度采集程序用于将DS18B20所采集的温控箱内部、外部温度通过串行通信送入到指定地址;LCD显示程序用于显示测得的温度值及设定温度等数据;按键扫描及处理程序用于处理按键相关事项,即判断是否有按键行为、记录按键输入值及将输入值送往指定地址等。

传统的温控箱只是简单地将测量得到的实时温度值与设定值进行比较,控制加热器件或降温器件的通断状态进行温度调整。这种控制方式很容易出现过冲现象,对控制精度造成严重影响。同时单片机的功能只使用了一小部分,造成了资源浪费。本系统利用单片机的计算和比较功能对加热和降温过程进行智能控制,能较好地解决过冲问题,减少加热和降温状态的转换次数,实现温度的平稳控制,同时节省能源。

在进行智能控制时,根据设定的温度范围及探测到的系统温度,确定加热或降温时的结束温度,如果环境温度高于设定温度的上限,则降温器件停止工作时的温度由单片机根据公式Th-0.8(Th-Tl)计算出来。当环境温度低于设定温度的下限,则加热器件停止工作时的温度由单片机根据公式Tl+0.8(Th-Tl)计算出来。当环境温度在设定温度的上、下限之间,则降温器件停止工作时的温度由单片机根据公式Tl+0.5(Th+Tl)计算出来,通过此种方式进行温度调控,能有效减少加热或降温器件的启停次数,延长系统寿命,同时也使温度变化过程更平稳。在调温过程中以PID方式对系统温度进行控制,即在控制过程中,将测得实际温度值与设定值进行比较,经单片机计算后得到温度的偏差值、偏差变化率等,根据温度值、偏差值、偏差变化率算出控制增量,以控制加热器件或风扇的导通时间,达到温度控制的目的。

报警程序用于输出报警信号,控制报警电路实现声光报警。

3 总结

本温控箱以单片机作为温控系统的中央控制单元,充分利用了单片机的运算功能对温控过程进行自动控制,实时性强,可实现高精度控制,同时本系统设计合理,结构简单,具有可靠性高、运行稳定、成本较低、操作简便等优点,适用于需要较高控制精度的各种场合。

参考文献

[1] 张瀚文,张博,杜岩,等.多路高精度扩散炉温度控制系统的设计[J].微型机与应用,2013,32(17):83-86.

[2] 刘雷,张高飞,尤政.环境温度对RF-MEMS开关闭合电压影响研究[J].传感器与微系统,2013,32(5):6-8.

[3] SELAK G V, PERICA S, BAN S G, et al. The effect of temperature and genotype on pollen performance in olive[J]. Scientia Horticulturae, 2013,156(1):38-46.

[4] 陈新海,张侃健,魏海坤,等.无人值守的南极科考平台温控系统设计与实现[J].自动化仪表,2013,34(10):23-27.

[5] VITEL G, SURU M G, PARASCHIV A L. Structural effects of training cycles in shape memory actuators for temperature control[J]. Materials and Manufacturing Processes, 2012, 28 (1): 79-84.

[6] 李晓明,冯志书,徐刚,等.基于PC104的某型航空发动机排气温度测试系统[J].微型机与应用,2013,32(11):95-96.

[7] COSTA B A, LEMOS J M, ROSA L G. Temperature control of a solar furnace for material testing[J]. International Journal of Systems Science, 2011,42(8):1253-1264.

[8] 文春明,温志渝,尤政,等.硅基微型超级电容器三维微电极结构制备[J].电子元件与材料,2012,31(5):42-45.

[9] ASTRAIN D, MART?魱NEZ A, GORRAIZ J, et al. Computational study on temperature control systems for thermoelectric refrigerators[J]. Journal of Electronic Materials, 2012, 41 (6): 1081-1090.

单片机系列第七讲 单片机的特殊功能寄存器

通过前面的学习,我们已知单片机的内部有ROM、有RAM、有并行I/O口,那么,除了这些东西之外,单片机内部究竟还有些什么,这些个零碎的东西怎么连在一起的,让我们来对单片机内部的寄存器作一个完整的功能分析吧!

下图中我们能看出,在51单片机内部有一个CPU用来运算、控制,有四个并行I/O口,分别是P0、P1、P2、P3,有ROM,用来存放程序,有RAM,用来存放中间结果,此外还有定时/计数器,串行I/O口,中断系统,以及一个内部的时钟电路。在一个51单片机的内部包含了这么多的东西。

对上面的图进行进一步的分析,我们已知,对并行I/O口的读写只要将数据送入到对应I/O口的锁存器就能了,那么对于定时/计数器,串行I/O口等怎么用呢?在单片机中有一些独立的存储单元是用来控制这些器件的,被称之为特殊功能寄存器(SFR)。事实上,我们已接触过P1这个特殊功能寄存器了,还有哪些呢?看下表1

符号地址功能介绍BF0HB寄存器ACCE0H累加器PSWD0H程序状态字IPB8H中断优先级控制寄存器P3B0HP3口锁存器IEA8H中断允许控制寄存器P2A0HP2口锁存器SBUF99H串行口锁存器SCON98H串行口控制寄存器P190HP1口锁存器TH18DH定时器/计数器1(高8位)TH08CH定时器/计数器1(低8位)TL18BH定时器/计数器0(高8位)TL08AH定时器/计数器0(低8位)TMOD89A定时器/计数器方式控制寄存器TCON88H定时器/计数器控制寄存器DPH83H数据地址指针(高8位)DPL82H数据地址指针(低8位)SP81H堆栈指针P080HP0口锁存器PCON87H电源控制寄存器

表1

<特殊功能寄存器地址映象表(一)>

<特殊功能寄存器地址映象表(二)>

<特殊功能寄存器地址映象表(三)>

下面,我们介绍一下几个常用的SFR,看图2。

1、ACC:累加器,常常用A表示。这是个什么东西,可不能从名字上理解,它是一个寄存器,而不是一个做加法的东西,为什么给它这么一个名字呢?或许是因为在运算器做运算时其中一个数一定是在ACC中的缘故吧。它的名字特殊,身份也特殊,稍后我们将学到指令,能发现,所有的运算类指令都离不开它。

2、B:一个寄存器。在做乘、除法时放乘数或除数,不做乘除法时,随你怎么用。

3、PSW:程序状态字。这是一个很重要的东西,里面放了CPU工作时的很多状态,借此,我们能了解CPU的当前状态,并作出对应的处理。它的各位功能请看表2

D7D6D5D4D3D2D1D0CYACF0RS1RS0OVP

表2

PSW也称为标志寄存器,了解这个对于了解单片机原理非常的重要,存放各有关标志。其结构和定义如下:

下面我们逐一介绍sfr各位的用途

(1)CY:进位标志。用于表示Acc.7有否向更高位进位。8051中的运算器是一种8位的运算器,我们知道,8位运算器只能表示到0-255,如果做加法的话,两数相加可能会超过255,这样最高位就会丢失,造成运算的错误,怎么办?最高位就进到这里来。这样就没事了。

例:78H+97H(01111000+10010111)

(2)AC:辅助进位标志也叫半进位标志。 用于表示Acc.3有否向Acc.4进位

例:57H+3AH(01010111+00111010)

(3)F0:用户标志位,由我们(编程人员)决定什么时候用,什么时候不用。

(4)RS1、RS0:工作寄存器组选择位。这个我们已知了。

RS1、RS0 = 00 —— 0区(00H~07H)

RS1、RS0 = 01 —— 1区(08H~0FH)

RS1、RS0 = 10 —— 2区(10H~17H)

RS1、RS0 = 11 —— 3区(18H~1FH)

(5)0V:溢出标志位。 表示Acc在有符号数算术运算中的溢出,什么是溢出我们稍后再谈吧。

(6)P:奇偶校验位:它用来表示ALU运算结果中二进制数位“1”的个数的奇偶性。若为奇数,则P=1,不然为0。

例:某运算结果是78H(01111000),显然1的个数为偶数,所以P=0。

4、DPTR(DPH、DPL):数据指针,能用它来访问外部数据存储器中的任一单元,如果不用,也能作为通用寄存器来用,由我们自已决定如何使用。16位,由两个8位寄存器DPH、DPL组成。主要用于存放一个16位地址,作为访问外部存储器(外RAM和ROM)的地址指针。

5、P0、P1、P2、P3:这个我们已经知道,是四个并行输入/输出口的寄存器。它里面的内容对应着管脚的输出。

6、SP:堆栈指针。(专用于指出堆栈顶部数据的地址。)

堆栈介绍:日常生活中,我们都注意到过这样的现象,家里洗的碗,一只一只摞起来,最晚放上去的放在最上面,而最早放上去的则放在最下面,在取的时候正好相反,先从最上面取,这种现象我们用一句话来概括:“先进后出,后进先出”。请大家想想,还有什么地方有这种现象?其实比比皆是,建筑工地上堆放的砖头、材料,仓库里放的货物,都是“先进后出,后进先出”,这实际是一种存取物品的规则,我们称之为“堆栈”。

在单片机中,我们也能在RAM中构造这样一个区域,用来存放数据,这个区域存放数据的规则就是“先进后出,后进先出”,我们称之为“堆栈”。为什么需要这样来存放数据呢?存储器本身不是能按地址来存放数据吗?对,知道了地址的确就能知道里面的内容,但如果我们需要存放的是一批数据,每一个数据都需要知道地址那不是麻烦吗?如果我们让数据一个接一个地放置,那么我们只要知道第一个数据所在地址单元就能了(看图2)如果第一个数据在27H,那么第二、三个就在28H、29H了。所以利用堆栈这种办法来放数据能简化操作

那么51中堆栈什么地方呢?单片机中能存放数据的区域有限,我们不能够专门分配一块地方做堆栈,所以就在内存(RAM)中开辟一块地方,用于堆栈,但是用内存的哪一块呢?还是不好定,因为51是一种通用的单片机,各人的实际需求各不相同,有人需要多一些堆栈,而有人则不需要那么多,所以怎么分配都不合适,怎样来解决这个问题?分不好干脆就不分了,把分的权利给用户(编程者),根据自已的需要去定吧,所以51单片机中堆栈的位置是能变化的。而这种变化就体现在SP中值的变化,看图2,SP中的值等于27H不就相当于是一个指针指向27H单元吗?当然在真正的51机中,开始指针所指的位置并非就是数据存放的位置,而是数据存放的前一个位置,比如一开始指针是指向27H单元的,那么第一个数据的位置是28H单元,而不是27H单元,为什么会这样,我们在学堆栈命令时再说明。其它的SFR,我们在用到时再介绍。

作者点评:这一课可能比较难懂了,看大家的评论很多都这样说,其实并不需要把上面的这些东西都死记硬背在脑子里面,这是很难的,我们只需要理解他的工作原理,一次看不懂就要多看几次,等到要写程序的时候,我们再把这些表格拿出来查阅所以建议你把本页保存为书签.笔者在开始学习单片机的时候也是这样做的.

最新电子行业资讯、教程以及开发板样片申请,请关注“云汉电子社区”官方微信公众号ickeybbs ,或者登录云汉电子社区官方QQ群:496780052

相关问答

你好,定时器设置为TMOD=0x01; TH 0=0; TL 0=0;怎么解释?

定时器工作原理:从TH和TL里的值开始向上计数直到溢出触发中断,在晶振12M,12T单片机的情况下,时钟周期为1MHz,执行一次加计数用1us,这样,从0记到两个寄存器...

51 单片机 定时器ET是什么?

51单片机定时器ET是内部定时器/计数器中断允许位。EA是总中断允许位,EX是外部中断允许位(EX0,EX1分别指外部中断INT0,INT1),ET是内部定时器/计数器中断允...

单片机 振荡频率计算?

5、换算成十六进制数为:定时初值=1C18H。定时器中断是由单片机中的定时器溢出引起的中断,51单片机中有两个定时器t0和t1。定时/计数器t0和t1由两个8位专用...

单片机 MOV TH 0 ,0FFH后为什么加0?

应该是MOVTH0,#0FFH。之所以在前面加一个0,是为了在使用十六进制数时,当高4位为ABCDEF等字母时,区别一般的变量名等,这样可以直观的看到0FFH表示的是一个立即...

单片机 中断初始化是什么意思?

定时器/计数器的初始化在使用8051系列单片机的定时器/计数器前,首先要对TMOD和TCON寄存器进行初始化,同时还必须计算定时的时间(重点)。(1)确定T/C...

C语言 单片机 用定时器输出3KHz方波的程序 - 懂得

先开总中断然后再打开定时器0#includesbita=P1^0;main(){a=1;TMOD=0X02;//定时器0自动重装载TH0=256-167;TL0=256-167;ET0=1;//定...

谁知道 单片机 有什么应用啊?

[回答]单片机已普遍实现了家用电器领域的控制,如电饭煲、电冰箱、空调、彩电、音响等等。深圳市凌芯微电子有限公司产品适用范围广,产品规格齐全,欢迎前来...

C语言 单片机 用定时器输出3KHz方波的程序 - 叫我万颂伊 的回...

#includesbita=P1^0;main(){a=1;TMOD=0X02;//定时器0自动重装载TH0=256-167;TL0=256-167;ET0=1;//定时器0允许TR0=1;//打开...

555 单片机 原理?

它主要用于产生时序信号,例如脉冲、周期性波形、计时等方面的应用。555单片机的工作原理是基于其内部电路构造的。主要包括3个功能模块:1、比较器,2、RS触...

设计电子时钟 要用AT89S51 单片机 的定时器实现,用4位数码管...

你的邮箱。。。?你不要程序么?呵呵~~用21134位数码管显示,用点的闪烁表示秒,就是共有52615位,7段;那么用一整个4102PIO口(8位)去对应7段数据,1653...

猜你喜欢