基于单片机的电冰箱温度控制系统.docx
- 文档编号:30562338
- 上传时间:2023-08-16
- 格式:DOCX
- 页数:22
- 大小:109.63KB
基于单片机的电冰箱温度控制系统.docx
《基于单片机的电冰箱温度控制系统.docx》由会员分享,可在线阅读,更多相关《基于单片机的电冰箱温度控制系统.docx(22页珍藏版)》请在冰豆网上搜索。
基于单片机的电冰箱温度控制系统
2前言
近年来随着计算机在社会领域的渗透,单片机的应用正在不断地走向深入,同时带动传统控制检测日新月益更新。
在实时检测和自动控制的单片机应用系统中,单片机往往是作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件测控电路,以及针对具体应用对象特点的软件结合,以作完善。
电冰箱温度控制系统是利用温度传感器DS18B20采集电冰箱冷藏室和冷冻室的温度,通过AT89S51单片机进行数字信号处理,从而达到智能控制的目的。
本系统可实现电冰箱冷藏室和冷冻室的温度设置,开门报警等功能。
3设计背景
随着集社会的发展和生活水平的提高,人们对家用电冰箱的控制功能越来越高,这对电冰箱控制器提出了更高的要求。
多功能,智能化是其发展方向之一,传统的机器控制,简单的电子控制已经难以满足发展的要求。
而采用基于单片机温度控制系统,不仅可大大缩短设计新产品的时间,同时只要增加少许外围器件在软件设计方面就能实现功能的扩展,以及智能化方面的提高,因此可最大限度地节约成本。
本文即为基于单片机的电冰箱温度控制系统。
4设计思想
目前市场销售的双门直冷式电冰箱,含有冷冻室和冷藏室,冷冻室通常用于冷冻的温度为-6~-18℃;冷藏室用于在相对冷冻室较高的温度下存放食品,要求有一定的保鲜作用,不能冻伤食品,一般为0~10℃.
传统的电冰箱温度一般是由冷藏室控制,冷藏室、冷冻室的不同温度是通过调节蒸发器在两室的面积大小来实现的,温度调节完全依靠压缩机的开停来控制.但是冰箱内的温度受诸多因素的影响,如放入冰箱物品初始温度的高低、存放品的散热特性及热容量、物品在冰箱的充满率、环境温度的高低、开门的频繁程度等.因此对这种受控参数及随机因素很多的温度控制,既难以建立一个标准的数学模型,也无法用传统的PID调节来实现.一台品质优良的电冰箱应该具有较高的温度控制精度,同时又有最优的节能效果,而为了达到这一设计要求采用模糊控制技术无疑是最佳的选择.
5设计说明
5.1工作原理
制冷压缩机吸入来自蒸发器的低温低压的气体制冷剂,经压缩后成为高温高压的过热蒸气,排入冷凝器中,向周围的空气散热成为高压过冷液体,高压过冷液体经干燥过滤器流入毛细管节流降压,成为低温低压液体状态,进入蒸发器中汽化,吸收周围被冷却物品的热量,使温度降低到所需值,汽化后的气体制冷剂又被压缩机吸入,在被吸回压缩机的过程中,制冷剂蒸气仍然从外界吸取热量进行汽化,因此压缩机的吸气管也是低于环境温度的,用手摸感到些凉。
而压缩机的排气管却相反,因为排气管内是高温高压的制冷过热蒸气,故其外表温度比环境温度高,用手触摸的感觉是热的。
至此,完成一个循环。
压缩机制冷循环周而复始的运行,保证了制冷过程的连续性,因此充分发挥了制冷剂的特性。
制冷剂在系统内要经过四个连续的热变化过程:
即压缩、冷凝、节流、蒸发。
制冷系统内所有部件的根本任务是保证这四个过程的顺利进行。
5.2设计的主要功能及要求
(1)设定2个测温点,测量范围:
-26C~+26C,精度±0.5C;
(2)利用功能键分别控制温度设定、冷藏室及冷冻室温度设定等;
(3)制冷压缩机停机后自动延时3分钟后方能再启动;
(4)电冰箱具有自动除霜功能;
(5)开门延时超过20秒发声报警;
(6)工作电压为180~240V,当欠压或过压时,禁止启动压缩机并用指示灯显示。
6硬件设计
6.1系统结构图
控制系统结构如图6.1所示,主要由电源开关,电压检测装置,温度传感器,功能按键,单片机,延时电路,显示电路,指示灯电路,除霜装置和故障报警装置等够成。
图6.1控制系统结构图
6.2微处理器(单片机)
微处理器是本系统的核心,其性能的好坏直接影响系统的稳定,鉴于本系统为实时控制系统,系统运行时需要进行大量的运算,所以单片机采用INTEL公司的高效微控制器AT89C51。
他是一个低功耗,高性能CMOS8位单片机,片内含4kBytesISP的可反复擦写1000次的Flash只读程序存储器,芯片内集成了通用8位中央处理器和ISPFlash存储单元,功能强大的微型计算机的AT89C51可为许多嵌入式控制应用系统提供高性价比的解决方案。
INTEL公司的AT89C51芯片具有以下特性:
●4KB片内在系统可编程Flash程序存储器;
●时钟频率为0~33MHz;
●128字节片内随机读写存储器(RAM);
●32个可编程输入/输出引脚;
●2个16位定时/计数器;
●5个中断源,2级优先级;
●全双工串行通信接口;
●监视定时器;
●2个数据指针。
单片机引脚如图6.2
图6.2AT89C51单片机引脚图
6.3温度传感器
DS1820是美国DALLAS半导体公司生产的可组网数字式温度传感器,在其内部使用了在板(ON-B0ARD)专利技术。
全部传感元件及转换电路集成在形如一只三极管的集成电路内,其内部结构主要由四部分组成:
64位光刻ROM,温度传感器,非挥发的温度报警触发器TH和TL,高速暂存器。
DS18B20的管脚排列如图6.3所示。
图6.3DS18B20管脚图
与其它温度传感器相比,DS1820具有以下特性:
(1)独特的单线接口方式,DS1820在与微处理器连接时仅需要一条口线即可实现微处理器与DS1820的双向通讯。
(2)DS1820支持多点组网功能,多个DS1820可以并联在唯一的三线上,实现多点测温。
(3)DS1820在使用中不需要任何外围元件。
(4)温范围-55℃~+125℃,固有测温分辨率0.5℃。
(5)测量结果以9位数字量方式串行传送
DS1820测温原理如图6.4所示。
图中低温度系数晶振的振荡频率受温度影响很小,用于产生固定频率的脉冲信号送给计数器1。
高温度系数晶振随温度变化其振荡率明显改变,所产生的信号作为计数器2的脉冲输入。
计数器1和温度寄存器被预置在-55℃所对应的一个基数值。
计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当计数器1的预置值减到0时,温度寄存器的值将加1,计数器1的预置将重新被装入,计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度。
图6.4DS1820测温原理图
在正常测温情况下,DS1820的测温分辩率为0.5℃以9位数据格式表示,其中最低有效位(LSB)由比较器进行0.25℃比较,当计数器1中的余值转化成温度后低于0.25℃时,清除温度寄存器的最低位(LSB),当计数器1中的余值转化成温度后高于0.25℃,置位温度寄存器的最低位(LSB)。
DS18B20有六条控制命令,如表6.1所示:
表6-1DS18B20控制命令
指 令
约定代码
操作 说 明
温度转换
44H
启动DS18B20进行温度转换
读暂存器
BEH
读暂存器9个字节内容
写暂存器
4EH
将数据写入暂存器的TH、TL字节
复制暂存器
48H
把暂存器的TH、TL字节写到E2RAM中
重新调E2RAM
B8H
把E2RAM中的TH、TL字节写到暂存器TH、TL字节
读电源供电方式
B4H
启动DS18B20发送电源供电方式的信号给主CPU
CPU对DS18B20的访问流程是:
先对DS18B20初始化,再进行ROM操作命令,最后才能对存储器操作,数据操作。
DS18B20每一步操作都要遵循严格的工作时序和通信协议。
如主机控制DS18B20完成温度转换这一过程,根据DS18B20的通讯协议,须经三个步骤:
每一次读写之前都要对DS18B20进行复位,复位成功后发送一条ROM指令,最后发送RAM指令,这样才能对DS18B20进行预定的操作。
6.3.1DS1820使用中注意事项
DS1820虽然具有测温系统简单、测温精度高、连接方便、占用口线少等优点,但在实际应用中也应注意以下几方面的问题:
(1)较小的硬件开销需要相对复杂的软件进行补偿,由于DS1820与微处理器间采用串行数据传送,因此,在对DS1820进行读写编程时,必须严格的保证读写时序,否则将无法读取测温结果。
在使用PL/M、C等高级语言进行系统程序设计时,对DS1820操作部分最好采用汇编语言实现。
(2)在DS1820的有关资料中均未提及单总线上所挂DS1820数量问题,容易使人误认为可以挂任意多个DS1820,在实际应用中并非如此。
当单总线上所挂DS1820超过8个时,就需要解决微处理器的总线驱动问题,这一点在进行多点测温系统设计时要加以注意。
(3)连接DS1820的总线电缆是有长度限制的。
试验中,当采用普通信号电缆传输长度超过50m时,读取的测温数据将发生错误。
当将总线电缆改为双绞线带屏蔽电缆时,正常通讯距离可达150m,当采用每米绞合次数更多的双绞线带屏蔽电缆时,正常通讯距离进一步加长。
这种情况主要是由总线分布电容使信号波形产生畸变造成的。
因此,在用DS1820进行长距离测温系统设计时要充分考虑总线分布电容和阻抗匹配问题。
(4)在DS1820测温程序设计中,向DS1820发出温度转换命令后,程序总要等待DS1820的返回信号,一旦某个DS1820接触不好或断线,当程序读该DS1820时,将没有返回信号,程序进入死循环。
这一点在进行DS1820硬件连接和软件设计时也要给予一定的重视。
6.4电压检测装置
电压检测装置是为了保护系统的稳定运行,采用WB系列电压越限报警传感器WB系列电压越限报警传感器以电压隔离传感器为基础,增配比较器电路、基准电压设定电路、输出驱动电路组成,用来隔离监测主回路中的交流或直流电压,当被监测的电压超过预先设定的上限值,或低于预先设定的下限值时,给出开关量控制信号。
6.5功能按键
图6.5按键电路
因本系统使用的按键数目少,故按键采用硬件去抖。
按键电路如图5.5所示。
用两个与非门构成一个RS触发器。
当按键未按下时输出为1;刚键按下时输出为0。
此时即使用按键的机器性能,使按键因弹性抖动而产生瞬时断开(抖动跳开B),只要按键不返回原来状态A,双稳态电路的状态不会改变,输出保持为0,不会产生抖动的波形。
也就是说,即使B点的电压波形是抖动的,但经双稳态电路之后,其输出为正规的矩形波。
6.6故障报警电路
报警电路主要用示电冰箱使用过程中出现的故障,包括系统自身故障,外界故障,和误操作,如:
冰箱内温度太高,外界电压波动大,未关好冰箱门或是开门时间太长等等。
四个指示灯作用:
L1:
设置冷藏室温度时亮
L2:
设置冷冻室温度时亮
L3:
压缩机运行时亮
L4:
电源过压或欠压时亮
6.7系统原理图
7软件部分
本系统软件主要由主流程、功能子程序、中断服务程序组成。
采用主程序调用功能子程序,子程序尽可能少的调用其它子程序,以保证系统的稳定运行。
本系统温度在-64C~64C,用七位即可存放,因此温度值用一个字节存放,最高位存放符号位。
各温度值均用全程变量形式存放,如下:
60H冷藏室温度设定值
61H冷冻室温度设定值
62H冰箱运行时冷藏室温度实际值
63H冰箱运行时冷冻室温度实际值
64H用于存放压缩机,电源状态和压缩机关机延时状态值
其中:
最低0位COMP存放压缩机状态标志:
1压缩机开启0压缩机关闭
第1位TIME_OUT离上次关闭压缩机是否已有5S:
1否0是
第2位UP电压过欠压标志:
1过欠压0正常
65H,66H用于存放化霜时间计数
67H用于压缩机关闭延时计数
7.1主程序
主程序由初始化,键盘扫描,显示,温度采集,温度控制和定时化霜子程序组成,为系统软件的主干部分,化霜采用定时化霜,每三十分钟化霜一次。
ORG0000H
AJMPMAIN
ORG0003H
LJMPDY_INT
ORG000B
LJMPTIME0_INT
ORG0030H
DATAEQUP1.0
V1EQUP1.3
V2EQUP1.4
V3EQUP1.5
SET_KEYEQUP1.5
V3EQUP1.5
V3EQUP1.5
SET_KEYEQUP1.5
ADD_KEYEQUP1.6
SUB_KEYEQUP1.7
L1EQUP0.6
L2EQUP0.7
L3EQUP2.5
L4EQUP2.6
MAIN:
CLRA
START:
LCALLINIT1;初始化
LCALLKEY;键盘扫描
LCALLGETWD;获得冷藏室温度
MOV62H,R0
INCDATA
LCALLGETWD;获得冷冻室温度
MOV63H,R0
DECDATA
MOVR3,62H;显示两室温度值
MOVR4,63H
LCALLDISP
MOVA,60H
CLRC
HIGH:
CJNEA,62H,HIGH1;冷藏室温度等于高于设定值时
AJMPHIGH2
HIGH1:
JCHIGH3
HIGH2:
SETBV1;开启压缩机
LCALLOPEN
AJMPLOW
HIGH3:
MOVA,61H
CLRC
CJNEA,63H,HIGH4;冷冻室温度等于高于设定值时
AJMPHIGH5
HIGH4:
JCLOW
HIGH5:
SETBV2;开启压缩机
LCALLOPEN
LOW:
MOVA,61H
CLRC
CJNEA,63H,LOW1;冷冻室温度等于低于最低值时
AJMPLOW2
LOW1:
JNCLOW3
LOW2:
CLRV2;关闭压缩机
LCALLCLOSE
AJMPLS
LOW3:
MOVA,60H
CLRC
CJNEA,62H,LOW4;冷冻室温度等于低于最低值时
AJMPLOW5
LOW4:
JNCLS
LOW5:
CLRV1;关闭压缩机
LCALLCLOSE
LS:
MOVR1,#10H;延时1S
LS1:
LCALLDLY_100MS
DJNZR1,LS1
INC65H;化霜时间计数加1
MOVA,65H
CJNEA,#00H,LS2
INC66H
LS2:
MOVA,65H
CJNEA,#08H,LOOP
MOVA,66H
CJNEA,#07H,LOOP
JBV1,LOOP;化霜定时时间到且V1,V2均关闭
JBV2,LOOP
SETBV3;打开V3开始化霜
MOVR0,#50;化霜时间5S
LS3:
LCALLDLY_100MS
DJNZR0,LS3
LOOP:
AJMPSTART
END
7.2初始化子程序
初始化模块主要完成初始化I/O口、中断、内存单元,并读出存放在闪烁存储器上的温度设定值。
温度设定值存放在闪烁存储器上即使断电也可保存。
程序如下:
INTI1:
CLRA
MOVDPTR,#20H;读取冷藏室温度设定值
MOVCA,@DPTR
LCALLDLY_100MS;延时确保数据读完
MOV60H,A
INCDPTR;读取冷藏室温度设定值
MOVCA,@DPTR
LCALLDLY_100MS;延时确保数据读完
MOV61H,A
MOV64H,#00H;清空各状态位
SETBEX0;允许外部中断0中断
SETBIT0;选择边沿触发方式
SETBEA;CPU开中断
RET
7.3键盘扫描子程序
扫描程序采用边延时边扫描的方法,当设置键SET_KEY按下一次,指示灯L1亮,按ADD(+)键和SUB(-)键设置冷藏室温度。
当设置键SET_KEY按下二次,指示灯L2亮,L1灭,按ADD(+)键和SUB(-)键设置冷冻室温度。
当设置键SET_KEY按下三次,设置完成,指示灯L1,L2均灭。
如果3S内无键按下,表示误按或用户放弃设置。
退出扫描。
程序如下:
KEY:
CLRA;键盘扫描子程序
MOVR0,#00H
START:
MOVR4,#1EH;边延时边扫描3S
LOOP:
LCALLDLY_100MS
JNBSETB_KEY,SET
JNBADD-KEY,ADD
JNBSUB_KEY,SUB
DJNZR4,LOOP
AJMPEXIT;3S内没有键按下结束扫描
SET:
CJNER0,#03H,SET1;设置键按下三次,设置完成
CLRL1
CLRL2
AJMPEXIT
SET1:
INCR0
CJNER0,#01H,SET2;设置键按下一次
SETBL1
AJMPSTART
SET2:
CLRL1;设置键按下二次
SETBL2
AJMPSTART;加键按下
ADD:
CJNER0,#01H,ADD1;冷藏室温度为正时加1
MOVA,60H
JBACC.7,ADD_1
INCA
MOV60H,A
AJMPDSP
ADD_1:
CLRACC.7;冷藏室温度为负时加1
DECA
SETBACC.7
MOV60H,A
AJMPDSP
ADD1:
CJNER0,#02H,START
MOVA,61H;冷冻室温度为正时加1
JBACC.7,ADD1_1
INCA
MOV61H,A
AJMPDSP
ADD1_1:
CLRACC.7;冷冻室温度为负时加1
DECA
SETBACC.7
MOV61H,A
AJMPDSP;减键按下
SUB:
CJNER0,#01H,SUB1;冷藏室温度为正时减1
MOVA,60H
JBACC.7,SUN_1
DECA
MOV60H,A
AJMPDSP
SUB_1:
CLRACC.7;冷藏室温度为负时减1
INCA
SETBACC.7
MOV60H,A
AJMPDSP
SUB1:
CJNER0,#02H,START
CLRACC.7;冷冻室温度为正时减1
JBACC.7,SUB1_1
DECA
MOV61H,A
AJMPDSP
SUB1_1:
CLRACC.7;冷冻室温度为负时减1
INCA
SETBACC.7
MOV61H,A
AJMPDSP
DSP:
MOVDPTR,#20H;将设定值存放在闪烁存储器上
MOVA,62H
MOVC@DPTR,A
LCALLDLY_100MS
INCDPTR
MOVA,63H
MOVC@DPTR,A
LCALLDLY_100MS
MOVR3,60H;显示设定值
MOVR4,61H
LCALLDISP
AJMPSTART
EXIT:
RET
OPEN:
CLRA;
7.4打开压缩机子程序
MOVA,64H
MOVCOMP,ACC.0
MOVTIMP_OUT,ACC.1
MOVUP,ACC.2
JBCOMP,EXIT;压缩机处于关闭状态
JBTIMP_OUT,EXIT;距上次关闭有3s
JBUP,EXIT;电压正常
SETBCOMP;置压机状态位
SETBTIME_OUT;置TIME_OUT位
MOVACC.0,COMP
MOVACC.1,TIME_OUT
MOV64H,A
SETBP2.4;打开压缩机
SETBL3;打开压缩机运行指示灯
EXIT:
MOVR7,#10H;延时一段时间退出
MOVR6,#0FFH
NOP
NOP
DJNZR6,DL1
DJNZR7,DL2
RET
CLOSE:
CLRA;
7.5关闭压缩机
CLRP2.4;关闭压缩机
CLRL3;关闭压缩机运行指示灯
MOVA,64H;清空压缩机状态标志
CLRACC.0
MOV64H,A
MOVTMOD,#01H;设置T0工作于模式1
MOVTL0,#0B0H
MOVTH0,#3CH
SETBTR0;启动定时器T0
SETBET0;允许T0中断
RET
TIME0_INT:
INC67H;定时器0中断程序:
用于压缩机延时
MOVA,67H
CJNEA,#50,A1;关压缩机是否有5S
MOV67H,#00H
MOVA,64H;有5S清空TIME_OUT位
CLRACC.1
MOV64H,A
CLRT0
CLRET0;关闭定时器0中断
AJMPLOOP
A1:
MOVTL0,#0B0H;没有5S重新允许中断
MOVTH0,#3CH
SETBT0
SETBET0
LOOP:
RETI
DY_INT:
LCALLCLOSE;关闭压缩机
SETBL4;置电源状态指示灯
MOVA,64H;置电源状态位
SETBACC.2
MOV64H,A
SETBP2.7;报警10S
MOVR0,#64H
LOOP:
LCALLDLY_100MS
DJNZR0,LOOP
CLRP2.7
RETI
7.6延时子程序
DLY_100MS:
MOVR1,#64H
LOOP1:
MOVR2,#7DH
LOOP2:
NOP
DJNZR2,LOOP2
DJNZR1,LOOP1
RET
8总结
通过此项设计的分析可得到如下结论:
(1).本系统运用单片机速度快、体积小、价格低廉的8位MCS51单片机,可以做出可行、可靠性强的自动控制产品---电冰箱温度的控
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 电冰箱 温度 控制系统
![提示](https://static.bdocx.com/images/bang_tan.gif)