全自动洗衣机单片机课程设计
基于单片机的洗衣机课程设计

基于单片机的洗衣机设计一.设计目的、要求及方法1.设计目的1)了解8051单片机;2)熟悉单片机控制系统开发流程;3)深入学习计算机c语言的编程方法;4)对计算机的工作原理有进一步的认识;2.设计要求1)设计一个用单片机控制的洗衣机控制器;2)洗涤三个控制按钮标准方式:洗涤12分钟;漂洗5分钟,二次;脱水3分钟;轻柔方式:洗涤3 分钟;漂洗3分钟,二次;脱水2分钟;强力方式:洗涤4分钟;漂洗1分钟,二次;脱水2分钟;3)洗涤时洗涤指示灯闪烁,漂洗时漂洗指示灯闪烁,脱水时脱水指示灯闪烁;4)洗涤、漂洗6秒正转,停1秒,反转6秒,停1秒;3.设计方法利用单片机的P1端实现洗涤方式的选择;P2端实现对电机的控制;P3端实现洗涤过程显示。
二.设计原理及方案1.设计原理该控制器选用洗衣机的部分功能,包括洗涤方式和直流电机的转动以及洗流程。
该控制器由硬件设计和软件设计构成。
在硬件设计上,用单片机AT89C51作为整个电路的核心部分,整个洗涤程序就是靠它来实现,由它来输出信号到驱动电路,让驱动电路来驱动电动机运转;采用L298作为电路的驱动电路,可以将控制芯片的输出转换成较高的电压和能够输出较大的电流,使洗衣机拥有标准、轻柔、强力三种洗涤方式;电路中采用直流电机,其将直流电能转换为机械能;三个指示灯采用发光二极管,其可以将电能转化为光能,在不同的洗涤方式下对应不同的灯工作;电路中的定时由晶体震荡器来产生,提高系统的时钟频率。
在软件设计上,c语言功能丰富,表达能力强,使用灵活方便,因此采用c语言编1写程序。
程序设计包括主函数的设计和子程序的设计两部分,子程序采用模块化的设计方法,在主函数中根据不同的洗涤方式调用不同的子程序来实现对电机的正转和反转控制和标准、轻柔、强力三种洗涤方式,通过在子程序上对时间进行不同的设定来控制电机运转时间。
各模块功能相对独立,缩短系统的设计周期。
2.设计方案1)系统结构该系统由单片机、晶振电路、复位电路、洗衣机洗涤方式选择电路、电机驱动电路、报警电路、LED指示灯及电机组成。
基于单片机的洗衣机课程设计

摘要设计要满足如下要求:实现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单片机,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。
单片机洗衣机课程设计

单片机洗衣控制系统课程设计报告摘要单片机是计算机家庭的一个重要分支,它具有体积小、价格低、面向控制的特点,适用于各种工业控制、仪器仪表装置,在人类生产和生活的各个领域都有极为广泛应用。
本洗衣机控制系统,采用目前常用的89C51单片机,用汇编语言的编程方法,完成对洗衣机洗衣全过程的自动控制,并采用LED数码显示洗衣过程代码和洗衣剩余时间,洗衣完成后能自动报警。
使全自动洗衣机的使用更加简单、直观和方便。
本设计取材容易,结构简洁,易于制作,具有一定的实用价值。
关键字:单片机、汇编语言、动态扫描目录:1.绪论 (3)1.1 设计目标 (3)1.2 设计目标 (3)1.3 设计意义 (3)2.硬件设计 (3)2.1洗衣机控制器的外部设计 (3)2.1.l洗衣机控制器控制面板的设计 (3)2.1.2硬件设计框图 (4)2.2系统硬件 (6)2.2.1强中弱三档开关 (6)2.2.2水位检测电路 (7)2.2.3电机正反转电路 (7)2.3各芯片介绍 (8)2.3.1 MCS-51单片机介绍 (8)2.4 MCS-51单片机的管脚图和各个管脚的作用 (10)2.5 单片机的复位与震荡电路 (12)3. 设计心得及建议 (14)4. 参考文献 (14)1.绪论在生产和生活的各个领域中,凡是有自动控制要求的地方都会有单片机的出现。
单片机的应用有利于产品的小型化、多功能化和智能化,而且抗干扰能力强,可在各种恶劣的环境下可靠地工作,成本也较低。
所以单片机的应用已极为广泛,它在工业自动化、工业测控、智能仪器仪表、家用电器、信息与通信、军事装备等方面都在发挥着“微电脑控制”的作用。
1.1 设计目标根据洗衣机的控制要求,从功能要求、硬件设计描述一个以MCS-51单片机为控制核心的洗衣机控制系统。
给出硬件设计线路图和相关的控制程序流程图。
1.2 设计目标用51系列单片机89C51控制全自动洗衣机的运行,使其能自动地完成进水、洗涤、漂洗、脱水等功能。
全自动洗衣机控制器设计单片机课程设计报告书

