基于单片机的电冰箱设计Word文档格式.docx
《基于单片机的电冰箱设计Word文档格式.docx》由会员分享,可在线阅读,更多相关《基于单片机的电冰箱设计Word文档格式.docx(13页珍藏版)》请在冰豆网上搜索。
![基于单片机的电冰箱设计Word文档格式.docx](https://file1.bdocx.com/fileroot1/2023-1/3/7eb103cc-263c-4f11-a7c5-95f3ed0f38ff/7eb103cc-263c-4f11-a7c5-95f3ed0f38ff1.gif)
冰箱利用液体蒸发吸收热量。
冰箱中使用的液体(即制冷剂)会在极低的温度蒸发,使冰箱内部坚持冰冻温度。
所有冰箱都由五个基本部件组成:
压缩机
热交换管,冰箱外部呈弯曲或盘曲状的管道
平安阀
冷交换管,冰箱内部呈弯曲或盘曲状的管道
制冷剂,冰箱内蒸发以制造高温的液体很多工业冰箱使用纯氨作为制冷剂,纯氨在32℃时蒸发。
压缩机压缩制冷剂气体,这将升高制冷剂的压力和温度(橙色),而冰箱外部的热交换线圈帮忙制冷剂散发加压产生的热量。
当制冷剂冷却时,制冷剂液化成液体形式(紫色),并流经平安阀。
当制冷剂流经平安阀时,液态制冷剂从高压区流向高压区,因此它会膨胀并蒸发(浅蓝色)。
在蒸发过程中,它会吸收热量,阐扬制冷效果。
冰箱内的线圈帮忙制冷剂吸收热量,使冰箱内部坚持高温。
然后,重复该循环。
1.3本设计研究内容
在本次课题研究中我将参考从各个方面收集到的文献,博取其精华。
研究办法例是采取C51单片机开发板模拟电冰箱工作环境,并模拟设定电冰箱各项参数,以研究电冰箱温控器的工作原理及设计。
研究的内容主要包含以下方面:
1、液晶显示的工作原理,并通过液晶将各项数据显示在冰箱外;
2、温度控制器原理,制冷原理,自动控制电冰箱工作使其通过制冷达到所设定的温度;
3、智能检测电冰箱工作电压是否正常,避免压缩机烧坏;
4、继电器工作原理,模拟对压缩机的通/断电操纵;
5、单片机C法度编程语言;
在本文中将介绍基于单片机的电冰箱温控器设计的总体设计思想和计划,及用获得的部分芯片及硬件设计的原理,还有软件设计过程中的思想和办法等。
第2章总体设计计划
2.1功能要求
通过液晶显示所设定的温度,温度能随意调节,能自动控制电冰箱工作,使其通过制冷达到所设定的温度。
2.2计划论证
根据结业设计的要求,我们可以知道在本次设计中最重要的部分就是温控器,温控器的选择将决定外部电路的设计,所以温控器的选择具体有两种以下计划。
2.2.1计划一
在日常生活及工农生产中,经常要用到温度的检测及控制,传统的测温元件有热电耦和热电阻。
温控器的第一选择就可以选择热电耦和热电阻,他们测出的一般都是电压,再转换成对应的温度,可是需要比较多的外部硬件支持。
因此这种选择就有如下主要缺点:
●硬件电路庞杂;
●软件调试庞杂;
●制作本钱高;
2.2.2计划二
采取美国DALLAS半导体公司生产的高性能数字智能温度传感器DS18B20。
DS18B20作为检测元件,测温规模为55~125℃,最高辩白率可达0.0625℃。
DS18B20可以直接读出被测温度值,并且采取三线制与单片机相连,减少了外部的硬件电路,具有低本钱和易使用的特点。
所以在本次结业设计中采取计划二,使用DS18B20作温控器配合51单片机STC89C52进行设计。
依照系统设计功能的要求,确定系统由6个模块组成:
主控制器、测温电路、液晶显示电路、过欠压检测电路、按键电路、继电器压缩机电路。
温度控制器总体电路结构框图如图21所示。
图21温度控制器总体电路结构框图
第3章系统的硬件设计
3.1硬件电路的重要芯片介绍
温控器电路设计原理图如附录A所示,控制器使用单片机STC89C52,温度传感器使用DS18B20,及12864液晶显示屏实现温度和其他显示。
3.1.1MCS51单片机STC89C52
单片微机封装形式为双排直列式结构(DIP),引脚共40个。
如图31所示。
MCS-51单片机STC89C52其内部基本组成为:
一个8位的中央处理器(CPU),256byte片内RAM单位,4Kbyte掩膜式ROM,2个16位的按时器/计数器,四个8位的并行I/O口(P0,P1,P2,P3),一个全双工串行口5个中断源,一个片内振荡器和时钟产生电路,可编程串行通道,有低功耗的闲置和失落电模式。
这种结构特点决定了单片机具有体积小、本钱低、可靠性高、应用灵活、开发效率高、易于被产品化等优点,使其具有很强的面向控制的能力,在工业自动化控制、家用电器、智能化仪表、机器人、军事装置等领域获得了广泛的应用。
图31MSCC51单片机STC89C52引脚图
2.管脚说明:
VCC:
供电电压。
GND:
接地。
P0口:
P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。
当P1口的管脚第一次写1时,被界说为高阻输入。
P0能够用于外部法度数据存储器,它可以被界说为数据/地址的第八位。
在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。
P1口:
P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。
P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外手下拉为低电平时,将输出电流,这是由于内部上拉的缘故。
在FLASH编程和校验时,P1口作为第八位地址接收。
P2口:
P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。
并因此作为输入时,P2口的管脚被外部拉低,将输出电流。
这是由于内部上拉的缘故。
P2口当用于外部法度存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。
在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。
P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
P3口:
P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。
当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。
作为输入,由于外手下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。
P3口也可作为8051的一些特殊功能口,如下所示:
口管脚备选功能
P3.0RXD(串行输入口)
P3.1TXD(串行输出口)
P3.2/INT0(外部中断0)
P3.3/INT1(外部中断1)
P3.4T0(记时器0外部输入)
P3.5T1(记时器1外部输入)
P3.6/WR(外部数据存储器写选通)
P3.7/RD(外部数据存储器读选通)
P3口同时为闪烁编程和编程校验接收一些控制信号。
RST:
复位输入。
当振荡器复位器件时,要坚持RST脚两个机器周期的高电平时间。
ALE/PROG:
当拜访外部存储器时,地址锁存允许的输出电平用于锁存地址的位置字节。
在FLASH编程期间,此引脚用于输入编程脉冲。
在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。
因此它可用作对外部输出的脉冲或用于按时目的。
然而要注意的是:
每当用作外部数据存储器时,将跳过一个ALE脉冲。
如想禁止ALE的输出可在SFR8EH地址上置0。
此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。
另外,该引脚被略微拉高。
如果微处理器在外部执行状态ALE禁止,置位无效。
/PSEN:
外部法度存储器的选通信号。
在由外部法度存储器取指期间,每个机器周期两次/PSEN有效。
但在拜访外部数据存储器时,这两次有效的/PSEN信号将不呈现。
/EA/VPP:
当/EA坚持低电平时,则在此期间外部法度存储器(0000HFFFFH),不管是否有内部法度存储器。
注意加密方法1时,/EA将内部锁定为RESET;
当/EA端坚持高电平时,其间内部法度存储器。
在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。
XTAL1:
反向振荡放年夜器的输入及内部时钟工作电路的输入。
XTAL2:
来自反向振荡器的输出。
3.1.2温度传感器DS18B20
温度传感器是本系统不成或缺的元件,其性能的好坏直接影响系统的性能,因此温度传感器采取DALLAS公司生产的高性能数字温度传感器DS18B20。
DS18B20是DALLAS公司生产的一线式数字温度传感器,具有3引脚TO-92小体积封装形式;
温度丈量规模为-55℃~+125℃,可编程为9位~12位A/D转换精度,测温辩白率可达0.0625℃,被测温度用符号扩展的16位数字量方法串行输出;
其工作电源既可在远端引入,也可采取寄生电源方法产生;
多个DS18B20可以并联到3根或2根线上,CPU只需一根端口线就能与诸多DS18B20通信,占用微处理器的端口较少,可节省年夜量的引线和逻辑电路。
以上特点使DS18B20很是适用于远距离多点温度检测系统。
DS18B20内部结构如图33所示,主要由4部分组成:
64位ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。
DS18B20的管脚排列如图32所示:
图32DS18B20的管脚排列图
DQ:
为数字信号输入/输出端;
为电源地;
VDD:
为外接供电电源输入端(在寄生电源接线方法时接地,见图32)。
ROM中的64位序列号是出厂前被光刻好的,它可以看作是该DS18B20的地址序列码,每个DS18B20的64位序列号均不相同。
64位ROM的排的循环冗余校验码(CRC=X8+X5+X4+1)。
ROM的作用是使每一个DS18B20都各不相同,这样就可以实现一根总线上挂接多个DS18B20的目的。
图33DS18B20的内部结构
DS18B20用12位存贮温度值,最高位为符号位。
以下图表为DS18B20的温度存储方法,负温度S=1,正温度S=0,如:
0550H为+85℃,0191H为25.0625℃,FC90H为55℃。
23
22
21
20
24
温度值低字节LSB
S
26
25
温度值高字节MSB
高高温报警触发器TH和TL、配置寄存器均由一个字节的EEPROM组成,使用一个存储器功能命令可对TH、TL或配置寄存器写入。
其中配置寄存器的格式如下:
R1
R0
1
R1、R0决定温度转换的精度位数:
R1R0=00,9位精度,最年夜转换时间为93.75ms,R1R0=01,10位精度,最年夜转换时间为187.5ms,R1R0=10,11位精度,最年夜转换时间为375ms,R1R0=11,12位精度,最年夜转换时间为750ms;
未编程时默认为12位精度。
高速暂存器是一个9字节的存储器。
开始两个字节包含被测温度的数字量信息;
第3、4、5字节辨别是TH、TL、配置寄存器的临时拷贝,每一次上电复位时被刷新;
第6、7、8字节未用,表示为全逻辑1;
第9字节读出的是前面所有8个字节的CRC码,可用来包管通信正确。
DS18B20的一线工作协议流程是:
初始化→ROM操纵指令→存储器操纵指令→数据传输。
3.2部分电路简介
3.2.1过欠电压检测电路
如图34(a)所示即为过欠压检测电路,也称为电压窗口比较器。
在图34(a)中,A1,A2是专用电压比较器LM119。
LM119的内部采取射级接地、集电极开路的三极管集电极输出方法。
在使用时,必须外接上拉电阻。
过欠压检测电路只有检测出电压是否稳定即可,而这种电路允许输出端并接在一起。
此电路的工作原理是:
当输入电压Ui<
UR2时,比较器A1的输出管截止,而比较器A2的输出管导通,此时窗口比较器的输出电平将由比较器A2输出电平确定为低电平。
当输入电压Ui>
UR1时,比较器A1的输出管导通,而比较器A2的输出管截止,此窗口比较器的输出电平将由比较器A1输出电平确定为低电平。
只有当输入电压处于窗口电压之内,即UR2<
Ui<
UR1时,比较器A1和A2输出管均截止,窗口比较器输出电平是由上拉负载电阻拉向高电平。
此窗口比较器的传输特性如图34(b)所示。
(a)(b)
图34过欠压检测电路
3.2.212864液晶连接电路
液晶显示屏有功耗低、体积小、重量轻、超薄等许多其他显示器无法比较的优点,近几年来被广泛用于单片机控制的智能仪器、仪表和低功耗电子产品中。
利用该模块灵活的接口方法和简单、便利的操纵指令,可构玉成中文人机交互图形界面。
可以显示8×
4行16×
16点阵的汉字.也可完成图形显示.低电压低功耗是其又一显著特点。
由该模块构成的液晶显示计划与同类型的图形点阵液晶显示模块相比,不管硬件电路结构或显示法度都要简洁很多,且该模块的价格也略低于相同点阵的图形液晶模块。
带中文字库的128×
64每屏可显示4行8列共32个16×
16点阵的汉字,每个显示RAM可显示1个中文字符或2个16×
8点阵全高ASCII码字符,即每屏最多实现32个中文字符或64个ASCII码字符的显示。
64内部提供128×
2字节的字符显示RAM缓冲区,字符显示是通过将字符显示编码写入该字符显示RAM实现的。
根据写入内容的不合,可辨别在液晶屏上显示CGROM(中文字库)、HCGROM(ASCII码字库)及CGRAM(自界说字形)的内容。
字符显示的RAM的地址与32个字符显示区域有着一一对应的关系,其对应关系如下表所示:
表31汉字显示坐标
X坐标
Line1
80H
81H
82H
83H
84H
85H
86H
87H
Line2
90H
91H
92H
93H
94H
95H
96H
97H
Line3
88H
89H
8AH
8BH
8CH
8DH
8EH
8FH
Line4
98H
99H
9AH
9BH
9CH
9DH
9EH
9FH
在此系统中,液晶采取并口通信,所以第15脚PSB端固定接高电平,引脚714作为三态数据线,其他引脚说明见表32,连接图如图35所示:
图3512864液晶连接电路图
表3212864引脚功能说明
引脚号
引脚名称
标的目的
功能说明
VSS
模块的电源地
2
VDD
模块的电源正端
3
V0
LCD驱动电压输入端
4
RS(CS)
H/L
并行的指令/数据选择信号;
串行的片选信号
5
R/W(SID)
并行的读写选择信号;
串行的数据口
6
E(CLK)
并行的使能信号;
串行的同步时钟
16
NC
空脚
17
/RET
复位低电平有效
18
19
LED_A
背光源正极(LED+5V)
LED_K
背光源负极(LEDOV)
第4章系统软件法度设计
基于单片机的电冰箱温控器软件设计主要由显示子法度、读出并处理DS18B20的丈量温度值法度、预置温度调节法度、温度判断控制法度、电冰箱开启延时法度、还有软件复位法度等组成。
软件法度设计总体流程图如下图41:
图41软件法度设计总体流程图
由于51系列的单片机没有停机的指令,所以可以利用主法度设置死循环频频运行各个任务。
于是就把有实时要求的部分放在最内层的循环中。
4.1显示子法度
在本次设计中,显示子法度包含三部分:
往LCD液晶显示屏发送一个字节的数据或指令子法度,LCD液晶屏初始化子法度,显示数据处理法度。
1)往LCD液晶显示屏发送一个字节的数据或指令子法度
其调用的函数是voidTransferData(chardata1,bitDI),在法度中首先将并行口选择为写的状态,然后选择将要传送的是指令还是数据,再将数据送到P1口,掀开并行口的使能端,等待数据输出完毕后关闭并行口使能。
其流程图如图42所示。
图42传送数据流程图图43LCD液晶初始化法度流程图
2)LCD液晶屏初始化子法度
其使用的函数是voidinitinal(void),仅在开机时调用一次,主要担任设置LCD液晶屏的一些状态,包含设置液晶总线模式,芯片复位,功能设定,关闭芯片显示,设置芯片静态显示,清屏,设置起始行0行0列;
液晶初始化结束前往。
LCD液晶屏初始化完成后就可以显示各种字符了,即进入正常工作状态。
具体流程图43所示。
3)显示数据处理法度
调用方法:
voidlcd_mesg(ucharcode*adder1)
函数说明:
显示全屏的内容
voidlcd_mesg2(ucharadd,ucharcode*adder2)
显示某一行的内容
voidLCD_w_wd(ucharadd2,intwwd,ucharfs)
温度显示处理并送入LCD的指定区域
这些函数的使用可以使得显示内容时,很是合适的处理好了页切换和列切换,只要通过查表送至12864液晶显示屏RAM中即可显示自如。
4.2DS18B20法度
整个DS18B20法度调用方法是uintReadTemperature(void),该函数主要包含了对DS18B20的初始复位,读温度,温度转换,计算温度等子法度,并将转换后的数据扩年夜10倍前往主函数,提供给下一个函数使用。
读DS18B20法度流程图如图44。
图44读DS18B20法度流程图
1)对DS18B20操纵时,首先要将它复位将DQ线拉低480至960s,再将数据线拉高15至60s,然后DS18B20收回60至此240s的低电平作为应答信号,这时主机才干对它进行其它操纵[11]。
2)读温度子法度的主要功能是读出DS18B20的RAM中的9个字节。
前两个就是温度,将高低字节辨别放入b和a中。
在读出时须进行CRC校验,校验有错时不进行温度数据的改写。
读操纵:
主机将数据线从高电平拉至低电平1s以上,再使数据线升为高电平,从而产生读起始信号从主机将数据线从高电平拉至低电平起15s至60s,主机读取数据每个读周期最短的继续期为60s周期之间必须有1s以上的高电平恢复期[11]。
3)温度转换命令子法度主要是发送温度转换开始命令。
当采取12位辩白率时,转换的时间约为750ms。
在本法度中,采取2s显示法度延时法等待转换完成。
发送温度转换命令的写操纵:
将数据线从高电平拉至低电平,产生写起始信号从DQ线的下降沿起计时,在15s到60s这段时间内对数据线进行检测,如数据线为高电平则写1;
若为低电平,则写0,完成了一个写周期在开始另一个写周期前,必须有1s以上的高电平恢复期每个写周期必须要有60s以上的继续期[11]。
4)计算温度子法度将RAM中读取值进行BCD码的转换运算,并进行温度值正负的判定。
因为从DS18B20中读出的二进制值必须先转换成十进制值,才干用于字符的显示。
DS18B20的转换精度为9~12位可选,为了提高精度采取12位。
在采取12位转换精度时,温度寄存器里的值是以0.0625为步进的,即温度值为温度寄存器里的二进制值乘以0.0625,就是实际的十进制温度值。
扩年夜十倍,四舍五入后即可将精度精确到0.1℃。
4.3预置温度调节法度
在本次设计中,可预置的温度规模可以从20~20℃。
在编写法度过程中,如果直接对代表温度值的变量yskey的值在20~20操纵对数据的转换将很庞杂和麻烦。
于是我将其yskey值的规模移至140间,进而就不需要去处理yskey庞杂的数据类型转换的问题了。
法度的详细设计流程图如下图45:
图45预置温度调节法度流程图
yskey前往给主函数中的ys后,要获得真实的温度值,只需要判断ys是年夜于即是20,还是小于20的。
若其值年夜于则减去20即为要预设的实际正数温度值;
若是其值小于则20减去其值,再加上一个正数符号即是要预设的负温度值。
将其值送入指定的温度显示区域,我们便能够适时的看到调节的预置温度了。
4.4判断控制法度
判断控制法度是根据用户设定的温度值和DS18B20实时测得温度值相比较,从而决定是否需要制冷,并在液晶屏上显示其工作状态。
而对压缩机的控制则是通过控制继电器的通断决定是否给压缩机通电工作来实现的。
当ysj=1,也就是P1.1脚为高电平的时候,继电器闭合,压缩机通电工作;
当ysj=0时,继电器断开,压缩机停止工作。
若当压缩机的工作电压不正常时,压缩机将有被烧坏的危险,法度自动进入故障处理部分,在液晶显示屏上显示故障原因,压缩机停止工作。
直到故障解除,然后重行启动电冰箱法度。
图46所示的就是该法度的流程图。
为了避免冷气泄露,节约电能需要进行电冰箱门关好与否的检查,因此在法度中又设置一判断门是否关好的语句能够及时地提醒用户门没关好。
这一部分将不再图46中画出。
图46判断控制法度流程图
4.5开启延时法度
该功能要求压缩机停机时间超出5分钟才干启动,以延长压缩机的寿命,这就要求在每次电冰箱上电时,都要检查压缩机停机是否到5分钟。
若未达到需延时到5分钟后才干启动,因此在设计时应有判断与延时功能。
按功能要求,电冰箱无论是自动停机还是强制停机。
为了延长压缩机的寿命,都要延时5分钟后压缩机才干启动。
即在每次接通压缩机时,单片机计时,利用单片机将计数值保管在软件设计时,每次上电都要检查此数据是否到5分钟。
若时间不到,延时后才干接通压缩机。
为了在单片机延时期间不担搁其他法度的执行和处理,在此使用按时器T1计时,并且使用工作组2,循环按时延迟5分钟。
但在本法度中压缩机的开启延时时间为30秒,便利演示。
图47为开启延时法度流程图。
图47开启延时法度流程图
第5章阐发与结论
通过此项设计的阐发可获得如下结论:
1.本系统运用单片机速度快、体积小、价格昂贵的8位STC89C52单片机,可以做出可行、可靠性强的自动控制产品电冰箱温度的控制系统。
实现了电冰箱温度的自动控制。
2.在单片