51单片机自动洗衣机控制系统设计—毕业设计论文.docx

上传人:doc321 文档编号:12826710 上传时间:2021-12-06 格式:DOCX 页数:18 大小:179.75KB
返回 下载 相关 举报
51单片机自动洗衣机控制系统设计—毕业设计论文.docx_第1页
第1页 / 共18页
51单片机自动洗衣机控制系统设计—毕业设计论文.docx_第2页
第2页 / 共18页
51单片机自动洗衣机控制系统设计—毕业设计论文.docx_第3页
第3页 / 共18页
51单片机自动洗衣机控制系统设计—毕业设计论文.docx_第4页
第4页 / 共18页
亲,该文档总共18页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《51单片机自动洗衣机控制系统设计—毕业设计论文.docx》由会员分享,可在线阅读,更多相关《51单片机自动洗衣机控制系统设计—毕业设计论文.docx(18页珍藏版)》请在三一文库上搜索。

1、自动洗衣机控制系统设计一、项目内容及要求。内容:设自动洗衣机的控制要求是: 启动后先开启进水阀进水, 水位到达设定值后关闭,然后波轮按正转 5 秒、反转 5 秒,正、反转之间停 3 秒的规律不断循环转动, 直至达到设定时间停止, 之后打开排水阀放水,水放完后洗衣桶旋转脱水, 1 分钟后停止并关闭排水阀,洗衣过程结束。要求水位设置不少于高、中、低三档,洗衣时间在 3 12 分钟范围内可调,以 1 分钟为单位,排水时间定为 1 分钟。运动执行器用指示灯模拟,水位用开关模拟,试设计该洗衣机的控制电路。要求:画出控制系统的框图,说明系统方案设计的思路、理由或依据;选择、确定组成控制系统的各个单元,并阐

2、述选择确定的原则或依据;画出完整的电气原理图, 介绍整体电路的工作原理、 性能或特点;如采用单片机控制, 给出单片机程序的流程图和清单,说明程序的工作原理。制作实物电路,验证设计、制作是否正确。二、题目分析及设计思路。1.技术要点:要对自动洗衣机的整个流程要清楚, 要清楚哪些步骤比较重要。 对于洗衣机优先级最高的应该是暂停这个功能。 因为一旦当洗衣机盖子被打开或者发生什么意外情况, 洗衣机必须马上停止工作, 这也是出于对安全问题的考虑。洗衣机在洗衣的过程中波轮按正转5 秒、反转 5 秒,正、反转之间停 3 秒的规律不断循环转动, 直至达到设定时间停止。 当到了设定的时间以后洗衣机便要进入下一个

3、的洗衣流程。设置洗衣机时间和水位必须要显示结果,方便用户查看。单片机程序中的设计洗剂时间这些要做到比较精确, 这样才能保证洗衣机能将衣服洗的比较干净。水位设置的处理, 因为考虑到身边没有水位传感器, 这里我用限时的方法来完成低、中、高三个水位的设置。进水和出水的电磁阀我这里都是用 LED灯显示来代替了,进水和出水我会将对应的 LED点亮来表示进水和出水。三、方案设计说明。本系统实现了对洗衣机整个洗衣过程的控制, 包括用户参数输入、洗衣、排水和脱水等阶段。 控制系统主要由电源模块、单片机控制系统和外部硬件电路构成。 电源采用三端集成固定稳压器 7805 提供 +5V电源,单片机控制系统负责控制洗

4、衣机的工作过程,主要由AT89S51单片机、 2 位共阳数码管、按键、 LED指示灯组成;外部硬件电路有继电器、三极管、电动机。1、按键洗衣机面板上有5 个按钮 K1、K2、K3、K4、K5。K1 为水位设置。K2 洗剂时间设定。K3 启动。K4 停止(模拟洗衣机的盖板,盖板打开时洗衣机将停止工作)。K5 返回。2、 洗衣过程洗涤过程通电后,只要用户对水位和洗剂时间设定后,按下启动按钮,洗衣机就进入了洗剂过程。首先进水阀LED灯点亮,开始向洗衣机供水,当到达要求水位时,进水阀LED熄灭,停止进水;电机M接通,带动波轮旋转,形成洗衣水流。 电机 M是一个正反转电机,可以形成往返水流,有利于洗涤衣

5、物。排水过程电机停止转动,排水阀的LED指示灯点亮。这里会有一分钟的排水时间。脱水过程洗涤或排水过程结束后,排水阀LED接通,开始脱水。排水阀动作的同时,电机 M也接通,此时电机是朝着一个方向高速的旋转,使电机可以带动内桶转动。从而将衣服上的水脱掉。3、设计总体方框图四、单元设计说明。1、单片机的时钟电路、和复位电路。时钟电路时钟电路由晶振元件与单片机内部电路组成,产生的振荡频率为单片机提供时钟信号,供单片机信号定时和计时。在 AT89S51单片机内部有一个高增益反相放大器,其输入端引脚为 XTAL1,其输出端为 XTAL2。只要在两引脚之间跨接晶体振荡器和微调电容 C1、C2,就可以构成一个

