学科分类号 0409
本科毕业设计
题目(中文): 变频冰箱
(英文): Frequency conversion refrigerator 姓 名 张玉良 学 号 2007180306 学 院 职业技术学院 专业、年级 应用电子技术教育 2007级 指导教师 陈素纯 高级工程师
二○○一 一 年 五 月
湖南师范大学本科毕业设计诚信声明
本人郑重声明:所呈交的本科毕业设计,是本人在指导老师的指导下,进行研究工作所取得的成果,成果不存在知识产权争议,除文中已经注明引用的内容外,本论文不含任何其他个人或集体已经发表或撰写过的作品成果。对本文的研究做出重要贡献的个人和集体均已在文中以明确方式标明。本人完全意识到本声明的法律结果由本人承担。
本科毕业设计作者签名:
二○○一一 年 五 月一十五日
湖南师范大学本科毕业设计任务书
毕业设计题目 作 者 姓 名 指导教师姓名、职称 张玉良 变频冰箱 所属院、专业、年级 职业技术学院应用电子技术教育专业2007级 预计字数 1万 开题日期 20011.3.1 陈素纯高级工程师 选题的目的和意义: 变频冰箱以其节能、静音、速冻能力强、温度控制准确、工作电压范围宽等优点被业界视为电冰箱发展的趋势,目前国外生产的大容量冰箱基本上都是变频冰箱。变频冰箱的研制,不仅迎合电冰箱发展的需求,而且也代表着国内冰箱企业的技术水平和开发能力。 所以,选择这个设计是很有实际意义的。 主要研究内容: 本次设计从所要实现的功能出发,根据其功能确定所需要的单片机模块及其外围电路。在选择好主芯片及所需元器件后,再针对实现功能制作出电路板,编写程序,实现所需功能。 在本设计中,采用的主芯片是MC33035,软件编程是采用C语言。程序模块有:主程序;键盘扫描子程序;显示子程序;温度检测子程序;电源检测及电机驱动子程序。 应达到的技术指标或要求: 1.箱内温度显示; 2.模拟压力检测; 3.自动除霜; 4.箱内温度自动调节; 5.可自行设定箱内温度; 6.过欠压保护; 7.报警与二极管指示。
主要设计方法或技术路线: 1.结合资料,确定设计选题; 2.用传感器DS18B20检测冰箱内温度; 3.采用单片机MC33035为主芯片; 4.采用LCD1602液晶显示器; 5.采用MPM3003电机驱动模块; 6.控制压缩机和化霜电热丝实现自动化霜和过欠压保护; 7.安装与调试。 完成本课题应具备的环境(软件、硬件): 硬件上:采用示波器、数字万用表、焊接工具; 软件上:采用C语言编程, proteus软、硬件仿真。 各阶段任务安排: 2011.2.10-2011.3.18 确定设计题目,查阅有关资料,明确该设计的现状。 2011.3.18-2011.4.10在研读和分析手上资料的基础上提出自己的个人见解,并与老师讨论,购买元器件,制作电路板,同时构思论文,撰写初稿。 2011.4.10-2011.4.20 在老师的指导下,进行硬件调试,并开始编制程序,同时修改论文,完成二稿。 2011.4.20-2011.5.1 在老师的指导下调试程序,使得硬件电路正常工作,并对照论文规范和范本,进一步修改,完成三稿。 2011.5.1 -2011.5.9 完成正稿。 主要参考资料: [1]李佐周,制冷原理 [M].北京:高等教育出版社,1991:10—43. [2]凌玉华,单片机原理及应用系统设计[M].长沙:中南大学出版社,2006:190—197. [3]冯梅,电冰箱、冷藏箱电路解说及检测[M].北京:人民邮电出版社,1999:22—47. [4]肖凤明,新品牌空调器微电脑控制电路分析与速修技巧[M].北京:机械工业出版社,2002:50—78. [5]谭浩强,C程序设计(第二版)[M]. 北京:清华大学出版社 [6] 18b20程序及应用,[DB/OL]. http://www.elecfans.com/article/88/142/2008/2008110516329.html [7] 一种基于单片机的变频电冰箱控制系统,[DB/OL]. http://www.china001.com/show_hdr.php?xname=PPDDMV0&dname=761GF41&xpos=202 [8] lm339引脚图参数及lm339 pdf中文资料, [DB/OL]. http://www.51hei.com/chip/587.html [9] 初学C按键LCD+DS1302+AD程序,[DB/OL]. http://www.picavr.com/news/2008-01/2460.htm 指导教师意见:
开 题 报 告 会 纪 要 时间 姓 名 与 会 人 员 会议记录摘要: 会议主持人签名: 记录人签名: 年 月 日 负责人签名: 年 月 日
地点 职务(职称) 姓 名 姓 名 职务(职称) 职务(职称) 指导小组意见 学院意见 负责人签名: 年 月 日
湖 南 师 范 大 学
职业技术 学院指导教师指导毕业设计情况登记表
设计题目 学生姓名 指导教师姓名 指导时间 张玉良 陈素纯 指导地点 冰箱全自动控制器设计 所属专业、年级 职 称 应用电子技术教育 专业 2007 级 高级工程师 指 导 内 容 学 历 学生签名 本科 备 注
二、湖南师范大学本科毕业设计评审表
设计题目 作者姓名 指导教师 姓名、职称 中 文 摘 要 关键词 变频;电冰箱;控制;软件 Controller design for frequency conversion refrigerator is to realize completely automatic control over electric refrigerators by using the hard-ware electric circuit and the 英 文 摘 要 soft-ware control. Since electric refrigerators entered the Chinese market, their development speed has been astonishing. Great progress has been made on freshness preservation as well as energy conservation and environmental protection. But they are not perfect on the control circuit, and majority of them are controlled by mechanical systems. Soft-ware controls only appear in some high-grade products. This also requires us, in along with in the monolithic integrated circuit’s development, to achieve intellectualization on the electric refrigerator control circuit by software. At the same time we should make greater progress for environmental protection and energy conservation. This design is precisely made on this point. It mainly realizes such functions as the automated frost(Through the thickness of cream cream detector thickness,The design is the use of analog switches), display and alarm, demonstration and alarming and low voltage protection,L298-driven compressor. The most widespread monolithic integrated circuit ATC52 is used at present in the system to make main chip , used for temperature detection DS18B20,The program has used the general C language programming. 关键词 Frequency conversion; Refrigerator; Control; Soft-ware 变频冰箱全自动设计是利用硬件电路和软件控制来实现对电冰箱的全自动控制。在电冰箱进入中国市场以来,它的发展速度非常惊人,无论是在保鲜效果上,还是在节能环保上都有了非常大的进步,但在控制电路上仍然还不全面,大部分还是机械式控制方式,仅在一些高档商品中才出现由软件来控制。这也就要求我们在随着单片机的发展上,将电冰箱控制电路做到软件控制上的智能化,同时为环保和节能做出更大的进步。本设计正是从这一点出发而实现的。它主要实现的功能有自动化霜(通过霜厚度检测器检测霜的厚度,该设计中是采用模拟开关);显示与报警;过欠压保护;L298电机驱动。在系统中采用了目前应用最广泛的单片机STCC52RC作为主芯片,采用DS18B20进行温度检测;程序设计上采用了通用的C语言编程。 冰箱全自动控制器设计 张玉良 所属院、专业、年级 字 数 职业技术学院 应用电子技术教育 专业2007级 陈素纯高级工程师 1.2万 定稿日期 20011.5.15
毕业设计评阅教师评定成绩 评审基元 选题质量30% 评审要素 目的明确 符合要求 选题恰当 联系实际 综合运用 知识能力 应用文献 资料能力 实验(设计) 能力 计算能力 外文应用 能力 计算机应用能力 分析能力 插图或图纸质量 设计质量35% 说明书撰写水平 规范化程度 成果的实用性与科学性 创见性 评审内涵 选题符合专业培养目标,体现学科、专业特点和综合训练的基本要求 题目规模适当 题目难易度适中 题目与生产、科研、实验室建设等实际相结合,具有一定的实际价值 能将所学专业知识和机能用与毕业设计中;设计内容有适当的深度、广度和难度 能查阅相关文献资料,能对本设计所涉及的有关研究状况及成果归纳、总结和恰当运用 能运用本学科常用的研究方法,选择合理可行的方案,能对实际问题进行分析,进行实验(设计),具有较强的动手能力 原始数据搜集得当;能进行本专业要求的计算,理论依据正确,数据处理方法和处理结果正确 能搜集、阅读、翻译、归纳、综述一定量的本专业外文资料与外文摘要,并能加以运用,体现一定的外语水平 能根据设计题目要求编程上机或使用专业应用软件完成设计任务 能对设计项目进行技术经济分析或对实验结果进行综合分析 能用计算机绘图,且绘制图纸表格符合标准 设计说明书齐全;概念清楚,内容正确,条理分明,语言流畅,结构严谨;篇幅在5000字以上 设计的格式、图纸、数据、用语、量和单位、各种资料引用和运用规范化,符合标准;设计栏目齐全合理 较好地完成设计选题的目的要求,成果富有一定的理论深度和实际运用价值 具有创新意识,设计具有一定的创新性 总成绩: 外文资料译文成绩: 评阅教师评审意见: 评阅教师签名: 说明:此表指标部分为正文部分计分表,正文部分成绩=实评总分×0.9,外文资料译文成绩满分为10分。总成绩=正文部分成绩+外文资料译文成绩。评定成绩分为优秀、良好、中等、及格、不及格五个等级,总成绩90—100分记为优秀,80—分记为良好,70—79分记为中等,60—69分记为及格,60分以下记为不及格。若译文成绩为零,则不计总成绩,评定等级记为不及格
满分 10 5 5 10 5 5 5 5 5 5 5 5 15 5 5 5 实评分 能力水平35% 正文部分成绩: 评定等级:
毕业设计评阅教师评定成绩 评审基元 选题质量30% 评审要素 目的明确 符合要求 选题恰当 联系实际 综合运用 知识能力 应用文献 资料能力 实验(设计) 能力 计算能力 外文应用 能力 计算机应用能力 分析能力 插图或图纸质量 设计质量35% 说明书撰写水平 规范化程度 成果的实用性与科学性 创见性 评审内涵 选题符合专业培养目标,体现学科、专业特点和综合训练的基本要求 题目规模适当 题目难易度适中 题目与生产、科研、实验室建设等实际相结合,具有一定的实际价值 能将所学专业知识和机能用与毕业设计中;设计内容有适当的深度、广度和难度 能查阅相关文献资料,能对本设计所涉及的有关研究状况及成果归纳、总结和恰当运用 能运用本学科常用的研究方法,选择合理可行的方案,能对实际问题进行分析,进行实验(设计),具有较强的动手能力 原始数据搜集得当;能进行本专业要求的计算,理论依据正确,数据处理方法和处理结果正确 能搜集、阅读、翻译、归纳、综述一定量的本专业外文资料与外文摘要,并能加以运用,体现一定的外语水平 能根据设计题目要求编程上机或使用专业应用软件完成设计任务 能对设计项目进行技术经济分析或对实验结果进行综合分析 能用计算机绘图,且绘制图纸表格符合标准 设计说明书齐全;概念清楚,内容正确,条理分明,语言流畅,结构严谨;篇幅在5000字以上 设计的格式、图纸、数据、用语、量和单位、各种资料引用和运用规范化,符合标准;设计栏目齐全合理 较好地完成设计选题的目的要求,成果富有一定的理论深度和实际运用价值 具有创新意识,设计具有一定的创新性 总成绩: 外文资料译文成绩: 评阅教师评审意见: 评阅教师签名: 说明:此表指标部分为正文部分计分表,正文部分成绩=实评总分×0.9,外文资料译文成绩满分为10分。总成绩=正文部分成绩+外文资料译文成绩。评定成绩分为优秀、良好、中等、及格、不及格五个等级,总成绩90—100分记为优秀,80—分记为良好,70—79分记为中等,60—69分记为及格,60分以下记为不及格。若译文成绩为零,则不计总成绩,评定等级记为不及格。
满分 10 5 5 10 5 5 5 5 5 5 5 5 15 5 5 5 实评分 能力水平35% 正文部分成绩: 评定等级:
三、湖南师范大学本科毕业设计答辩记录表
设计题目 作者姓名 指导教师 姓名、职称 冰箱全自动控制器设计 张玉良 所属院、专业、年级 职业技术学院 应用电子技术教育专业 2007年级 陈素纯高级工程师 答 辩 会 纪 要 时间 姓 名 答辩 小组 成员 职务(职称) 姓 名 地点 职务(职称) 姓 名 职务(职称) 答辩中提出的主要问题及回答的简要情况记录: 会议主持人签名: 记录人签名: 年 月 日
评语: 答 辩 小 组 意 见 评定等级: 负责人: 年 月 日 评语: 学 院 意 见 论文设计学院最终评定等级: 负责人: 学院 评语: 学 校 意 见 评定等级: 负责人: 年 月 日 年 月 日
目录
摘 要 ······························································································ I Abstract ······························································································ II 1 绪论 ································································································ 1 2 变频冰箱制冷原理 ········································································· 4 2.1 变频电冰箱概述 ···································································· 4 2.1.1 变频电冰箱分类 ······························································· 4 2.1.2 变频冰箱的主要规格与星级规定 ···································· 5 2.1.3 变频冰箱的制冷原理 ······················································· 6 3 设计方案确定 ·············································································· 8 4 硬件电路设计 ·············································································· 11 4.1 温度检测电路 ········································································ 11 4.2 键盘电路 ··············································································· 14 4.3 显示电路 ··············································································· 16 4.4 过欠压及过流保护电路 ························································ 18 4.5 电动机驱动电路 ···································································· 19 4.6 其他电路 ··············································································· 19 5 软件程序设计 ·············································································· 21 5.1 概述 ······················································································· 21 5.2 主要程序流程图 ···································································· 22 5.3 程序 ······················································································· 23 结论 ···································································································· 39
参考文献 ···························································································· 40 附表1元件清单 ················································································ 41 附录A冰箱全自动控制器设计电路图 ············································ 42 附录B电路板实物及使用设备图 ···················································· 43 致谢 ···································································································· 46
冰箱全自动控制器设计
应用电子技术教育2005级 邓浩然 2005180815
摘要
冰箱全自动控制器设计是利用硬件电路和软件控制来实现对电冰箱的全自动控制。在电冰箱进入中国市场以来,它的发展速度非常惊人,无论是在保鲜效果上,还是在节能环保上都有了非常大的进步,但在控制电路上仍然还不全面,大部分还是机械式控制方式,仅在一些高档商品中才出现由软件来控制。这也就要求我们在随着单片机的发展上,将电冰箱控制电路做到软件控制上的智能化,同时为环保和节能做出更大的进步。本设计正是从这一点出发而实现的。它主要实现的功能有自动化霜(通过霜厚度检测器检测霜的厚度,该设计中是采用模拟开关);显示与报警;过欠压保护;L298电机驱动。在系统中采用了目前应用最广泛的单片机STCC52RC作为主芯片,采用DS18B20进行温度检测;程序设计上采用了通用的C语言编程。
关键词:电冰箱;控制;软件
I
Abstract
Controller design for automatic refrigerator is to realize completely automatic control over electric refrigerators by using the hard-ware electric circuit and the soft-ware control. Since electric refrigerators entered the Chinese market, their development speed has been astonishing. Great progress has been made on freshness preservation as well as energy conservation and environmental protection. But they are not perfect on the control circuit, and majority of them are controlled by mechanical systems. Soft-ware controls only appear in some high-grade products. This also requires us, in along with in the monolithic integrated circuit’s development, to achieve intellectualization on the electric refrigerator control circuit by software. At the same time we should make greater progress for environmental protection and energy conservation. This design is precisely made on this point. It mainly realizes such functions as the automated frost(Through the thickness of cream cream detector thickness,The design is the use of analog switches), display and alarm, demonstration and alarming and low voltage protection,L298-driven compressor. The most widespread monolithic integrated circuit ATC52 is used at present in the system to make main chip , used for temperature detection DS18B20,The program has used the general C language programming.
Keywords: Refrigerator; Control; Soft-ware
II
1 绪论
电冰箱是以人工方法获取低温,供储存食物、药品等的冷藏与冷冻器具。电冰箱自动控制电路是指对电冰箱所要实现的诸多功能,如制冷、化霜等进行自动控制,而无需人为操作。电冰箱在进入中国几十年里,发展速度非常快。随着人们生活水平的提高,电冰箱已经走进千家万户,慢慢成为人们生活的必须品。而人们对电冰箱的功能、保鲜效果及价格等要求也越来越高。这就要求设计师们考虑到电冰箱功能全、保鲜好、自动化程度高、成本低廉等许多问题。从一些参考资料上获悉当前国内外电冰箱的主要发展方向可归结为:节能、环保、降噪、变频技术、模糊控制、抗菌、除臭和保湿、多间室冰箱和迷你型冰箱、网络化冰箱。而这些发展又需要控制电路来实现。在当今电冰箱市场上,大多数电冰箱的控制电路仍是采用机械控制方式,仅有少数高档电冰箱采用了软件控制方式。电冰箱控制电路的改进是改进电冰箱的措施之一。
在选择这个设计题目时,我走访了国美、苏宁几家大型的电器商店,在电冰箱市场上已经出现一些比较高档的产品。这些高档产品主要是增强了许多功能,如保鲜性能的提高、环保性能的提高等。但拥有这些功能的高档产品并不多,目前上市的大部分电冰箱都还是普通电冰箱,高档电冰箱的价格非常高。电冰箱的设计还有待进一步的完善,电冰箱制冷循环系统基本上没有什么改变,仍然由四大基本部件组成。这就是说,电冰箱的改进设计,主要是考虑对各项功能实现自动控制。
1
从电冰箱的发展史来看,最初的电冰箱全是靠硬件来实现各项控制功能。而随着单片机技术的迅速发展,控制芯片生产成本降低,使单片机控制技术应用到普通电冰箱上成为可能,加入软件来实现电冰箱的控制电路是大势所趋的。
针对当前市场行情及用户对变频冰箱的要求,本设计的全自动电冰箱控制电路主要是利用单片机MC33035来实现的,它的主要特点是此电路包括转子位子检测器,温度补偿基准,锯齿波振荡器,三个集电极开路的高速驱动器,和三个高电流的图腾柱低速驱动器,适用于驱动功率MOSFET管。
此控制器还包含一些有保护特点的电路,如欠电压锁定,时间延迟可选的周期接周期限流控制,内部过热保护电路和一个独特的故障输出,易于和微控制系统连接。一块MC33035的价格仅五元左右,在单片机市场上,它是较便宜的了,而它的功能却非常强,编制适当的程序便能实现对许多功能的控制。
在本设计当中,所实现的功能是: 1. 箱内温度显示; 2. 除霜(模拟开关);
3. L298电机驱动模块控制电机速度; 4. 箱内温度自动调节; 5. 可人为设定箱内温度; 6. 过欠压及过流保护; 7. 压力检测(模拟开关);
2
8. 报警。
箱内温度是指冷藏室温度显示;自动除箱是通过模拟开关K5控制电路来实现的(加热丝用红色发光二极管代替,因为在当前环境下不能进行霜的检测,所以该设计方案采用模拟开关进行演示);箱内温度的自动控制是控制电路根据传感器实时检测箱内温度值与设定值进行比较,由编制程序做出判断,决定制冷系统压缩机的启、停与快、慢,使电冰箱保持在恒定的温度;人为设定箱内温度是用户根据实际情况设定自己所需温度值;过欠压保护是利用控制电路根据电压的相应变化值而做出不同的反应,只有电源电压在180~240V之间,电路才正常工作,而一旦电源电压超出这个范围,控制电路便会停止工作,从而达到保护压缩机的目的;压力检测时实时检测制冷系统的压力,当压力过低之后说明制冷剂泄漏,为了节能停止压缩机;报警电路用于制冷系统中的压力检测,当压力过低就会报警并停止压缩机。各个功能的具体实现将在后面一一介绍。
在软件设计上,本设计采用了单片机STCC52RC。本系统软件分为:主程序、压缩机断电延时保护检测子程序、冷藏室温度控制子程序、除霜控制子程序、控制压缩机快慢子程序、DS18B20子程序、LCD1602子程序等。
本控制电路设计是针对普通电冰箱,增加实现部分自动控制功能。电冰箱的市场非常大,它的许多功能也在发生变化,如变频技术、抗菌除臭功能等,这是本设计中尚未涉及的地方。随着各项技术的提升,全自动电冰箱控制电路设计有待进一步完善。
3
2 变频冰箱制冷原理
电冰箱的发展速度非常快,几乎快要普及到每个家庭。它是制冷原理的典型应用,制冷是指用人工的方法制造出一个低于自然界环境温度的低温环境,并且在必要长的时间内维持所需要的低温状态[1]。
应用于制冷技术的不仅仅是局限于家庭内,它更广泛的应用于工农业生产、科学研究、国防、医疗卫生、商业和公用设施等领域。本章介绍电冰箱的制冷原理。 2.1 电冰箱的概述 2.1.1 电冰箱的分类 1.按制冷原理分类
(1) 压缩式冰箱
蒸气压缩式制冷,是目前主要用于生产和使用最多的冰箱,其性能系数可达0.85~1.1W/W。
(2) 吸收式冰箱
吸收式制冷,目前主要用于没有电源的地区,或要求冰箱运行时噪声较低的旅馆客房中,其性能系数大致为0.25~0.35W/W。
(3) 半导体冰箱
4
半导冷,结构简单,便于携带,多作为汽车用冰箱,其性能系数约为0.12~0.18W/W。 2.按用途分类
(1) 普通家用电冰箱
它具有冷藏和冷冻两种功能。可供不同的食品贮存。 (2) 冷冻电冰箱
它没有冷藏室,只有一个冷冻室,可提供-18℃以下的低温,专供冷冻较多食品之用。 3.按冷却方式分类
(1) 直冷式电冰箱
这种冰箱由蒸发器直接吸收室内热量而冷却降温。 (2) 间冷式电冰箱
这种冰箱在冷冻室和冷藏室之间或在冷冻室后壁的夹层中设臵蒸发器,用小型风扇将流经蒸发器吸收热量后的冷空气通过风道吹和冷冻室和冷藏室,形成箱内空气的强制循环来冷却降温。这种冰箱冰箱的冷冻室及冷冻物品上不会结箱,又称为无霜型电冰箱。 4.按容积大小分类
(1) 携带式电冰箱 容积在12~20升范围内。 (2) 台式电冰箱 容积在30~50升之间。 (3) 落地式电冰箱 容积在50升以上。 5.按使用环境温度分类
(1) 亚温带型(SN)使用环境温度为10~32℃。
5
(2) 温带型(N)使用环境温度为16~32℃。 (3) 亚热带型(ST)使用环境温度为18~38℃。 (4) 热带型(T)使用环境温度为18~43℃。 2.1.2 电冰箱的主要规格与星级规定 1.有效容积
电冰箱的有效容积是指关上门后,冰箱内壁所包围的可供贮藏物品用空间的容积,单位通常是用升(L)。 2.箱内温度范围及星级规定
(1) 冷藏室温度 一般在0℃以上10℃以下。
(2) 冷冻室温度 用星级规定区分,见表2.1电冰箱星级规定。
表2.1 电冰箱星级规定 级别 一星 星号 冷冻室温度(℃) <- 6 冷冻室贮藏期 7天 * 二星 <-12 1个月 ** 三星 <-18 3个月 *** 高二星 <-15 1.8个月 **
6
2.1.3 电冰箱的制冷原理
制冷剂流向 冷凝器 节流阀 蒸发器
图2.1 电冰箱制冷原理图
压缩机 电冰箱的制冷是利用蒸气压缩式制冷。蒸发器、压缩机、冷凝器和节流阀是蒸气压缩式制冷系统的四个必不可少的基本部件,如图2.1所示。在电冰箱当中,节流阀是用毛细管代替的。
在电冰箱制冷时,制冷剂由压缩机排出,此时,制冷剂为高温高压的汽体。经过冷凝器,变化为高温高压的液体,再通过节流装臵将制冷剂变化为低温低压的液体。再经过蒸发器,再变化为低温低压的汽体。最后回到压缩机。不断循环,从而实现制冷。
7
3 设计方案确定
3.1 单片机的确定
方案一:主芯片采用ATC51。
方案二:主芯片采用MC33035。芯片管脚如图3.1。
8
图3.1 MC33035管脚图
MC33035是高性能第二代单片无刷直流马达控制电路。它包含实现开环、三相或四相马达控制所需的全部功能。此电路包括转子位子检测器,温度补偿基准,锯齿波振荡器,三个集电极开路的高速驱动器,和三个高电流的图腾柱低速驱动器,适用于驱动功率MOSFET管。
此控制器还包含一些有保护特点的电路,如欠电压锁定,时间延迟可选的周期接周期限流控制,内部过热保护电路和一个独特的故障输出,易于和微控制系统连接。
典型的马达控制功能包括开环速率,前进/后退方向,运行使能
9
和动态制动。MC33035是专门为电气相位为60/300或120/240的马达电路设计的,并能有效的控制无刷直流马达。° • 10 ~ 30 V 工作电压 • 欠电压锁定
• 6.25 V 基准传感器工作电源 • 闭环伺服应用中的误差放大器
• 高电流驱动,可控制外部三相MOSFET电桥 • 周期接周期限流控制 • 管脚输出的电流感应基准 • 内部过热保护电路
• 60/300或120/240传感器相位可选° • 通过外部MOSFET电桥可有效控制
是所以该方案采用方案二,它不仅可使电路简单,还可使成本降低。 3.2 显示器的确定
方案一:采用七段数码管(LED)作为显示器。 方案二:采用LCD1602作为显示器。
因为用七段数码管会因软件的动态扫描而闪烁,并且电路复杂,所以该方案使用现阶段流行的液晶显示器LCD1602。 3.3 键盘的确定
方案一:矩阵键盘。 方案二:查询式键盘。
因为所要用到的按键较少,所以该方案使用查询方式的键
10
盘。
3.4 温度检测电路的确定
方案一:用一温度敏感器件获得模拟数据,然后通过模数转化得到数字信号,最终得到温度值。
方案二:采用DS18B20。
因为DS18B20电路简单,成本低,稳定性高,所以该方案采用DS18B20。 3.5 整机设计框图
整机设计方案如图3.2所示。
本设计方案由单片机、传感器、键盘输入、电源检测、显示电路和压缩机驱动电路、化霜电热丝驱动电路组成。其设计流程为:将传感器放臵在电冰箱冷藏室内,由温度传感器检测冷藏室温度,再送至单片机做为控制数据,最后由编制程序实现对压缩机及化霜电热丝的控制。其中键盘电路是实现对温度值的加减、压缩机的停止与启动及化霜电热丝的控制,显示电路是显示冰箱冷藏室内的实际温度值和所设定的温度值,电源检测电路是检测电源电压的变化,以实现过欠压及过流保护功能。
11
键盘 LCD1602显示 DS18B20温度传感 MC33035 MPM3003驱动电机过欠压,过流保护 压缩机 化霜模拟开关 化霜 压力检测模拟开关 蜂鸣报警 3.2 整机设计框图
4 硬件电路设计
12
该设计主要由温度检测电路、键盘电路、显示电路、过欠压保护电路、压缩机驱动电路组成。各个电路的功能将在下面一一介绍。 4.1.温度检测电路
该电路采用DS18B20温度传感器。其正视图和俯视图如图4.1所示。第一脚为接地脚,第二脚为数据脚,第三脚为电源脚。
图4.1 DS18B20正视和俯视图
4.1.1 DS18B20性能特点
DS18B20是美国DALLAS公司1-Wire系列的高精度数字式温度传感器。
1-Wire单总线是DALLA S的一项专有技术。它采用单根信号线,既传输时钟又传输数据信号。即DS18B20与微处理器仅需一根数据线即可实现双向通信;DS18B20温度测量范围为-55℃—125℃ ,测量分辨率为0.062 5℃ ;DS18B20提供9~12位精度的温度测量,通过编程可将测量温度转换为数字值直接读取,分别在93.75秒和750秒
13
内完成 ;每个DS18B20有唯一的位序列码,这使得允许有多个DS18B20并联在一条单总线上工作,实现多点温度检测。正因为DS18B20有以上诸多优点,因此。利用DS18B20与单片机控制实现多点温度检测具有转换精度高、体积小、与微处理器接口简单等优势。这给系统硬件设计带来了极大的方便。 4.1.2 DS18B20内部结构与测温原理
DS18B20内部结构主要由位光刻ROM、温度传感器、温度报警触发器TH和TL、高速存储器RAM、非易失性EEPROM几部分组成。其中位光刻ROM是出厂前被刻录好的。它由8位产品系列号、48位的产品序号、8位CRC循环冗余检验码组成。DS18B20的产品系列号均为28H。每个器件有自己唯一的48位产品序号,利用产品序号可以识别一条线上所挂的不同DS18B20器件。这也正是多个DS18B20可以共用一根数据线进行通信的原因。非易失报警触发器TH和TL,可以通过软件写入温度报警的上下限值。DS18B20的高速存储器RAM有9个字节,其中第1、2字节以补码的形式存放温度信息;第3、4字节是TH和TL的拷贝,每次上电复位时被刷新;第5字节为配臵寄存器,它的内容用于确定温度值的数字转换分辨率;第6、7、8字节保留未用,表现为全逻辑1;第9字节用于存放根据位ROM的前56位计算得出的CRC值,并与事先已存入在位ROM的最高有效字节的CRC值做比较以判断主机收到的ROM数据是否正确,从而保证DS18B20与微处理器双向通信的正确性。配臵寄存器字节的低5位一直是1,第7位TM是测试模式位,用于设臵DS18B20是在工作模式还是在测试模式,
14
第6位、第5位分别是R1、R0,用于决定温度转换的精度位数,即用来设臵分辨率。分辨率的定义规定如表4.1所示。由表4.1可知,当设定的分辨率越高,所需要的温度数据转换时间就越长,因此,实际使 用中要将分辨率和转换时间综合考虑。
表4.1 DS18B20配置寄存器
R1 0 0 1 1 R0 0 1 0 1 分辨率/位 9 10 11 12 温度转换时间/ms 93.75 187.50 375.00 750.00 当DS18B20接收到温度转换命令后,开始启动转换,转换完成后的温度值以16位带符号扩展的二进制补码形式存储在高速存储器的第1、2字节。二进制中的高5位是符号位,如果测得的温度大于0,则高5位为0,可以直接将二进制数转换为十进制再乘以0.062 5即可得到实际温度;如果测得的温度小于0,则高5位为1,表示测得的温度值为负值,要先将补码变成原码,再计算其对应的十进制数并乘以0.062 5得到实际温度。单片机可以通过单线接口读出该数据,读数据时低位在前、高位在后。DS18B20完成温度转换后,把测得的温度值与RAM中TH、TL字节内容作比较,若温度大于TH或小于TL,则器件内的报警标志位臵位,并对主机发出的报警搜索命令作出响应。因此,可用多个DS18B20同时测量温度并进行报警搜索。 4.1. 3 DS18B20操作命令
DS18B20的操作指令有存储器操作命令与ROM操作命令两类,前者主要针对高速暂存器用于实现温度转换以及对温度数据的读出与存贮等,后者主要用于识别不同的DS18B20的序列号及类型等。操
15
作命令如表4.2所示。
表4.2 DS18B20操作指令表 存储器 存储器 存储器 存储器 存储器 存储器 ROM ROM ROM ROM ROM 命令代码 温度变换(44H) 读暂存器(0XBEH) 写暂存器(4EH) 复制暂存器(4EH) 读EEPROM(0XB8H) 读电源(0XB4H) 读ROM(33H) 匹配ROM(55H) 跳过ROM(0XCCH) 搜索ROM(0XF0H) 报警搜索(0XBCH) 用途 启动温度转换 读温度值和CRC值 写上下限到暂存器 复制上下限到暂存器 将上下限值调人暂存器 检测供电方式 读ROM位序列号 对多个ROM序列号寻址 跳过对单个ROM编码的搜索 对多个ROM编码搜索 搜索报警的DS18B20 4.1. 4 DS18B20的硬件电路,如图4.2所示
DS18B20与系统硬件接口DS18B20的优点在多点温度检测系统中可以更好地体现出来,DS18B20的管脚只有3根,即电源、地、数据线,多点温度检测系统硬件连接图如图1所示。应注意的是,在单片机系统中,一条数据线实际上最多只能接8个DS18B20,如果实际应用中8个数字传感器还不能满足用户的要求的话,可以再增加使用单片机的其他数据线。通常在总线上接一个4.7 kQ左右的上拉电阻,这样,当总线空闲时,其状态为高电平。 4.2 键盘电路,如图4.3所示
键盘的每个按键都是长开开关,当按键没有被按下时,P0.0,P0.1,P0.2,P0.3输入为高电平,当这几个端口对应的键按下时,其输入为低电平。通常按键所用的开关为机械性开关,因此,按键开关在闭合时不会马上稳定的接通,在断开时也不会一下子断开,即在闭合和断开的瞬间会伴随有一连串的抖动。其抖动时间的长短由按键
16
的机械性能决定,一般为5—10MS。按键稳定闭合时间的长短则是由操作人员的按键动作决定的,一般为零点几秒。键抖动会引起一次按键被误读多次。为了确保CPU对键的一次闭合只做一次处理,必须去除键抖动。在键闭合稳定时,读取键的状态,并且必须判别键号;
图4.2 温度检测电路
图4.3 键盘电路
当键释放稳定后,再做处理。按键的抖动,可用硬件或软件两种方法
17
消除。
因为该设计所要用到的键比较少,所以采用式按键。 式按键是指各按键相互地接通一条输入数据线,如图4.3所示。这是最简单的按键结构,该电路为查询方式电路。
当任何一个键按下时,与之相连的输入数据线即被清0,没被按下时为1。
4.3显示电路,如图4.4所示
图4.4 显示电路
4.3.1 LCD1602的接口
LCD1602采用标准的16脚接口,相关功能如表4.3示。 4.3.2 LCD1602存储的字符
LCD1602液晶模块内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,如表4.4所示,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都
表4.3 LCD1602引脚功能介绍
18
脚号 脚名 1 2 3 4 5 VSS VDD VEE RS RW 功能说明 接地 电源 液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度 寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器 读写信号线,高电平时进行读操作,低电平时进行写操作。当RS和RW共同为低电平时可以写入指令或者显示地址,当RS为低电平RW为高电平时可以 读忙信号,当RS为高电平RW为低电平时可以写入数据 使能端,当E端由高电平跳变成低电平时,液晶模块执行命令 数据线 数据线 数据线 数据线 数据线 数据线 数据线 数据线,忙检测位 背光源正极,串接10欧电阻接电源 背光源负极,接地 6 7 8 9 10 11 12 13 14 15 16 E DB0 DB1 DB2 DB3 DB4 DB5 DB6 DB7 BLA BLK 有一个固定的代码,比如大写的英文字母“A”的代码是01000001B(41H),显示时模块把地址41H中的点阵字符图形显示出来,我们就能看到字母“A”。 4.3.3 LCD1602的控制指令
LCD1602液晶模块内部的控制器共有11条控制指令,如表4.5所示,它的读写操作、屏幕和光标的操作都是通过指令编程来实现的(说明:1为高电平、0为低电平)。其指令说明如表4.6所示。
液晶显示模块是一个慢显示器件,所以在执行每条指令之前一定要确认模块的忙标志为低电平,表示不忙,否则此指令失效。要显示 字符时要先输入显示字符地址,也就是告诉模块在哪里显示字符,表4.7是DM-162的内部显示地址。
表4.4 CGROM和CGPAM中字符代码与字符图形对应关系
19
表4.5 指令表
指令 清显示 光标返回 置输入模式 显示开/关控制 光标或字符移位 置功能 置字符发生存贮器地址 置数据存贮器地址 读忙标志或地址 写数到CGRAM或DDRAM 从CGRAM或DDRAM读数 RS 0 0 0 0 0 0 0 0 0 1 1 RW 0 0 0 0 0 0 0 0 1 0 1 D7 0 0 0 0 0 0 0 1 BF D6 0 0 0 0 0 0 1 D5 0 0 0 0 0 1 D4 0 0 0 0 1 DL D3 0 0 0 1 N D2 0 0 1 D F D1 D0 0 1 I/D C X X 1 x S B X X S/C R/L 字符发生存贮器地址(AGG) 显示数据存贮器地址(ADD) 计数器地址(AC) 要写的数 读出的数据 因为写入显示地址时要求最高位D7恒定为高电平1,所以实际写入的数地址据应该是01000000B+10000000B=11000000B,即40H+80H=C0H。
4.4 过欠压及过流保护电路,如图4.5所示 本电路采用L339四集成运放,如图所示
采样输入为电源电压降压之后的信号,当电源过、欠压、过流之
20
后都会输出逻辑电平“0”,单片机实时检测P3.3,P3.4,P3.5,只要其中的任何一个为低电平,就停止压缩机并报警。
表4.6 LCD1602指令说明表 指令号 1 2 3 4 功能 清显示 光标复位 光标和显示模式设置 显示开关控制 说明 指令码01H,光标复位到地址00H位置 光标返回到地址00H I/D:光标移动方向,高电平右移,低电平左移 S:屏幕上所有文字是否左移或者右移。高电平表示有效,低电平则无效 D:控制整体显示的开与关,高电平表示开显示,低电平表示关显示 C:控制光标的开与关,高电平表示有光标,低电平表示无光标 B:控制光标是否闪烁,高电平闪烁,低电平不闪烁 S/C:高电平时移动显示的文字,低电平时移动光标 DL:高电平时为4位总线,低电平时为8位总线 N:低电平时为单行显示,高电平时双行显示 F: 低电平时显示5x7的点阵字符,高电平时显示5x10的点阵字符 BF:为忙标志位,高电平表示忙,此时模块不能接收命令或者数据,如果为低电平表示不忙 表4.7 LCD1602地址对应表 第一行 第二行 1 00 40 2 01 41 3 02 42 4 03 43 5 04 44 6 05 45 7 06 46 8 07 47 9 08 48 10 09 49 11 0A 4A 12 0B 4B 13 14 15 16 0F 4F 0C 0D 0E 4C 4D 4E 5 6 光标或显示移位 功能设置命令 7 8 9 10 11
字符发生器RAM地址设置 DDRAM地址设置 读忙信号和光标地址 写数据 读数据 4.5 电动机驱动电路,如图4.6所示
考虑到成本和实验条件该设计是用直流电机来模拟压缩机。ENA启动器禁止模式。IN1与IN2的各自的占宽比影响电机的运行速度。 4.6 其他电路
报警和发热丝控制电路
报警器采用常用的蜂鸣报警器,接在单片机的P2.7。发热丝用红
21
色发光二极管代替,发光表示发热,接在单片机的P2.1。
图4.5 过欠压及过流保护电路
图4.6 电机驱动电路
22
5 软件程序设计
5.1 概述
软件程序设计是根据具体的硬件电路及其要实现的各种功能,来设计的。软件设计的一般步骤如图5.1所示。
图5.1 全自动电冰箱控制软件设计步骤
一个好的软件,除使系统能可靠实现各种功能外,还应具有如下特点:
1. 软件结构清晰、简捷、流程合理;
2. 各功能程序模块化、功能化,这样既便于调试、连接,又便
23
于修改、移植;
3. 运行状态实现标志化管理,设臵状态标志以便查询和进行程序转移、运行、控制;
4. 设臵软件抗干扰程序和自诊断程序,以提高应用系统的可靠性。
5.2 程序流程图 5.2.1主程序
主程序流程图如图5.2所示。
主程序首先初始化部分重要端口,如加热丝端口,压缩机控制使能端口,过、欠压,过流检测端口。然后初始化LCD1602液晶显示器,显示冷藏室温度(第一行),设定温度(第二行)。最后将冷藏室温度与设定温度进行比较(分三种情况),压缩机可以工作于三种模式:一是高速模式,当冷藏室的温度高于用户设定温度加2℃时运行,在这种模式中有压力和电源检测,但是没有化霜检测;二是中速模式,当冷藏室温度在用户设臵数值±2℃时运行;三是低速运行,当冷藏室温度低于用户设定值2℃时运行。在这三种模式中都设有压力和电源检测,其中中速和低速模式设有化霜检测。 5.2.2键盘程序
键盘程序流程如图5.3所示。
该系统设有控制键4个,开关键K1,上调键K2,下调键K3,关机键K4。实际电路在单片机的左偏上的位臵。开机键K1(右上)有两个功能,一是开机,二是设定温度初值(防止单片机的不稳定运
24
行使需要设定温度不正常,如显示为字母等);上调键K2(右下),使设定温度数据加1;下调键K3(左上),使设定温度减1;关机键K4(左下),是压缩机关机至少3分钟。当按下关机键之后,单片机处于“死机”状态,只有按下复位键才能唤醒单片机。
其实在这四个键的下面还有3个按键,往下第一个是复位键,第二个是化霜模拟开关,第三个是压力检测模拟开关。
开始 初始化端口 初始化LCD1602 低速 P<=A-2 显示冷藏室温度P与设定温度A 中速 高速 P>A+2 A-2
是 5.3程序 1.main.c
该函数的基本介绍:该子程序中放臵了端口初始化程序,按键加
25
一程序uint jump_up(),按键减一程序uint jump_down(),按键功能确定程序uint k1k21(),LCD1602第一、二行显示字符程序void display1(void)、void display2(),最后就是main()函数中的电机控制程序。
键盘端口初始化 是否有键按下 延时 否 是否有键按下 开机K1 上调K2 下调K3 关机K4 将设置温度定一确定值 调用温度下调函数 调用温度上调函数 至少关机3分钟 结束 图5.3 键盘子程序流程图
#include #include <18b20+1602.h> #include #define uchar unsigned char #define uint unsigned int sbit IN1=P3^0; sbit IN2=P3^1; sbit EN_MOTOR=P3^2; 26 sbit OUT1=P3^3; sbit OUT2=P3^4; sbit OUT3=P3^5; uchar time; uchar period=250; uchar high=50; uint Moreyte_Read(uint address); uint jump_up(); uint jump_down(); void display2(uint n,uint m); uint jump_up() { uint a; uchar key; read_eeprom(3,0x2000); a=100*buffer[0]+10*buffer[1]+buffer[2]; do{ key=keyscan(); if(key==0x02) a++; while(a==400);break; } while(key==0x02); return a; } uint jump_down() { uint b; uchar key; read_eeprom(3,0x2000); b=100*buffer[0]+10*buffer[1]+buffer[2]; do{ key=keyscan(); if(key==0x03) b--; while(b==0);break;} while(key==0x03); return b; } uint k1k21() { uchar key; uint n; key=keyscan(); 27 switch(key) { case 0x01:n=250;EN_MOTOR=1;break; case 0x02:n=jump_up();break; case 0x03:n=jump_down();break; case 0x04:n=999;EN_MOTOR=0;delay(900);break; default:n=jump_up();break; } buffer[0]=n/100; buffer[1]=(n%100)/10; buffer[2]=n%10; earse_eeprom(3,0x2000); write_eeprom(3,0x2000); read_eeprom(3,0x2000); n=100*buffer[0]+10*buffer[1]+buffer[2]; return n; } void display1(void) { uchar i,k; uint p; uchar a,b,c; p=deel_data_18b20(); a=p/100; disp_data3[0]=num[a]; b=(p%100)/10; disp_data3[1]=num[b]; disp_data3[2]='.'; c=p%10; disp_data3[3]=num[c]; lcdxiezhl(0x80); for(i=0;i<7;++i) { lcdxieshj(disp_data1[i]); } lcdxiezhl(0x87); if(sig_temp) lcdxieshj('-'); else lcdxieshj(' '); lcdxiezhl(0x88); for(k=0;k<4;k++) { 28 lcdxieshj(disp_data3[k]); } Write_CGRAM(); lcdxiezhl(0x8c); lcdxieshj(0); } void display2() { uchar i,k,a,b,c; uint n; n=k1k21(); a=n/100; disp_data4[0]=num[a]; b=(n%100)/10; disp_data4[1]=num[b]; disp_data4[2]='.'; c=n%10; disp_data4[3]=num[c]; lcdxiezhl(0x0c0); for(i=0;i<4;++i) { lcdxieshj(disp_data2[i]); } lcdxiezhl(0x0c4); for(k=0;k<4;k++) { lcdxieshj(disp_data4[k]); } Write_CGRAM(); lcdxiezhl(0x0c8); lcdxieshj(0); } void main() { uint p,a; uint i,j; HOTUP=0; EN_MOTOR=0; dianyuan=0; IN1=1; IN2=0; OUT1=1; 29 OUT2=1; OUT3=1; init_1602(); do { display1(); display2(); a=k1k21(); p=deel_data_18b20(); if(p<=(a-20)) { HOTUP=0; baojing=1; IN1=1; EN_MOTOR=1; IN2=1; if(OUT1=0||OUT2==0||OUT3==0) { EN_MOTOR=0; baojing=0; delay(900); } if(K5==0) { HOTUP=1; EN_MOTOR=0; delay(900); } if(K6==0) { baojing=0; EN_MOTOR=0; delay(900); } } if((p>(a-20))&&p<=(a+20)) { HOTUP=0; baojing=1; for(i=0;i<1900;i++) { EN_MOTOR=1; IN1=1; IN2=1; } 30 for(j=0;j<100;j++) { EN_MOTOR=1; IN1=0; IN2=1; } if(OUT1=0||OUT2==0||OUT3==0) { EN_MOTOR=0; baojing=0; delay(900); } if(K5==0) { baojing=0; HOTUP=1; EN_MOTOR=0; delay(900); } if(K6==0) { baojing=0; EN_MOTOR=0; delay(900); } } if(p>(a+20)) { for(i=0;i<200;i++) { EN_MOTOR=1; IN1=1; IN2=1; } for(j=0;j<1800;j++) { EN_MOTOR=1; IN1=0; IN2=1; } if(OUT1=0||OUT2==0||OUT3==0) { EN_MOTOR=0; baojing=0; 31 delay(900); } if(K6==0) { baojing=0; EN_MOTOR=0; delay(900); } } } while(1); } 2.DS18B20与LCD1602 函数的功能介绍:该函数对DS18B20和LCD1602进行初始化设臵。 #include #define uchar unsigned char #define uint unsigned int #define lcddata P1 sbit RSPIN = P2^2; sbit RWPIN = P2^3; sbit EPIN = P2^4; sbit busy=P1^7; sbit HOTUP= P2^1; sbit DQ=P2^5; sbit baojing=P2^6; sbit dianyuan=P2^7; sbit K1=P0^0; sbit K2=P0^1; sbit K3=P0^2; sbit K4=P0^3; sbit K5=P0^4; sbit K6=P0^5; uchar ss; bit C=0; bit sig_temp; 32 uchar data disp_data1[7]={\"freeze:\ uchar data disp_data2[4]={\"set:\ uint data disp_data3[4]; uint data disp_data4[4]; uchar code num[11]=\"01234567.\"; uchar danwei[8]={0x18,0x1b,0x04,0x08,0x08,0x04,0x03,0x00}; void delay1ms(uchar x); void delay2us(uchar x); void rest_18b20(void); void write_18b20(uchar x); uint read_18b20(); uint deel_data_18b20(); uchar keyscan(void); void lcdduzht(void); void lcdxiezhl(uchar c); void lcddushj(uchar e); void lcdxieshj(uchar d); void init_1602(void); void display(void); void motor(); void jumpup(); void jumpdown(); void midtemp(); uint jump_up(); uint read_eep(uint address); void delay1ms(uchar x) { uchar i; while(x--) for(i=0;i<125;i++); } void delay(uint i) { while(i--) delay1ms(200); } void delay2us(uchar x) { while(--x); } 33 void rest_18b20(void) { uchar i=8; DQ=1; _nop_(); DQ=0; delay2us(0); DQ=1; C=0; while(--i) { while(~C) { C=1; DQ=1; delay2us(117); i=1; } } } void write_18b20(uchar x) { uchar i; bit d; for(i=0;i<8;i++) { d=x&0x01; DQ=0; delay2us(3); if(d) DQ=1; else DQ=0; delay2us(20); DQ=1; x=x>>1; } } uint read_18b20() { uint x; uchar i; for(i=0;i<16;i++) 34 { x=x>>1; DQ=0; delay2us(1); DQ=1; delay2us(1); if(DQ) x=x|0x8000; else x=x&0x7fff; delay2us(20); } return x; } uint deel_data_18b20() { float tp; uint temp,tt; rest_18b20(); write_18b20(0xcc); write_18b20(0x44); delay1ms(760); rest_18b20(); write_18b20(0xcc); write_18b20(0xbe); temp=read_18b20(); sig_temp=temp&0x8000; if(sig_temp) tp=~temp+1; tp=temp*0.0625; tt=0.5+tp*10; return (tt); } void init_18b20() { rest_18b20(); write_18b20(0xcc); write_18b20(0x4e); write_18b20(0x); write_18b20(0x8a); write_18b20(0x1f); } 35 void readrom() { uchar sn1,sn2; rest_18b20(); write_18b20(0x33); sn1=read_18b20(); sn2=read_18b20(); } void lcdduzht(void) { P1=0xff; RSPIN=0; RWPIN=1; EPIN=1; delay1ms(5); EPIN=0; } void lcdxiezhl(uchar c) { lcdduzht(); RSPIN=0; RWPIN=0; P1=c; EPIN=1; _nop_(); EPIN=0; } void lcddushj(uchar e) {lcdduzht(); RSPIN=1; RWPIN=1; EPIN=1; _nop_(); EPIN=0; } void lcdxieshj(uchar d) { lcdduzht(); RSPIN=1; RWPIN=0; P1=d; EPIN=1; _nop_(); 36 EPIN=0; } void init_1602(void) { delay1ms(15); lcdxiezhl(0x38); delay1ms(5); lcdxiezhl(0x38); delay1ms(5); lcdxiezhl(0x38); lcdxiezhl(0x01); lcdxiezhl(0x0c); lcdxiezhl(0x06); lcdxiezhl(0x80); delay1ms(5); } void Write_CGRAM(unsigned char *p) { uchar i,kk; uchar tmp=0x40; kk=0; for(i=0;i<8;i++) { lcdxiezhl(tmp+i); lcdxieshj(danwei[kk]); kk++; } tmp += 8; } 3.键盘程序 键盘函数功能介绍:该函数为查询式键盘函数,其每个按键的功能在main()函数中定义。 #include #define uchar unsigned char #define uint unsigned int 37 uchar keyscan() { P0=0xff; if(K1==0) { delay1ms(5); if(K1==0) delay1ms(5); if(K1==0) return (0x01); } if(K2==0) { delay1ms(5); if(K2==0) delay1ms(5); if(K2==0) return (0x02); } if(K3==0) { delay1ms(5); if(K3==0) delay1ms(5); if(K3==0) return (0x03); } if(K4==0) { delay1ms(5); if(K4==0) delay1ms(5); if(K4==0) return (0x04); } if(K5==0) { delay1ms(5); if(K5==0) delay1ms(5); if(K5==0) return (0x05); } if(K6==0) 38 { delay1ms(15); if(K6==0) delay1ms(5); if(K6==0) return (0x06); } } 5.EEPROM程序 EEPROM程序功能介绍:该函数主要就是将DS18B20读出的XX.X的数据与用户设臵冷藏室温度值存入STCC52RC自带的EEPROM中以防止掉电之后的数据丢失。 #include #define ENABLE_ISP 0x81; #define DATA_ADDRESS 0x2000; #define READ_ISP 0x01; #define WRITE_ISP 0x02; #define ERASE_ISP 0x03; uchar buffer[6]; void read_eeprom(uchar data len,uint add); void write_eeprom(uchar data len,uint add); void earse_eeprom(uchar data len,uint data add); void read_eeprom(uchar data len,uint add) { uchar data i; ISP_CONTR=ENABLE_ISP; ISP_CMD=READ_ISP; ISP_ADDRH=add>>8; ISP_ADDRL=add%256; EA=0; for(i=0;i ISP_CONTR=0; } void write_eeprom(uchar data len,uint add) { uchar data i; ISP_CONTR=ENABLE_ISP; ISP_CMD=WRITE_ISP; ISP_ADDRH=add>>8; ISP_ADDRL=add%256; EA=0; for(i=0;i ISP_CONTR=0; } void earse_eeprom(uchar data len,uint add) { uchar data i; ISP_CONTR=ENABLE_ISP; ISP_CMD=ERASE_ISP; ISP_ADDRH=add>>8; ISP_ADDRL=add%256; EA=0; for(i=0;i EA=1; ISP_CONTR=0; } 40 结论 设计全自动电冰箱控制电路主要是用程序控制替代了以前的机械控制方式,它能够更精确,更智能。在当前是有一定的应用价值的。 本设计中所实现的功能是:冷藏室温度显示、模拟霜厚度检测、箱内温度自动调节、加热化霜、可人为设定箱内温度、过欠压保护和报警、压缩机的变速控制;采用的单片机主芯片STCC52RC价格便宜,便于推广。 全自动电冰箱的控制电路发展趋势是采用软件结合硬件来实现的。当然,本设计为了降低成本,本设计所用元件清单见附表1(P41),在电冰箱控制电路设计时保证实现功能的前提下尽量简单。本设计的电路板实物及使用测量与调试设备见附录B(P43~P45)。 在本次设计当中,通过市场调查以及控制方案的确定,通过硬件电路的安装与调试,通过编制、调试程序使我学习了很多东西,体会到了制造产品的过程,体会到了如何将理论知识应用到实际中间去,这对以后的工作和学习都是十分有帮助的。 41 参考文献 [1]李佐周,制冷原理 [M].北京:高等教育出版社,1991:10—43. [2]凌玉华,单片机原理及应用系统设计[M].长沙:中南大学出版社,2006:190—197. [3]冯梅,电冰箱、冷藏箱电路解说及检测[M].北京:人民邮电出版社,1999:22—47. [4]肖凤明,新品牌空调器微电脑控制电路分析与速修技巧[M].北京:机械工业出版社,2002:50—78. [5]谭浩强,C程序设计(第二版)[M]. 北京:清华大学出版社 [6] 18b20程序及应用,[DB/OL]. http://www.elecfans.com/article/88/142/2008/2008110516329.html [7] 一种基于单片机的变频电冰箱控制系统,[DB/OL]. http://www.china001.com/show_hdr.php?xname=PPDDMV0&dname=761GF41&xpos=202 [8] lm339引脚图参数及lm339 pdf中文资料, [DB/OL]. http://www.51hei.com/chip/587.html [9] 初学C按键LCD+DS1302+AD程序,[DB/OL]. http://www.picavr.com/news/2008-01/2460.htm 42 附表1 元件清单 全自动电冰箱控制电路元件清单 名称 滤波电容 万用板 继电器 二极管 发光二极管 变阻器 电容 晶振 STCC52 LCD 7805 电阻 接插针 温度传感器 直流无刷电机 数量 1个 2块 个 8个 3个 3个 各2个 1个 1个 1个 2个 若干 100针 一个 43 规格 200uF 200V 一大 一小 5V IN4007 红色、绿色、蓝色 10K 10uF,470uF,220uF,30pF,0.1uF 12M 1602 输出电压5V Ds18b20 123456 附录A 基于单片机的电冰箱设计电路图 DVCCVCCD?D?R?POT2c1c1+c2c2R?RES2RRES2RRES2RRES2DIODED?DIODED?OUT2OUT1VCC-IN1+IN1-IN2+IN21234567LM339141312111098OUT3OUT4GND+IN4-IN4+IN3-IN3DIODEDIODERRES2DWCvcc 5vMAX232V?235Component_1R2INRIINT2OUTT1OUTGNDVCCVS-VS+81371415166291210115431R2OUTRIOUTT2INTIINC2-C2+CI-CI+C+VCCC?c1C?c2RRES2+CDR?RES2BUZZERC+VCCCURRENT SENSING AOUTPUT 1OUTPUT 2SUPPLY VOLTAGE VSINPUT 1ENABLE AINPUT 2GND1234567101112131415LOGIC SUPPLY VOLTAGE VSSINPUT 3ENABLE BINPUT 4OUTPUT 3OUTPUT 4CURRENT SENSING B+C1C2CAPBYCAPVSSVDDVEEU?9193110121314153938373635343332123RSTPSENXTAL1XTAL2EA/VPPRD/P3.7RXD/P3.0WR/P3.6INT0/P3.2TXD/P3.1INT1/P3.3ALE/PROGT0/P3.4P2.7/A15T1/P3.5P2.6/A14P0.0/AD0P2.5/A13P0.1/AD1P2.4/A12P0.2/AD2P2.3/A11P0.3AD3P2.2/A10P0.4/AD4P2.1/A9P0.5/AD5P2.0/A8P0.6/AD6P1.7P0.7/AD7P1.6P1.0P1.5P1.1P1.4P1.2P1.380C52-16/BQA(40)291817161130282726252423222187654RSRWE0DD1D2D3D4D5D6D71516S?S?S?S?S?S?1234567819011121314PORT1PORT2C?vcc 12vD?IN4000D?IN4000C1C?c2MVCCGNDDQCVCD?IN4000D?IN4000DS18B20A 44 123456 附录B 电路板实物及使用设备图 图(a) 按键,温度传感,LCD显示电路 45 图(b) L298电机驱动电路 图(c) 电源电压检测电路 图(d) 使用设备1――万用表 46 图(e) 使用设备2――示波器 图(e) 使用设备3――微型电源 47 致谢 在本次设计中,我非常感谢我的指导老师陈素纯老师,从毕业设计开始,他指导我明确设计题目,抓准设计方向,少走了很多弯路;然后,他不断地为我提供参考资料,指导硬件调试;再就是他帮我修改论文并及时提供我非常可行的建议。另外,我要感谢本班的黄彬同学,在我的程序编制上,提供了很大的帮助。最后,我还要感谢和我选择同类型题目的李荣斌同学,他为我提供了一些非常有用的硬件资料。 48
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- baomayou.com 版权所有 赣ICP备2024042794号-6
违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务