全自动洗衣机单片机课程设计
基于单片机的洗衣机课程设计
基于单片机的洗衣机设计一.设计目的、要求及方法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单片机全自动洗衣机设计(优.选)
全自动洗衣机课程设计基于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();}}}最新文件---------------- 仅供参考--------------------已改成word文本--------------------- 方便更改。
基于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.三种洗衣工作程序,即标准程序强洗程序、弱洗程序和甩干程序。
基于单片机的全自动洗衣机系统设计
基于单片机的全自动洗衣机系统设计一、本文概述随着科技的进步和人们生活水平的提高,家用电器在日常生活中扮演着越来越重要的角色。
全自动洗衣机作为其中的一种,其便捷性和高效性受到了广大用户的青睐。
传统的洗衣机设计在智能化、节能性、操作简便性等方面仍有待提升。
为此,本文提出了一种基于单片机的全自动洗衣机系统设计,旨在通过技术创新和智能控制,为用户提供更加人性化、高效且节能的洗衣体验。
本文将详细介绍该系统的设计原理、硬件构成、软件编程以及实际应用效果。
我们将对单片机的选择及其在系统中的作用进行阐述,同时分析洗衣机控制系统中所需的传感器和执行器。
接着,我们将深入探讨软件设计的关键技术和算法,包括控制逻辑的实现、人机交互界面的设计以及故障检测和处理机制。
我们将通过实际测试和用户体验反馈,对该系统的性能进行评估和优化。
本文旨在提供一种基于单片机的全自动洗衣机系统设计方案,为相关领域的研究和实践提供有益的参考和借鉴。
通过不断优化和创新,我们期待这种智能化、高效且节能的洗衣机能够在未来得到更广泛的应用,为人们的生活带来更多便利和舒适。
二、系统总体设计全自动洗衣机系统的设计,基于单片机作为核心控制器,旨在实现洗衣机的全自动化和智能化。
整个系统由单片机、电机驱动模块、水位检测模块、洗涤剂投放模块、温度控制模块、显示模块和用户交互模块等多个子模块组成。
我们选择一款性能稳定、价格适中且易于编程的单片机作为本系统的核心控制器。
该单片机将负责接收用户输入指令、处理传感器信号、控制各功能模块以及实现与显示模块的通信。
通过编程,单片机能够实现对洗衣机的全面控制,包括启动、停止、调整洗涤方式、设定洗涤时间等功能。
电机驱动模块是洗衣机的动力来源,负责驱动洗衣机的电机进行旋转。
我们选用一款能够驱动电机正反转且具备调速功能的驱动模块,通过单片机输出的PWM信号实现对电机转速的精确控制。
电机驱动模块还具备过流保护功能,以确保系统的安全可靠。
基于单片机的自动洗衣机设计
基于单片机的自动洗衣机设计基于单片机的自动洗衣机设计1 总体方案设计分析1.1全自动洗衣机控制方法选择在全自动洗衣机中,现在比较通用的控制手段是利用单片机或者PLC两种方法,本课设选用的是单片机。
之所以选用单片机主要考虑了以下原因,首先,单片机具有较强的抗干扰能力,当受到外部强干扰,程序出错时,可以自动使系统复位重新执行程序。
并且采用无噪声、无电磁干扰的双向晶闸管作为控制元件,控制电磁阀和电机。
其次,单片机具有欠压和过压保护,欠压时,控制器不工作;超压时,保护电路起作用。
再次,单片机还具有瞬间掉电保护功能,电源短时间停电后,电压恢复时,能够维持原来运行程序的工作状态并继续完成洗衣程序。
最后,各种操作和洗衣机的运行状态均可以用LED显示。
此外,在硬件规模方面,单片机相当于将一个基本规模的单板机所具有的资源复合在一块芯片上,因此具有相当的规模;在功能方面,单片机已经超过了PLC的功能;在指令系统方面,如果将单片机的指令系统PLC的指令系统相比较,除单片机的数据传送能力较弱一点之外,单片机的指令系统已大大超过PLC;此外,无论在性价比方面,还是在体积、重量方面相比较,单片机都比PLC优越得多。
综合上述原因本章设采用单片机来完成。
二、方案构思全自动洗衣机由洗衣系统和控制电路组成。
其控制电路分为机械和电脑型,电脑型控制电路是以单片机作为控制电路的核心。
自动洗衣机的洗衣程序,键盘上有两个按钮01键和02键。
01键设为开始按钮;02键设为停止按钮,其功能是按下停止按钮后洗完一个周期后停止,中间不能停。
洗衣机的标准洗衣程序是;开始--进水--洗涤--排水--进水--清洗--排水--脱水。
1.洗涤过程通电后,洗衣机进入暂停状态,以便放好衣物并且等待按下开始按钮。
当按下开始按钮01时,进入洗涤过程。
首先进水阀打开,开始进水,向洗衣机供水;当到达预定水位时,进水阀关闭,停止进水;步进电动机接通电源,开始旋转,形成洗衣水流。
《2024年基于单片机的全自动洗衣机系统设计》范文
《基于单片机的全自动洗衣机系统设计》篇一一、引言随着科技的不断发展,家电智能化已成为现代家庭生活的重要标志。
其中,全自动洗衣机以其便捷、高效的特点深受消费者喜爱。
本文将介绍一种基于单片机的全自动洗衣机系统设计,通过智能化控制,实现洗衣过程的自动化、高效化。
二、系统概述本系统以单片机为核心控制器,结合传感器、电机驱动、水位控制等模块,实现对洗衣机的全自动控制。
系统具备进水、洗衣、漂洗、脱水、排水等功能,可根据衣物类型、污渍程度等自动调整洗衣参数,达到最佳的洗衣效果。
三、硬件设计1. 单片机控制器:作为系统的核心,负责接收用户指令、控制各模块工作。
2. 传感器模块:包括水位传感器、温度传感器等,用于检测洗衣机的工作状态及环境参数。
3. 电机驱动模块:控制洗衣机的进水、洗涤、脱水等电机,实现洗衣过程的自动化。
4. 水位控制模块:通过水位传感器实时监测水位,自动控制进水阀的开关,保持水位在合适范围内。
5. 通信接口:便于与上位机或其他设备进行通信,实现远程控制或数据传输。
四、软件设计1. 主程序:负责初始化系统、接收用户指令、调用各子程序等。
2. 洗衣程序:根据衣物类型、污渍程度等自动调整洗衣参数,包括进水、洗涤、漂洗、脱水等步骤。
3. 通信程序:实现与上位机或其他设备的通信,接收远程控制指令或发送数据。
4. 故障诊断程序:实时监测系统状态,发现故障时自动报警并提示用户。
五、系统实现1. 用户通过操作面板或手机APP输入洗衣指令,包括衣物类型、洗涤模式、时间等。
2. 单片机控制器接收指令后,根据预设的算法自动调整洗衣参数,并通过电机驱动模块控制洗衣机的进水、洗涤、脱水等过程。
3. 传感器模块实时监测水位、温度等参数,确保洗衣机在合适的工作环境下运行。
4. 如遇故障,系统会自动报警并提示用户,同时可通过通信接口将故障信息发送至手机APP或上位机。
六、系统优势1. 自动化程度高:本系统可实现洗衣过程的自动化,用户只需设置洗衣参数,即可轻松完成洗衣任务。
全自动洗衣机机电控制系统设计(单片机)课程设计
机电一体化课程设计题目:全自动洗衣机机电控制系统设计(单片机)专业:机械设计制造及其自动化姓名:班级:学号:指导教师:摘要随着当今社会经济和科技水平的不断提高,家用电器全自动化将成为必然的发展趋势。
中国家用电器协会通过对洗衣机行业未来5~10年面临的经济形势以及机遇和挑战的分析后指出,洗衣机产业将向产品个性化、功能多样化、控制智能化、振动和噪声低量化方向发展,对节能节水的需求将迅速增长。
全自动洗衣机的产生极大的方便了人们的日常生活,节约了人们很多时间。
国内洗衣机的质量和世界领先水平同步,像海尔、美的等。
高效节能、省水、省电、环保型洗衣机是各大厂商一直追求的目标。
本次设计的波轮式全自动洗衣机涉及到各方面的知识,主要组成有排水系统、传动系统、及控制部分。
其中机械方面有V带的设计、减速器的选择、电动机的选择等;控制部分方面有硬件电路的设计、控制程序设计,各方面都涉及到诸多参数的选择和计算并且实现了全自动洗衣机的正常运行、强制行停止、故障检测和报警提醒功能。
关键字:全自动洗衣机单片机传动系统目录摘要第1章绪论 (1)1.1 机电一体化课程设计目的 (1)第2章波轮式全自动洗衣机机电控制系统设计 (2)2.1 课程设计任务书 (2)2.2 波轮式全自动洗衣机总体结构 (3)2.3 进水、排水系统 (3)2.4传动系统结构及工作原理 (9)2.5机械设计系统传动计算 (23)2.6 控制系统设计 (32)致谢··············································································参考文献·········································································波轮式全自动洗衣机机电系统设计第1章绪论1.1、机电一体化课程设计目的机电一体化系统课程设计是一个重要的实践性教学环节。
单片机课程设计 基于单片机的洗衣机控制系统 精品
东北石油大学课程设计课程单片机课程设计题目基于单片机的洗衣机控制系统院系电气信息工程学院测控技术与仪器系专业班级学生姓名学生学号指导教师2013年7 月8日东北石油大学课程设计任务书课程单片机课程设计题目基于单片机的洗衣机控制系统专业姓名学号一、任务以AT89C51单片机为控制核心,利用独立键盘、LED显示电路、直流电机等部分模拟一套完整的洗衣机模型控制系统。
二、设计要求[1] 利用独立键盘模拟洗衣机操作按钮,K1为设置洗衣操作时间,K2为电机启动按钮,当K2按下后,电机正转30秒后,反转30秒后,反复执行此操作到洗衣操作时间结束。
[2] 利用LED显示单元,显示时间信息。
[3] 基本电路包括:单片机最小系统、电机驱动电路、LED显示电路等。
[4] 提交设计报告、电路图及程序源码。
三、参考资料[1] 张毅刚.单片机原理及应用[M]. 北京:高等教育出版社.2003:160-190.[2] 李光飞.单片机C程序设计实例指导[M].北京:北京航天航空大学出版社.2005.9.[3]王晓娟.单片机原理及应用系统设计.[M].北京:机械工业出版社.2012.8[4] 韩全立,赵德申.微机控制技术及应用[M]北京:机械工业出版社.2003.6[5]. 周润景.基于Proteus的电路与单片机仿真系统设计与仿真[M]. 北京:北京航空航天大学出版社. 2005..7[6] 万光毅.单片机实验与实践教程[M]. 北京:北京航空航天大学出版社.2005.1.完成期限2013.7.1 - 2013.7.10指导教师专业负责人2013年6月29目录第1章绪论 (1)1.1什么是单片机 (1)1.2单片机的结构 (1)1.3 AT89C51单片机的引脚功能 (1)1.4 本设计任务 (5)第2 章总体方案论证与设计 (6)2.1 总体硬件组成框图 (6)第3章系统硬件设计 (8)3.1 显示电路与按键控制设计 (8)3.2 电动机的控制电路 (8)3.3 硬件总体电路设计 (8)第4章系统的软件设计 (10)4.1 主程序设计 (10)4.2 显示程序设计 (11)4.3 电机程序设计 (11)结论 (12)参考文献 (13)附录1 仿真效果图 (14)附录2 程序 (15)第1章绪论1.1什么是单片机单片机即单片微型计算机。
单片机课程设计(洗衣机控制系统).doc
东北石油大学单片机课程设计 洗衣机控制系统设计 电气信息工程学院2017 冬 7 用 28 9课 程 题目 院 系专业班级学生姓名学生学号指导教师任务书课程_______________________ 单片机课程设计______________________________ 题目洗衣机控制系统设计专业__________________________ 姓名___________________学号___________________ 主要内容:本课题针对洗衣机控制系统的发展现状以及当今社会发展对于产品智能化的要求,设计一种基于单片机微处理器的控制系统。
要求具有较高的可靠性和实用性,实现智能化控制。
本文以单片机为控制器核心设计控制系统,使洗衣机可处于自动模式依次进行进水、洗涤、排水、脱水四个过程;也可处于手动模式通过按键进行洗涤、排水、脱水三个过程的选择,并且处于何种模式,何种过程能够通过指示灯显示。
基本要求: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 R随着经济社会的快速发展,智能化,自动化以成为当代社会的主旋律。
因此, 设计了基于单片机的全自动洗衣机控制系统。
木系统实现了对洗衣机整个过程的控制,包括进水、洗涤、排水、脱水四个阶段.控制系统主要由电源电路,单片机控制系统和外部硬件三大模块组成。
基于51单片机的全自动洗衣机控制器设计
基于51单片机的全自动洗衣机控制器设计随着科技的进步和人们生活质量的提高,洗衣机已经成为现代家庭中必不可少的家电之一。
然而,传统的洗衣机控制方式往往存在操作复杂、功能单一等问题,无法满足用户对于高效、智能洗涤的需求。
因此,本文将介绍一种基于51单片机的全自动洗衣机控制器的设计,实现洗涤、漂洗、脱水等功能的自动化控制。
一、系统硬件设计1、控制器核心选择本设计选用51单片机作为控制器核心,利用其丰富的I/O口和定时器资源,实现对洗衣机的控制。
通过外接按键和蜂鸣器等元件,实现洗涤方式的选择、启动/停止控制等功能。
2、电源模块设计为了确保洗衣机的稳定运行,本设计采用220V交流电作为电源输入,通过变压器进行降压处理,再经整流滤波后得到稳定的直流电压,为控制器和其他部件供电。
3、输入输出模块设计输入模块主要包括按键和传感器。
其中,按键用于选择洗涤方式,传感器则用于检测水位、水温等信息。
输出模块主要包括继电器和蜂鸣器,继电器用于控制洗衣机的启动/停止,蜂鸣器则用于提示用户洗涤过程的状态。
二、系统软件设计1、程序初始化在程序开始运行时,首先进行初始化操作,包括配置定时器、设置I/O口状态等。
2、洗涤过程控制根据用户选择的洗涤方式,程序将通过定时器控制电机的运转时间,实现不同洗涤模式的自动化控制。
同时,通过检测水位、水温等信息,自动调整洗涤时间和水的温度,提高洗涤效果。
3、漂洗过程控制在洗涤过程结束后,程序将自动进入漂洗阶段。
通过控制进水和排水阀的开闭时间,实现自动漂洗。
同时,根据洗涤过程中收集的衣物量和洗涤效果,智能调整漂洗次数和时间,确保衣物清洗干净。
4、脱水过程控制在漂洗过程结束后,程序将自动进入脱水阶段。
通过控制电机转速和脱水时间,实现衣物的高效脱水。
同时,为了保护衣物和机器的安全,程序将根据衣物的种类和重量信息,智能调整脱水时间和转速,确保脱水过程的顺利进行。
5、报警提示功能为了方便用户及时了解洗涤过程的状态,本设计还实现了报警提示功能。
单片机课程设计--全自动控制洗衣机
单片机原理课程设计报告一、设计目标本设计采用LED和数码显示管显示洗衣机所处在的模式和水位,所处的的洗衣状态,水温,以及完成洗衣的剩余时间。
实现不同模式下水位的选择一共三种模式(标准,轻柔,快洗),四种水位,当洗衣机启动后,上水电磁阀打开注水,当水到达设定的限位时,上水电磁阀断电,注水过程停止,启动电机全自动控制洗衣操作,整个过程的进行按时间控制,时间自定。
液位检测和控制:使水位限定在某一个给定的液位范围内,当水位越限时进入超水位中断报警提示并打开下水电磁阀放水,不启动洗衣过程,待满足要求后,投入运行。
当投入洗衣量大于洗衣机额定容量时,控制系统应报警,不启动洗衣过程。
待满足要求后,投入运行1、洗衣程序功能:手动模式:用户可以选择单独的单洗,漂洗,长脱水;自动模式:用户可以根据需求通过键盘选择以下模式:即标准洗衣程序、轻柔洗衣、快洗每种模式下又可以选择四种水位;再上电后如果不进行任何操作一段时间后洗衣机便进入默认模式进行洗衣。
2、显示功能:显示选择的模式,水位,正在进行的洗衣操作(状态),水温,完成洗衣过程的剩余时间。
3、特殊功能:超水位报警并自动放水,达到要求后结束报警开始洗衣;超容量报警,待用户排除后结束报警开始洗衣。
二、设计过程1、硬件设计(1)系统总体设计一台洗衣机大体可分为5部分,分别为按键控制部分、显示部分、进水部分、排水部分、电机部分。
这5部分按键控制为输入,其余为输出。
如下图ATA89C51 按键输入显示进水控制排水控制电机控制总体结构图(2)具体实现本设计用98C51单片机实现洗衣机的控制,通过对拨码开关和键盘的操作实现手动自动模式的选择,以及水位得选择,也可以进行任何操作进入默认模式。
当选择好模式后进入该模式设置该模式下的参数,然后再次扫描键盘,去选择水位,选定水位后,进入该水位模式设置水位参数。
在P1.4为低电平是进入手动模式,手动模式下若P1.5为低电平则进入单洗过程,单洗完成声光报警提示用户此过程完成;若P1.5为高电平检查P1.6若为低电平进去漂洗程序进行漂洗,漂洗完成声光报警提示用户漂洗结束。
《2024年基于单片机的全自动洗衣机系统设计》范文
《基于单片机的全自动洗衣机系统设计》篇一一、引言随着科技的不断进步和人们对生活品质追求的不断提高,全自动洗衣机成为了现代家庭不可或缺的家电之一。
本文将介绍一种基于单片机的全自动洗衣机系统设计,该设计旨在提高洗衣机的智能化程度,方便用户使用,并提高洗衣效果。
二、系统概述本系统采用单片机作为核心控制器,通过传感器、电机驱动等模块实现洗衣机的全自动控制。
系统主要由以下几个部分组成:单片机控制器、水位检测模块、电机驱动模块、按键输入模块、显示输出模块以及洗衣程序模块。
三、硬件设计1. 单片机控制器:选用性能稳定、功能强大的单片机作为核心控制器,负责整个系统的协调和控制。
2. 水位检测模块:通过水位传感器检测洗衣机内的水位,将检测结果传递给单片机,以便单片机根据水位调整洗衣程序。
3. 电机驱动模块:采用电机驱动芯片驱动洗衣机电机,实现洗衣、漂洗、脱水等功能的控制。
4. 按键输入模块:通过按键实现用户对洗衣程序的设定和操作。
5. 显示输出模块:通过LED或LCD显示屏,显示洗衣程序的状态和结果。
四、软件设计软件设计是本系统的关键部分,主要包括洗衣程序的编写和单片机的程序设计。
1. 洗衣程序设计:根据洗衣需求,设计多种洗衣程序,如标准洗、快速洗、强力洗等。
每个程序包括浸泡、洗涤、漂洗、脱水等步骤,通过单片机控制电机驱动模块和水位检测模块实现。
2. 单片机程序设计:采用C语言或汇编语言编写单片机程序,实现按键输入、显示输出、水位检测、电机控制等功能。
程序采用模块化设计,便于后期维护和升级。
五、系统实现1. 单片机与各模块的连接:通过电路将单片机与水位检测模块、电机驱动模块、按键输入模块、显示输出模块等连接起来,形成完整的系统。
2. 程序烧录:将编写好的程序通过烧录器烧录到单片机中,使单片机具备控制各模块的功能。
3. 系统调试:对系统进行全面的调试,确保各模块正常工作,洗衣程序准确执行。
六、系统特点1. 智能化程度高:本系统采用单片机控制,实现洗衣过程的全自动控制,提高洗衣效果。
基于单片机的自动洗衣机设计
基于单片机的自动洗衣机设计1 总体方案设计分析1.1全自动洗衣机控制方法选择在全自动洗衣机中,现在比较通用的控制手段是利用单片机或者PLC两种方法,本课设选用的是单片机。
之所以选用单片机主要考虑了以下原因,首先,单片机具有较强的抗干扰能力,当受到外部强干扰,程序出错时,可以自动使系统复位重新执行程序。
并且采用无噪声、无电磁干扰的双向晶闸管作为控制元件,控制电磁阀和电机。
其次,单片机具有欠压和过压保护,欠压时,控制器不工作;超压时,保护电路起作用。
再次,单片机还具有瞬间掉电保护功能,电源短时间停电后,电压恢复时,能够维持原来运行程序的工作状态并继续完成洗衣程序。
最后,各种操作和洗衣机的运行状态均可以用LED显示。
此外,在硬件规模方面,单片机相当于将一个基本规模的单板机所具有的资源复合在一块芯片上,因此具有相当的规模;在功能方面,单片机已经超过了PLC的功能;在指令系统方面,如果将单片机的指令系统PLC的指令系统相比较,除单片机的数据传送能力较弱一点之外,单片机的指令系统已大大超过PLC;此外,无论在性价比方面,还是在体积、重量方面相比较,单片机都比PLC优越得多。
综合上述原因本章设采用单片机来完成。
二、方案构思全自动洗衣机由洗衣系统和控制电路组成。
其控制电路分为机械和电脑型,电脑型控制电路是以单片机作为控制电路的核心。
自动洗衣机的洗衣程序,键盘上有两个按钮01键和02键。
01键设为开始按钮;02键设为停止按钮,其功能是按下停止按钮后洗完一个周期后停止,中间不能停。
洗衣机的标准洗衣程序是;开始--进水--洗涤--排水--进水--清洗--排水--脱水。
1.洗涤过程通电后,洗衣机进入暂停状态,以便放好衣物并且等待按下开始按钮。
当按下开始按钮01时,进入洗涤过程。
首先进水阀打开,开始进水,向洗衣机供水;当到达预定水位时,进水阀关闭,停止进水;步进电动机接通电源,开始旋转,形成洗衣水流。
步进电动机可以实现正反转功能,可以形成往返水流,有利于洗涤衣物。
全全课程设计单片机洗衣机
摘要随着电子技术的飞速发展,人们生活水平的提高及生活节奏的加快,洗衣机产品越来越受到人们的喜爱与重视。
本文研究的是基于AT89C51单片机的全自动洗衣机控制系统,围绕洗衣机系统的硬件和软件进行课程设计,设计了一个简单可行的洗衣机自动控制系统,功能包括进水、洗衣、排水、脱水、报警等功能。
该电路简单,工作原理清晰,易于理解。
关键词:洗衣机;单片机;自动控制。
目录摘要 (I)1.前言 (1)2.全自动洗衣机的介绍 (1)2.1. 全自动洗衣机的发展历程 (1)2.2.全自动洗衣机的发展前景 (2)3. 设计目的及设计任务 (3)3.1.设计的目的及意义 (3)3.2.设计任务 (3)4.洗衣机的总体设计方案 (4)5.硬件电路设计 (5)5.1.芯片选择 (5)5.2. 单片机辅助电路设计 (7)5.2.1.复位电路的设计 (7)5.2.2.振荡电路 (8)5.3.全自动洗衣机功能电路设计 (9)5.3.1.启动按键和停止按键电路设计 (9)5.3.2.水位选择电路设计 (9)5.3.3.显示电路设计 (10)5.3.4.手动排水和手动脱水电路设计 (10)5.3.5.报警电路设计 (11)6.软件设计 (12)6.1.主程序流程图 (12)6.2.中断程序流程图 (13)7. 课程设计总结 (14)参考文献 (14)附录 (15)附录A:程序清单 (15)附录B:硬件电路图 (20)1.前言从古到今,洗衣服都是一项难于逃避的家务劳动,而在洗衣机出现以前,对于许多人而言,它并不像田园诗描绘的那样充满乐趣,手搓、棒击、冲刷、甩打……这些不断重复的简单的体力劳动,留给人的感受常常是:辛苦劳累。
随着单片机技术日新月异的发展,单片机以其集成度高、运算速度快、体积小、运行可靠、价格低廉等特点在过程控制、机电一体化、智能化仪表、家用电器等方面得到了广泛应用[1]。
以单片机为核心设计的洗衣机控制电路组成相对简单,而且实用性很强。
《2024年基于单片机的全自动洗衣机系统设计》范文
《基于单片机的全自动洗衣机系统设计》篇一一、引言随着科技的进步和人们生活水平的提高,全自动洗衣机已成为现代家庭不可或缺的家电产品。
为了满足用户对洗衣设备的高效、便捷、智能化的需求,本文提出了一种基于单片机的全自动洗衣机系统设计。
该设计通过单片机控制,实现了洗衣过程的自动化、智能化,大大提高了洗衣效率,同时也方便了用户的使用。
二、系统设计概述本系统以单片机为核心控制器,通过控制电机、水位传感器、温度传感器、洗涤程序等模块,实现全自动洗衣功能。
系统设计包括硬件设计和软件设计两部分。
三、硬件设计1. 单片机控制器:本系统采用高性能的单片机作为控制器,负责整个系统的协调和控制。
2. 电机:电机是洗衣机的动力源,通过单片机的控制,实现洗衣桶的正反转和转速控制。
3. 水位传感器:水位传感器用于检测洗衣机内的水位,将水位信号转化为电信号,供单片机控制器使用。
4. 温度传感器:温度传感器用于检测洗涤水的温度,将温度信号转化为电信号,供单片机控制器根据洗涤程序调整水温。
5. 洗涤程序模块:洗涤程序模块包括浸泡、洗涤、漂洗、脱水等程序,通过单片机的控制,实现洗衣过程的自动化。
四、软件设计软件设计是本系统的关键部分,主要包括单片机的程序设计。
程序设计应满足以下要求:1. 操作简单:程序设计应简单易懂,方便用户操作。
2. 功能齐全:程序设计应包含浸泡、洗涤、漂洗、脱水等基本功能,同时可根据需要增加其他功能。
3. 智能化:程序设计应具有智能化特点,如自动检测水位、自动调节水温、自动控制洗涤时间等。
软件设计流程包括以下几个步骤:1. 初始化:系统上电后,单片机进行初始化设置,包括IO口配置、定时器配置等。
2. 输入控制:用户通过操作面板或遥控器输入洗涤程序、水位、水温等参数。
3. 程序控制:单片机根据用户输入的参数和洗涤程序,控制电机、水位传感器、温度传感器等模块,实现全自动洗衣。
4. 状态检测:单片机实时检测电机、水位传感器、温度传感器等模块的状态,根据检测结果调整洗涤程序和参数。
全自动洗衣机单片机课程设计概况
一、设计目标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四、设计体会通过此次对全自动洗衣机的课程设计,对单片机的知识进一步掌握,也巩固了之前学习到的知识。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
全自动洗衣机单片机课程设计Document number【980KGB-6898YT-769T8CB-246UT-18GG08】一、设计目标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;显示子程序;闪烁标志位:=0不闪烁,=1在1s 内亮灭一次;程序开始标志:=1开始, =0选择;显示缓冲:50H;经过的时间:53H,52H,51H=分钟,秒,20ms的次数;总时间:TOTALTIME=40HTOTALTIME EQU 40H DISPLAY:PUSH ACCPUSH PSWSETB RS0JNB , DISPLAY01MOV A, 50H ;高位是否为零CJNE A, #0AH, DISPLAY05 DISPLAY05:JNC DISPLAY06XRL A, #0F0H ;高位为零不显示MOV 50H, ADISPLAY06:JNB , 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;SETBCLRLCALL DELAY10MSMOV A, 50H ;显示高位SWAP AANL A, #0FH;MOV DPTR, #DISPLAYTAB;MOVC A, @A+DPTR;MOV P2, A;CLRSETBLCALL 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;1minDISPLAY03:JNB , 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:SETBMOV R0, #12D;PLAY1:LCALL DISPLAYDJNZ R0, PLAY1CLRRET;鸣叫六下, 时长240ms*12 ALARM:SETBMOV R1, #11D;ALARM2:MOV R0, #12D;ALARM3:LCALL DISPLAYDJNZ R0, ALARM3CPLDJNZ R1, ALARM2RET;;;;;洗涤用子程序;洗涤时暂停按键XDPAUSE:JB , XDPS01LCALL DISPLAYJB , XDPS01PUSH 52HPUSH 53HCLR ;不闪烁MOV A, P1PUSH ACCMOV P1, #00HLCALL PLAYXDPS02:LCALL DISPLAYJNB , XDPS02 ;等待按键释放XDPS03:LCALL DISPLAYJB , XDPS03LCALL DISPLAYJB , XDPS03LCALL PLAYXDPS04:LCALL DISPLAYJNB , XDPS04 ;等待按键释放POP ACCMOV P1, ACCSETBPOP 53HPOP 52HXDPS01:RET;洗涤时延迟DELAY320MS:MOV R2, #14D;SJMP XDELAY01;洗涤时延迟XDELAY560MS:MOV R2, #28DSJMP XDELAY01;洗涤时延迟1sXDELAY1S:MOV R2, #50DSJMP XDELAY01;洗涤时延迟DELAY1600MS:MOV R2, #80DXDELAY01:LCALL DISPLAYLCALL XDPAUSE ;暂停按键LCALL IFINWATER ;水位开关DJNZ R2, XDELAY01RET;洗涤前进水子程序INWATER:JNB , PI1;SETBMOV A, 53H;ADD A, #20D;MOV 59H, A;PI3:MOV A, 53H;XRL A, 59H;JNZ PI2LCALL ERRORE4SJMP INWATERPI2:JNB , PI4;LCALL DISPLAYLCALL XDPAUSESJMP PI3PI4:CLRPI1:RET;洗涤时是否再进水IFINWATER:JNB , IF1;MOV A, P1;PUSH ACCMOV P1, #00H;LCALL INWATER ;进水POP ACCMOV P1, A;IF1:RET;不能进水报警ERRORE4:PUSH 52HPUSH 53HCLRMOV A, P1;PUSH ACCMOV P1, #00H;MOV 50H, #0E4HLCALL ALARME4PK2:LCALL DISPLAYJNB , E4PK2;LCALL DISPLAYJNB , E4PK2E4PK3:LCALL DISPLAYJB , E4PK3LCALL DISPLAYJB , E4PK3SETBPOP ACCMOV P1, ACC;POP 53HPOP 52HRET;排水时延迟1s DELAY1000MS:MOV R2, #50D;DLY51:LCALL DISPLAYLCALL XDPAUSE ;暂停按键DJNZ R2, DLY51;RET;排水子程序OUTWATER:CLR ASETBJB , OUTW1MOV R7, #60DOUTW2:LCALL DELAY1000MSJB , OUTW4DJNZ R7, OUTW2LCALL ERRORE1SJMP OUTWATEROUTW4:CLR CMOV A, #60DSUBB A, R7OUTW1:ADD A, #60DMOV R7, AOUTW3:LCALL DELAY1000MSDJNZ R7, OUTW3RET;不能排水报警ERRORE1:PUSH 52HPUSH 53HCLRMOV A, P1;PUSH ACCMOV P1, #00H;MOV 50H, #0E1HLCALL ALARME1PK2:LCALL DISPLAYJNB , E1PK2;LCALL DISPLAYJNB , E1PK2E1PK3:LCALL DISPLAYJB , E1PK3LCALL DISPLAYJB , E1PK3SETBPOP ACCMOV P1, ACC;POP 53HPOP 52HRET;脱水时暂停按键TPKEY:JB , TPK1;LCALL DISPLAYJB , TPK1;PUSH 52HPUSH 53HCLRLCALL PLAYMOV A, P1;PUSH ACCJNB , TPK6CLRMOV R0, #250 ;延迟5秒TPK5:LCALL DISPLAYDJNZ R0, TPK5TPK6:MOV P1, #00H;TPK2:LCALL DISPLAYJNB , TPK2;TPK3:LCALL DISPLAYJB , TPK3LCALL DISPLAYJB , TPK3LCALL PLAYSETBSETBMOV R0, #250 ;延迟5秒TPK4:LCALL DISPLAYDJNZ R0, TPK4POP ACCMOV P1, ACC;POP 53HPOP 52HTPK1:RET;脱水时开盖, 脱水时安全报警IFOPEN:ERRORE2:JNB , TTPK1;LCALL DISPLAYJNB , TTPK1;PUSH 52HPUSH 53HCLRMOV A, P1;PUSH ACC; LCALL ALARMJNB , TTPK6CLRMOV R0, #250 ;延迟5秒TTPK5:LCALL DISPLAYDJNZ R0, TTPK5TTPK6:MOV P1, #00H;MOV 50H, #0E2HTTPK2:LCALL DISPLAYJB , TTPK2;TTPK3:LCALL DISPLAYJB , TTPK2LCALL DISPLAY; JB , TTPK3SETBSETBMOV 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, 程序开始=1 MAIN:MOV SP, #60H;CLRCLRMOV A, #00H;MOV P1, A;MOV 50H, A;MOV 51H, A;MOV 52H, A;MOV 53H, A;MOV 30H, A;LP1: ;有无按键LCALL DISPLAYJB , LP1;LCALL DISPLAY ;按键去抖动JB , LP1;LP3:INC 30HMOV A, #0AH ;共有九种可选择XRL A, 30H;JNZ LP2MOV 30H, #01H;LP2:LCALL PLAYMOV 50H, 30H;LP4:LCALL DISPLAYJNB , LP4 ;等待按键释放CLR AMOV 52H, A;LP5:LCALL DISPLAYMOV A, 52H;XRL A, #03H ;3秒延迟到否JZ START ;开始洗衣JB , LP5;SJMP LP3 ;重选洗衣程序START:LCALL ALARMSETBCLR 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 CALUTIMESETBLCALL INWATER ;进水MOV A, #57DLCALL CALUTIME;洗涤3分钟MOV R7, #42D;XIDI0:SETBLCALL DELAY1600MSCLRLCALL XDELAY560MSSETBLCALL DELAY1600MSCLRLCALL XDELAY560MSDJNZ R7, XIDI0MOV R6, #01D ;共4次*3分钟=12分钟MOV R7, #30D ;停2分钟XIDI01:LCALL XDELAY1SDJNZ R7, XIDI01MOV R7, #14D ;洗涤1分钟XIDI03:SETBLCALL DELAY1600MSCLRLCALL XDELAY560MSSETBLCALL DELAY1600MSCLRLCALL XDELAY560MSDJNZ R7, XIDI03DJNZ R6, XIDI02MOV R7, #30D ;停2分钟XIDI04:LCALL XDELAY1SDJNZ R7, XIDI04LJMP PROC3 ;以下同过程3PROC2:;(待完成)LJMP overPROC3:MOV A, #42DLCALL CALUTIMESETBLCALL INWATER ;进水MOV A, #40DLCALL CALUTIME;洗涤15分钟MOV R7, #8D; XIDI:SETBLCALL DELAY1600MSCLRLCALL XDELAY560MSSETBLCALL DELAY1600MSCLRLCALL XDELAY560MSDJNZ R7, XIDI;快速洗涤15秒MOV R7, #11DQXIDI:SETBLCALL DELAY320MSCLRLCALL DELAY320MSSETBLCALL DELAY320MSCLRLCALL DELAY320MSDJNZ R7, QXIDIMOV A, #25DLCALL CALUTIME;排水LCALL OUTWATERMOV A, #23DLCALL CALUTIME;第一次脱水MOV R7, #04D ;间隙脱水30秒TS1:SETBLCALL DELAY4SCLRLCALL DELAY3SDJNZ R7, TS1SETB ;长脱水90秒MOV R7, #10D ; TS2:LCALL DELAY4SDJNZ R7, TS2CLRMOV R7, #250 ;延迟5秒TS25:LCALL DISPLAYDJNZ R7, TS25CLRMOV A, #20DLCALL CALUTIME;第一次漂洗LCALL INWATERMOV A, #18DLCALL CALUTIME;洗涤2分钟MOV R7, #08D;XIDI1:SETBLCALL DELAY1600MSCLRLCALL XDELAY560MSSETBLCALL DELAY1600MSCLRLCALL XDELAY560MSDJNZ R7, XIDI1;快速洗涤15秒MOV R7, #11D QXIDI1:SETBLCALL DELAY320MSCLRLCALL DELAY320MSSETBLCALL DELAY320MSCLRLCALL DELAY320MSDJNZ R7, QXIDI1MOV A, #16DLCALL CALUTIME;排水LCALL OUTWATERMOV A, #14DLCALL CALUTIME;第二次脱水MOV R7, #04DTS21:SETBLCALL DELAY4SCLRLCALL DELAY3SDJNZ R7, TS21SETBMOV R7, #10D; TS22:LCALL DELAY4SDJNZ R7, TS22CLRMOV R7, #250 ;延迟5秒TS26:LCALL DISPLAYDJNZ R7, TS26CLRMOV A, #12DLCALL CALUTIME;第二次漂洗LCALL INWATERMOV A, #10DLCALL CALUTIME;洗涤2分钟MOV R7, #08D ; XIDI2:SETBLCALL DELAY1600MSCLRLCALL XDELAY560MSSETBLCALL DELAY1600MSCLRLCALL XDELAY560MSDJNZ R7, XIDI2;快速洗涤15秒MOV R7, #11DQXIDI2:SETBLCALL DELAY320MSCLRLCALL DELAY320MSSETBLCALL DELAY320MSCLRLCALL DELAY320MSDJNZ R7, QXIDI2PROC8:SETB ;过程8需要闪烁MOV A, #08DLCALL CALUTIME;排水LCALL OUTWATERMOV A, #06DLCALL CALUTIME;最后脱水MOV R7, #04D ;间隙脱水30秒TS31:SETBLCALL DELAY4SCLRLCALL DELAY3SDJNZ R7, TS31SETB ;长脱水5分钟MOV R7, #05DTS32:LCALL DELAY4SDJNZ R7, TS32CLRMOV R6, #06TS28:MOV R7, #250 ;延迟5秒*6=30秒TS29:LCALL DISPLAYDJNZ R7, TS29DJNZ R6, TS28CLRLJMP OVEROVER:LCALL ALARMSETBCLRMOV P2, #03HSJMP $END四、设计体会通过此次对全自动洗衣机的课程设计,对单片机的知识进一步掌握,也巩固了之前学习到的知识。