6、稳定的自激振荡器。本设计采用如图所示电路。一般地,电容 C1和 C2 取 33pf 左右;晶体振荡器,简称晶振,频率范围是 1.212MHz。晶振频率越高,系统的时钟频率也就越高,单片机的运行速度也就越快。在通常情况下,使用振荡频率为6MHz或12MHz的晶振。如果系统中使用了单片机的串行口通信,则一般使用频率为 11.0592MHz 的晶 振。 而在本 次设 计中 采用的 是频 率为11.0592MHz的晶振。单片机上电自动复位电路上电复位是利用电容充电来实现复位,其工作原理是:上电瞬间 RST端的电位与 VCC相同,随着电容 C3 充电电流的减小, +5V 的电压立即加到了 RST端,该高

7、电平使得单片机复位。2、 LED 显示电路。LED(Light Emiting Diode)是发光二极管英文名称的缩写。本次设计中我们采用发光二极管主要是用来指示洗衣机的工作状态。4 个发光二极管分别跟单片机的P2.6、P2.7 、P3.0 、P3.1 连接,如图 3 所示。当发光二极管的阳极所对应的单片机管脚为高电平时, 发光二极管导通。3、数码管显示电路。常用的 LED为 8 段或 7 段。每一个段对应一个发光二极管。 这种显示器有共阳极和共阴极 2 种。共阴极 LED显示器的发光二极管的阴极连在一起,通常此公共阴极接地。 当某个发光二极管的阳极为高电平时,发光二极管点亮,相应的段被显示。

8、同样,共阳极 LED显示器的发光二极管的阳极连接在一起, 通常此公共阳极接正电压, 当某个发光二极管接低电平时,发光二极管被点亮,相应的段被显示。为了使 LED显示器显示不同的符号或数字, 就要把不同段的发光二极管点亮,这样就要为LED 显示器提供代码,因为这些代码可使LED相应的段发光,从而显示不同字型,因此该代码称之为段码(或称为字型码)。4、电机正反转控制电路。这里我采用的是利用两个12V 的继电器来实现电机的正反转。当P2.4 为高电平, P2.5 为低电平时 NPN型的三极管 Q1导通, Q2截止,电机就正转。反过来当 Q1截止, Q2导通,电机就反转。这里采用的原理就是 H桥的一个

9、原理。如下图。当 SW1和 SW4同时导通的时候电机就会正转,当 SW2和 SW3同时导通的时候电机就会反转。五、完整电路原理分析。自动洗衣机完整电路设计图在 Proteus7.9 中仿真结果。给模块上电后上电指示灯会点亮。 说明上电正常。分别按下水位设置开关、 洗剂时间设置开关、 启动开关。洗衣机就开始自动的洗剂过程。 水位设置开关盒洗剂时间设置开关都是采用重复按来让水位循环和设置时间循环。 如果不设定水位和洗剂时间,直接按下启动开关, 系统就会以默认的值来洗剂。当打开洗剂盖板和有紧急情况的时候按下停止开关就能瞬间停止下来。 再按下返回按键,洗衣机就能继续之前的洗剂过程。六、软件设计流程。开

10、始初始化设置水位按键按下设置洗剂时间按键按下键盘扫描Y设启动置水启动按钮按下位子程洗衣程序序洗剂时间结束排水程序排水一分钟结束脱水程序脱水一分钟结束洗 衣结束七、程序清单#include<reg52.h>#define uchar unsigned char#define uint unsigned int/*/设置洗剂时间子程序sbit moto_r=P24;/电机右控制器sbit moto_l=P25;/电机左控制器sbit key_sw=P10;/水位设置sbit key_xjsj=P11; / 设置漂洗时间sbit key_qidong=P12;/启动按钮sbit dul1

11、=P36;sbit dul2=P37;/*/sbit led_in=P26;/进水指示灯sbit led_out=P27;/出水指示灯sbit led_sw_h=P20;/高水位指示灯sbit led_sw_m=P21;/中水位指示灯sbit led_sw_l=P22;/低水位指示灯sbit led_xi=P30;sbit led_tuo=P31;sbit wring=P23;/ 警告sbit key_fanhui=P14;/*/uchar code num10=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90;/共阳极数码管显示数组/*/ch

12、armin=1; / 时间uchar flag0=0; / 洗衣标志uchar flag1=0; / 启动按键标志uchar flag2=0; / 出水标志uchar flag3=0; / 启动按钮的按下次数计数uchar erro=0; / 报警标志uint a=0;uint b=1;uint num0=2;uint c;uint d;uint e;uint f;uint g;uint h;uint i;uint j;uint k;/*函数声明 */void delay(uint xms);/延时函数void in();void out();/ 进水子程序/出水子程序void over();

