摘要
在我国的餐饮业,由于对食品的新鲜度提出了更高的需求,因此,冷藏保鲜柜被广泛地用于食品工业。采用保
鲜柜可以有效地延长果蔬的保质期,增加商品的附加价值,减少能源消耗。同时,它还能降低污染,对环境也起到
一定的保护作用。由于其结构简单、成本低廉等特点,目前已得到了广泛的应用,但也有一些不足之处比如:不能
达到较好的保鲜效果,不能确保其在运输时的温度波动幅度较小,不能适应食品工业对耐用性和新鲜程度的要求。
而最近出现的等离子灭菌技术则是一种很好的方法。这种技术能有效地清除蔬菜和水果中的细菌、昆虫和其他的有
毒物质,并且安全可靠。当前,市面上的保鲜柜存在着结构复杂、不易装配、造价高、故障率高等缺点。所以,开
发功能齐全、体积小、成本低的食品储藏柜就显得尤为重要。本次设计的基于单片机的等离子消毒保鲜点餐柜能根
据不同温度、湿度等条件,让制冷设备、加热设备、加湿设备和灭菌设备进行感应并工作,达到保鲜效果。本设计
基于单片机作为硬件平台,实现了对数据的读取、处理和显示,升高了设备的运行可靠性和智能化程度,完成了一
个中小型的消毒保鲜点餐柜设计。
关键词:等离子;杀菌保鲜;点餐柜;单片机;
第1章 绪论
1.1 课题研究意义
随着当今的时代发展,人民的物质生活质量不断提升,对食品的健康需求也越来越大。传统的杀菌方式包括高
温杀菌、化学药剂杀菌、射线杀菌和生化杀菌等。当前,大部分的食品杀菌采用的是热处理,但是它有一些问题,
比如:食品的二次污染,能量消耗大,以及温度难以调整。但是,由于其安全、无污染、效率高、使用方便等优
点,因此,它的应用前景十分广阔。采用高温或高温蒸气进行消毒,其优点是没有残渣,但消毒周期较长,人与机
器无法共存,采用化学药剂杀菌,其优势在于消毒过程迅速,但其缺点是操作条件复杂,不易掌握,存在化学残留
物,多数为致癌性,对人类的身体有一定的影响。
低温等离子体技术是一项新兴的食品冷冻灭菌技术,利用光、电、磁、热、声等多种不同的效果,利用不同的
物理和化学方法,在物体的表面和里面进行多种化学反应,实现灭菌,并能释放出许多光电子、离子、自由基等有
效的产物,以限制细菌的生长和增殖。在各种热源灭菌技术中,低温等离子技术因其不会对食物自身的有效成分产
生损伤,因此在生鲜和热敏感的食物中得到了广泛的使用。
由于等离子技术在杀菌保鲜、农药降解方面的优势,既不会使食品原有的色泽、香味、风味及感官品质被改
变,又不会生产出具有毒性有害的副产物,从而使其在食品中的杀菌保鲜和关于农药的降解等方面得到了广泛的发
展。本设计介绍了等离子体灭菌技术的基本理论和特性,对其各个部件的工作流程进行了详细的分析,并给出了具
体的实施流程和试验数据。本文的第一部分是对选题的背景进行了阐述。以微处理器为核心的等离子灭菌点餐柜,
应用了气体放电等离子技术,是目前国际上最先进的杀菌技术之一。
国外研究情况:根据文献记载,英国人于1918年创立了“气调储”学说。在二战时期,在美国等国也进行了试
验和普及;直到第二次世界大战之后,这种方式才被国际社会所认可和运用。上世纪50年代中期之后,这种方式得
到了快速的发展。1929年,彭瑟等人开展了全球首个大型气体调储器工程实验。后来,在加拿大、美国、意大利等
国也进行了一系列的研究。
空气调节储运是在蔬菜的初期,通过CO2、碱性溶液、臭氧等方法来控制果蔬的呼吸功能。当前,我国大部分地
区仍是采用常规的真空脱氧工艺,能耗高,工艺复杂,成本高,难以满足低温、低功耗、低氧等要求。
在1995年,CampanN等人对冷藏箱内温度、湿度的关系进行了建模,并对其进行了最优的数值模拟。分子生物学
研究表明,在蔬菜和水果中,乙烯是一个非常关键的因子。乙烯是一种在果蔬内产生的化学成分,其作用是通过破
坏果蔬内多种酵素而发生的刺激作用,使机体的代谢功能出现失调,进而造成机体的腐败。所以乙烯对果蔬的成熟
有非常大的影响。据说可以制造出乙烯的遗传因子被发现。目前,科学家们正致力于一种能彻底减缓或阻止乙烯产
生的基因,从而使果蔬能够保持更长的新鲜时间,减缓果蔬的腐败。
近年来,由于空气调节保鲜技术的发展,食品保鲜技术也逐步发展起来,如钙处理、高压保鲜、紫外线处理等,在
机械工程学、遗传生物学、材料学、有机化学、食品化学等多个方面也逐步得到发展和研究。
国内目前的研究现状:尽管中国的气调保鲜储存技术发展得比较迟,但是由于国民经济的快速发展,对果蔬的
贮藏需求也在不断的增加,这也促进了对此技术的研究。
自90年代以来,我国河北,河南,陕西,山东,新疆等地均有大批的蔬菜水果源,利用气调箱进行储运。目
前,各地区仍以常规的方式来进行储藏的建造与经营。尽管也有部分采用了新的高效率的能源装置,但是并没有产
生规模效应。常规储藏库中,每年大约每六百万吨的蔬菜会流失其中的百分之十二。
自21世纪起,孙企达等人于2000年代初期开发出了一套适用于气体调节装置非固定可动气调装置。
气调型储运技术在各个行业得到了广泛的使用。未来,随着科技水平的不断进步,空气调节和保存技术也会不
断改进。气调储运方式在水果储运过程中得到了越来越多的使用。并且扮演着日益关键的角色。新工艺的创新与运
用,是中国水果贮藏行业发展的一个必然方向。
近年来,国内对空气调质的保存技术有了长足的发展,但也有一些问题:
(1)某些气调箱不能实现对其内储存食品进行即时监测,不能对其状态及相关数据进行即时的显示。
(2)操作费用高。在空气调节储藏期间,蔬菜和水果的成本大约是40%-60%,能源消耗是最主要的。所以,减少
储气库的储运费用是增加经济价值的关键。在空气调质保鲜的时候,要对空气的温湿、温度进行调节,并要对臭
氧、二氧化碳、乙烯的含量进行一定的调节,这样就会造成多个装置的并行运转,消耗更大,所以在使用中要注意
节约能源。
(3)从国外的气调和贮藏技术的研究来看,中国的气调贮藏技术还面临着技术水平低、缺乏优良品种、没有针对
不同品种的包装物、缺乏优化设计、没有达到快速预冷却和栽培技术等问题。
当时,研究证明等离子体释放出了很多带电的微粒,可以起到杀菌、治疗慢性皮肤溃疡、抑制肿瘤的作用。在
科技进步日益进步发展的今天,低温等离子与人类的身体状况息息相关。为此,对低温等离子体的反应机制和未来
的发展前景进行了大量的理论和实践工作。
经过几十年的停滞,等离子体的发展取得了巨大的进展。在过去的20多年里,由于对污染治理的需求越来越
大,等离子体技术在环保方面的应用越来越广泛。它已经在不同的环境中得到了广泛的运用。自从1996年引进电浆
杀菌技术后,电浆杀菌受到了人们的重视,并且已经有了一些研究成果,特别是低温等离子体的杀菌方法。
中国科学院物理所于2003年联合北京大学、清华大学、西安交大等机构发起的“等离子体医学”课题,使我国
等离子体技术迅速发展。尽管国内学术界与国外的研究人员基本是在同一时期内开展了近一段时间的研究工作,并
在此基础上做出了一些具有原创性和特色的研究结果但整体还是落后于国外的研究水平。通过对国内外有关研究进
行了整理,认为造成该现象的因素主要有:学科基础薄弱、没有自主知识产权的研究结果、缺少与之配套的研究条
件。与20世纪中期比较,近代相关技术迅速发展的主要因素有二:一是因为有了电子工业的发展;二是对低温等离
子体认识的不断提升,形成了相对完整的技术和理论体系,以及分子、细胞、生物体三个层次上的三者之间的相互
作用的研究。目前,国内和国际上对该问题进行了大量的研究,并已取得了较大的成果,为准确地检测低温等离子
体作用提供了理论依据。我们坚信,经过我们的辛勤工作,我们的等离子体技术研究将会在世界范围内取得领先地
位。
1.3 研究的目标和内容
随在当今的经济发展中,食品的安全问题日益受到人们的关注。采用等离子杀菌技术对食物进行防腐处理,并对其存在的问题进行了探讨。试验结果表明,本次设计的杀菌、保藏系统能够有效的消灭细菌,实现安全、高效的
保存食物的功能,是一种很好的储藏方式。在最后对今后的工作进行了展望,提出进一步改进和完善的方向。设计
一种结构简单,价格低廉,具有良好的杀菌保鲜效果的装置。
本论文有6个部分。
第一部分为绪论,主要介绍保鲜柜研究背景和意义、等离子消毒杀菌技术的发展历史和国内外研究现状。
第二章阐述了保鲜柜及相关设备的工作原理,并针对保鲜柜中存在的问题提出采用等离子灭菌技术,利用低
温、臭氧等处理方式来达到保护食品不受污染的目的。
第三章介绍了整个系统的总体方案设计。
第四章介绍了系统的硬件设计。
第五章介绍了该系统的软件设计和整体调试,并对系统的安全性、可靠性进行了验证。
最后,给出了结论和展望。
第2章 保鲜柜整体设计和控制方法
2.1 整体设计
保鲜柜是我们平时使用的储藏食品的容器,通常在低温下储存食品。冷冻后的食物会失去大部分的养分,所以
要保持“鲜活”的温度,保持在无限趋近于0℃,这样可以最大程度地防止食物腐烂,所以才有了零度保鲜概念的出
现。保鲜柜的设计理念是:保持一个相对稳定、相互独立、相互封闭、温度与0℃非常相近但不低于0℃的环境,同
时保持食物一定的水分,从而起到保鲜的作用。保鲜柜的直接制冷技术是通过热传导作用实现制冷和保鲜的。零度
保鲜法是通过精确的控制贮藏室内的温度,让内部的温度无限趋近于0℃,从而可以将水果、蔬菜和肉制品储存起来
并且维持其口感和新鲜程度。
风冷保鲜柜是一种采用冷库蒸发装置来对冷库内部的空气进行降温,然后由风机将低温气体送至保鲜柜外部,
从而实现均匀冷却。该产品具有高效节能、绿色环保的特点。采用空气制冷技术,既可以实现自动解冻,又可以达
到制冷的目的。
本文首先对国内外果蔬的保存状况及发展状况进行了综述,并着重论述了目前常见的保存技术;经过一些试验
结果验证表明,哪一种处理方式可以提高食品的保质期,提高食品的保存质量。从气体成分、温度和湿度等角度,
探讨了蔬菜水果品质与含氧量的关系,并得到相应的结果。然后,在分析了各种果蔬实验数据的情况下,选用了适
宜的技术与设备。
本文所设计的保鲜柜长度为1.5m,宽度0.5m,高度1m。该方案将单片机、液晶显示、传感器、控制、自动化等
技术相结合,对原有的冷库和控制系统进行了改进,以适应各种客户的需要,并且解决了当前大多数冷库无法自动
化的问题。
该产品可保鲜约0.1吨的新鲜水果。在使用中,不符合要求的商品往往会因为种种因素而产生,从而对使用者的
身体造成一定的危害,所以必须对其进行有效的处理。为此提出了一种新的控制方法。
保鲜柜的运行管理是一个复杂而又巨大的系统,其运行过程中存在着许多的问题。本次设计阐述了利用微处理
器进行冷藏室的温控,以达到对冷冻室进行实时监测的目的。本系统可靠性高,抗干扰能力好。在实践中取得了很
好的结果。并发现空气调节保鲜柜的温度、湿度、臭氧浓度等重要参数的变化,直接关系到保鲜柜的整体性能。
温度、臭氧、湿度等因素对整个系统的运行有很大的影响。气调贮藏需要更多的条件来调控。在保鲜期间,通
过气调保鲜,可以减少蔬菜中营养成分在保鲜期间的损失,从而改善食品的品质和商品性。在国内,气调技术已经
发展了20多年。
其组成见图2.1。
保鲜柜内部的湿度控制系统、风机控制系统、温度控制系统、加湿系统等部分构成。针对上述需求,本次设计
出一套以单片机为核心的智能保鲜柜测控系统。采用LCD显示屏,对全保鲜柜的臭氧浓度、温度和湿度进行了实时监
控。
该系统由单片机,LCD显示屏,制冷机组,电加热器,制臭氧机,加湿器,风机,温度传感器,湿度传感器,臭氧浓
度检测传感器等组成。
图2.1 环境控制示意图
2.2 果蔬保鲜柜的功能设计
保鲜柜的控制系统,通过在保鲜柜内安装的温湿度检测、臭氧检测的信息采集系统,实时检测柜内的温度、湿
度、臭氧浓度,传递给单片机控制设备,再由单片机发出指令完成对制冷、加热、降氧制臭氧和加湿等执行机构的
有效运行,对柜内保鲜环境进行实时调节,实现果蔬的保鲜要求。
本设计所实现的自动控制功能是:
(1)设置了独立键盘,操作人员可以通过按键设定参数,实现了人机互动。
(2)能够显示实时的数据并且能实时控制。
(3)能够完成当保鲜柜中的传感器发生故障时进行实时自动警报。
(4)通过感应器对空气调果蔬贮藏柜内的气体进行取样,并向单片机发送测试结果,并设置自动检测数据结果的
时间间隔,实现对蔬菜水果贮藏的实时取样。
(5)对制臭氧机进行完全的监控,用对应的气敏传感器对取样的气体进行检测,并与对应的参数进行比对,若发
现异常,则由单片机进行操作,并进行相应的处理。
(6)能对气调果蔬保鲜柜进行湿度的调控,在湿度超过设定值的条件下,由单片机程序计算编程从而使加湿机构
开始工作,进行湿度调节保证保鲜柜内部的湿度。
(7)能够完成气调果蔬保鲜柜的温度调控,将实时监测到的数据与所设置的数据进行对比,当检测到的数据高
时,由制冷系统开始工作,使气调保鲜柜的内部气温下降;当检测到低温时,由微处理器发出指令控制加热设备开
始工作,使气调保鲜柜内部的温度上升。
(8)能对气调果蔬保鲜柜的通风进行调控,利用风机进行柜内部空气与外部的流通交换,达到内外气体交换,实
现蔬菜水果出柜与进柜的目的。
2.3 保鲜柜的环境参数研究
本设计是以保鲜柜的环境为主要研究目标,并对其特性进行了剖析:
(1)是一种随时间变化的体系。蔬菜的呼吸作用与气体调控这一过程是在不同时期发生的,并且是随时间一直发
生变化的。所以,保鲜柜是一个动力学的体系,其内部的各种因素会随着时间的推移而发生改变。
(2)时间延迟体系。我们按照需求对保鲜柜进行了对应的处理,但是对应的功能会产生延迟响应。举例来说:保
鲜柜冷藏期间,保鲜柜冷却,虽然用了风机来加速保鲜柜内部的气流,平衡了保鲜柜内部的气体,但是达到保鲜柜
内部总体的低温还是需要一定的时间。
(3)一种非连续的体系。由于其内在的环境因子是非常复杂的,具有很大的不确定性和随机性,因此难以用线性
方法进行准确的模拟。
(4)多元的藕合体系。这种保鲜柜中的各种参数互相作用,如果对一个单独的变数进行调控,那么其它的变数就
会发生改变。
(5)一种参量分配体系。由于保鲜柜的尺寸较大,所以在保鲜柜中的变数分配也不均衡。比如:在保鲜柜内,不
同部位的气温是不均衡的,通常是四面相对较低,中部偏高,并且底层与上层的温度也存在差异。
通过对各种因素的综合研究,得出了保鲜柜的环境参数是一个具有时变性、非线性的动态系统,难以准确地确
定其控制模式。采用对温度、湿度、制臭氧的自整定PID控制,并以温度为例子进行了自整定PID控制,说明气调保
鲜柜控制对象的数学建模。
2.4 保鲜柜PID控制的数学模型
在研究目标的数学建模时,就是采用一种基于理论解析方法的数学描述方法,导出能表现出研究对象动态特征的微分方程。
保鲜柜的温控原理图如图2.2所示。保鲜柜内的温度指标存在一定的延迟和分布,因此,在建立该数学模型的过
程中,将保鲜柜内的温度作为一个集中参数来看待,以便于深入的研究,忽视其温度的延迟滞后。
图2.2 保鲜柜的温度控制
按照能量守恒原理,储藏在保鲜柜中的物品储存能量的变化率是指储存在容器中的物体的能量在一个特定的时
间段内进入容器与从容器中出来的能量的差,因此,这个公式表示为,式2-1:
(2-1)
式2-1中:
T为保鲜柜的时间常数(s)
K为保鲜柜的放大系数(℃/℃)
Ts为送风温度(℃)
Tn为保鲜柜内温度(℃)
Tf为保鲜柜内外干扰热量换算成送风温度的变化量(℃)
式2-1就是保鲜柜温度的微分方程式。
Ts和Tf作为输入量输入保鲜柜的参数,Tn作为输出量输出保鲜柜的参数。使被控变量产生改变的因素是输入
量,在控制过程中,起到控制效果的是Ts,起到干扰效果的是Tf。
假设送风的温度为恒定,则干扰变化量作为一阶阶跃干扰A,则下式为非齐次微分的一阶线性常系数方程式的解
,式2-2:
(2-2)
在上式中,保鲜柜温度T按规律指数变化。当t=∞时,式2-3:
(2-3)
因此,K是新的稳态值与被调量所受干扰的比值,是对被控对象的静态特性的反映。当T=t时,保鲜柜的温度稳定
值是,式2-4:
(2-4)
公式中,当t=T时,能达到新稳定值的63.2%,即受到阶跃干扰后的气调柜所达到的温度。气调柜时间常数指的
是变化到63.2%稳定值时所经历的时间。受到干扰后被控对象的被控量,达到新的稳态值的慢快由时间常数来决定
的。
简化后的保鲜柜数据,在考虑其滞后后,可以作为带纯滞后的一阶惯性环节。则变更公式为,式2-5:
(2-5)
式中:T为气调柜柜温被控对象的传递滞后
温度的稳定值通过调节冷凝机启停来控制。在制冷系统工作开始后,到气调柜控制点的空气温度开始变化,这
个过程中经历的时间被称作气调柜的传递滞后时间。也就是冷气从制冷系统出发,移动到控制点所需的时间,式2-
6:
(2-6)
式中:
l为流线的计算
V(l)为空气沿流线方向流动的速度(m/s)
对于风机送风,式2-7:
(2-7)
式中:
N为保鲜柜换气次数;
由式中的分析知,式中T是保鲜柜的时间常数,K是放大系数,对于风机送风有,式2-8:
(2-8)
式中:
a,b,h分别为保鲜柜长、宽、高(m);
现在用估算法对保鲜柜特性参数进行如下计算:
已知柜内换气次数,式2-9:
(2-9)
式中:
L为制冷风机向保鲜柜内送风量
V为保鲜柜体积
1 原理图说明书
第3章 保鲜柜控制系统的硬件设计
由于保鲜柜的控制要求和需要实现的功能已经很清楚,因此,在此基础上,本章将结合实际情况,综合考虑各
种环境条件,选取合适的控制方案,对保鲜柜的各部分进行硬件的设计。
3.1 控制器的选择
该控制电路的硬件部分主要有:选择控制器、控制器外部电路的配置、执行机构的选择、数据采集的传感器的选
取、数据显示设备的选取。在图3.1中显示了本系统的硬件结构图。
图3.1 系统结构与配置图
本设计经过全面的考虑,最后选择了STC12CSA60S2单片机(如图3.2),作为一个增强的8051CPU,它的命令代
码与常规8051完全兼容,它的片上有1280字节RAM,40个通用的IO端口,每一个端口的驱动容量都可以达到20mA,但
是整体芯片不能大于120mA;一共包括4个16位的定时器,具有单独的波特率发生器;外部中断I/O端口7路,由常规
的下降沿或低点平触发引发中断;A/D变换,10位高精度的ADC,一共有8路,最高的转换速度可达到250K/S(250000次
/秒)。
VCC:电源;
GND:地;
P0端口:P0端口是一个8位的漏极打开的双向I/O端口,每个管脚可以接收8TTL的门电流。如果P0端口上的管脚
是“1”的时候,则称为高电阻输入。P0可以被应用在一个外部的程序数据存储器中,并且可以被定义为第八位的该
数据/地址。在FLASH程序中,P0端口用作原始代码输入端口,FLASH检测时,P0将输出原始代码,这时P0的外部点位
一定要调高;
P1端口:P1端口为一个在内部提供上拉电阻的8位双向输入/输出端口,该端口可以接受4TTL门电流的输出。P1
端口管脚在“1”被写入后,其在内部被上拉成高电位,可以作为一个输入,P1端口被从外部向下拉到低电平的时
候,会输出一个电流,电流产生的原因是内部上拉。当FLASH编程和检查时,P1端口被当作第八位的地址;
P2端口:P2端口是一个内部上拉电阻的8位双向I/O端口,P2端口的缓冲器是可以被接收的,并可以输出4TTL门
电流,当P2端口被写入“1”的时候,则通过内部上拉电阻将管脚的点位拉高,并用作输入。当作为输入时,P2端口
的管脚电位被从外部拉低,从而产生一个输出电流,这是因为它的内部向上拉的缘故。P2端口在被当作外部的程序
的存储器或者16位地址的外部数据存储器实行存储的功能时,P2端口的输出地址中的高八位。在提供“1”为地址
时,它充分发挥了其内部上拉的优点,在读取和写入外部八比特的地址时,P2端口将其特定的函数寄存器的内容进
行输出。P2端口在FLASH的编程和检查中接收高八比特的地址和控制信号;
P3端口:P3端口的管脚为8个具有内部上拉电阻的双向输入/输出端口,可以同时接受4个TTL门电流。在P3端口
中写下“1”之后,将其向内推到高电平,作为一个输入。当作为一个输入时,因为外部下拉是低电平,所以P3端口
也会产生并输出电流(ILL),这也是因为向上拉动。P3端口还可以用作AT89C51的某些特定的端口:
P3.0 RXD(串行输入)
P3.1 TXD(串联输出)
P3.2 INT0(外部中断0)
P3.3 INT1(外部中断1)
P3.4 T0(记时器0的外部输入)
P3.5 T1(记时器1的外部输入)
P3.6 WR(外部数据存储器写入)
P3.7 RD(外部数据存储器读取)
P3端口同时接受部分用于闪烁程序编辑和编辑检查的时候接受控制信号;
RST:复位输入。在振荡器重置设备时,使RST脚的两个机器周期处于高平时间;
ALE/PROG:在读取外部存储器时,所容许的位址锁定值被用来锁定一个较低的字节。这个引脚被用来在FLASH程
序编程中的程序脉冲的输入。通常ALE端子以固定的频率循环,以1/6的振荡频率来输出一个正脉冲。所以,可以将
其作为一个脉冲,或者作为一个向外输出进行计时目的。但是,请记住:无论何时作为一个外部存储,ALE的一个脉
冲都会被忽略。如果要禁用ALE,可以将其设为0的SFR8EH。这时ALE仅在MOVX可执行,在MOVC命令的情况下工作。此
外,这个引脚稍稍抬高。若外部对ALE禁用,则置位失效;
PSEN:一个外接程式的存贮器用于存储的选通信号。每个循环周期PSEN在外部编程内存访问取址时有两次PSEN
有效。但是当访问存取内部资料时,这两次PSEN的有效讯号就不会发生;
EA/VPP:在EA处于低电平状态下存取外部ROM;请留意在加密模式1中,EA将其锁在RESET;在EA端维持高电平时
存取内部ROM。该引脚还被用来在FLASH程序中应用12V的程序供电(VPP);
XTAL1:振荡器反相放大器和时钟发生器的输入端;
XTAL2:振荡器反相放大器的输出;
3.1.1 复位电路简介
复位电路如图3.4所示。
容量为10uf,电阻值为1k。由公式可以得出,当电池充电容量达到0.7倍电源电压时,所需的时间为1K*10
UF=0.01S。在0.01S开始时,电容器上的电压升高。此时1K的电阻器上的电压下降了。因此,RST管针在0.01秒时会
收到5V至1.5V的电压。在单片机中,1.5V以下的电压是一个低电平的信号,1.5V以上的是一个高电平的信号。因此
,在0.01S的启动期间,由MCU系统进行自动重置(RST引脚收到的高电平的信号的持续时间是0.01S)。
在按钮按下的同时,单片机会重置:在按钮被压下后,电容器就被接通,并且在电容器开始释放之前所充满的
电能。当一段时期后,该电容器的电压从5V下降到1.5V,或者更低。此时1K电阻器上的电压是3.5V或更大,因此RST
引脚再一次收到高电平,单片机会自行复位。
3.1.2 晶振电路的简介
选用等效于负荷容量的并联式电容器,就可求出晶体振荡额定共振频率。晶振振荡电路是将一个晶振输入到逆
变器的两端,然后将两个电容器连接在晶振的两端,然后将其中每一个电容器的另一端都接至地,从而使其具有与
负荷电容器相同的容量值。
3.2 独立键盘的设计
独立键盘的设计如图3.6所示。在未按下键时,相应于单片机的I/O口的输入是高电平;在按下一个按键后,相
应的I/O口就会成为低电平。在程序中通过对I/O口的状态进行判定,可以确定哪些按键是被按下的。
3.3 显示模块的应用
本设计使用LCD1602(见图3.7)作为显示组件,用于显示温度、湿度、臭氧浓度以及各个参数的设置。
图3.7 1602模块实物图
1602使用的是一个16脚的标准端口,其中:第1脚:VSS是一个供电接地。第2脚:VDD与5V供电的正电极相连
接。第3脚:VO是LCD的反差调节,当连接正极时,反差最低,而在地时反差最大。第4脚:RS作为寄存器的选取,当
高电平1的时候,数据寄存器被选中,低电平0的时候,指令寄存器被选中。第5脚:RW是一个读取和写入的信号线
路,读取工作在高电平1的时候执行,而在低电平0的时候执行写。第6脚:EN端是启动端。第7~14脚:D0~D7是一
个8比特的双向数据端.第15~16脚:空脚或背光的电源。15脚为正极,16脚负极。
3.4 报警电路的设计
报警电路(图3.9)是用来在保鲜柜中温度和湿度传感器出现问题时发出声音,提醒工作人员,由工作人员来进
行处置。在常规的单片机操作方式下,IO端口的电流在4mA~7mA之间,而蜂鸣器的工作电流在20mA以上。由于不能
直接控制微处理器,因此采用三极管来实现功率的放大,10K的电阻器用于阻止干扰。
3.5 温湿度传感器的选择
本设计要求对保鲜柜温度和湿度进行测量,所以提出采用AM2302型数字温度传感器模组(见图3.10)。
图3.10 AM2302实物图 图3.11AM3202的引脚图
产品参数:
尺寸:28.2mm(长)*13.1mm(宽)*5.5mm(高)
湿度测量范围:0%~99.9%
湿度测量误差:士2%
温度测量范围:-40℃~80℃
温度测量误差:士0.5℃
分辨率:16位
采样周期:2s
工作电压:3V~5.5V
使用说明:VDD:接电源正极;GND:接电源负极;SDA:用于读写传感器数据;参考图3.11。
AM2302装置是一种简单的单总线通讯方式。即只有一条数据线路,通过数据线进行数据交换和控制。该单个母
线上有一个大约4.7kΩ的上拉电阻器,以便在该总线空闲时处于高电平(见图3.12)。因为它们是主从结构,所以
在主从的情况下,只能在主机端调用的时候,传感器才会响应,所以所有的主机在对传感器作用时都要遵守单总线
序列。
图3.12 AM2302与单片机连接的电路图
3.6 臭氧传感器的选择
根据本次设计的保鲜柜的控制特点选用郑州炜盛电器公司制造的MQ131型臭氧检测器,可在0.02~4 mg/m3的条
件范围下检测,并且可以针对不同的环境进行检测。就像在图3.13中看到的那样。MQ131型的气体敏感元件是一种在
洁净的大气中具有高导电性能的金属氧化物。随着臭氧体的含量增大,其导电性能下降。通过一个简易的线路,可
以把导电系数的改变转化成相应气体浓度的输出信号。
MQ131型气敏元件为二氧化锡(SnO2),其在洁净的大气中具有很小的导电能力。随着臭氧浓度的升高,传感器
的导电性能也随之提高。MQ131的接线线路可以将导电系数的改变转化成相应于此气体浓度相对应的电压值
(0~5V)的输出。
MQ131型臭氧感测器对臭氧敏感度高,对氯气、二氧化氮等也具有较高的敏感性,对有机物的干扰作用则与臭氧
相反的方向作用反应。
图3.13 MQ131
具体参数表3.1所示:
表3.1 MQ131技术指标
产品型号 MQ131
产品类型 半导体气体传感器
标准封装 胶木,金属罩
检测气体 臭氧
检测浓度 10~1000ppm臭氧
标准电路条件
回路电压 Vc ≤24V DC
加热电压 VH 5.0V±0.1V AC or DC
负载电阻 RL 可调
标准测试条件下气敏元件特性
加热电阻 RH 29Ω±3Ω(室温)
加热功耗 PH ≤900mW
灵敏度 S RS(in 200ppm O3)/RS(in air)≥2
输出电压 △VS ≥1.0V(in 200ppm O3)
浓度斜率 α
≤0.6(R10ppm/R100ppm O3)
标准测试条件
温度、湿度 20℃±2℃;55%±5%RH
标准测试电路 Vc:5.0V±0.1V;
VH:5.0V±0.1V
预热时间 不少于48小时
3.7 制臭氧的方法
在室温下,臭氧是一种极不稳定的淡蓝气体,极易被分解生成极具氧化性的氧,其在水溶液中的氧化、还原电
势可达2.07eV,仅次于氟化物,所以其杀菌效果更好。其次,果蔬呼吸作用产生的乙烯气体会迅速地被臭氧气体所
氧化分解,减缓蔬菜的代谢,减缓蔬菜的衰老达到保鲜果蔬的效果。因此,臭氧作为一种具有高渗透性、无残留、
活性较好的新型氧化剂,已被广泛地用于食品工业。
在食物的保鲜过程中,臭氧的产生通常会伴随着负电荷的出现,二者结合,会导致水果的代谢能力降低,从而
降低水分流失和养分的损耗,从而维持水果的新鲜与美味。臭氧是一种具有很好的氧化能力的气体,能对水果和蔬
菜中的有机氧、有机磷等进行生物降解。采用臭氧技术可以有效地清除水果和蔬菜中的乙烯、乙醛、乙醇等有害物
质,减缓水果的呼吸作用;在臭氧和乙烯的化学反应中,有机氧化酶和真菌是能起到很好的抑制作用。蔬菜和水果
的腐败归因于微生物的腐蚀。臭氧具有极强的杀菌性,可有效地消灭绿霉菌、芽孢、青霉素、杆菌,并可有效地消
灭黑蒂腐病和软腐病。
使用臭氧能保持食品的新鲜,目前,食品电控保鲜柜作为一种新型的空气保鲜设备,其产品具有节电和良好的
保存果蔬的性能,因而在海外市场迅速发展。本设计利用自制的保鲜柜,对苹果、柑桔等食品进行了保存研究。
目前生产臭氧层的有很多种,如化学法,电解法,紫外线法,放射线法,静音放电法等。
由于采用化学方法产生的臭氧数量很少,无法用于实际的生产,而电解工艺的产品具有很高的产率和很高的臭
氧含量,所以现在市面上已经开始有了一些产品,但是所产生的O3往往与ClO2、H2O2、Cl2共存。紫外辐射方法虽然
早期有一些应用,但产生的臭氧量很低,仅适用于需要少量杀菌的地方。
采用静音放电技术,能得到大量的低浓度的臭氧化性气体(臭氧质量在空气中占总质量的百分比约为1%~2%),
适用于工业应用,是当前污水处理工艺中普遍采用的一种工艺。采用高频、中频、高压、纯臭氧源的静电场,可以
得到高浓度臭氧(臭氧质量在空气中占总质量的4%~5%)。
静音法产生臭氧的方法是将一对交流电极夹在中间,在气体或臭氧经过一个高电压的电极时,产生一个能产生
充分动能的放电电子,从而将氧气分子电离,从而使一部分氧分子电离后聚合成为臭氧,
图3.14中的A和C均为电极,通常由不锈钢制造,B是介质,是一种绝缘的材料,通常使用的介质是耐高电压的玻
17
璃。在高压交流电的情况下,B与C之间的缝隙会出现静音放电,高电压从A经B进入C,因为介质B的阻隔,大电流无
法穿过,只有很低的电流才能穿过。氧气在高速运动中,有一些会被转化为带电的电离,这些电离和碰撞形成了一
个原子,直到达到了一个稳定的平衡,产生了大量的臭氧,反应方程式如式3-1:
(3-1)
这种产生臭氧的方法,仅将少量的气体经过放电区转化为臭氧层,其含量一般为占总质量的1%~2%,其中的臭
氧气体称为臭氧化气体。
3.8 制冷机组和加热设施
制冷机组是由半导体制冷片进行制冷。采用TEC1-12706作为半导体,其工作原理是根据的珀尔贴效应的特性,
在H桥型中由两个金属板组成,在两个方向上形成一个H型的桥型时,可以对冷却或加热与其接触过的物体。
这种半导体制冷机具有以下优势:(1)半导体致冷机具有极低的尺寸,最小能达到1厘米。(2)半导体制冷机还
很轻便,其通常仅为几克或十几克。(3)工作时无机械驱动、无动力、无噪声、无液、气工作介质、无对周围环境的
污染。(4)冷却系统的参数是恒定的,不会受到空间的影响,不会受到引力的干扰,即使是在机械超负荷的情况下,
也可以使用。(5)调整容易,冷却作用受电路电流的影响,制冷速度可通过调整工作电压的幅度而调整;利用开关的
电流,快速完成制冷、制热工作的变换。(6)动作迅速,使用寿命久,容易操作。
电加热装置采用电阻丝,通过单片机对继电器开闭的控制进行加热。
3.9 加湿器的选择
该设备将使用CR86FS的加湿设备。CR860FS的加湿机是通过压力喷射的,通过高压水泵对空气进行增压,然后送
入喷头进行雾化。这些水汽粒子很小,可以吸收周围的污垢,起到降尘、加湿等作用。这种装置具有下列优势:
(1)雾细:雾滴可在5~15μm范围内,喷嘴每秒可喷射出50亿个雾滴。
(2)节约能源:每雾化一公斤水的耗电量只有4W,是普通的电加热加湿设备的百分之一。
(3)加湿效率可达到95%或更高。
(4)自动控制、手动控制随意转换,高精度控制湿度、能够无人化管理。
3.10 风机的选择
选择YWF4E-300风机,它的优点是效率高,噪音低,振动低,免维护。YWF4E-300系列的风机具有220V的工作电
压,50Hz的频率,0.35A的电流、75W的功率、1440RPM的转速,1950m/h的风量。
第4章 保鲜柜控制系统的软件设计
4.1 主程序的设计
在单片机进行主控编程时,先对显示模块1602进行初始化,再进行死循环。死循环中,第一步执行按键子程
序,判定有无按键按下,本设计共有四个按键,即key1、key2、key3、key4。在本设计中有四种模式:1:对保鲜柜
内部数据进行实时监测与显示。2:能设置保鲜柜内部的温度,并能进行实时显示。3:能设置保鲜柜中的湿度,并
能进行实时的显示。4:可以在保鲜柜中设置目标臭氧的数值,并能实时显示。key2的作用是确定,key3的作用是设
定目标值时的自加,key4的作用是设定目标值的自减。该软件程序如下,流程图见图4.1。
/主程序/
void main()
{
write_init();//1602初始化
while(1)
{
Keyscan();//按键程序
if(moshi0)
{
bianliangjiance();//检测温湿度与臭氧浓度
Zhixingqi();/根据变量的值来操纵执行器
}
if(moshi=-1)//模式一进行温度的设定与显示
{display3(Tem1);}
if(moshi2)//模式二进行湿度的设定与显示
{display4(h1);}
if(moshi3)/模式三进行臭氧浓度的设定与显示
{display5(o21);3}
if(paifeng–1)//模式四进行排风操作
{ fengji-1;}
图4.1 主程序流程图
4.2 按键程序
本设计所使用的是独立按键,从电路图的电路中可以看出,在单片机的LO端口从高电平到低电平,并在一定的
时间内保持(要进行消抖操作),这意味着已经按下了一个按键,然后就是对哪个按键按下了进行判定,同时本程
序还有自锁的功能保证按键没按一下只响应一次。按键程序如下,流程图见图4.2。
/按键程序/
void keyscan(void)
{
key1=1;key2=1;key3=1;key4=1;
if((key10)&(zisuo10))
{ delay1ms(5); //消抖
18
if((key10)&(zisuo10))//按键key1按下
{ if(moshi<4)
{moshi++;}
else moshi=1
zisuo1=1
}
}
else if((key20)&(zisuo2==))
{ delay1ms(2);//消抖
if((key20)&(zisuo2))按键kye2按下
{ if(moshi4)
{paifeng=1;}
moshi=0;
error=0;
led=1;
zisuo2=1;
}
}
else if((key30)&(zisuo30))
{ delay1ms(2);//消抖
if((key30)&(zisuo30))//按键key3按下
{if(moshi1)
{Tem1=Tem1+1;}
if(moshi2)
{h1=h1+1;}
if(moshi3)
{o21=o21+1;}
zisuo3=1;
}
}
else if((key40)&(zisuo40))
{ delay1ms(2);//消抖
if((key40)&(zisuo40))//按键key4按下
{if(moshi1)
{Tem1=Tem1-1;}
if(moshi2)
{h1=h1-1;}
if(moshi3)
{o21=o21-1;}
zisuo4=1
}
}
if(key11)//自锁功能的实现
{zisuo1=0;}
if(key21)
{zisuo2=0;}
if(key31)
19
{zisuo3=0;}
if(key4==1)
{zisuo4=0;}
}
图4.2 按键的流程图
4.3 显示模块1602的程序设计
本设计要在1602中显示出温度(Tem)与数值,湿度(hum)与数值,臭氧浓度(O3)与数值。这就涉及到了单片机要
对1602初始化和传送命令与数据。程序如下,程序流程图见图4.3
。
图4.3 1602程序流程图
20
/显示模块程序/
void write_init(void)//初始化函数
{
write_com(0x38);//数据总线8位,显示两行,5X7点阵/每个字符
write_com(0x0c);//整体显示,光标不显示,不闪烁
write_com(0x06);//写入新数据光标右移,显示屏不移动
write_com(0x01);//清屏
}
void write_com(char com) //输入命令函数
{
RS=0;
RW=0;
EP=0;
P0=com;
delay30us(5);
EP=1;//上升沿读入
delay30us(5);
EP=0
}
void write_date(char date)//输入数据函数
{
{
RS=1;
RW=0;
EP=0;
P0=date;
delay30us(5);
EP=1;//上升沿读入
delay30us(5);
EP=0
}
}
4.4 温湿度传感器采集与控制的程序
本系统采用AM2302湿敏型电容数字温度、湿度控制模组,通过总线的的方式实现与单片机的通信。本系统实现
了保鲜柜内温、湿度的检测,其实现过程是由单片机发出起始信号后,AM2302进入常规操作状态,AM2302对信号进
行回应,并传送40位的数据;传送的数据顺序是:湿度高8位、湿度低8位、温度高8位、温度低8位、校验位,全部
数据发送结束后进行一次信息的采集,采集结束后传感器停止工作等待接受下一个起始信号。温湿度传感器与单片
机通讯如图4.4所示
图4.4 温湿度传感器与单片机通讯程序流程图
采集到蔬果中还并未完全失活,它们依然是“生命体”,它们的生命需要依赖于臭氧。在室温下进行了正常的
生理代谢。因已离开原有的生长条件,无法从母株获得水分及其它营养成分。相反,某些酶会不断地吸收营养,形
成二氧化碳和水。用于保持自身正常的生命活动。以上就是水果的呼吸作用,简单来说,没有了呼吸,蔬菜和水果
就会“死亡”。温度、湿度、环境气体、机械损伤、植物激素是影响蔬菜水果呼吸功能的主要因素。
根据科学的证明,蔬菜和水果的呼吸与温度呈显著的相关性。在特定的气温下,呼吸的力量随着摄氏度的上升
而增强,当气温下降时,其呼吸的力量就会大幅下降。随着蔬菜的呼吸能力降低,蔬菜的营养消耗量降低,其贮存
期也随之增加。同时,湿度也会对水果和蔬菜的呼吸功能产生一定的影响。总体而言,轻度潮湿比干燥更能减缓呼
吸作用。因此,我们对蔬菜和水果的储藏采取了低温增湿法。
当前国内的果蔬保鲜和保藏方法有三种:一是利用手工方法在储藏罐中或储藏库的地板上喷洒水分;第二类是
采用塑料膜包裹果蔬;第三个方案是将超声加湿装置置于贮藏室中。采用手工增湿法,其综合造价低廉,但精度不
易保证;塑料薄膜的透气性能较差,很容易产生露珠,而超声加湿在温度较低的时候会产生结露凝液,长期受潮后
很容易产生病菌。果蔬储运和保鲜过程中,准确地掌握温度、水分、鲜度对于保证营养品质是至关重要的。采用低
温增湿法储存,可有效地保持食物的表面湿度,并使其具有一定的活力。
在此基础上,采用了与制冷设备、制热设备、风扇和加湿器相结合的方法,研究了在低、高湿的环境中对水果
和蔬菜的作用。这样,我们就能与继电器配合一起,在各种条件下进行各种不同设备的启动。
制冷装置在-1℃以上时起动,在-1℃以下时关掉制冷装置,在-1℃以下启动风扇,使其回到-1℃;在湿度超过
85%时启动加热装置,在85%的时候关掉加热装置,当湿度远远低于85%时启动加湿装置,恢复至85%时停止加湿装置
的工作。
温湿度传感器与装置的配合流程见图4.5。
图4.5 温湿度传感器与设备的配合流程图
/温湿度传感器DHT22系列函数/
void COM1(void)
{ unchar i;
for(i=0;i<8;i++)
{
FLAG=2
while((!DHT1)&&FLAG++);
delay30us(1);
temp=0;
if(DHT1)temp=1;
FLAG=2;
while((DHT1)&&FLAG++);
if(FLAG1)<<=1;
comdata1<<=1;
comdata1=temp;
}
}
void RH1(void)
{
DHT1=0;
delay1ms(18);
DHT1=1;
delay30us(1);
DHT1=1;
if(!DHT1)
{
FLAG=2;
while((!DHT1)&&FLAG++);
FLAG=2;
while((DHT1)&&FLAG++);
COM1();
RH_date_H_temp=comdata1;
COM1();
RH_date_L_temp=comdata1;
COM1();
T_date_H_temp=comdata1;
COM1();
23
24
T_date_L_temp=comdata1;
COM1();
checkdata_temp=comdata1;
DHT1=1;
temp=(T_data_H_temp+T_data_L_temp+RH_data_H_temp+RH_data_L_temp);
if(tempcheckdata_temp) //数据校验
{
RH_data_H1=RH_data_H_temp;//湿度高8位
RH_data_L1=RH_data_L_temp;//湿度低8位
T_data_H1=T_data_H_temp;//温度高8位
T_data_L1=T_data_L_temp;//温度低8位
checkdata1=checkdata_temp;//校验8位
}
}
}
4.5 臭氧程序设计
国光苹果和柑桔在冷藏箱内存放21天,能明显地降低苹果和柑桔的腐烂率和失水率,使苹果和柑桔的硬度和总
酸度降低变慢(参见表格4.1)。
抗菌实验显示,在常规固态平板上放置48小时后,控制组中的细菌数量分别为428和210,而在贮藏室中均为0。
不同时期的混合液进行培养,其活菌数量如表格4.2所示。
油菜籽的黄叶率、水分损失率分别为11.818.5%、7.418.9%;蘑菇的开伞指数下降13.3~30.5%,开伞率下降30.1
43%,水分损失下降10.0531.8%。
在不同品种的品种中,不同品种的果实的水分损失也有不同苹果分别降低14%、5.116.2%、柑桔5~14.1%和9.2%。
臭氧有减缓果实硬度的下降及总酸度下降的能力。
在常温下,臭氧的最大含量为204ppb,在21~25℃时,能明显地抑制和消灭大肠杆菌和金黄色葡萄球菌,降低了
食品的腐烂速率。
表4.1 臭氧保鲜对苹果、柑桔品质的影响
样品
项目
处理
12月20日
12月28日 1月4日 1月11日
对照1 对照2 处理 对照1 对照2 处理 对照1 对照2 处理
苹果
失水率(%) 1 0 0 2.3 0 0 4 0.69 0
腐烂率(%) 16.2 0 0 16.7 9.6 9.6 0 0 0
硬度 1.36 1.22 1.28 1.29 1.2 1.28 1.3 1.15 1.2 1.3
总酸 0.49 0.44 0.4 0.39 0.4 0.4 0.45 0.4 0.4 0.43
可溶性固形物(%) 9.0 8.6 7.9 9.0 11.0 9.0 9.0 10.8 11.57 12.2
柑桔
失水率(%) 5.5 0.64 0 13 0.64 0.66 16 2 1.9
腐烂率(%) 9.2 0 7 0 7.5 0 0 0 0
总酸(%) 1.36 1.06 1.11 1.23 1.23 1.15 1.17 1.06 1.11 1.11
可溶性固形物(%) 12.0 11.8 10.0 11.3 12 11.2 11.6 11.9 10.7 11.8
表4.2 臭氧对大肠杆菌、金黄色葡萄糖球菌的杀菌影响
菌名
处理
放置时间(小时)
7 24 31 48
大肠杆菌 保鲜柜 4800 250 1600 25×104
对照 9920 21×104 93×104 170×104
保鲜柜 39800 100 1515 17×104
金黄色葡萄球菌 对照 54100 24×104 112×104 96×104
根据上述关于水果和蔬菜的臭氧保护作用,我们可以制造出一个用于控制臭氧通断的装置与臭氧传感器配合使
用,在臭氧浓度低于240ppd的时候,就会产生臭氧,如果臭氧的密度高于240ppd,则会终止产生,流程图见图4.6。
图4.6臭氧程序流程图
4.5 ADC的初始化程序设计
采用STC12C5A60S2芯片,采用8路10位精度的ADC,其数据的变换速率可以达到250K/S(250000次/秒)。设定有
关的暂存器,可以决定ADC的变换由哪一个输入/输出端口来决定。
当PI端口用于ADC时,哪个P1ASF的暂存器是1对应的DAC工作方式。该暂存器ADc_CONTR是ADC控制器,在该ADC控
制器中,最高的ADC_POWER是ADC功率控制器,0是关闭ADC功率控制器的电源,1是打开ADC变换器的电源。AUXR1的
ADRJ位是ADC变换的结果(ADC_RES)的数据形式来调节该控制位。ADRJ-0时,10位ADC变换的高8位存储在ADC_RES
中,低2位存放在ADC_RESL中的低2位。程序如下:
Void InitADC()
{
EADC=1; //使能ADC中断
P1ASF=0x80; //设置P1.7为ADC输入口
ADC_RES=0;
ADC_RESL=0; //用来存储ADC转换完的结果
ADC_CONTR=ADC_POWER; //打开电源
delay1ms(2);
AUXR1&=0xfb;//1111 1011 //选择储存方式
delay1ms(2);
}
4.6 DAC的程序设计
26
本设计所选用的MAX517为美信公司生产的8位电压输出D/A晶片,并采用IIC总线接口。MAX517具有一个独特的
IIC的地址,当多个MAX517被连接到同一IIC总线时,可以使用AD1和ADO引脚来选定一个地址,MAX517的IIC地址结构
见表格4.3,MAX517的内部控制寄存器见表格4.4,主机向从机发送数据方式见表格4.5。
表4.3 MAX517芯片的IIC地址结构
BIT7 BIT6 BIT5 BIT4 BIT3 BIT2 BIT1 BIT0
0 1 0 1 1 AD1 AD0 0
表4.4 MAX517芯片的内部控制寄存器
BIT7 BIT6 BIT5 BIT4 BIT3 BIT2 BIT1 BIT0
R2 R1 R0 RST PD 保留 保留 A0
A0:在 MAX517中永远为0。
PD:电源工作状态位。
RST:复位位。
R2~RO:保留位,永远为0。
表4.5 主机向从机发送数据
S 从机地址 0 A 数据 A 数据 A/A P
程序如下:
bit WriteNByte(uint sla, uint suba, uint sda, uint n) // sla-器件地址suba-指令,sda 写入的数据,n-写
入的字节数
{
uint i;
12C_Start();//启动IIC
SendData(sla) ; //发送器件地址
Test_Ack() ;//检查应答
if(flagl==0) return(O);//应答错误
SendData(suba);//发送指令
Test_Ack();//检查应答
if(flag1==0) return(O);//应答错误
for(i=0;i<n;i++)//写入数据
{
SendData(sda);
Test_Ack() ;
if(flag1==0) return(O);
}
12c_Stop();//停止IIC
return(1);
}
S:起始信号
P:终止信号
A:应答信号
SCL为高电平时SDA由高电平转换为低电平为起始IIC信号。SCL为高电平时SDA由低电平转换为高电平为终止IIC信号
程序如下:
void I2C_Start()//起始IC
{
SDA=1;
delay5us();
sCL=1;
delay5usO;
SDA=0;
delay5usO;
sCL=0;
}
void 12C_Stop()//停止IIC
{
SDA=0;
delay5us();
sCL=1;
delay5us();
SDA=1;
delay5us();
}
4.7 PID的程序设计
struct_pid{
float SetTem; //定义设定值
float ActualTem; //定义实际值
float err; //定义偏差值
float err_last; //定义上一个偏差值
float Kp,Ki,Kd; //定义比例、积分、微分系统
float voltage; //定义电压值(控制执行器的变量)
float integral; //定义积分值
}pid;
void PID_init()
{
pid.SetTem=0.0;
pid.ActualTem=0.0;
pid.err=0.0;
pid.err_last=0.0;
pid.voltage=0.0;
Pid.integral=0.0;
Pid.Kp=24;
Pid.Ki=47.5;
Pid.Kd=10.8;
}
float PID_realize(float q)
{
pid.SetTem=q;
pid.err=pid.SetTem-pid.ActualTem;
pid.integral+=pid.err;
pid.voltage=pid.Kp*pid.err+pid.Ki*pid.integral+pid.Kd*(pid.err-pid.err_last);
pid.err_last=pid.err;
Return pid.voltage;
}
**附 录2 部分源程序**
#include <reg52.h>
#include <intrins.h>
#define uchar unsigned char // 以后unsigned char就可以用uchar代替
#define uint unsigned int // 以后unsigned int 就可以用uint 代替
sbit DQ = P1^1; // 温度传感器的引脚
sbit ADC_CS = P1^2; // ADC0832的CS引脚
sbit ADC_CLK = P1^3; // ADC0832的CLK引脚
sbit ADC_DAT = P1^4; // ADC0832的DI/DO引脚
//LCD定义
#define LCD_DB P0
sbit LCD_RS=P2^0;
sbit LCD_RW=P2^1;
sbit LCD_E=P2^2;
uint Time50ms=0;
sbit K1=P2^6;
sbit K2=P2^7;
sbit K3=P3^4;
sbit K4=P3^5;
bit flag=1;
sbit JR=P1^6;
sbit JS=P3^7;
33
sbit DJ=P2^3;
uchar wendu=0; // 保存温度值
uchar num0=0; // 保存湿度值
uchar num1=0;
uchar Setwendu=20;
uchar Setnum0=50;
/*-------------------------------------
函数申明
---------------------------------------*/
void LCD_init(void); //初始化函数
void LCD_write_command(uchar command); //写指令函数
void LCD_write_data(uchar dat); //写数据函数
void LCD_disp_char(uchar x,uchar y,uchar dat);//在某个屏幕位置上显示一个字符,X(0-15),y(1-2)
void LCD_disp_str(uchar x,uchar y,uchar *str); //LCD1602显示字符串函数
void delay_n10us(uint n); //延时函数
/*-------------------------------------
LCD1602子程序
---------------------------------------*/
void LCD_init(void)
{
delay_n10us(10);
LCD_write_command(0x38);//设置8位格式,2行,5x7
delay_n10us(10); LCD_write_command(0x0c);//开显示,关光标,不闪烁
delay_n10us(10); LCD_write_command(0x06);//设定输入方式,增量不移位
delay_n10us(10); LCD_write_command(0x01);//清除屏幕显示
delay_n10us(100); //延时清屏,延时函数,延时约n个10us
}
void LCD_write_command(uchar dat)
{
delay_n10us(10);
LCD_RS=0; //指令
LCD_RW=0; //写入
LCD_E=1; //允许
LCD_DB=dat; delay_n10us(10); //实践证明,我的LCD1602上,用for循环1次就能完成普通写指令。
LCD_E=0; delay_n10us(10); //实践证明,我的LCD1602上,用for循环1次就能完成普通写指令。
}
void LCD_write_data(uchar dat)
{
delay_n10us(10);
LCD_RS=1; //数据
LCD_RW=0; //写入
LCD_E=1; //允许
LCD_DB=dat; delay_n10us(10);
LCD_E=0; delay_n10us(10);
}
void LCD_disp_char(uchar x,uchar y,uchar dat)
{
34
uchar address;
if(y==1)
address=0x80+x;
else
address=0xc0+x;
LCD_write_command(address);
LCD_write_data(dat);
}
void LCD_disp_str(uchar x,uchar y,uchar *str)
{
uchar address;
if(y==1)
address=0x80+x;
else
address=0xc0+x;
LCD_write_command(address);
while(*str!='\0')
{
LCD_write_data(*str);
str++;
}
}
void delay_n10us(uint n) //延时
{
uint i;
for(i=n;i>0;i--)
{
nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
}
}
/*********************************************************/
// 延时15微秒
/*********************************************************/
void Delay15us(void)
{
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
35
_nop_();
_nop_();
_nop_();
}
/*********************************************************/
// 复位DS18B20(初始化)
/*********************************************************/
void DS18B20_ReSet(void)
{
uchar i;
DQ=0;
i=240;
while(--i);
DQ=1;
i=30;
while(--i);
while(~DQ);
i=4;
while(--i);
}
/*********************************************************/
// 向DS18B20写入一个字节
/*********************************************************/
void DS18B20_WriteByte(uchar dat)
{
uchar j;
uchar btmp;
for(j=0;j<8;j++)
{
btmp=0x01;
btmp=btmp<<j;
btmp=btmp&dat;
if(btmp>0) // 写1
{
DQ=0;
Delay15us();
DQ=1;
Delay15us();
Delay15us();
Delay15us();
Delay15us();
}
else // 写0
{
DQ=0;
Delay15us();
Delay15us();
36
Delay15us();
Delay15us();
DQ=1;
Delay15us();
}
}
}
/*********************************************************/
// 读取温度值
/*********************************************************/
int DS18B20_ReadTemp(void)
{
uchar j;
int b,temp=0;
DS18B20_ReSet(); // 产生复位脉
DS18B20_WriteByte(0xcc); // 忽略ROM指令
DS18B20_WriteByte(0x44); // 启动温度转换指令
DS18B20_ReSet(); // 产生复位脉
DS18B20_WriteByte(0xcc); // 忽略ROM指令
DS18B20_WriteByte(0xbe); // 读取温度指令
for(j=0;j<16;j++) // 读取温度数量
{
DQ=0;
_nop_();
_nop_();
DQ=1;
Delay15us();
b=DQ;
Delay15us();
Delay15us();
Delay15us();
b=b<<j;
temp=temp|b;
}
temp=temp*0.0625; // 合成温度值并放大10倍
return (temp); // 返回检测到的温度值
}
/*********************************************************/
// ADC0832的时钟脉冲
/*********************************************************/
void WavePlus()
{
_nop_();
ADC_CLK = 1;
_nop_();
ADC_CLK = 0;
}
37
/*********************************************************/
// 获取指定通道的A/D转换结果
/*********************************************************/
uchar Get_ADC0832(uchar chanel)
{
uchar i;
uchar dat1=0;
uchar dat2=0;
ADC_CLK = 0; // 电平初始化
ADC_DAT = 1;
_nop_();
ADC_CS = 0;
WavePlus(); // 起始信号
ADC_DAT = 1;
WavePlus(); // 通道选择的第一位
ADC_DAT = chanel;
WavePlus(); // 通道选择的第二位
ADC_DAT = 1;
for(i=0;i<8;i++) // 第一次读取
{
dat1<<=1;
WavePlus();
if(ADC_DAT)
dat1=dat1|0x01;
else
dat1=dat1|0x00;
}
for(i=0;i<8;i++) // 第二次读取
{
dat2>>= 1;
if(ADC_DAT)
dat2=dat2|0x80;
else
dat2=dat2|0x00;
WavePlus();
}
_nop_(); // 结束此次传输
ADC_DAT = 1;
ADC_CLK = 1;
ADC_CS = 1;
if(dat1==dat2) // 返回采集结果
return dat1;
else
return 0;
}
/*********************************************************/
// 判断
38
/*********************************************************/
void AlarmJudge()
{
if(num0<Setnum0)
{
JS=0;
}
else
{
JS=1;
}
if(wendu<Setwendu)
{
JR=0;
}
else
{
JR=1;
}
if(num1<30)
{
DJ=0;
}
else
{
DJ=1;
}
}
void LCD()
{
LCD_disp_char(1,1,wendu/10%10+'0'); //显示
LCD_disp_char(2,1,wendu%10+'0'); //显示
LCD_disp_char(1,2,Setwendu/10%10+'0'); //显示
LCD_disp_char(2,2,Setwendu%10+'0'); //显示
LCD_disp_char(6,1,num0/10%10+'0'); //显示
LCD_disp_char(7,1,num0%10+'0'); //显示
LCD_disp_char(6,2,Setnum0/10%10+'0'); //显示
LCD_disp_char(7,2,Setnum0%10+'0'); //显示
LCD_disp_char(11,1,num1/10%10+'0'); //显示
LCD_disp_char(12,1,num1%10+'0'); //显示
}
void key()
{
if(K1==0)
{
if(flag==1)
{
39
flag=0;
if(Setwendu<99)
{
Setwendu++;
}
}
}
else if(K2==0)
{
if(flag==1)
{
flag=0;
if(Setwendu>0)
{
Setwendu--;
}
}
}
else if(K3==0)
{
if(flag==1)
{
flag=0;
if(Setnum0<99)
{
Setnum0++;
}
}
}
else if(K4==0)
{
if(flag==1)
{
flag=0;
if(Setnum0>0)
{
Setnum0--;
}
}
}
else
{
flag=1;
}
}
void delay_ms(unsigned int ms)// 延时子程序
{
unsigned int a,b;
for(a=ms;a>0;a--)
for(b=123;b>0;b--);
}
/********************************************************
主函数
********************************************************/
void main(void)
{
LCD_init();//LCD初始化
LCD_disp_str(0,1,"T00c S00% Y00% "); //显示
LCD_disp_str(0,2,"t00c s00% y30% "); //显示
while(1)
{
delay_ms(30);// 延时子程序
num0=Get_ADC0832(0)/2.56; // 获取湿度值
num1=Get_ADC0832(1)/2.56; // 获取氧气浓度
wendu=DS18B20_ReadTemp(); // 读取温度值
if(wendu>99)wendu=99;
LCD();
key();
AlarmJudge(); // 判断
}
}
第5章 系统调试
5.1 系统调试
软件的主要工作是软件的校验。
通过对线路进行校验,确认线路的焊点是否正常,再通过使用万用表测试或通电流进行测试。
在进行软件调试时,首先要编写显示程序并对硬件进行正确性验证,再分别对主程序和各个子程序进行编程和
功能的校验。而在这个过程中,最先调试的就是显示子程序,需要的就是将所要的内容全部都显示出来,并且能显
示在合适的位置,否则的话,若不能显示准确,后续的代码就很难写出了。在调试过程中出现由于对显示的地址把
握不准导致显示覆盖并且错误的现象。
其次,最关键的一项就是对柜内环境温度进行实时测试的程序,该程序的运行与否直接影响到整个系统的能否正常运行;它的测试主要是通过观察是否能显示所测得的温度,并且所测得的温度在受到细微影响时是否会发生变
化,比如用手指按压温湿传感器来,然后再用一个温度计测量当时的温度,看看这个数据的偏差是否很大。
预置温度程序主要是通过是否能够正常地调节温度,智能控制就通过测量到的温度和设定的温度进行对比,以
及当电压发生不稳时,是否能够对制冻装置进行正常的操作,从而对制冷装置进行有效的保护;延迟开启程序是指
在制冷装置开始之前,有没有对应的一段时间间隔。如果不能顺利完成,就回到C语言的编程原则和语法,数据转换
规则,认真地推断代码是否编写错误。
然后进行仿真调试系统整体的仿真图如图5.1所示
图5.1 系统整体仿真图
我们先开始执行仿真,可以看出在显示屏上第一排显示出了三个数值分别是温度T,湿度S,臭氧浓度Y,第二排
显示出了三个数值分别是t温度,s湿度,y臭氧浓度。其中T、S、Y是系统实时检测出来的数据,t、s、y是手动设定
的设定值。如图5.2所示。
图5.2 LCD显示屏
由图5.2可知系统实时温度为21℃,而设定的温度为20℃,实际值高于设定值所以制冷模块运行,如图5.3所
示。
图5.3 制冷模块
当温度的实际值低于设定值时如图5.4所示,红灯亮起加热模块开始工作,如图5.4所示
图5.4 显示模块
图5.5 加热模块
如图5.6所示当湿度实际值低于设定值时,加湿模块开始运行,如图5.7所示
图5.6 显示模块
结 论
按照题目的要求求,本设计完成了一个中小规模的保鲜柜智能控制系统,利用温度、湿度传感器对目标的温
度、湿度进行采集检测,利用臭氧浓度传感器对臭氧浓度进行检测,并将测量结果发送至单片机,由单片机对数据
进行分析处理,并将且在分析运算中加入了PI控制算法,将计算得到的电压变量输入到MAX715进行D/A变换,将模拟
数值传送到变频器,通过变频器的转换控制执行器的工作,最终实现对保鲜柜内部温度、湿度、臭氧的浓度进行调
整,同时还添加LED指示灯警报功能,在传感器出现故障时,自动报警,以提高本系统的智能化程度。
总结全文,本设计主要完成了以下工作:
(1)通过前期的数据搜集,对保鲜柜的国内外发展状况和发展动向有了一个总体的认识。
(2)重点参考了关于温度、湿度测量和臭氧的浓度测定相关资料,掌握了测量温湿度和测量臭氧浓度的理论基础
以及方法,从而对系统的结构框架有了初步的设计。
(3)根据课题要求和对系统整体框架的构思,完成了控制模块、按键模块、显示模块、测量模块、报警模块的
硬件设计和软件编程。
实现了中小型保鲜柜的基本功能。LCD1602能够实现对保鲜柜内温度、湿度、臭氧浓度的实时监测,同时还设计
了键盘程序,可以在键盘上输入设定值并通过按键进行自加自减。在本设计中,多点的数据收集是为了保证资料的
精确度,如果有多个传感器的偏差太大,那么就可以判断是传感器有问题或者其它异常,这时就会发出警报,让工
作人员过来查看。
尽管本次设计的保鲜柜能够满足日常生活需要,贮藏性能优于传统常规贮藏,但仍有其局限性,具体为以下两点:
(1)由于乙烯、二氧化碳浓度等多种因素对水果的贮藏效果都有一定的影响,但本系统仅限于温度、湿度、臭氧
浓度的调控,而不能对其进行综合处理。
(2)保鲜柜内部温度、湿度、臭氧浓度均为大滞后环节,温度与湿度具有耦合性,但本设计中的算法没有进行解
耦运算,仅采用PI控制,使得得到的结果不能达到较高的精度。