单片机大作业(论文)题 目 全自动洗衣机控制器设计姓 名 xxx学 号 xxxx专业班级 xx指导教师 xx学 院 xx宁波理工学院完成日期xx摘要现如今,随着科技的发展和生活质量的提高,全自动洗衣机在很多家庭中已经变得很常见,它是一种同时具有洗涤、漂洗和脱水等功能,且它们之间的转换不用手工操作而能知道进行的洗衣机。
同时,随着数字技术的快速发展,数字技术被广泛应用于智能控制的领域中。
单片机以体积小、功能全、价格低廉、开发方便的优势得到了许多电子系统设计者的青睐,它适合于实时控制,可构成工业控制器、智能仪表、智能接口、智能武器装置以及通用测控单元等。
本文以AT89S51单片机为核心,设计了全自动洗衣机控制系统。
本系统实现了对洗衣机整个洗衣过程的控制,包括用户设定、洗衣、脱水和结束四个阶段。
控制系统主要数字控制电路模块构成。
数字控制电路负责控制洗衣机的工作过程,主要由AT89S51单片机、两位共阳数码管、按键、蜂鸣器、LED指示灯组成。
本系统的电路设计相对简单,给AT89S52单片机烧录软件程序hex文件后,便能够实现全自动洗衣机的基本功能,具有一定的实用性。
关键词:AT89C51;控制系统;LED;伟福仿真软件目录摘要 (I)第1章概述 (3)1.1 全自动洗衣机控制系统设计的目的及意义 (3)1.2 国外现状及未来趋势 (3)1.3 本文工作 (4)第2章全自动洗衣机控制原理 (5)2.1 全自动洗衣机控制原理图 (5)2.2 全自动洗衣机控制各部件的使用方式及功能 (5)2.2.1 引脚 (5)2.2.2 复位电路 (7)2.2.3 时钟电路 (8)2.2.4 显示电路 (9)2.2.5 按键电路 (11)2.2.6 蜂鸣器电路 (12)第3章全自动洗衣机控制器软件设计 (12)3.1软件设计系统整体功能描述 (12)3.2系统流程图 (13)3.3定时控制流程 (14)3.4 显示流程 (14)第4章实验仿真结果 (15)第5章总结与展望 (16)参考文献 (17)附录 (18)致 (22)第1章概述1.1 全自动洗衣机控制系统设计的目的及意义随着技术的进步,单片机以集成度高、运算速度快、体积小、运行可靠、价格低廉等特点,在过程控制、数据采集、机电一体化、智能化、家用电器及网络技术等方面得到了广泛的应用。
基于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.三种洗衣工作程序,即标准程序强洗程序、弱洗程序和甩干程序。
单片机课程设计(洗衣机控制系统)

东北石油大学课程设计课程单片机课程设计题目洗衣机控制系统设计院系电气信息工程学院专业班级学生姓名学生学号指导教师2017 年7 月28 日任务书课程单片机课程设计题目洗衣机控制系统设计专业姓名学号主要内容:本课题针对洗衣机控制系统的发展现状以及当今社会发展对于产品智能化的要求,设计一种基于单片机微处理器的控制系统。
要求具有较高的可靠性和实用性,实现智能化控制。
本文以单片机为控制器核心设计控制系统,使洗衣机可处于自动模式依次进行进水、洗涤、排水、脱水四个过程;也可处于手动模式通过按键进行洗涤、排水、脱水三个过程的选择,并且处于何种模式,何种过程能够通过指示灯显示。
基本要求:1、分析洗衣机控制系统设计各种方案的优缺点,说明本设计方案选用原则;2、阐述本设计方案的基本工作原理、分析并注明元器件选取参数;3、绘制并分析洗衣机控制系统硬件设计原理图及电路图;4、设计完整的程序框图和程序清单;参考文献:[1]余永权. 单片机在控制系统中的应用[M]. 北京电子工业出版社,2003:23-78.[2]冯先成. 单片机应用系统设计[M]. 北京航空航天大学出版社,2009:56-98.[3]元增民.模拟电子技术[M]. 北京:中国电力出版社,2009:35-97.[4]万光毅,严义,邢春香. 单片机实验与实践教程[M]. 北京:北京航空航天大学,2006:23-110.完成期限2017.7.17—2017.7.28指导教师专业负责人2017年7 月16 日单片机课程设计摘要随着经济社会的快速发展,智能化,自动化以成为当代社会的主旋律。
因此,设计了基于单片机的全自动洗衣机控制系统。
本系统实现了对洗衣机整个过程的控制, 包括进水、洗涤、排水、脱水四个阶段.控制系统主要由电源电路,单片机控制系统和外部硬件三大模块组成。
通过单片机的控制,外部硬件随着用户参数的输入,洗衣机按照用户的选择要求进行运作。
本设计实现了自动和手动模式自选,能够满足现代家庭的基本洗涤要求,具有一定的实用性、可靠性,能够实现自动化、智能化。
单片机课程设计_基于89C51的全自动洗衣机控制器设计