13、/ 结束子程序void xi();/ 洗衣程序void key_scan();/ 按键扫描子程序void SED_display();/ 显示时间子程序void on();/工作程序/*延时函数 */void delay(uint xms)uint i,j;for(i=xms;i>0;i-)for(j=110;j>0;j-);/*脱水子程序 */void over()while(num0!=0)led_out=1;moto_r=1;moto_l=0;led_tuo=1;delay(5000);num0-;num0=2;led_out=0;led_tuo=0;moto_r=0;mot

14、o_l=0;flag1=0;min=1;P0=0;P2=0;P3=0xFC;EA=1;ET0=1;ET1=1;EX0=1;IT0=0;TMOD=0x01;dul1=0;dul2=0;TH0=(65536-50000)/256;TL0=(65536-50000)%256;/*进水子程序 */void in()led_in=1;delay(5000);led_in=0;/*出水子程序 */void out()while(num0!=0)led_xi=0;moto_r=0;moto_l=0;led_out=1;delay(5000);num0-;num0=2;/*洗衣子程序 * */void xi(

15、)TR0=1;b=min*1200;while(flag0=0)led_xi=1;moto_r=1;moto_l=0;delay(5000);moto_r=0;moto_l=0;delay(3000);moto_r=0;moto_l=1;delay(5000);moto_r=0;moto_l=0;delay(3000);/*中断子程序 */void T0_time() interrupt 1TH0=(65536-50000)/256;TL0=(65536-50000)%256;b=b-1;if(b=0)led_xi=0;moto_r=0;moto_l=0;led_sw_h=0;led_sw_m

16、=0;led_sw_l=0;flag0=1;TR0=0;/*中断子程序 */void INT_0() interrupt 0TR0=0;EX0=0;c=moto_r;d=moto_l;e=led_sw_h;f=led_sw_m;g=led_sw_l;h=led_xi;i=led_tuo;j=led_in;k=led_out;led_sw_h=0;led_sw_m=0;led_sw_l=0;led_xi=0;led_tuo=0;led_in=0;led_out=0;moto_r=0;moto_l=0;while(1)if(key_fanhui=0)delay(10);if(key_fanhui=

17、0)while(!key_fanhui);moto_r=c;moto_l=d;led_sw_h=e;led_sw_m=f;led_sw_l=g;led_xi=h;led_tuo=i;led_in=j;led_out=k;/*显示子程序 */void SED_display()dul1=1;P0=nummin/10;delay(5);dul1=0;dul2=1;P0=nummin%10;delay(5);dul2=0;/*按键扫描子程序*/void key_scan()if(key_sw= 0)delay(10);if(key_sw= 0)while(!key_sw);a=a+1;if(a=1)

18、led_sw_l=1;if(a=2)led_sw_m=1;led_sw_l=0;if(a=3)led_sw_h=1;led_sw_m=0;if(a=4)a=0;led_sw_h=0;/*/if(key_xjsj=0)delay(10);if(key_xjsj=0)while(!key_xjsj);min+;SED_display();if(min=13)min=1;/*/if(key_qidong=0)delay(10);if(key_qidong=0)while(!key_qidong);flag1=1;flag0=0;/*主函数 */void main()P0=0;P2=0;P3=0xFC

19、;EA=1;ET0=1;ET1=1;EX0=1;IT0=1;TMOD=0x01;dul1=0;dul2=0;TH0=(65536-50000)/256;TL0=(65536-50000)%256;while(1)key_scan();SED_display();if(flag1=1)in();xi();out();over();end;八、制作、调试情况。遇到的问题:1、电机的正反转电路不能正常工作,上电之后就会一直死在那里。解决办法:最后发现是单片机在上电的情况下所有管脚默认都是高电平,这样就会出现控制正反转电路中的两个单片机管脚就会同时是高电平。最后是在初始化程序中将所有管脚开始的状态都强制拉为低电平才正常工作。2、按下停止时不能一直停着,只是停了一会就自己又开始工作了。解决办法:最后是在按钮模块又加了一个按钮,只有当返回按钮按下的时候中断程序才会返回。九、实训成果。在 Proteus7.9 中能完整的仿真出整个的洗衣过程, 经过调试没有发现什么 bug。开始设置水位和设置洗剂时间都正常。在仿真中在洗衣的过程中也能看到电机正转正转5 秒反转 5 秒中间停三秒的现象。工作状态的指示灯也都能到相应的过程中点亮来指示。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1