基于51单片机的全自动洗衣机设计
图5.2为漂洗时的工作显示图
进入漂洗程序,相应的表示漂洗工作P1.2和电机工作P1.6的指示灯亮,由数码管显示洗涤所需时间,同时电机也会跟着进行正反转工作
5.3.3 脱水
图5.3为脱水时的工作显示图
进入漂洗程序,相应的表示脱水工作P1.3的指示灯亮,由数码管显示洗涤所需时间,同时电机也会朝着同一个方向旋转工作。
- 26 -
基于51单片机的全自动洗衣机设计
结 论
经过一个学期的时间完成了基于51单片机的全自动洗衣机控制系统的设计,本系统是基于51单片机及其接口技术、计算机技术、微电子技术综合应用的设计。整个控制系统实现了对洗衣机整个洗衣过程的控制包括用户参数输入(通过按键输入)、进水、洗衣、泡洗、脱水、出水和结束等几个阶段,并且可以通过标志flag0的值来确定用户想要的状态,直接从该状态进入工作,比如说:如果用户想从脱水这个阶段开始工作,那么用户只需要通过按菜单选择键三次,再按开始键洗衣机就可以从脱水开始工作。控制系统主要由电源电路、控制电路两大模块构成。电源电路为控制电路提供稳定的5V直流电压,为电动机提供220V市电;控制电路负责控制洗衣机的工作过程,主要由AT89C52单片机、四位共阳数码管、按键、蜂鸣器、LED指示灯、电动机、进水排水电磁阀组成。在系统设计中查阅了大量相关的中文和外文资料以及各芯片的厂家技术资料手册借鉴了很多前人成熟的经验。
本次设计包含了软件和硬件方面的设计,硬件方面主要就是proteus的仿真,仿真的目的就是通过软件的方式先来验证方案的可行性,为做出实物埋下一个坚实的基础,以及用protel画原理图以及PCB板,当然如果你要再进一步,那就可以去买这些器件在PCB板上进行焊接调试,从而更加客观地验证自己的设计;软件设计方面主要就是用keil软件编写C程序代码,从而驱动硬件工作,达到自己想要的效果,这中间就可能会遇到要不断地调试以及修改程序,这是一个繁琐的过程,但同时也是你技能提升的过程。
通过本次设计可以总结出:首先单片机的广泛应用使用现在的电子产品设计越来越方便、功能越来越好、集成度也越来越高。通过对单片机的重新编程可以很方便的改变洗衣机的功能。其次单片机和微电子等技术是密切相关的,它们如何应用将直接对设计结果产生影响,应用不同的元器件和设计方法可以使洗衣机的设计结果截然不同,洗衣机的性能也将有差别,同时在本设计中应用的元器件都是单片机的应用,使该设计只要稍加修改就可以很方便地开发出其他基于单片机的洗衣机控制系统。
- 27 -
基于51单片机的全自动洗衣机设计
总结几个月来的设计体会大体如下:
首先任何工作都要与人打交道、沟通,毕业设计也不例外。这就需要我们充分地利用好彼此的力量、充分的协作可以对设计过程中出现的问题站在不同的角度分析问题,汇结大家的意见,最终达成一致,发挥了团队精神。
其次对待任何的工作责任心是必要的。这次的毕业设计让我体会颇深,然而更重要的是在责任心的驱使下我该采用何种方法更省时省力的完成此次设计。凭着“方法总比困难多”的信念,我首先和同学分析了任务本身该从何处着手,该何时何地查找相关资料等等寻找突破,充分地解决好问题。
再次是遇到不懂的问题及时向老师请教,抓紧设计的每分每秒,需要调整和改变的地方及时的做出改动而不墨守成规,同样做人也该如此。
对于以上之粗浅体会进一步的总结和提高,需要有更多的社会实践来提供,我也相信在不久的将来踏入社会,类似这样的设计绝不在少数,只要我们努力学习、勇于实践、勤学好问我们就会懂得以前不明白或不懂的道理,就会很快地成长和成熟起来。我也相信凭着我自强不息勇于拼搏的精神一定能够很快的适应类似设计的需要,适应这个多变的社会,充分发挥长处朝我们的方向不断前进前进再前进!
- 28 -
基于51单片机的全自动洗衣机设计
参考文献
[1]李勋.单片机微型计算机大学读本.[M]北京航空航天大学出版社,2002.
[2]王治刚.单片机应用技术与实训.[M]清华大学出版社,2004.
[3]周航慈等. 单片机程序设计基础. [M]北京航空航天大学出版社,1997.
[4]彭为. 单片机典型系统设计实例精讲. [M]电子工业出版社,2006. [5]卢艳军. 单片机基本原理及应用系统. [M]机械工业出版社,2005. [6]周美娟等. 单片机技术及系统设计. [M]清华大学出版社,2007. [7]永权. 单片机与家用电器智能化技术. [M]电子工业出版社,1995. [8]杨素行等.模拟电子技术基础简明教程.[M]高等教育出版社,2005 [9]谢维成等.单片机原理与应用及C51程序设计.[M]清华大学出版社2009
- 29 -
基于51单片机的全自动洗衣机设计
附 录
附录C 程序
项目名称:控制器 修改日期:2014-05-06
----------------------------------------*/
#include
#define uchar unsigned char #define uint unsigned int
sbit mo_r = P3^2; //电机右控制线 sbit mo_l = P3^3; //电机左控制线 sbit key_menu = P3^4; // 菜单按键 sbit key_on = P3^5; // 开始按键 sbit key_off = P3^6; // 结束按键
sbit key_sel = P3^7; // 菜单选择按键 sbit led_in = P0^0; // 进水指示灯 sbit led_xi = P0^1; // 洗衣指示灯 sbit led_pao = P0^2; // 泡洗指示灯 sbit led_xx = P0^3; // 脱水指示灯 sbit led_out = P0^4; // 出水指示灯 sbit led_over = P0^5; // 洗衣结束指示灯 sbit led_work = P0^6; // 电机工作指示灯 sbit led_wring = P0^7; // 报警指示灯 sbit buzzer=P3^0; uchar
num[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; char sec = 0; // 时间秒 char min = 0; // 时间分 uchar count=0; // 中断计数 uchar flag0=0; // 洗衣机工作状态标志 uchar flag1=0; // 进水次数标志 uchar flag2=0; // 出水次数标志 uchar flag3=0; // 泡洗次数标志 uchar err =0; // 报警标志 uchar quan = 0;//正反转计数
- 30 -
code