单片机系统课程设计成绩评定表设计课题基于89C51的全自动洗衣机控制器设计学院名称:电气工程学院专业班级:学生姓名:学号:指导教师:设计地点:设计时间:单片机系统课程设计课程设计名称:基于89C51的全自动洗衣机控制器设计专业班级:学生姓名:学号:指导教师:课程设计地点:课程设计时间:单片机系统课程设计任务书目录1概述 (4)2 总体方案设计 (5)2.1全自动洗衣机的工作流程 (5)2.2硬件组成 (6)3 硬件电路设计 (6)3.1 89C51 (6)3.2 晶振电路 (6)3.3 复位电路 (7)3.4 启动电路 (7)3.5注水电路,放水电路 (7)3.6洗涤电机控制电路 (8)3.7警报电路 (11)4 软件设计 (12)4.1 主程序流程图 (12)4.2 中断服务程序流程图 (14)4.3子函数流程图 (15)5 总结 (15)6 参考文献 (16)附录A (17)附录B (18)1概述当今社会,洗衣机已经渗透到各个家庭了,人们对于这种东西已经不会再陌生,也越来越离不开洗衣机。
洗衣机的便利让人们节省了许许多多的时间,而且洗涤之后的效果也比人手洗的更加干净。
而自从推出了全自动洗衣机之后,洗衣机变得更加可靠。
全自动洗衣机就是将洗衣的全过程(泡浸-洗涤-漂洗-脱水)预先设定好N 个程序,洗衣时选择其中一个程序,打开水龙头和启动洗衣机开关后洗衣的全过程就会自动完成,无需人操作,只需要按下开始按钮便可。
其工作原理可以简述为:洗衣机的洗涤过程主要是在机械产生的排渗、冲刷等机械作用和洗涤剂的润湿、分散作用下,将污垢拉入水中来实现洗净的目的。
首先充满于波轮叶片间的洗涤液,在离心力的作用下被高速甩向桶壁,并沿桶壁上升。
在波轮中心处,因甩出液体而形成低压区,又使得洗涤液流回波轮附近。
这样,在波轮附近形成了以波轮轴线为中心的涡流。
衣物在涡流的作用下,作螺旋式回转,吸入中心后又被甩向桶壁,与桶壁发生摩擦。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、设计目标1、全自动洗衣机用51系列单片机89C51控制全自动洗衣机的运行,使其能自动地完成进水、洗涤、漂洗、脱水等功能。
不同的衣物,洗涤、漂洗、脱水和洗衣电机正反转所用的时间不同,要求设计能够实现过程选择,并在LED 显示屏上显示过程代码。
在运行的时候能显示完成整个过程的剩余时间。
2、洗衣机主要功能:进水、洗涤、脱水、排水具体功能有浸泡、强力洗、轻柔洗、标准洗、快速洗、单独洗、单独脱水、漂洗脱水二、设计过程洗衣机要实现衣服的洗涤、漂洗和脱水,离不开进水、电机正转、电机反转和排水这四个动作。
上述四个动作,是通过单片机的P0端口,做输出端口,去控制双向可控硅通断来实现的,如下图所示。
同时加上输入开关的按钮、数码管显示器、蜂鸣按警器和欠压检测保护电路等,就可以形成完整的单片机控制系统。
通过软件编程达到对整(112、(2)转)选择,不断调用,可以减少源程序的长度,不同的洗衣过程,三大动作的时间不同,这可以通过建立数据表格,通过查表的方式获得每个洗衣过程所需时间。
此外,还需编出显示子程序,延时子程序供主程序不断调用。
1、流程图(1 (2是否是是否(3)脱水子程序流程图否否在选MOV 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 PLAYXDPS02: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, #60DOUTW2: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, E1PK2E1PK3: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, #11DQXIDI: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, #11DQXIDI1: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 OVER OVER:LCALL ALARMSETB P0.6CLR P0.7MOV P2, #03HSJMP $END四、设计体会通过此次对全自动洗衣机的课程设计,对单片机的知识进一步掌握,也巩固了之前学习到的知识。