精华内容
下载资源
问答
  • 51单片机全自动洗衣机控制系统 运用单片机设计简单的洗衣机全自动控制程序,用proteus进行仿真
  • 51单片机全自动洗衣机课程设计 运用单片机设计简单的洗衣机全自动控制程序,用proteus进行仿真
  • PAGE 1 PAGE 2 全自动洗衣机设计 一设计目的 1能够根据题目要求实掌握编写程序调试程序软件仿真及与硬件结合 2熟悉89C52单片机的内部结构和功能及I/O分配合理使用其内部寄存器存储器位寻址能够完成全自动洗衣机的...
  • 基于单片机全自动洗衣机控制器设计与仿真.pdf
  • 基于单片机全自动洗衣机毕业设计 仿真 文档 程序
  • 基于STC89C51单片机全自动洗衣机控制器设计.pdf
  • 基于51单片机全自动洗衣机,包含所有源程序、电路图,涵盖的功能有直流电机调速,液晶显示屏显示,蜂鸣器报警等 欢迎大家关注微信公众号 柴 基
  • 包括keil环境下的c语言代码和proteus的仿真
  • 《基于的51单片机全自动洗衣机设计(北理工》由会员分享,可在线阅读,更多相关《基于的51单片机全自动洗衣机设计(北理工(24页珍藏版)》请在人人文库网上搜索。1、全自动洗衣机课程设计基于51单片机,C语言实现。基本...

    《基于的51单片机全自动洗衣机设计(北理工》由会员分享,可在线阅读,更多相关《基于的51单片机全自动洗衣机设计(北理工(24页珍藏版)》请在人人文库网上搜索。

    1、全自动洗衣机课程设计基于51单片机,C语言实现。基本要求模拟全自动洗衣机工作过程。以电机替代洗衣机电机。显示洗衣机工作的状态(进水、浸泡、洗衣、脱水、结束)。显示工作剩余时间(洗衣程序可自定义,时间精度:秒)。洗衣时交替正、反转。扩展要求洗衣和脱水时电机转速不同。增加水位传感器输入。故障报警。增加声音提示。其它自定义功能。设计用Preteus仿真:仿真图如下:C文件函数代码:#include/*/#define uchar unsigned char#define uint unsigned int/*/*/sbit mo_r = P32; /电机右控制线sbit mo_l = P33;/电机。

    2、左控制线/*/sbit key_menu = P34; / 菜单按键sbit key_on = P35; / 开始按键sbit key_off = P36; / 结束按键sbit key_se = P37; / 菜单选择按键/*/sbit led_in = P00;/进水指示灯sbit led_xi = P01; / 洗衣指示灯sbit led_pao = P02;/泡洗指示灯sbit led_xx = P03; / 脱水指示灯sbit led_out = P04; / 出水指示灯sbit led_over = P05; / 洗衣结束指示灯sbit led_work = P06; / 电机工作。

    3、指示灯sbit led_wring = P07; /报警指示灯sbit other = P31; / 脱水电源控制开关sbit anther = P30; /洗衣电源控制开关/*/uchar code num10=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 fla。

    4、g3=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(); / 按键扫描子程序/*/ 延时函数/*/v。

    5、oid delay(uint i)uint x,y;for(x=i;x0;x-)for(y=120;y0;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 = 。

    6、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 = 0xf。

    7、f;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 = 。

    8、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。

    9、)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(。

    10、5);if(key_off = 0)while(!key_off);over();/*/显示子程序/*/void SEG_display()P1=0x01;P2 = nummin/10;delay(10);P1 = 0x02;P2 = nummin%10;delay(10);P1 = 0x04;P2 = numsec/10;delay(10);P1 = 0x08;P2 = numsec%10;delay(10);/*/ 主函数/*/void main()led_in=0;anther=0;other=0;while(1)SEG_display();key_scan();/*/ 定时器0中断处理。

    11、程序/*/void timer0() interrupt 1TH0=(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)&。

    12、(min != 0)min-;sec = 59;/*/if(sec0)&(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(sec0)&(min=0)&(flag0=1) /洗衣结束 flag0 = 4;out();/*/if(sec0)&(min=0)&(flag0=2) /泡衣结束 swi。

    13、tch(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(sec0)&(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(sec0)&(min=0)&(flag0=3) sec = 0;over(。

    展开全文
  • 基于51单片机全自动洗衣机控制系统仿真设计 包含源程序及仿真文件
  • 全自动洗衣机就是将洗衣的全过程(泡浸-洗涤-漂洗-脱水)预先设定好N个程序,洗衣时选择其中一个程序,打开水龙头和启动洗衣机开关后洗衣的全过程就会自动完成,洗衣完成时由蜂鸣器发出响声。洗衣机的标准洗衣程序是:...

    资料下载地址-1063(百度网盘):点击下载

    摘 要

    全自动洗衣机就是将洗衣的全过程(泡浸-洗涤-漂洗-脱水)预先设定好N个程序,洗衣时选择其中一个程序,打开水龙头和启动洗衣机开关后洗衣的全过程就会自动完成,洗衣完成时由蜂鸣器发出响声。洗衣机的标准洗衣程序是:洗涤——脱水——脱水——漂洗——脱水——漂洗——脱水。经济洗衣程序少一次漂洗和脱水过程。

    洗衣机控制器由单片机作为控制器的核心所构成,该控制器具有以下特点:

    (1)具有较强的抗干扰能力,当受到外部强干扰,程序出错时,可以自动使系统复位重新执行程序。

    (2)采用无噪声、无电磁干扰的双向晶闸管作为控制元件,控制电磁阀和电机。

    (3)具有欠压和过压保护,欠压时,控制器不工作;超压时,保护电路起作用。

    (4)具有瞬间掉电保护功能,电源短时间停电后,电压恢复时,能够维持原运行程序的工作状态并继续完成洗衣程序。

    (5)各种操作和洗衣机的运行状态均用LED显示.

    #include<reg52.h>
    	#define uchar unsigned char
    	#define uint unsigned int
    	uchar num=0,num1=0,num2=0,num3=0,num4=0,num5=0,num6=0,flag=0,flag1=0,flag4=0,flag5=0,circle=0;
    	sbit ledbiaozhun=P1^0; //LED指示灯
    	sbit ledjingji  =P1^1;
    	sbit leddandu   =P1^2;
    	sbit ledpaishui =P1^3;
    	sbit ledqiangxi =P1^4;
    	sbit ledruoxi   =P1^5;
    	sbit ledxidi    =P1^6;
    	sbit ledpiaoxi  =P1^7;
    	sbit ledtuoshui =P2^0;
    	
    	sbit sshuiwei   =P3^6; //水位开关
    	sbit sgai       =P3^7; //盖开关
    	sbit paishui=P2^3; //排水阀控制
    	sbit jinshui=P2^2; //进水阀控制
    	
    	sbit U2=P2^4;
    	sbit U3=P2^5;
    	sbit k1=P3^0;  // 步进改变"标准、经济、单独、排水"四种方式
    	sbit k2=P3^1;  //强洗、弱洗
    	sbit k3=P3^2;  //运行、暂停和解除报替功能
    	void init()
    	{
    		uchar a=0,b=0,c=0;
    		TMOD=0x01;		       //T0工作于方式1
    		TH0=(65536-50000)/256; //定时时间50ms
    		TL0=(65536-50000)%256;
    		EA=1;				   //开总中断
    		ET0=1;				   //开T0中断
    		TR0=0;				   //关闭T0
    		EX0=1;				   //开外部中断0
    		IT0=1;				   //外部中断0边沿触发方式
    		U2=1;				   //电机停转

    展开全文
  • 基于51单片机全自动洗衣机控制系统(完整程序、注释和Proteus仿真)【验证过】 基于51单片机全自动洗衣机控制系统(完整程序、注释和Proteus仿真)【验证过】
  • 基于的51单片机全自动洗衣机设计 一、实验目的 二、实验内容 三、实验步骤 四、C代码如下 五、实验结果 六、实验体会 一、实验目的 模拟全自动洗衣机工作过程。以电机替代洗衣机电机。显示洗衣机工作的状态...
    展开全文
  • 模拟全自动洗衣机工作过程。以电机替代洗衣机电机。显示洗衣机工作的状态(进水、浸泡、洗衣、脱水、结束)。显示工作剩余时间(洗衣程序可自定义,时间精度:秒)。 洗衣时交替正、反转。
  • 图1给出单片机Z86C09组成的全自动洗衣机的控制电路。 Ⅰ.自动洗衣机的洗衣程序 洗衣机面板上有4个按钮K1、K2、K5和K6。K1用于水流选择,分两档:普通水流和柔和水流; K2用于洗衣周期选择,可以选择洗涤、漂洗和...
  • 1) 采用步进电机模拟洗衣机电机实现强洗,轻洗,弱洗的基本功能 2) 采用ADC0809采集电位器的电压来模拟水位 3) 通过键盘来实现对洗涤过程的控制 4) 采用X5045对部分数据进行储存和调用 实现通过RS232对浸泡时间的...
  • 自从全自动洗衣机诞生以来,洗衣机的内部的电路控制系统就被不断地改进,设计方法也越来越多样,从而使洗衣机朝着全自动化、多功能化、智能化的方向发展。 基于全自动家用洗衣机的应用日益广泛,本次设计采用可编程...
  • 基于51单片机全自动洗衣机控制系统(完整程序、注释和Proteus仿真)【验证过】
  • 、基于单片机全自动洗衣机自动控制系统的设计 该项目包括原理图电路图 程序源码 演示视频讲解文档全套资料 三分拿去 超值了
  • 【验证过】
  • 基于单片机全自动洗衣机控制系统设计.pdf
  • 第3章 全自动洗衣机程序设计……………………………………………………9 3.1.程序设计要求………………………………………………………………13 3.2.汇编程序清单…………………………………………………………...
  • 单片机控制的全自动洗衣机系统.pdf
  • 基于51单片机全自动洗衣机控制系统设计.pdf
  • 如题,单片机控制全自动洗衣机电路设计及程序原代码。
  • 基于单片机洗衣机通过控制系统设定洗衣程序在洗涤脱水桶内自动完成注水、洗涤、漂洗、排水和脱水过程。洗衣时控制系统打开进水电磁阀开始注水;当洗涤脱水桶内的水位达到系统设定值时单片机发送一个低电平通知控制...

    设计总方框图
    (末尾附文件)
    在这里插入图片描述
    原理图:
    在这里插入图片描述

    控制系统的功能
    基于单片机洗衣机通过控制系统设定洗衣程序在洗涤脱水桶内自动完成注水、洗涤、漂洗、排水和脱水全过程。洗衣时控制系统打开进水电磁阀开始注水;当洗涤脱水桶内的水位达到系统设定值时单片机发送一个低电平通知控制系统关闭进水电磁阀,同时启动电机洗衣。电机在系统的控制下进行正转、停、反转通过传动带动波轮执行洗涤程序;当洗涤时间终了,控制系统切断电机电路打开排水电磁阀开始排水;然后再次注水,洗衣机进入漂洗状态,完成漂洗程序后,开始排水,同时排水电磁阀的动作并且松开为脱水程序作好准备;排水结束后系统控制电机单方向高速运转完成脱水程序;当脱水程序终了系统控制排水电磁阀和电机断电,排水阀复位,同时蜂鸣器奏响,通知用户整个洗衣程序结束。

    该电路主要组成部件是由AT89C52单片机、指示灯、电动机、蜂鸣器、电控水龙头、LED显示灯、及4只按键组成。其组成如图3.1所示。电动机有两个控制端,一端控制电动机正转且该端与P.3 2相连,另一端控制电动机的反转且该端与P3.3相连。电控水龙头共两个,一个为进水水龙头且受P1.4的控制,另一个为排水水龙头而受P1.5的控制,当电控水龙头的控制端为“0”时水龙头打开,当电控水龙头的控制端为“1”时水龙头关闭。显示器是由思维数码管组成,有P1口控制段码,由P1.0到P1.4控制位码。蜂鸣器有由P3.0控制,当P3.0输出为“0”时蜂鸣器发声。本系统采用12M的晶体振荡器定时器0的设置为每隔50ms产生一次中断。

    电源电路
    单片机系统电源部分的电气原理图如图3.2所示。市电220V经过变压器T变压为12V交流电,再通过4只二极管全桥整流,经过电容C4、C6滤波得到光滑的直流电压后,经过三端稳压管(7805)稳压得到稳定的+5V电压给各器件供电。

    部分代码:

    
    #include<reg52.h> //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义
    #include "ADC0832.C" 
     unsigned char as; //水位,保存
    sbit k1=P1^0;//进水阀控制端口
    sbit k2=P1^1;//排水阀控制端口
    sbit k3=P1^2;//电机控制继电器一号
    sbit k4=P1^3;//电机控制继电器2号
    sbit led1=P2^0;//浸泡洗指示灯
    sbit led2=P2^1;//速洗指示灯
    sbit led3=P2^2;//标准洗指示灯
    sbit led4=P2^3;//脱水指示灯
    sbit led5=P2^4;//烘干指示灯
    sbit s1=P3^2;//数码管显示第一位公共端
    sbit s2=P3^3;//数码管第二位显示控制公共端
    sbit k5=P3^0;//烘干电机
    
    sbit ks1=P3^4;//洗衣机电源开关
    sbit ks2=P3^5;//洗衣机模式选择
    sbit ks3=P3^6;//启动按键
    
    sbit kk1=P3^1;//洗涤完报警
    
    unsigned int i,i1,i2,i3,i4;	//用于全局时钟定义
    unsigned char sf;		  //电机,正反转标志位
    unsigned char q[]={20,40,80,5,20};//五个模式显示时间	
    unsigned char q6[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,
                        0x77,0x7c,0x39,0x5e,0x79,0x71,0x00};//共阴数码管码表
    /*------------------------------------------------
                        定时器初始化子程序
    ------------------------------------------------*/
    void Init_Timer0(void)
    {
     TMOD |= 0x01;	       
     TH0=(65535-50000)/256;	  // 50ms*20=1000ms=1s   
     TL0=(65535-50000)%256;
     EA=1;            //总中断打开
     ET0=1;           //定时器中断打开
    // TR0=1;           //定时器开关打开
    }
    void delay(unsigned int t)
       {while(t--);}
    void a1()
      {
      
                          switch(as)
    					  {		 
    							case 1:
    								if(0xbe<Get_CHx_AD_Value(0))	//	 10*25 =250
                                    {TR0=1;k1=1;}else{TR0=0;k1=0;k2=k3=k4=k5=1;sf=0;}break;  
    							case 2:
    								if(0x9e<Get_CHx_AD_Value(0))	//	 10*25 =250
                                    {TR0=1;k1=1;}else{TR0=0;k1=0;k2=k3=k4=k5=1;sf=0;}break;
    							case 3:
    								if(0x91<Get_CHx_AD_Value(0))	//	 10*25 =250
                                    {TR0=1;k1=1;}else{TR0=0;k1=0;k2=k3=k4=k5=1;sf=0;}break;
    							case 4:
    								if(0x8a<Get_CHx_AD_Value(0))	//	 10*25 =250
                                    {TR0=1;k1=1;}else{TR0=0;k1=0;k2=k3=k4=k5=1;sf=0;}break;
    							case 5:
    								if(0x81<Get_CHx_AD_Value(0))	//	 10*25 =250
                                    {TR0=1;k1=1;}else{TR0=0;k1=0;k2=k3=k4=k5=1;sf=0;}break; 
    							case 6:
    								if(0x6e<Get_CHx_AD_Value(0))	//	 10*25 =250
                                    {TR0=1;k1=1;}else{TR0=0;k1=0;k2=k3=k4=k5=1;sf=0;}break;
    							case 7:
    								if(0x61<Get_CHx_AD_Value(0))	//	 10*25 =250
                                    {TR0=1;k1=1;}else{TR0=0;k1=0;k2=k3=k4=k5=1;sf=0;}break;
    							case 8:
    								if(0x55<Get_CHx_AD_Value(0))	//	 10*25 =250
                                    {TR0=1;k1=1;}else{TR0=0;k1=0;k2=k3=k4=k5=1;sf=0;}break;
    							case 9:
    								if(0x44<Get_CHx_AD_Value(0))	//	 10*25 =250
                                    {TR0=1;k1=1;}else{TR0=0;k1=0;k2=k3=k4=k5=1;sf=0;}break;
    						    case 10:
    								if(0x34<Get_CHx_AD_Value(0))	//	 10*25 =250
                                    {TR0=1;k1=1;}else{TR0=0;k1=0;k2=k3=k4=k5=1;sf=0;}break;	
    										 
    						}
    //   if(as*25<Get_CHx_AD_Value(0))	//	 10*25 =250
    //   {TR0=1;k1=1;}else{TR0=0;k1=0;k2=k3=k4=k5=1;sf=0;}
     //SendByte(Get_CHx_AD_Value(0));
      }
    void a2()
      {	//	  SendByte(Get_CHx_AD_Value(0));
       if(Get_CHx_AD_Value(0)<0xe0)
         {
    	  TR0=1;
    	 }
    	 else
    	   TR0=0;
      }
    /*------------------------------------------------
                        主程序
    ------------------------------------------------*/
    //void InitUART  (void)
    //{
    //
    //    SCON  = 0x50;		        // SCON: 模式 1, 8-bit UART, 使能接收  
    //    TMOD |= 0x20;               // TMOD: timer 1, mode 2, 8-bit 重装
    //    TH1   = 0xF3;               // TH1:  重装值 9600 波特率 晶振 11.0592MHz  
    //    TR1   = 1;                  // TR1:  timer 1 打开                         
    //    EA    = 1;                  //打开总中断
    //    //ES    = 1;                  //打开串口中断
    //} 
    //void SendByte(unsigned char dat)
    //{
    // SBUF = dat;
    // while(!TI);
    //      TI = 0;
    //	 
    //}    
    void main()
    {unsigned int xc1,xc2,xc3; //XC1用于计算模式
      unsigned int sd=0;   //蜂鸣器循环次数报警
    	ks1=ks2=ks3=1;	   //案件给高电平
     Init_Timer0();//定时器初始化
     //InitUART ();
    	xc2=xc3=15;
     while(1)
     {	 //  SendByte(Get_CHx_AD_Value(0));
    	 if(ks1==0)
    	 { delay(20000);   //按键延时去抖
    	  xc2=xc3=15;
    		  while(ks1==0);//等待按键释放
    		 while(1)
    		 { stop: //跳转介质为
    		  if(ks2==0)
    		  {delay(20000);
    				while(ks2==0);
    				xc1++;	 //每次进入模式选择+
    		 	    
    				if(xc1==6){xc1=1;}//当循环到6重新,跳动到第一个
    				switch(xc1)	  //判断进入点亮相应,LED
    				{case 1:
    					   led1=0;led2=led3=led4=led5=1;break; //点亮之后直接退出
    					case 2:
    					   led2=0;led1=led3=led4=led5=1;break;
    					case 3:
    					   led3=0;led2=led1=led4=led5=1;break;
    					case 4:
    					   led4=0;led2=led3=led1=led5=1;break;
    					case 5:
    					   led5=0;led2=led3=led4=led1=1;break;
            }
    		xc2=q[xc1-1]/10;//显示时间转换		 25/10;
    				xc3=q[xc1-1]%10;//显示时间转换		  25%10;
    				//if(xc1==5){xc1=0;}
          }
    				if(ks3==0)	//判断,是否启动按键按下
    				{delay(20000); //延时去抖
    					switch(xc1)//判断案件为哪一个模式,并,把时间给定时器
    					  {		  //如果都不是,则为零
    							case 1:
    								i2=20;i3=0;break;	  
    							case 2:
    								i2=40;i3=0;break;
    							case 3:
    								i2=80;i3=0;break;
    							case 4:
    								i2=5;i3=0;break;
    							case 5:
    								i2=20;i3=0;break;		 
    						}
    				 if(i2==0) //判断如果启动时时间为零,则进入设置为模式
    				   { while(1) //死循环,一直在设置水位
    				   	 {	if(ks3==0)	//帮,启动按键再次按下时水加
    					   {delay(20000);//简单延时去抖
    					   as++;		  //,变量加
    					   if(as==11)as=1; //最高水位设置为10当再次达到11位变为1
    					   while(ks3==0);  //等待按键释放
    					   }
    				s1=0;s2=1;//打开第一个数码管
    		        P0=q6[as/10]; //进行数据处理并打印
    		        delay(10);	//进行延时稳定
    		        P0=0x00;	 //萧影
    		 
    		        s1=1;s2=0;
    		        P0=q6[as%10];
    		        delay(10);
    		        P0=0x00;
    				if(ks1==0){delay(20000);while(ks1==0);goto stop;}//如果当开关按下时跳转到前面,开机状态
    					 }
    				   }
              while(ks3==0);  //判断案件释放
    		   	TR0=1;	        //打开定时器进行计数
    					while(1)   //死循环,用于判断整个流程完成
    					{
    				s1=0;s2=1;	  //数码管显示用于打印定时器时间
    		        P0=q6[i2/10];
    		        delay(10);
    		        P0=0x00;
    		 
    		        s1=1;s2=0;
    		        P0=q6[i2%10];
    		        delay(10);
    		        P0=0x00;
    						switch(xc1)	 //判断模式
    						 {
                                   case 1:
    								switch(i3)
                                {            case 0:
    											  a1();break;
    										 case 1:
    											 k1=k2=k5=1;sf=1;break;
    										 case 7:
    											 k2=0;k1=k3=k4=k5=1;sf=0;a2();break;
    										 case 8:
    											 k3=0;k1=k2=k4=k5=1;sf=0;break;
    										 case 9:
    											 a1();break;
    										 case 10:
    											 k1=k2=k5=1;sf=1;break;
    										 case 14:
    											 k2=0;k1=k3=k4=k5=1;sf=0;a2();break;
    										 case 15:
    											 k3=0;k1=k2=k4=k5=1;sf=0;break;
                               }break;
    							        case 2:
    									switch(i3)
                                            {case 0:
    											  a1();break;
    										 case 1:
    											 k1=k2=k5=1;sf=1;break;
    										 case 15:
    											 k2=0;k1=k3=k4=k5=1;sf=0;a2();break;
    										 case 16:
    											 k3=0;k1=k2=k4=k5=1;sf=0;break;
    										 case 17:
    											  a1();break;
    										 case 18:
    											 k1=k2=k5=1;sf=1;break;
    										 case 30:
    											 k2=0;k1=k3=k4=k5=1;sf=0;a2();break;
    										 case 31:
    											 k3=0;k1=k2=k4=k5=1;sf=0;break;
                                            }
    										break;
    							case 3:
    									switch(i3)
                                            {case 0:
    											  a1();break;
    										 case 1:
    											 k1=k2=k5=k3=k4=1;break;
    										 case 40:
    											 k1=k2=k5=1;sf=1;break;
    										 case 55:
    											 k2=0;k1=k3=k4=k5=1;sf=0;a2();break;
    										 case 56:
    											 k3=0;k1=k2=k4=k5=1;sf=0;break;
    										 case 57:
    											 a1();break;
    										 case 58:
    											 k1=k2=k5=1;sf=1;break;
    										 case 70:
    											 k2=0;k1=k3=k4=k5=1;sf=0;a2();break;
    										 case 71:
    											 k3=0;k1=k2=k4=k5=1;sf=0;break;
                                             }
    							break;
    							case 4:
    								switch(i3)
                                             {case 0:
    											 k2=0;k1=k3=k4=k5=1;sf=0;a2();break;
    										 case 1:
    											 k3=0;k1=k2=k4=k5=1;sf=0;break;
    										
                                             }
    							break;
    							case 5:
    								switch(i3)
                                            {case 0:
    											 k2=0;k1=k3=k4=k5=1;sf=0;a2();break;
    										 case 1:
    											 k5=0;k1=k2=k4=k3=1;sf=0;break;
                                            }
    							break;
                          }
    						 if(i2==0){P0=P1=P2=P3=0xff;TR0=0;
                      xc1=xc2=xc3=0;i=i1=i2=i3=i4=0;sf=0;ks1=0;break;}
    						 if(ks1==0)break;
    					}
            }
    		 s1=0;s2=1;
    		 P0=q6[xc2];
    		 delay(10);
    		 P0=0x00;
    		 
    		 s1=1;s2=0;
    		 P0=q6[xc3];
    		 delay(10);
    		 P0=0x00;
    				
    			 
    			 if(ks1==0){delay(20000);P0=P1=P2=P3=0xff;TR0=0;
                      xc1=xc2=xc3=0;i=i1=i2=i3=i4=0;sf=0;
    				  for(sd=5;sd>0;sd--){delay(20000);kk1=1;delay(20000);kk1=0;}
    				  kk1=1;break;}
         }
    		   if(i2==0){ks1=1;}
    		  while(ks1==0);
       }
    	 else
    	 {s1=0;s2=1;
    		 P0=q6[16];
    		 delay(10);
    		 P0=0x00;
    		 
    		 s1=1;s2=0;
    		 P0=q6[16];
    		 delay(14);
    		 P0=0x00;
    
       } 
    }
    }
    
    /*------------------------------------------------
                     定时器中断子程序
    ------------------------------------------------*/
    void Timer0_isr(void) interrupt 1 using 1
    {
     TH0=(65535-50000)/256;	      //给定初值,这里使用定时器最大值从0开始计数一直到65535溢出
     TL0=(65535-50000)%256;		  //50ms*20=1000ms=1s;
    	i++;
    if(i==20)
    {i=0;	//用于下一次计算
    	if(sf==1){i4++;if(i4==1){k3=1;k4=0;}if(i4==2){k3=0;k4=1;i4=0;}}
    	//{k3=1;k4=0;}
    	i1++;
      if(i1==5)
    	{i1=0;
    		i2--;
    		i3++;
    
      }
    }
    }
    

    .

    链接:https://pan.baidu.com/s/1wowj-CkiVshYPAYS7v0eVA
    提取码:zi89

    .

    展开全文
  • 关于单片机的毕业论文,主题为:全自动洗衣机系统设计。自己以前写的两篇论文中的一篇。赚点积分,方便以后资源下载。
  • 全自动洗衣机 单片机

    2010-03-06 03:17:36
    全自动洗衣机的系统设计 摘 要:近年来随着计算机在社会领域的渗透,单片机的使用正在不断地走向深入,同时带动传统控制检测的日新月益更新。在实时检测和自动控制的单片机应用系统中,单片机往往是作为一个核心...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 410
精华内容 164
关键字:

单片机全自动洗衣机程序