⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 xiyiji.c

📁 能实现4种洗衣程序选择 标准洗衣 经济洗衣 单独洗衣 单独脱水 选择 高低水位 强弱洗 是否开启浸泡功能 还有脱水程序选择 3、5分间歇脱水 3、5分长脱水四种
💻 C
📖 第 1 页 / 共 2 页
字号:
}
void delay_s(unsigned char timedata)
{
    timedata=timedata*20;
	TR0=1;
	while(timedata!=0)
	{
	    TH0=0x3c;
		TL0=0xb0;
		while(TF0!=1);
		TF0=0;
		timedata--;
	}
	TR0=0;
}
void Frequency(void)interrupt 1 using 2
{					  
    if(flag==1)
	{
	   TF0=0;
	   feng=!feng;
	   TH0=BTH0;
	   TL0=BTL0;
	}
}

//-----定时器T1中断子函数-----------------------------------------------------------------------------------
void delay_50ms(void) interrupt 3 using 3
{
   
   TF1=0;
   p++;
   TH1=0x3c;  //定时50ms
   TL1=0xb0;
   if(p==20)						
   {
   	  p=0;
	  s0--;
	  if(s0<0)
	  {
	     s0=9;
		 s1--;
		 if(s1<0)
		 {
		    s1=5;
			m0--;
			if(m0<0)
			{
			   m0=9;
			   m1--;
			   if(m1<0)  {TH1=0x3c;TL1=0xb0;if(dsd==1) gj=1;dsd=1;TR1=0;}
			}
		 }
	  }
	  
   }
}
//-----主函数-------------------------------------------------------------------------------
void main(void)
{
   	init();
//-----洗衣程序选择------------------------------------------------------------------------
   while(cout!=1)			   //1键为洗衣程序确认键
   {
   	 key_saomiao();
     if(cout==2)
     {
        i++;
	    if(i>3) i=0;			 //i为洗衣程序 0为标准洗衣 1为经济洗衣 2为单独洗衣 3为单独脱水
     }										 
     if(cout==3)
     {
   	    i--;
	    if(i<0) i=3;
     }
     if((cout==2)||(cout==3))  cout=0;
	 senddata=tab[i];
	 sendbyte(senddata);
	 delay_ms(1);
   }
   lastdata=senddata;
   cout=0;
   //----选择单独脱水时间(当选择单独脱水时)-------------------------------------------------------------------
   if(i==3)
   {
      while(cout!=1)	   //4键为选择脱水时间确认键
	  {
	    key_saomiao();
		if(cout==2)  
	    {
	       j++;
		   if(j>=100) j=99;						 //j为单独脱水时的脱水时间
	    }
        if(cout==3)
        {
   	      j--;
	      if(j<0) j=0;
        }
		if((cout==2)||(cout==3)) cout=0;
	    sw=j/10;		  //脱水时间的十位
	    gw=j%10;
	    P0=led_code[gw];
	    WX_SM(1,1,1);
	    delay_ms(2);
	    P0=led_code[sw];
	    WX_SM(1,1,0);
	    delay_ms(2);
		P0=0xff;
	  }
	  cout=0;
   }
   //-----设置高低水位(当选择为标准、经济、单独洗衣时)--------------------------------------------------------------------------
   if(i!=3) 
   {
      while(cout!=1)	  //4键为选择高低水位确认键
     {
        key_saomiao();
	    if((cout==2)||(cout==3))
		{
		    k++;
			if(k>5)  k=4;
		}						  //k为高低水位	 4为高水位 5为低水位
	    if((cout==2)||(cout==3))  cout=0;
		senddata=tab[k];
		senddata=senddata&lastdata; 
		sendbyte(senddata);
	    delay_ms(1);
	 }
	 lastdata=senddata;
	 cout=0;
	 //-----设置强弱洗--------------------------------------------------------------------------------------------------------------
	 while(cout!=1)
	 {
	    key_saomiao();
		if((cout==2)||(cout==3))
		{
		   qr++;					 //qr为强弱洗	6为强洗 7为弱洗
	       if(qr>7)  qr=6;
		}
		if((cout==2)||(cout==3))cout=0;
		senddata=tab[qr];
		senddata=senddata&lastdata; 
		sendbyte(senddata);
	    delay_ms(1);
	 }
	 lastdata=senddata;
 	 cout=0;
	 //-----是否开启浸泡功能------------------------------------------------------------------------------------------
	 while(cout!=1)
	 {
	     key_saomiao();
		 if((cout==2)||(cout==3))
		 {
		 	pao++;
	        if((pao>8)&&(pao<16))  pao=16;
			if(pao>16) pao=8;							 //8为开启浸泡功能 16为关闭浸泡功能
	 	 }
		if((cout==2)||(cout==3))cout=0;
		senddata=tab[pao];
		senddata=senddata&lastdata; 
		sendbyte(senddata);
	    delay_ms(1);
 	 }
	 lastdata=senddata;
	 cout=0;
   }
   //-----脱水程序选择--------------------------------------------------------------------------------------
   if(i!=2)
   {
       while(cout!=1)
      {
           key_saomiao();
           if(cout==2)
           {
              m++;
	          if(m>12) m=9;			 //m为脱水程序 9为3分间歇脱水 10为5分间歇脱水 11为3分长脱水 12为5分长脱水
           }										 
           if(cout==3)
           {
   	          m--;
	          if(m<9) m=12;
           }
          if((cout==2)||(cout==3))  cout=0;
	      senddata=tab[m];
	      senddata=senddata&lastdata; 
	      sendbyte(senddata);
	      delay_ms(1);
	      if(i==3)
	      {
	         P0=led_code[gw];
	         WX_SM(1,1,1);
	         delay_ms(2);
	         P0=led_code[sw];
	         WX_SM(1,1,0);
	         delay_ms(2);
	     }
      }
      lastdata=senddata;
      cout=0;
   }
//-----洗衣主程序------------------------------------------------------------------------------------------
   if(i!=3)		//在标准、经济、单独洗衣程序下进入进水程序
   {	  
	  xy_jinshui();
	  //-----浸泡衣物------------------------------------------------------------
	  if(pao==8)
	  {
		  q=6;
		  while(q!=0)			 //先洗涤1分钟
		  {	  
		   	  q--;
			  zhengz=0;
		      delay_s(4);	   //正转4s
		      zhengz=1;
		      delay_s(1);	  //停止1s
		      fanz=0;
		      delay_s(4);  //反转4s
		      fanz=1;
		      delay_s(1);	    //停止1s
		  }
		  m1=1,m0=0,s1=0,s0=0; //再浸泡10分钟
		  TR1=1;
		  while(dsd!=1) led();
		  dsd=0;			
	  }
	  //-----标准洗衣、经济洗衣--------------------------------------------------------------
	  if(i!=3)
	  {
	        //----洗涤环节-------------------------------------------------------
		F1:	q=12-n*12; //第一次洗涤6分钟
		    xy_xidi();  
			//----排水环节--------------------------------------------------------
			if(i==2) goto F2;
		F0: paisf=0;			  //洗涤完成开始排水
		    m1=2,m0=0,s1=0,s0=0;	 //设置排水时间限制
		    TR1=1;
		    xy_paishui();
		    time0=(m1*60*10+m0*60+s1*10+s0);
		    time0=(1200-time0);						   //time0为排水花去的时间
		    time1=2*time0+60;
		    if(time1>=190)  time1=190;
		    time0=(time1-time0);
			P0=led_code[time0];
			delay_s(2);					
			delay_s(time0);
		    //----脱水环节---------------------------------------------------------
			if((m==9)||(m==10))
			{
			       if(m==9) q=26;
			       if(m==10)q=43;
			  F3:  while(q!=0) 
				   {     
						q--;
						tuoshui_jianxie();
						if(pianx==0)
						{
							 if(s==4)
							 {
							       	 m1=2,m0=0,m1=0,m0=0;	//设定报警时间限 20分钟
									 TR1=1;
		                             errcode=3;			  //设置故障代码:3表示脱水不平衡 衣物重心不在中心 
			                         alarm();
		                             key_saomiao();			
		                             if(cout==4) dsd=0;		//4键关闭报警
		                             if(gj==1)   stop=0;		//报警20分钟若无任何人为动作,则自动关机

							 }
							 if(s!=0) xiuzheng();
							 s++;
						}
				   }
			}
			else 
			{
			     if(m==11) m1=0,m0=3,s1=0,s0=0;
				 if(m==12) m1=0,m0=5,s1=0,s0=0;
				 TR1=1;
			F4:	 while(dsd!=1)
				 {
				        zhengz=0;		 //长脱水,电机一直正转
						if(pianx==0)
						{
							 if(s==4)
							 {
							       	 m1=2,m0=0,m1=0,m0=0;	//设定报警时间限 20分钟
									 TR1=1;
		                             errcode=3;			  //设置故障代码:3表示脱水不平衡 衣物重心不在中心 
			                         alarm();
		                             key_saomiao();			
		                             if(cout==4) dsd=0;		//4键关闭报警
		                             if(gj==1)   stop=0;		//报警20分钟若无任何人为动作,则自动关机

							 }
							 if(s!=0)
							 {
							      xiuzheng();
								  goto F0;
							 }
							 s++;
						}
				 }
				 dsd=0;
				 zhengz=1;
			}
		    delay_s(10);
		    paisf=1;
		    n++;
		    //-----标准洗衣-----------------------------------------------------------------------------------------------
			if(i==0)
			{
			     if(n<=2)
				 {
				        xy_jinshui();
				        goto F1;
				 }
			}
			//-----经济洗衣------------------------------------------------------------------------------------------------
			if(i==1)
			{
			     if(n<=1)
				 {
				 		xy_jinshui();
				        goto F1;
				 }
			}
		 }
	  }
	  else if(i==3)
	  {
	       if((m==9)||(m==10))
		   {
		   	     q=(sw*60*10+gw*60)/7+1;
				 goto  F3;
		   }
		   if((m==11)||(m==12))
		   {
		          m1=sw,m0=gw,s1=0,s0=0;
		          TR1=1;
				  goto F4;
		   }
	  }
F2:	q=10;																	  
    while(q!=0)			   //播放10遍音乐以提示用户洗衣完成、取走衣物
	{										
		if(gqbm[y]==9)
		{
		    y=0;
			q--;
		}
		else if(gqbm[y]!=9)
		{	
		    if((gqbm[y]==0)&&(gqbm[y+1]==0)) 
			{
			    BTH0=0;
				BTL0=0;
			}
		    else 
			{
			    x=gqbm[y]*12+gqbm[y+1]+tone[0];
			    BTH0=TH[x];
			    BTL0=TL[x];
			}
			time2=Beat[gqbm[y+2]];
			sing();
			y=y+3;
		}
    }
	stop=0;		//关闭洗衣机
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -