基于51单片机洗衣机课程设计报告分解
- 格式:doc
- 大小:192.50 KB
- 文档页数:15
全自动洗衣机课程设计报告及体会课程设计报告通信1001班一:课程设计目标:全自动洗衣机二:设计要求:实现相应的输入功能,如:水位开关,键盘。
实现相应的输出功能,如:显示器,进出水阀,电机正反转,脱水等实现相应的功能:强洗涤,弱洗涤,漂洗,脱水三设计过程:(一):总体设计思想:本课程设计是基于MC51单片机的嵌入式设计,在电子辅助设计软件protel 环境下,画出相应的原理图和PCB板,作为实现全自动洗衣机的相应功能的硬件基础。
设计将分为4大部分作图,即CPU,ROM/RAM,IO,POWER四张原理图。
CPU:采用了51系列单片机8031作为CPU,故需要扩展片外存储ROM/RAM:采用两片2764芯片扩展片外ROM,采用2片6264扩展片外RAMIO:采用总线驱动方式,扩展IO接口,设计中采用了74系列的双向总线驱动器74LS245POWER:采用220V转5V方式,得到数字供给电源(二)设计中,最小系统的扩展如下:数据总线:P0口分时复用数据总线。
P0第三位接38译码器,作为IO片选地址总线:通过地址锁存器74LS373引出的P0口的8位和直接引出的P2口的低5位,作为13位地址总线。
P2.5端通过线选法,片选外部存储,P2口高三位通过译码器片选IO芯片控制总线:ALE,PSEN,RD,WR均为片选,读写控制总线的部分。
(三)设计中,关于硬件连线说明:CPU:上述中已经说明8031的各个引脚及其扩展内容,因为其无内部存储,故引脚EA接地,使其通过硬件设置访问片外存储;ROM/RAM:通过CPU相关控制端口如PESN,P2.6(A13),RD,WE等实现CPU对片外存储器存储读写的控制。
P2端口的后两位通过38译码器扩展,作为IO地址线。
IO:本设计中扩展的IO有键盘,显示器,电机,水阀,状态显示设备(LED 小灯和警报器);键盘和显示器通过总线驱动器接入数据总线中,其余扩展通过控制总线,位寻址单独实现控制。
基于51单片机的智能洗衣控制系统设计1. 引言智能家居技术的发展为我们的生活带来了诸多便利,其中智能洗衣控制系统是其中的一项重要应用。
本文旨在基于51单片机设计一种智能洗衣控制系统,通过对洗衣机的控制和监测,提高洗衣质量和用户体验。
2. 智能洗衣控制系统设计原理2.1 51单片机介绍51单片机是一种常用的微控制器,具有体积小、功耗低、易于编程等特点。
在本设计中,我们选择51单片机作为主要的控制器。
2.2 智能洗衣系统功能需求智能洗衣系统应具备以下功能需求:2.2.1 温度控制:根据用户设定的温度要求,自动调节水温。
2.2.2 洗涤程序选择:根据用户选择不同类型的布料和污渍程度,自动调节洗涤程序。
2.2.3 水位监测:通过传感器实时监测水位情况,并根据需要自动添加或排放水量。
2.2.4 电机驱动:通过电机驱动实现转筒运转、排放水等功能。
...3 实验结果与分析在实际实验中,我们成功地实现了基于51单片机的智能洗衣控制系统,并进行了多组洗衣实验。
通过对洗衣机的控制和监测,系统能够根据用户设定的要求进行智能化的洗涤操作,并在完成后自动停止。
4 总结与展望通过本次研究,我们成功地设计并实现了一种基于51单片机的智能洗衣控制系统。
该系统具备温度控制、洗涤程序选择、水位监测和电机驱动等功能,能够提高洗衣质量和用户体验。
然而,目前该系统还存在一些局限性,如对于特殊布料和污渍处理不够精细等。
未来工作可以进一步优化系统设计,并结合更多的传感器和算法来提高智能化程度。
5 致谢本次研究得到了指导教师的悉心指导与帮助,在此向他们表示诚挚的感谢。
同时也感谢参与本研究工作并提供支持与帮助的各位同学们。
6 附录附录中包含了本次研究中使用到的关键代码、电路图、数据表格等详细信息,以供读者参考。
通过对基于51单片机的智能洗衣控制系统的设计,本文详细介绍了系统的原理、功能需求、硬件设计和软件设计等方面。
通过实验验证了系统的可行性,并对实验结果进行了分析。
一、设计目标1、全自动洗衣机用51系列单片机89C51控制全自动洗衣机的运行,使其能自动地完成进水、洗涤、漂洗、脱水等功能。
不同的衣物,洗涤、漂洗、脱水和洗衣电机正反转所用的时间不同,要求设计能够实现过程选择,并在LED显示屏上显示过程代码。
在运行的时候能显示完成整个过程的剩余时间。
2、洗衣机主要功能:进水、洗涤、脱水、排水具体功能有浸泡、强力洗、轻柔洗、标准洗、快速洗、单独洗、单独脱水、漂洗脱水二、设计过程洗衣机要实现衣服的洗涤、漂洗和脱水,离不开进水、电机正转、电机反转和排水这四个动作。
上述四个动作,是通过单片机的P0端口,做输出端口,去控制双向可控硅通断来实现的,如下图所示。
同时加上输入开关的按钮、数码管显示器、蜂鸣按警器和欠压检测保护电路等,就可以形成完整的单片机控制系统。
通过软件编程达到对整个洗衣过程进行控制、检测以及与用户交互。
三、设计结果(1)硬件部分1、电路图2、PCB版图(2)、汇编语言洗衣机的一次洗衣过程控制过程主要为顺序控制,如先进水、洗涤(电机正转反转)、再排水脱水。
将把脱水、洗涤、进水单独编为一个子程序,由主程序根据过程选择,不断调用,可以减少源程序的长度,不同的洗衣过程,三大动作的时间不同,这可以通过建立数据表格,通过查表的方式获得每个洗衣过程所需时间。
此外,还需编出显示子程序,延时子程序供主程序不断调用。
1、流程图(1)、洗衣机控制系统主程序流程图(2)洗涤动作子程序流程图(3)脱水子程序流程图2、程序ORG 0000HLJMP MAINORG 0030H;延迟10ms程序;使用R0, R1DELAY10MS:MOV R0, #100D;DELAY10MS02:MOV R1, #23DDELAY10MS01:DJNZ R1, DELAY10MS01DJNZ R0, DELAY10MS02RET;显示子程序;20H.0闪烁标志位:=0不闪烁,=1在1s内亮灭一次;20H.1程序开始标志:=1开始, =0选择;显示缓冲:50H;经过的时间:53H,52H,51H=分钟,秒,20ms的次数;总时间:TOTALTIME=40HTOTALTIME EQU 40H DISPLAY:PUSH ACCPUSH PSWSETB RS0JNB 20H.1, DISPLAY01MOV A, 50H ;高位是否为零CJNE A, #0AH, DISPLAY05 DISPLAY05:JNC DISPLAY06XRL A, #0F0H ;高位为零不显示MOV 50H, ADISPLAY06:JNB 20H.0, DISPLAY01 ;是否需闪烁MOV A, 51HCJNE A, #25D, DISPLAY02; DISPLAY02:JC DISPLAY01MOV 50H, #0FFH ;暗显示(不亮)DISPLAY01:MOV A, 50H ;显示低位ANL A, #0FH;MOV DPTR, #DISPLAYTAB;MOVC A, @A+DPTR;MOV P2, A;SETB P0.6CLR P0.7LCALL DELAY10MSMOV A, 50H ;显示高位SWAP AANL A, #0FH;MOV DPTR, #DISPLAYTAB;MOVC A, @A+DPTR;MOV P2, A;CLR P0.6SETB P0.7LCALL DELAY10MSINC 51H ;累计时间MOV A, #50D ;XRL A, 51H ;JNZ DISPLAY03 ;50次的20ms 未到MOV 51H, A ;INC 52H ;1sMOV A, #60D;XRL A, 52H ;JNZ DISPLAY03MOV 52H, A ;INC 53H ;1min DISPLAY03:JNB 20H.0, DISPLAY04;MOV A, TOTALTIME ;计算剩余时间CLR CSUBB A, 53H ;MOV B, #10D ;16进制转换到10进制DIV ABSWAP AXRL A, B ;MOV 50H, A ;DISPLAY04:POP PSWPOP ACCRETDISPLAYTAB: ;共阳数码管反向编码DB 03H, 9FH, 25H, 0DH, 99H;01234DB 49H, 41H, 1FH, 01H, 09H;56789DB 11H, 0C1H, 63H, 85H, 61H;ABCDEDB 0FFH ;暗;重算时间;入口数据:A=总时间(分)CALUTIME:MOV TOTALTIME, ACLR AMOV 52H, A ;秒MOV 53H, A ;经过的分钟RET;鸣叫一下, 时长120msPLAY:SETB P1.6MOV R0, #12D;PLAY1:LCALL DISPLAYDJNZ R0, PLAY1CLR P1.6RET;鸣叫六下, 时长240ms*12 ALARM:SETB P1.6MOV R1, #11D; ALARM2:MOV R0, #12D; ALARM3:LCALL DISPLAYDJNZ R0, ALARM3CPL P1.6DJNZ R1, ALARM2RET;;;;;洗涤用子程序;洗涤时暂停按键XDPAUSE:JB P0.0, XDPS01LCALL DISPLAYJB P0.0, XDPS01PUSH 52HPUSH 53HCLR 20H.0 ;不闪烁MOV A, P1PUSH ACCMOV P1, #00HLCALL PLAY XDPS02:LCALL DISPLAYJNB P0.0, XDPS02 ;等待按键释放XDPS03:LCALL DISPLAYJB P0.0, XDPS03LCALL DISPLAYJB P0.0, XDPS03LCALL PLAYXDPS04:LCALL DISPLAYJNB P0.0, XDPS04 ;等待按键释放POP ACCMOV P1, ACCSETB 20H.0POP 53HPOP 52HXDPS01:RET;洗涤时延迟0.32sDELAY320MS:MOV R2, #14D;SJMP XDELAY01;洗涤时延迟0.56sXDELAY560MS:MOV R2, #28DSJMP XDELAY01;洗涤时延迟1sXDELAY1S:MOV R2, #50DSJMP XDELAY01;洗涤时延迟1.6sDELAY1600MS:MOV R2, #80DXDELAY01:LCALL DISPLAYLCALL XDPAUSE ;暂停按键LCALL IFINWATER ;水位开关DJNZ R2, XDELAY01RET;洗涤前进水子程序INWATER:JNB P0.2, PI1;SETB P1.2MOV A, 53H;ADD A, #20D;MOV 59H, A;PI3:MOV A, 53H;XRL A, 59H;JNZ PI2LCALL ERRORE4SJMP INWATERPI2:JNB P0.2, PI4;LCALL DISPLAYLCALL XDPAUSESJMP PI3PI4:CLR P1.2PI1:RET;洗涤时是否再进水IFINWATER:JNB P0.2, IF1;MOV A, P1;PUSH ACCMOV P1, #00H;LCALL INWATER ;进水POP ACCMOV P1, A;IF1:RET;不能进水报警ERRORE4:PUSH 52HPUSH 53HCLR 20H.0MOV A, P1;PUSH ACCMOV P1, #00H;MOV 50H, #0E4HLCALL ALARME4PK2:LCALL DISPLAYJNB P0.1, E4PK2;LCALL DISPLAYJNB P0.1, E4PK2E4PK3:LCALL DISPLAYJB P0.1, E4PK3LCALL DISPLAYJB P0.1, E4PK3SETB 20H.0POP ACCMOV P1, ACC;POP 53HPOP 52HRET;排水时延迟1sDELAY1000MS:MOV R2, #50D;DLY51:LCALL DISPLAYLCALL XDPAUSE ;暂停按键DJNZ R2, DLY51;RET;排水子程序OUTWATER:CLR ASETB P1.3JB P0.2, OUTW1MOV R7, #60D OUTW2:LCALL DELAY1000MSJB P0.2, OUTW4DJNZ R7, OUTW2LCALL ERRORE1SJMP OUTWATER OUTW4:CLR CMOV A, #60DSUBB A, R7OUTW1:ADD A, #60DMOV R7, AOUTW3:LCALL DELAY1000MSDJNZ R7, OUTW3RET;不能排水报警ERRORE1:PUSH 52HPUSH 53HCLR 20H.0MOV A, P1;PUSH ACCMOV P1, #00H;MOV 50H, #0E1HLCALL ALARME1PK2:LCALL DISPLAYJNB P0.1, E1PK2;LCALL DISPLAYJNB P0.1, E1PK2 E1PK3:LCALL DISPLAYJB P0.1, E1PK3LCALL DISPLAYJB P0.1, E1PK3SETB 20H.0POP ACCMOV P1, ACC;POP 53HPOP 52HRET;脱水时暂停按键TPKEY:JB P0.0, TPK1;LCALL DISPLAYJB P0.0, TPK1;PUSH 52HPUSH 53HCLR 20H.0LCALL PLAYMOV A, P1;PUSH ACCJNB ACC.0, TPK6CLR P1.0MOV R0, #250 ;延迟5秒TPK5:LCALL DISPLAYDJNZ R0, TPK5TPK6:MOV P1, #00H;TPK2:LCALL DISPLAYJNB P0.0, TPK2;TPK3:LCALL DISPLAYJB P0.0, TPK3LCALL DISPLAYJB P0.0, TPK3LCALL PLAYSETB 20H.0SETB P1.3MOV R0, #250 ;延迟5秒TPK4:LCALL DISPLAYDJNZ R0, TPK4POP ACCMOV P1, ACC;POP 53HPOP 52HTPK1:RET;脱水时开盖, 脱水时安全报警IFOPEN:ERRORE2:JNB P0.1, TTPK1;LCALL DISPLAYJNB P0.1, TTPK1;PUSH 52HPUSH 53HCLR 20H.0MOV A, P1;PUSH ACC; LCALL ALARMJNB ACC.0, TTPK6CLR P1.0MOV R0, #250 ;延迟5秒TTPK5:LCALL DISPLAYDJNZ R0, TTPK5TTPK6:MOV P1, #00H;MOV 50H, #0E2HTTPK2:LCALL DISPLAYJB P0.1, TTPK2;TTPK3:LCALL DISPLAYJB P0.1, TTPK2LCALL DISPLAY; JB P0.1, TTPK3SETB 20H.0SETB P1.3MOV R0, #250 ;延迟5秒TTPK4:LCALL DISPLAYDJNZ R0, TPK4POP ACCMOV P1, ACC;POP 53HPOP 52HTTPK1:RET;脱水时延迟4sDELAY4S:MOV R2, #200D;DLY431:LCALL DISPLAYLCALL TPKEY ;暂停按键LCALL IFOPEN ;安全开关DJNZ R2, DLY431;RET;脱水时延迟3sDELAY3S:MOV R2, #150D;DLY321:LCALL DISPLAYLCALL TPKEY ;暂停按键LCALL IFOPEN ;安全开关DJNZ R2, DLY321;RET;主程序开始;选择程序:30H, 程序开始20H.1=1 MAIN:MOV SP, #60H;CLR 20H.0CLR 20H.1MOV A, #00H;MOV P1, A;MOV 50H, A;MOV 51H, A;MOV 52H, A;MOV 53H, A;MOV 30H, A;LP1: ;有无按键LCALL DISPLAYJB P0.0, LP1;LCALL DISPLAY ;按键去抖动JB P0.0, LP1;LP3:INC 30HMOV A, #0AH ;共有九种可选择XRL A, 30H;JNZ LP2MOV 30H, #01H;LP2:LCALL PLAYMOV 50H, 30H;LP4:LCALL DISPLAYJNB P0.0, LP4 ;等待按键释放CLR AMOV 52H, A;LP5:LCALL DISPLAYMOV A, 52H;XRL A, #03H ;3秒延迟到否JZ START ;开始洗衣JB P0.0, LP5;SJMP LP3 ;重选洗衣程序START:LCALL ALARMSETB 20H.1CLR AMOV 52H, A;MOV A, 30H;DEC AMOV B, #03H;MUL ABMOV DPTR, #PROCTAB;JMP @A+DPTRPROCTAB:LJMP PROC1 ;洗衣程序1LJMP PROC2 ;洗衣程序2LJMP PROC3 ;洗衣程序3LJMP PROC4 ;洗衣程序4LJMP PROC5 ;洗衣程序5LJMP PROC6 ;洗衣程序6LJMP PROC7 ;洗衣程序7LJMP PROC8 ;洗衣程序8LJMP PROC9 ;洗衣程序9PROC1:MOV A, #59DLCALL CALUTIMESETB 20H.0LCALL INWATER ;进水MOV A, #57DLCALL CALUTIME;洗涤3分钟MOV R7, #42D;XIDI0:SETB P1.0LCALL DELAY1600MSCLR P1.0LCALL XDELAY560MSSETB P1.1LCALL DELAY1600MSCLR P1.1LCALL XDELAY560MSDJNZ R7, XIDI0MOV R6, #01D ;共4次*3分钟=12分钟MOV R7, #30D ;停2分钟XIDI01:LCALL XDELAY1SDJNZ R7, XIDI01MOV R7, #14D ;洗涤1分钟XIDI03:SETB P1.0LCALL DELAY1600MSCLR P1.0LCALL XDELAY560MSSETB P1.1LCALL DELAY1600MSCLR P1.1LCALL XDELAY560MSDJNZ R7, XIDI03DJNZ R6, XIDI02MOV R7, #30D ;停2分钟XIDI04:LCALL XDELAY1SDJNZ R7, XIDI04LJMP PROC3 ;以下同过程3PROC2:;(待完成)LJMP overPROC3:MOV A, #42DLCALL CALUTIMESETB 20H.0LCALL INWATER ;进水MOV A, #40DLCALL CALUTIME;洗涤15分钟MOV R7, #8D; XIDI:SETB P1.0LCALL DELAY1600MSCLR P1.0LCALL XDELAY560MSSETB P1.1LCALL DELAY1600MSCLR P1.1LCALL XDELAY560MSDJNZ R7, XIDI;快速洗涤15秒MOV R7, #11D QXIDI:SETB P1.0LCALL DELAY320MSCLR P1.0LCALL DELAY320MSSETB P1.1LCALL DELAY320MSCLR P1.1LCALL DELAY320MSDJNZ R7, QXIDIMOV A, #25DLCALL CALUTIME;排水LCALL OUTWATERMOV A, #23DLCALL CALUTIME;第一次脱水MOV R7, #04D ;间隙脱水30秒TS1:SETB P1.0LCALL DELAY4SCLR P1.0LCALL DELAY3SDJNZ R7, TS1SETB P1.0 ;长脱水90秒MOV R7, #10D ;TS2:LCALL DELAY4SDJNZ R7, TS2CLR P1.0MOV R7, #250 ;延迟5秒TS25:LCALL DISPLAYDJNZ R7, TS25CLR P1.3MOV A, #20DLCALL CALUTIME;第一次漂洗LCALL INWATERMOV A, #18DLCALL CALUTIME;洗涤2分钟MOV R7, #08D ;XIDI1:SETB P1.0LCALL DELAY1600MSCLR P1.0LCALL XDELAY560MSSETB P1.1LCALL DELAY1600MSCLR P1.1LCALL XDELAY560MSDJNZ R7, XIDI1;快速洗涤15秒MOV R7, #11D QXIDI1:SETB P1.0LCALL DELAY320MSCLR P1.0LCALL DELAY320MSSETB P1.1LCALL DELAY320MSCLR P1.1LCALL DELAY320MSDJNZ R7, QXIDI1MOV A, #16DLCALL CALUTIME;排水LCALL OUTWATERMOV A, #14DLCALL CALUTIME;第二次脱水MOV R7, #04DTS21:SETB P1.0LCALL DELAY4SCLR P1.0LCALL DELAY3SDJNZ R7, TS21SETB P1.0MOV R7, #10D ; TS22:LCALL DELAY4SDJNZ R7, TS22CLR P1.0MOV R7, #250 ;延迟5秒TS26:LCALL DISPLAYDJNZ R7, TS26CLR P1.3MOV A, #12DLCALL CALUTIME;第二次漂洗LCALL INWATERMOV A, #10DLCALL CALUTIME;洗涤2分钟MOV R7, #08D ; XIDI2:SETB P1.0LCALL DELAY1600MSCLR P1.0LCALL XDELAY560MSSETB P1.1LCALL DELAY1600MSCLR P1.1LCALL XDELAY560MSDJNZ R7, XIDI2;快速洗涤15秒MOV R7, #11DQXIDI2:SETB P1.0LCALL DELAY320MSCLR P1.0LCALL DELAY320MSSETB P1.1LCALL DELAY320MSCLR P1.1LCALL DELAY320MSDJNZ R7, QXIDI2PROC8:SETB 20H.0 ;过程8需要闪烁MOV A, #08DLCALL CALUTIME;排水LCALL OUTWATERMOV A, #06DLCALL CALUTIME;最后脱水MOV R7, #04D ;间隙脱水30秒TS31:SETB P1.0LCALL DELAY4SCLR P1.0LCALL DELAY3SDJNZ R7, TS31SETB P1.0 ;长脱水5分钟?MOV R7, #05DTS32:LCALL DELAY4SDJNZ R7, TS32CLR P1.0MOV R6, #06TS28:MOV R7, #250 ;延迟5秒*6=30秒TS29:LCALL DISPLAYDJNZ R7, TS29DJNZ R6, TS28CLR P1.3LJMP OVEROVER:LCALL ALARMSETB P0.6CLR P0.7MOV P2, #03HSJMP $END四、设计体会通过此次对全自动洗衣机的课程设计,对单片机的知识进一步掌握,也巩固了之前学习到的知识。
摘要设计要满足如下要求:实现6种模式的互动选择:标准,轻柔,快洗和单独地进行洗涤、漂洗和脱水操作,被选中的模式用LED显示器表明。
实现不同模式下的洗衣过程,根据衣物多少允许用户设置4种的水位,被选中的水位用LED显示器表明。
当洗衣机启动后,上水电磁阀打开注水,当水到达设定的限位时,上水电磁阀断电,注水过程停止,启动电机全自动控制洗衣操作,整个过程的进行按时间控制,时间自定。
液位检测和控制:使水位限定在某一个给定的液位范围内,当水位越限时打开下水电磁阀放水,不启动洗衣过程,待满足要求后,投入运行。
当投入洗衣量大于洗衣机额定容量时,控制系统应报警,不启动洗衣过程。
待满足要求后,投入运行。
本设计通过采用AT89C51单片机,通过74LS139,水位检测机构,LED 数码显示器,LED发光二极管,独立键盘,继电器,进排水阀等硬件实现了上述功能要求。
应用表明该系统具有水位选择,模式设定,水位越限检测,过容及脱水安全保护等功能。
其性能可靠,提到了效率,降低了能耗,减少了噪音。
关键字:89C51RC 智能家电自动控制洗衣机二、前言单片机又称微控制器,或称嵌入式控制器。
而现在的智能家电无一例外是采用微控制器来实现的,所以家用电器是单片机应用最多的领域之一。
它是家用电器实现智能化的心脏和大脑。
由于家用电器体积小,故要求其控制器体积更小以便能嵌入其结构之中。
而家用电器品种多,功能差异也大,所以又要求其控制器有灵活的控制功能。
单片机以微小的体积和编程的灵活性而产生多种控制功能,完全可以满足家用电器的需求。
波轮式全自动洗衣机是家用电器领域的重要一员,在全自动洗衣机市场中占有很大的比例,其中绝大多数品是用单片机来实现的AT89C52单片机是ATMEL公司8位单片机系列产品之一,是一种20引脚双列直插式芯片。
它内含4KB可反复烧录的FLASH存储器,RAM字节也有128个,15个I/O口,5个中断,2个定时,已经可以满足程序的需要,指令也和51系列兼容,基于上述特点,选择它来设计一台智能洗衣机,完全可以达到以下的功能:1、洗衣程序功能:含6种独立程序,即标准洗衣程序、轻柔洗衣、快洗、单次洗衣、漂洗、脱水功能;2、特殊功能:安全保护、防振、间歇工作、声光显示功能。
基于51单片机自助洗衣机毕业设计一、导言在当今社会,随着生活水平的提高和科技的不断发展,人们对生活品质的要求也越来越高。
各种智能家居产品应运而生,其中包括自助洗衣机。
本文将围绕基于51单片机的自助洗衣机毕业设计展开深入探讨,从多个角度探究其设计原理、功能特点和未来发展趋势。
二、基于51单片机的自助洗衣机毕业设计的概述自助洗衣机是一种方便、智能的洗衣设备,它能够根据用户的需求自动完成洗涤、漂洗和脱水等流程,而基于51单片机的自助洗衣机毕业设计则是利用了这一现代化技术,实现了更加智能、高效的洗衣功能。
通过使用51单片机,可以实现对洗衣机整体的控制和监测,改善用户体验,提高洗衣效率。
三、基于51单片机的自助洗衣机毕业设计的技术原理1. 传感器技术基于51单片机的自助洗衣机毕业设计中,传感器技术起着至关重要的作用。
通过使用温度传感器、湿度传感器和称重传感器等,可以实时监测洗衣机内部环境的变化,从而调节水温、水量和洗涤时间,使洗衣效果更加理想。
2. 控制系统在这一设计中,基于51单片机的控制系统能够实现对洗衣机的智能控制。
通过编程控制,可以实现洗衣机的启动、停止、程序选择和故障诊断等功能,使用户能够更加便捷地使用洗衣机,同时提高了洗衣机的稳定性和可靠性。
3. 通信技术基于51单片机的自助洗衣机毕业设计还涉及到通信技术的应用。
通过与智能手机或电脑进行通信,用户可以随时随地监控洗衣机的运行状态,实现远程控制和故障排查,极大地提升了洗衣机的智能化水平。
四、基于51单片机的自助洗衣机毕业设计的功能特点1. 智能化基于51单片机的自助洗衣机毕业设计将洗衣机的控制系统进行了升级,实现了洗涤过程的智能化控制。
用户可以通过简单的操作界面选择合适的洗涤程序,而洗涤机能够根据不同的衣物材质和污渍程度自动调节洗涤参数,提供专业级的洗衣效果。
2. 节能环保在设计中,基于51单片机的自助洗衣机注重了节能和环保的理念。
通过智能控制水温、水量和洗涤时间,实现了洗衣过程中的资源最优利用,减少了水和电的浪费,降低了对环境的影响。
《单片机技术与应用》课程设计洗衣机控制设计专业班级:学号:姓名:目录一、设计目的要求 (3)二、设计要目标 (3)三、硬件设计 (4)1、系统设计流程 (4)1.1系统模块划分 (5)2、模块设计 (7)2.1AT89C51单片机控制模块的设计 (7)2.1.1 AT89C51介绍 (7)2.1.2AT89C51单片机的主要管脚功能 (7)2.2单片机系统复位电路 (8)2.3标准时钟电路 (9)2.4控制电路设计 (10)2.5显示电路设计 (10)2.6数码管显示电路设计 (11)2.7水位检测电路 (13)2.7.1进水控制电路 (13)2.7.2排水控制电路 (14)2.8水位监测模块 (14)2.9报警电路设计 (15)3.0电机控制系统设计 (15)四、软件设计 (18)1、系统设计流程 (18)1.1系统模块划分 (18)2、模块设计 (19)2.1主程序 (19)2.1.1 主程序执行 (19)12.2三个运行方案程序 (20)2.2.1 三个运行方案执行 (20)五、结果讨论 (22)5.1仿真原理图: (22)六、工作总结 (25)附录 (26)原理图: (26)参考文献 (26)2一、设计目的要求设计要求(1)洗衣机可选择多种洗涤状态,用户只需要选择洗涤模式,洗衣机自动选择洗涤程序,完成洗涤。
(2)暂停功能。
不管洗衣机工作在什么状态,当按下暂停键时,洗衣机必须暂停工作,待驱动键按下后洗衣机又能按原来所选择的工作方式继续工作。
(3)声光显示功能。
洗衣机各种工作方式的选择和各种工作状态均有声光提示或显示。
(4)本设计包含硬件和软件设计。
(5)因为是全自动洗衣机,程序将完成洗涤、脱水的全过程。
(6)脱水完成后,蜂鸣器蜂鸣,通知用户洗涤完成。
二、设计要目标本系统控制的对象为套桶式单缸低波轮全自动洗衣机,其功能要求如下:1.强、弱洗涤功能。
强洗时正、反转驱动时间各为4秒,间歇时间为1秒;标准洗时正、反转驱动时间各为3秒,间歇时间为1秒弱洗洗时正、反转驱动时间各为2秒,间歇时间为1秒2.三种洗衣工作程序,即标准程序强洗程序、弱洗程序和甩干程序。
全自动洗衣机课程设计基于51单片机,C语言实现。
基本要求模拟全自动洗衣机工作过程。
以电机替代洗衣机电机。
显示洗衣机工作的状态(进水、浸泡、洗衣、脱水、结束)。
显示工作剩余时间(洗衣程序可自定义,时间精度:秒)。
洗衣时交替正、反转。
扩展要求洗衣和脱水时电机转速不同。
增加水位传感器输入。
故障报警。
增加声音提示。
其它自定义功能。
设计用Preteus仿真:仿真图如下:C文件函数代码:#include<reg51.h>//****************************//#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_se = 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 other = P3^1; // 脱水电源控制开关sbit anther = P3^0; // 洗衣电源控制开关//******************************//uchar code 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;//正反转计数//**********************************//// 函数声明//*************************************// void delay();// 延时函数void in(); // 进水子程序void out(); // 出水子程序void over(); // 结束子程序void xi(); // 洗衣子程序void pao(); // 泡衣子程序void xx(); // 脱水子程序void on(); // 工作on处理子程序void se(); // 显示菜单选择void SEG_display(); //显示时间子程序void key_scan(); // 按键扫描子程序//*****************************//// 延时函数//****************************//void delay(uint i){uint x,y;for(x=i;x>0;x--)for(y=120;y>0;y--);}//******************************// // 工作on处理子程序//********************************// void on(){TMOD=0x01;TH0=(65536-50000)/256;TL0=(65536-50000)%256;EA=1;ET0=1;TR0=1;P0 = 0xff;if(flag0 == 0)in();if(flag0 == 1)xi();if(flag0 == 2)pao();if(flag0 == 3)xx();if(flag0 == 4)out();}//*******************************// // 结束子程序//*********************************// void over(){ other=0;anther=0;P0 = 0xff;mo_r=0;mo_l=0;led_over = 0;EA=0;}//*********************************// // 进水子程序//*********************************// void in(){ anther=0;other=0;P0 = 0xff;led_in = 0;flag1++;mo_r = 0;mo_l = 0;min = 0;sec = 8;}//*********************************// // 洗衣子程序//*********************************// void xi(){ anther=1;other=0;P0 = 0xff;led_work = 0;led_xi = 0;mo_r = 1;mo_l = 0;min = 1;sec = 36;quan = 0;}//*********************************// // 泡衣子程序//*********************************// void pao(){anther=1;other=0;P0 = 0xff;led_pao = 0;led_work = 0;flag3++;mo_r = 1;mo_l = 0;min = 1;sec = 35;quan = 0;}//*********************************// // 脱水子程序//*********************************// void xx(){ other=1;anther=0;P0 = 0xff;led_xx = 0;mo_r = 0;mo_l = 1;min = 0;sec = 50;}//*********************************// // 出水子程序//*********************************// void out(){ anther=0;other=0;P0 = 0xff;led_out = 0;flag2++;mo_r = 0;mo_l = 0;min = 0;sec = 5;}//*********************************// // 显示菜单选择//*********************************// void se(){P0 = 0xff;if(flag0 >= 5)flag0 = 0;if(flag0 == 0){led_in = 0;}if(flag0 == 1){led_xi=0;}if(flag0 == 2){led_pao=0;}if(flag0 == 3){led_xx=0;}if(flag0 == 4){led_out=0;}}//********************************// // 菜单处理子程序//**********************************// void menu(){min = 0;sec = 0;mo_r=0;mo_l=0;SEG_display();while(1){if(key_on == 0){delay(5);if(key_on == 0){while(!key_on);on();break;}}//**************************// if(key_off == 0){delay(5);if(key_off == 0){while(!key_off);over();break;}}//****************************//if(key_se == 0){delay(5);if(key_se == 0){while(!key_se);flag0++;se();}}}}//*********************************// // 按键扫描子程序//*********************************// void key_scan(){if(key_menu == 0){delay(5);if(key_menu == 0){while(!key_menu);menu();}}//********************************// if(key_on == 0){delay(5);if(key_on == 0){while(!key_on);on();}}//*********************************// if(key_off == 0){delay(5);if(key_off == 0){while(!key_off);over();}}}//*******************************// // 显示子程序//*********************************// void SEG_display(){P1=0x01;P2 = num[min/10];delay(10);P1 = 0x02;P2 = num[min%10];delay(10);P1 = 0x04;P2 = num[sec/10];delay(10);P1 = 0x08;P2 = num[sec%10];delay(10);}//*********************************// // 主函数//*********************************// void main(){led_in=0;anther=0;other=0;while(1){SEG_display();key_scan();}}//**********************************// // 定时器0中断处理程序//**********************************//void timer0() interrupt 1{TH0=(65536-50000)/256;TL0=(65536-50000)%256;count++;if(count==20){count = 0;sec--;if((flag0==1)||(flag0==2)){quan++;switch(quan){case 1:mo_r=1;mo_l=0;break;case 10:mo_r=0;mo_l=0;break;case 15:mo_r=0;mo_l=1;break;case 25:mo_r=0;mo_l=0;break;default:;}if(quan==30){quan=0;}}//**********************************//if((sec == 0)&&(min != 0)){min--;sec = 59;}//**********************************// if((sec<0)&&(min==0)&&(flag0==0)) //进水结束{switch(flag1){case 1:flag0=1;xi();break;case 2:flag0=2;pao();break;case 3:flag0=2;pao();break;case 4:flag0=2;pao();break;default: err=1;led_wring = 0;}}//**********************************//if((sec<0)&&(min==0)&&(flag0==1)) //洗衣结束{flag0 = 4;out();}//**********************************//if((sec<0)&&(min==0)&&(flag0==2)) //泡衣结束{switch(flag3){case 1:flag0=4;out();break;case 2:flag0=4;out();break;case 3:flag0=4;out();break;default: err=1;led_wring = 0;}}//**********************************//if((sec<0)&&(min==0)&&(flag0==4)) //出水结束{switch(flag2){case 1:flag0=0;in();break;case 2:flag0=0;in();break;case 3:flag0=0;in();break;case 4:flag0=3;xx();break;default: err= 1;led_wring = 0;}}//***********************************// if((sec<0)&&(min==0)&&(flag0==3)){ sec = 0;over();}}}。
基于单片机的全自动洗衣机系统设计一、本文概述随着科技的进步和人们生活水平的提高,家用电器在日常生活中扮演着越来越重要的角色。
全自动洗衣机作为其中的一种,其便捷性和高效性受到了广大用户的青睐。
传统的洗衣机设计在智能化、节能性、操作简便性等方面仍有待提升。
为此,本文提出了一种基于单片机的全自动洗衣机系统设计,旨在通过技术创新和智能控制,为用户提供更加人性化、高效且节能的洗衣体验。
本文将详细介绍该系统的设计原理、硬件构成、软件编程以及实际应用效果。
我们将对单片机的选择及其在系统中的作用进行阐述,同时分析洗衣机控制系统中所需的传感器和执行器。
接着,我们将深入探讨软件设计的关键技术和算法,包括控制逻辑的实现、人机交互界面的设计以及故障检测和处理机制。
我们将通过实际测试和用户体验反馈,对该系统的性能进行评估和优化。
本文旨在提供一种基于单片机的全自动洗衣机系统设计方案,为相关领域的研究和实践提供有益的参考和借鉴。
通过不断优化和创新,我们期待这种智能化、高效且节能的洗衣机能够在未来得到更广泛的应用,为人们的生活带来更多便利和舒适。
二、系统总体设计全自动洗衣机系统的设计,基于单片机作为核心控制器,旨在实现洗衣机的全自动化和智能化。
整个系统由单片机、电机驱动模块、水位检测模块、洗涤剂投放模块、温度控制模块、显示模块和用户交互模块等多个子模块组成。
我们选择一款性能稳定、价格适中且易于编程的单片机作为本系统的核心控制器。
该单片机将负责接收用户输入指令、处理传感器信号、控制各功能模块以及实现与显示模块的通信。
通过编程,单片机能够实现对洗衣机的全面控制,包括启动、停止、调整洗涤方式、设定洗涤时间等功能。
电机驱动模块是洗衣机的动力来源,负责驱动洗衣机的电机进行旋转。
我们选用一款能够驱动电机正反转且具备调速功能的驱动模块,通过单片机输出的PWM信号实现对电机转速的精确控制。
电机驱动模块还具备过流保护功能,以确保系统的安全可靠。
1 课题分析v4扦测无错但有-处警告1.1目的意义目前中国洗衣机市场正进入更新换代期,市场潜力巨大,人们对于洗衣机的要求也越来越高,目前的洗衣机主要有强弱洗涤功能、进排水系统故障自动诊断功能、暂停等七大功能,在许多方面还不能达到人们的需求。
这就要求设计者们有更高的专业和技术水平,能够提出更多好的建议和新的课题,将人们的需要变成现实,设计出更节能、功能更全面、更人性化的全自动洗衣机。
目前的洗衣机都没有实现全方面的兼容,大多洗衣的厂家都注重各自品牌的洗衣机的特长,突出一两个与别的洗衣机不同的个性化的功能,洗衣机的各项功能是由单片机控制实现的,单片机的体积小,控制功能灵活,因此,设计出基于单片机的全自动洗衣机控制电路系统具有很强的实用性。
用单片机设计出简单操作省水省电的洗衣机,在方便日常生活和节约资源方面都有重要意义由于个人能力有限,我能设计的洗衣机比前沿科技产品要差很多。
所以我这次课设的主要目的在于通过操作掌握知识,通过查找资料和尝试分析培养自己的能力。
把这学期课程中零散的知识进行整合,将理论的知识联系到实际的生活中。
在实例中深入理解一些理论知识,并从中有所收获,就是意义所在。
1.2 国内外情况当今世界是技术、知识大爆炸的年代,只要人们有需要,就有可能生产出某种产品来满足人们的需要。
洗衣机的发展正是这样,人们在生活中发现了它的某些不便,就会在实际中不断地改进和完善它,新型的洗衣机正是在这种情况下诞生的。
1、超声波洗衣机超声振动产生空穴现象,在洗涤中通过边生产气泡边消失的运动,产生强水压,再加入小量洗衣剂,振动纤维,超声乳化,去污,水中气泡上升,产生了从洗涤桶中央向外侧翻动的水流,使衣服之间相互摩擦,并与洗涤剂充分接触产生很有效的洗涤作用。
这种洗衣机洗涤桶小,桶内无运动部件,无机械电气故障,修理方便。
词典均匀性好,不缠绕,不伤布料,洗净效果好,省水,省电。
2、电磁洗衣机这种洗衣机洗涤桶内有4个洗涤头,上面各有有个夹子,把衣物伸展夹住,每个洗涤头上有有个电磁线圈,接通电源发生2500次/秒的微击振动,使衣物在洗涤液中洗涤。
基于单片机的自动洗衣机设计基于单片机的自动洗衣机设计1 总体方案设计分析1.1全自动洗衣机控制方法选择在全自动洗衣机中,现在比较通用的控制手段是利用单片机或者PLC两种方法,本课设选用的是单片机。
之所以选用单片机主要考虑了以下原因,首先,单片机具有较强的抗干扰能力,当受到外部强干扰,程序出错时,可以自动使系统复位重新执行程序。
并且采用无噪声、无电磁干扰的双向晶闸管作为控制元件,控制电磁阀和电机。
其次,单片机具有欠压和过压保护,欠压时,控制器不工作;超压时,保护电路起作用。
再次,单片机还具有瞬间掉电保护功能,电源短时间停电后,电压恢复时,能够维持原来运行程序的工作状态并继续完成洗衣程序。
最后,各种操作和洗衣机的运行状态均可以用LED显示。
此外,在硬件规模方面,单片机相当于将一个基本规模的单板机所具有的资源复合在一块芯片上,因此具有相当的规模;在功能方面,单片机已经超过了PLC的功能;在指令系统方面,如果将单片机的指令系统PLC的指令系统相比较,除单片机的数据传送能力较弱一点之外,单片机的指令系统已大大超过PLC;此外,无论在性价比方面,还是在体积、重量方面相比较,单片机都比PLC优越得多。
综合上述原因本章设采用单片机来完成。
二、方案构思全自动洗衣机由洗衣系统和控制电路组成。
其控制电路分为机械和电脑型,电脑型控制电路是以单片机作为控制电路的核心。
自动洗衣机的洗衣程序,键盘上有两个按钮01键和02键。
01键设为开始按钮;02键设为停止按钮,其功能是按下停止按钮后洗完一个周期后停止,中间不能停。
洗衣机的标准洗衣程序是;开始--进水--洗涤--排水--进水--清洗--排水--脱水。
1.洗涤过程通电后,洗衣机进入暂停状态,以便放好衣物并且等待按下开始按钮。
当按下开始按钮01时,进入洗涤过程。
首先进水阀打开,开始进水,向洗衣机供水;当到达预定水位时,进水阀关闭,停止进水;步进电动机接通电源,开始旋转,形成洗衣水流。
《基于单片机的全自动洗衣机系统设计》篇一一、引言随着科技的进步和人们生活水平的提高,全自动洗衣机已经成为了现代家庭不可或缺的家电之一。
为了提高洗衣机的智能化程度和用户体验,本文提出了一种基于单片机的全自动洗衣机系统设计。
该系统通过单片机控制,实现了洗衣过程的自动化、智能化,提高了洗衣效率,同时也方便了用户的使用。
二、系统设计概述本系统以单片机为核心控制器,通过连接各种传感器、执行器等外部设备,实现对洗衣过程的自动化控制。
系统主要由单片机控制模块、电机驱动模块、水位检测模块、温度检测模块、洗衣程序模块等组成。
三、硬件设计1. 单片机控制模块:本系统采用单片机作为核心控制器,负责接收用户输入的指令,控制各个模块的工作。
单片机具有体积小、功耗低、性能稳定等优点,能够满足系统的需求。
2. 电机驱动模块:电机驱动模块负责驱动洗衣机的洗涤电机和脱水电机。
本系统采用PWM(脉宽调制)技术,通过单片机控制电机驱动模块的开关,实现对电机的精确控制。
3. 水位检测模块:水位检测模块通过传感器实时检测洗衣机内的水位,将检测结果反馈给单片机,以便单片机根据水位情况调整洗衣程序。
4. 温度检测模块:温度检测模块通过温度传感器实时检测洗衣机内的水温,将检测结果反馈给单片机,以便单片机根据水温情况调整洗涤时间和洗涤剂的使用量。
5. 洗衣程序模块:洗衣程序模块根据用户的选择和洗衣的实际需求,通过单片机控制电机驱动模块、水位检测模块和温度检测模块等外部设备,实现对洗衣过程的自动化控制。
四、软件设计本系统的软件设计主要包括单片机的程序设计、人机交互界面设计和洗衣程序的设计。
1. 单片机的程序设计:单片机的程序设计是实现系统功能的关键。
本系统采用C语言进行编程,通过编写相应的程序代码,实现单片机的控制功能。
2. 人机交互界面设计:人机交互界面是用户与系统进行交互的窗口。
本系统采用LCD显示屏作为人机交互界面,通过编写相应的程序代码,实现用户与系统的交互功能。
开题报告电气工程及其自动化基于MCS-51单片机的洗衣机控制设计系统一、综述本课题国内外研究动态,说明选题的依据和意义1、全自动洗衣机介绍洗衣机是一种在家庭中不可缺少的家用电器,发展非常快,而全自动式洗衣机因使用方便更加得到大家的青睐,全自动即进水、洗涤、漂洗、甩干等一系列过程自动完成,控制器通常设有几种洗涤程序,对不同的衣物可选择不同的洗涤方式。
全自动洗衣机是利用电能产生机械作用来洗涤衣物的清洁电器。
洗衣机的发展速度非常快,其中全自动式洗衣机因使用方便更加得到大家的青睐,全自动即进水、洗涤、漂洗、甩干等一系列过程自动完成,控制器通常设有几种洗涤程序,对不同的衣物可选择不同的洗涤方式。
现在的洗衣机主要有强弱洗涤功能、进排水系统故障自动诊断功能、暂停等七大功能,但由于人们对于洗衣机的需求越来越大,要求也越来越高,洗涤方式也发生了很大的变化,由原先大多侧重于动力的加大、水流的改变,到现在的超音波、电解水、蒸汽洗涤的运用,向更高层次的环保健康洗涤方式转变。
2、全自动洗衣机的发展背景一直以来,洗衣服是一件日常生活中必不可免的家务劳动,人们几乎每天都要消耗一定的时间和精力在这项劳动上,对义务进行手搓、甩打、冲刷……给人们更多带来的是辛苦劳累。
随着世界科技的发展,在1858年一个名叫汉密尔顿·史密斯的美国人在匹茨堡制成了第一台洗衣机紧接着在1874年美国人比尔·布莱克斯研制成了木制手摇洗衣机,这套装置虽然简单,却给了那些为提高生活效率而冥思苦想的人士大受启发,更进一步的加快了洗衣机的改进过程。
接下来,蒸汽洗衣机、水力洗衣机、内燃机洗衣机也相继出现。
在1910年,美国的费希尔在芝加哥研制成功了世界上第一台电动洗衣机。
电动洗衣机的出现,同时也标志着洗衣机自动化的美好开端。
1922年,美国玛塔依格公司改造了洗衣机的洗涤结构,由此诞生了第一台搅拌式,其合理的科学结构受到了人们的普遍欢迎。
1932年,美国本德克斯航空公司研制出了第一台前装式滚筒洗衣机,它能够把洗涤、漂洗、脱水在同一个滚筒内完成,着意味着电动洗衣机又越上了一个新的台阶,朝自动化迈进了一大步。
基于51单片机的智能洗衣控制系统设计
智能家居技术在现代社会中得到了广泛的应用,其中智能洗衣控制系统是一个颇有研究价值的领域。
本文基于51单片机,设计了一种智能洗衣控制系统,并进行了相关的实验测试及结果分析。
首先,本文对智能洗衣控制系统进行了需求分析,明确了系统的基本功能和要求。
然后,利用51单片机作为系统的核心控制器,设计了系统的软硬件结构,并进行了电路图的绘制和系统的编程。
在编程过程中,除了使用基本的汇编语言程序外,还采用了C语言进行部分高层次的编程。
接着,本文对系统进行了实验测试及结果分析。
实验结果表明,本系统能够实现洗衣机的基本操作和控制,具有一定的智能化能力。
用户可以通过系统按键进行不同洗涤模式的选择和启动,同时系统还可以判断洗衣机的状态,并进行自动调整。
最后,本文进行了系统的总结和展望。
虽然本系统在实现智能化方面取得了一定的成果,但是在可扩展性和可靠性方面还存在着一定的不足。
未来的研究工作可以进一步完善系统的功能,提高系统的性能,加强系统的稳定性,以满足日益增长的智能家居市场需求。
综上所述,本文基于51单片机,设计了一种智能洗衣控制系统,并进行了相关的实验测试及结果分析。
该系统可为智能洗衣机的发展提供一定的参考和借鉴,同时也有利于推动智能家居技术的进一步应用和发展。
基于51单片机的全自动洗衣机控制系统设计摘要:本文介绍了基于51单片机的全自动洗衣机控制系统的设计。
该系统可以自动完成洗涤、漂洗、脱水等工作。
系统采用了多种传感器和执行器,如流量传感器、温度传感器、电机等,以检测和控制洗衣机的各项参数。
设计使用了C语言编程完成,通过设计电路和编写程序使得全自动洗衣机可以更加方便、可靠地使用。
关键词:51单片机;全自动洗衣机;控制系统。
引言:洗衣机作为现代家庭中必备的家电设备之一,已经成为人们生活中不可或缺的家电产品。
在现代生活节奏加快的背景下,为了节省人们的宝贵时间,并且避免可能的工作失误,现代洗衣机越来越普及和流行。
在现代洗衣机中,全自动洗衣机的功能和性能已经得到了更进一步的提升。
通过使用多种传感器和执行器,洗衣机可以自动完成洗涤、漂洗、脱水等工作,从而更加方便、快捷地满足人们的需求。
本文针对现有洗衣机存在的一些问题,在51单片机的控制下,设计了一种基于51单片机的全自动洗衣机控制系统,该系统可以实现洗涤、漂洗、脱水等功能,并且结合流量传感器、温度传感器等多种传感器与执行器,实现对洗衣机各项参数的检测和控制,从而确保系统更加安全、可靠地工作。
系统设计:1. 系统框架搭建首先,本文基于51单片机完成了洗衣机的系统框架搭建。
包括用户界面、主控程序、PWM输出控制、电机控制等模块。
用户可以通过操作面板进行洗衣机参数的设定,通过主控程序控制各个执行器,实现对洗衣机的控制。
2. 传感器的使用在洗衣机的设计中,我们使用了多种传感器,并利用单片机对其进行控制。
其中,流量传感器可以检测洗衣机内的水位,并控制水泵的工作来达到控制水流量的目的。
温度传感器可以检测洗涤水的温度,并控制加热器的工作来调整洗涤温度。
通过这些传感器,可以充分地检测和控制洗衣机的各项参数,从而保证洗衣机的顺利工作。
3. 执行器的使用在洗衣机的设计中,我们还使用了多种执行器。
其中,电机是最重要的执行器之一。
我们使用电机来控制洗衣筒的旋转,通过PWM输出控制可以调整电机的转速。
引言从古到今,洗衣服都是一项难于逃避的家务劳动,而在洗衣机出现以前,对于许多人而言,它并不像田园诗描绘的那样充满乐趣,手搓、棒击、冲刷、甩打……这些不断重复的简单的体力劳动,留给人的感受常常是:辛苦劳累。
1858年,汉密尔顿·史密斯制成了世界上第一台洗衣机。
1874年,“手洗时代”受到了前所未有的挑战,美国人比尔·布莱克斯发明了世界上第一台人工搅动洗衣机。
1911年美国人又研制了世界上第一台电动洗衣机。
1920年美国的玛依塔格公司又把洗衣机的木制桶改为铝制桶体,第二年又把铝制桶体改为外层铸铝、层为铜板的双层结构。
1936年,他们又将搪瓷用于洗衣机桶体。
与此同时,世界各地也相继出现了洗衣机。
欧洲国家研究成功了喷流式洗衣机和滚筒式洗衣机。
1932年后,美国一家公司研制成功了第一台前装式滚筒全自动洗衣机,洗涤、漂洗和脱水都在同一个滚筒自动完成,使洗衣机的发展跃上了一个新台阶。
这种滚筒洗衣机,目前在欧洲、美洲等地得到了广泛的应用。
第二次世界大战结束后,洗衣机得到了迅速的发展,研制出具有独特风格的波轮式洗衣机。
这种洗衣机由于其波轮安装在洗衣桶底,又称涡卷式洗衣机。
近几十年,在工业发达国家,全自动洗衣机制造技术又得到迅速发展,其年总产量与社会普与率均以达到相当高得水平。
1.节洗衣机控制器的概述1.1课题开发背景随着人民生活水平的提高,越来越多的人需要用洗衣机。
现在洗衣机越来越高度自动化,只要衣服放入洗衣机,简单的按两个键,就会自动注水,一些先进的电脑控制洗衣机,还能自动的感觉衣物的重量,自动的添加适合的水量和洗涤剂,自动的设置洗涤的时间和洗涤的力度,洗涤完以后自动的漂洗甩干,更有些滚筒洗衣机还会将衣物烘干,整个洗衣的过程完成以后还会用动听的音乐声提醒用户,用户可以在洗衣的过程做其它的事,节省了不少的时间。
总之,每一项技术的进步极推动了洗衣过程自动化程度的提高。
1.2目的意义本次设计的洗衣机摔制器是为了满足不同用户的不同需求。
基于单片机的洗衣机设计摘要洗衣机是人们日常生活中常见的一种家电,已经成为人们生活中不可缺少的家用电器。
在工业生产中应用也十分广泛。
但是传统的基于继电器的控制,已经不能满足人们对洗衣机的自动化程度的要求了。
随着单片机技术的发展,用单片机来作为控制器,能更好的控制洗衣机,并且控制方式灵活多样,控制模式可以根据不同场合的应用而有所不同。
单片机以微小的体积和编程的灵活性而产生多种控制功能,完全可以满足设计的需求。
本系统采用AT89C51单片机作为控制系统,设计目的主要是为了熟悉单片机系统设计的基本方法并实现基本的洗衣机功能。
系统的控制面板主要由按键开关组成,按键选择洗衣机工作模式,并且可以根据需要调整洗涤时间长短。
LED液晶显示器则显示洗衣机的工作模式和洗涤时间。
洗衣机的整体电路模块包括按键矩阵、液晶显示、电机及驱动电路。
控制程序设计包括定时中断服务程序、时间设定程序、外中断服务程序及主程序。
整体来说系统设计基本达到设计目标。
关键词:单片机控制洗衣机液晶屏电机AbstractWashing machine is the People's Daily life common kind of home appliance, life has become a indispensable household electrical appliances. In the industrial production is also widely used. But the traditional relay-based control, cannot have satisfied people to the requirements of the automation degree of the washing machine. Along with the development of the single chip microcomputer by using single chip processor to as a controller, and can better control washing machines, and to control the way agile diversity, control mode according to different situation the application can be different. With a small volume andmicrocontroller programming flexibility and produce DuoZhong control function, and can meet the design requirements. The system USES AT89C51 single chip microcomputer as control system, the design purpose mainly to familiar with single-chip microcomputer system the basic method to design and realize the basic function of the washing machine. The system control panel composed mainly by button switches, key choice washing machine work mode, and may, according to needs to adjust the washing time length. LED LCD display of the washing machine is working mode and washing time. The washing machine of the whole circuit module includes key matrix, liquid crystal display, motor and power circuit. Control program design including timing interrupt service procedure, time setting process, and outside the interrupt service routine and main program. Overall system design to meet the design basic goals.Keywords: Single-chip microcomputer control washing machine LCD screen motor目录摘要 (1)ABSTRACT (1)目录 (3)第一章绪言 (4)1.1背景材料 (4)1.2系统设计任务和要求 (8)1.2.1 设计任务 (8)1.2.2 系统设计要求 (10)1.3系统解决的问题和拟采用的研究手段 (10)第二章硬件设计 (11)2.1 方案的选择与比较 (11)2.2 系统设计总体框图 (12)2.3 电路模块设计 (12)2.3.1 控制电路 (12)2.3.2驱动电路 (13)2.3.3显示电路 (13)第三章软件设计 (14)3.1控制程序设计 (14)3.1.1 程序设计流程图 (14)3.1.2 程序代码 (14)3.2模拟软件调试 (21)3.2.1系统仿真图 (21)3.2.2 PCB图 (21)第四章系统测试 (22)3.1仪器设备 (22)3.2数据测试 (22)第五章总结 (23)致谢 (24)参考文献 (25)第1章绪论1.1 背景材料一百年的风风雨雨走过来,洗衣机也经过了无数次的创新、改进,今天我们看到一个个外形精美的或滚筒或波轮洗衣机,可曾想到,它们可也是在历史长河慢慢“进化”而来的。
基于51单片机的全自动洗衣机控制系统设计王聪1 引言全自动洗衣机作为家用电器,已经走入了千家万户的生活中,成为了我们生活的必需品。
目前中国的洗衣机市场需求特别大而且潜力巨大,人们对洗衣机的要求也越来越高。
目前洗衣机的功能很多,但是并不能完全满足人们的需求,这就要求设计者们在进行设计以及改进是更加贴近生活,符合民意,将人们的需求变为设计的根本,创造出更节能、更安全、更干净舒适的全自动洗衣机。
目前的洗衣机市场竞争压力大,各个厂商在设计和制造时往往只能单一提现洗衣机的几个功能,体现出自己的个性化而并不能全面兼备。
这就给我们带来了生活上的不便,我们需要更加智能而且全面的洗衣机。
所以,本论文就全自动洗衣机的选择与性能设计进行讨论与设计。
此次设计需要解决的问题有:如何选择本次设计的全自动洗衣机类型;分析此类全自动洗衣机的优缺点,提出课题设计方案方向;就全自动洗衣机的安全性与清洁性进行设想与设计;单片机与传感器的选择、安置以及各自实现的功能;电路及控制系统的设计。
1.1课题的提出及意义本次所选择的题目为基于单片机的全自动洗衣机的控制系统的设计。
在我们日常生活中,全自动洗衣机主要可以分为波轮式洗衣机和滚筒式洗衣机。
在选择洗衣机的类型之前,要对两种洗衣机的应用范围、工作方式、内部结构进行了解调查。
通过走访邻里和网上调查,了解相对小样本下两种洗衣机的使用情况以及在使用过程中出现的一系列问题,根据使用数量的多少和出现问题的程度,选择使用量和出现问题较多的洗衣机。
选题人自行调查两种洗衣机的工作方式、工作1流程、工作原理以及软硬件的构成,自行观察两种洗衣机的实际运行过程以及运行结束后水、衣服的清洁程度。
通过对比两种洗衣机的运行过程以及运行模式,选择洗衣较为干净,运行更接近于手洗模式的洗衣机,选定为我们此次研究对象。
通过选题人的对比和观察,此次研究对象选择为滚筒式全自动洗衣机。
本课题针对于当下全自动洗衣机的研究现状以及能够实现的功能,结合自身的生活需求和常见问题,能够做出基本满足本课题选择的滚筒式全自动洗衣机的控制系统设计。
单片机原理及系统课程设计专业:自动控制班级:控1102姓名:学号:指导教师:兰州交通大学自动化与电气工程学院2014年1月13日基于51单片机的洗衣机设计1 设计目的、要求及原理1.1设计目的由单片机控制实现洗衣机的各项功能,单片机的体积小,控制功能灵活,因此,设计出基于单片机的全自动洗衣机控制电路系统具有很强的实用性。
用单片机设计出简单操作省水省电的洗衣机,在方便日常生活和节约资源方面都有重要意义。
由于个人能力有限,我能设计的洗衣机比前沿科技产品要差很多。
所以我这次课设的主要目的在于通过亲手操作,查找资料,培养自己的分析设计能力。
把这学期课程中零散的知识进行整合,将理论的知识联系到实际的生活中。
在实例中深入理解一些理论知识,并从中有所收获,就是意义所在。
1.2设计要求通过仿真软件模拟洗衣机的基本工作过程,如进水、洗涤、排水、漂洗、脱水等。
1.3设计方法利用89C51单片机的P0,P1,P2,P3串行输入输出功能,控制数码管、电机、发光二极管的工作状态模拟洗衣机的基本工作过程。
2 设计方案及原理2.1 设计方案洗衣机的主要工作程序是:进水—洗涤—排水—进水—漂洗—排水—脱水—排水。
上述工作程序中,主要包含三个过程,洗涤过程、漂洗过程、脱水过程。
(1) 洗涤过程:放好待洗物,启动开关,进水阀通电,向洗衣机供水,当供水达到预定时间后,进水阀断电关闭,停止供水。
洗涤电动机接通电源,带动波轮(或桶)旋转,产生各种形式的水流搅动衣物进行洗涤。
通过电动机不停的正转、反转,形成洗涤水对洗涤物产生强烈的翻滚作用。
同时,衣物之间、衣物与四周桶壁之间产生互相摩擦和撞击力,以次达到洗涤衣物的目的。
(2) 漂洗过程:漂洗的目的在于清除衣物上的洗涤液。
因此,在洗涤结束之后,换水进行漂洗。
漂洗过程与洗涤过程的电器动作是完全相同的。
为了完全漂净衣服上的洗衣粉等,所以要多次漂洗,在这次设计中漂洗次数设定为三次。
(3) 脱水过程:漂洗后,需要对衣物进行脱水以便晾干,节省水资源,所以脱水是洗衣过程中必不可少的环节。
漂洗过程结束后,电动机停止转动,排水阀通电,打开排水阀门排水。
当排水到达预定时间后,脱水电动机接通,电机带动脱水桶高速旋转,利用离心力把衣服上的水从桶壁的小眼里甩出。
全部洗衣工作完成后,表示结束的LED灯点亮,表示衣物已经洗好,洗衣机在这时就会自动停止工作。
2.2 设计原理本设计用51单片机实现对洗衣机的控制,通过功能选择开关可以选择洗衣机的工作模式。
当选择好模式后洗衣机进入相应的工作状态。
该模式的参数已装入单片机中,洗衣机在单片机中预先装入程序的控制下进行工作。
程序实现的主要功能是洗涤,漂洗和脱水的控制。
其中洗涤时间设为96s,用sec和min控制,其中sec代表分钟min代表秒。
并且通过改变它们的值可以改变洗涤时间。
用P3.2和P3.3控制电机的正反转(通过它们高低不同的电平控制电流的方向,从而改变电机的转向。
漂洗过程和洗涤过程较为相似,由于漂洗要多次进行,所以用进水次数标志位flag1控制漂洗的次数,当flag1=2、3、4时为漂洗过程。
脱水过程是在出水次数flag2的控制下进行。
当flag2=4时脱水,当脱水时间到达0后,脱水结束,洗衣结束,表示停止的指示灯亮。
图1 系统组成框图3 硬件设计3.1系统主要元器件在本设计中主要使用了以下元器件:AT89C51芯片、74LS245芯片、四数码管、发光二极管、直流电动机、三极管等。
3.2 设计原理图洗衣机的各项功能是由单片机控制实现的,单片机的体积小,控制功能灵活,因此,设计出基于单片机的全自动洗衣机控制电路系统具有很强的实用性采用5l 系列单片机作为控制核心,主要包括功能选择及控制电路、洗衣机工作状态显示及输出控制电路。
控制电机正反转以及进水阀和排水阀的开启和关闭。
如图2所示为设计原理图。
图2 硬件连接图4 软件设计4.1 主程序流程图按下K1键,洗衣机从待命状态。
当按下K2键后,51单片机通过预先装入的程序控制各引脚的状态,让洗衣机才进入工作状态,以实现进水、洗衣、排水、漂洗、脱水、报警等基本功能。
主程序流程图如图3所示。
图3 主程序流程图5 系统仿真及实际调试5.1 仿真结果图4 :系统仿真结果5.1 问题分析本电路为模拟洗衣机工作过程,所以进水和排水部分只能用输出引脚上的发光二极管表示工作状态,报警电路为脱水过程的保护电路,当脱水未结束打开洗衣机盖的时候,报警电路工作并断开电机电源,防止发生事故。
6 总结在本设计中通过软,硬件的配合设计,很好的实现了洗衣机的控制功能。
本系统结构简单,控制功能强大,自动化程度高等特点。
系统软硬件设计采用模块化的设计方法,各模块功能相对独立,最后把它们整合在一起,大大的缩短了系统的设计周期。
为保证洗衣机及人身安全,设计了报警电路。
本设计还考虑半自动的设计,用户可以根据自己的需求自由选择洗衣机的工作方式,这一点是通过功能选择键实现的。
通过这次单片机课程设计,不仅巩固了课本上所学的知识,而且更加深刻地认识到了单片机在生活中的重要地位,通过这次课程设计让我对单片机系统设计的过程与方法有了一定的认识,很好的培养了自己的创新设计能力。
参考文献[1] 李朝青.单片机原理及接口技术[M].北京:北京航空航天出版社,1999.[2] 顾滨.单片微计算机原理、开发及应用[M].北京:高等教育出版社,2000.[3] 王思明,张金敏,苟军年等.单片机原理及应用系统设计[M]:科学出版社,2012.[4] 房小翠.单片机实用系统设计技术[M].北京:国防工业出版社,1990.附录1 源程序#include<reg51.h>#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_se=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 other=P3^1; // 脱水电源控制开关sbit anther=P3^0; // 洗衣电源控制开关//******************************//uchar code 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; // 正反转计数//**********************************//void delay(); // 延时函数void in(); // 进水子程序void out(); // 出水子程序void over(); // 结束子程序void xi(); // 洗衣子程序void pao(); // 泡衣子程序void xx(); // 脱水子程序void on(); // 工作on处理子程序void se(); // 显示菜单选择void SEG_display(); // 显示时间子程序void key_scan(); // 按键扫描子程序void delay(uint i){uint x,y;for(x=i;x>0;x--)for(y=120;y>0;y--);}//*********工作on处理子程序**********// void on(){TMOD=0x01;TH0=(65536-50000)/256;TL0=(65536-50000)%256;EA=1;ET0=1;TR0=1;P0 = 0xff;if(flag0==0)in();if(flag0==1)xi();if(flag0==2)pao();if(flag0==3)xx();if(flag0==4)out();}//********结束子程序*********//void over(){ other=0;anther=0;P0=0xff;mo_r=0;mo_l=0;led_over=0;EA=0;}//**********进水子程序**********//void in(){ anther=0;other=0;P0=0xff;led_in=0;flag1++;mo_r=0;mo_l=0;min=0;sec=8;}//**********洗衣子程序**********// void xi(){ anther=1;other=0;P0=0xff;led_work=0;led_xi=0;mo_r=1;mo_l=0;min=1;sec=36;quan=0;}////********泡衣子程序********// void pao(){anther=1;other=0;P0=0xff;led_pao=0;led_work=0;flag3++;mo_r=1;mo_l=0;min=1;sec=35;quan=0;}//*********脱水子程序********// void xx(){ other=1;anther=0;P0=0xff;led_xx=0;mo_r=0;mo_l=1;min=0;sec=50;}//********出水子程序********// void out(){ anther=0;other=0;P0=0xff;led_out=0;flag2++;mo_r=0;mo_l=0;min=0;sec=5;}//**********显示菜单选择********// void se(){P0=0xff;if(flag0 >= 5)flag0=0;if(flag0==0){led_in=0;}if(flag0==1){led_xi=0;}if(flag0==2){led_pao=0;}if(flag0==3){led_xx=0;}if(flag0==4){led_out=0;}}//*********菜单处理子程序**********// void menu(){min=0;sec=0;mo_r=0;mo_l=0;SEG_display();while(1){if(key_on==0){delay(5);if(key_on==0){while(!key_on);on();break;}}//**************************//if(key_off==0){delay(5);if(key_off==0){while(!key_off);over();break;}}//****************************//if(key_se==0){delay(5);if(key_se==0){while(!key_se);flag0++;se();}}}}//*********按键扫描子程序*********// void key_scan(){if(key_menu==0){delay(5);if(key_menu==0){while(!key_menu);menu();}}//********************************// if(key_on==0){delay(5);if(key_on==0){while(!key_on);on();}}//*********************************// if(key_off==0){delay(5);if(key_off==0){while(!key_off);over();}}}//*********显示子程序**********// void SEG_display(){P1=0x01;P2=num[min/10];delay(10);P1=0x02;P2=num[min%10];delay(10);P1=0x04;P2=num[sec/10];delay(10);P1=0x08;P2=num[sec%10];delay(10);}//*********主函数**********//void main(){led_in=0;anther=0;other=0;while(1){SEG_display();key_scan();}}//*****定时器0中断处理程序*****// void timer0() interrupt 1{TH0=(65536-50000)/256;TL0=(65536-50000)%256;count++;if(count==20){count=0;sec--;if((flag0==1)||(flag0==2)){quan++;switch(quan){case 1:mo_r=1;mo_l=0;break;case 10:mo_r=0;mo_l=0;break;case 15:mo_r=0;mo_l=1;break;case 25:mo_r=0;mo_l=0;break;default:;}if(quan==30){quan=0;}}//**********************************//if((sec==0)&&(min != 0)){min--;sec=59;}//**********************************//if((sec<0)&&(min==0)&&(flag0==0)) //进水结束{switch(flag1){case 1:flag0=1;xi();break;case 2:flag0=2;pao();break;case 3:flag0=2;pao();break;case 4:flag0=2;pao();break;default: err=1;led_wring = 0;}}//**********************************//if((sec<0)&&(min==0)&&(flag0==1)) //洗衣结束{flag0=4;out();}//**********************************//if((sec<0)&&(min==0)&&(flag0==2)) //泡衣结束{switch(flag3){case 1:flag0=4;out();break;case 2:flag0=4;out();break;case 3:flag0=4;out();break;default: err=1;led_wring = 0;}}//**********************************//if((sec<0)&&(min==0)&&(flag0==4)) //出水结束{switch(flag2){case 1:flag0=0;in();break;case 2:flag0=0;in();break;case 3:flag0=0;in();break;case 4:flag0=3;xx();break;default: err=1;led_wring=0;}}//***********************************//if((sec<0)&&(min==0)&&(flag0==3)){ sec=0;over();}}}。