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

📄 洗衣机源程序.c

📁 用C语言实现的单片机洗衣机程序
💻 C
📖 第 1 页 / 共 2 页
字号:
			                delay(2);		
				            mainlyinterface();
				            break;	
				         }	       */
		        
	           default:{ 
						flag3=0;
						mainlyinterface();
						break;	
						}
	              
	              }  
	}

	break;
}	

		
/*运行甩干部分*/case 5:	{ clear();
			              dlbjdj=35;
			              display(0x80,shuaigan0); 
		    	          while(sum<10)
			          { 
			           display1(sum);
			           while(!yes)
			           {ctrl(0,15);
		                }
			          yes=0;
			          sum++;
		            }
		              sum=0;	 
			          clear();		
				      mainlyinterface();
				      break;	
				   }      
			default:{ 
				       flag1=0;
				       mainmenu();
				       break;
				    }
     			}
 		}
	flag1=1;
      break;
 } 
 
/*自动操作过程*/
     case 2:{	
 			p31=0;
			clear();
			display(0x90,water0);
			while(!p31)
			{adc0809(ad);}		
			clear();
			display(0x90,water1);
			delay(3);
			clear();		
			
			display(0x80,jinpao0);
			while(sum<10)
			{
			 display1(sum);
			 while(!yes);
			 yes=0;
			 sum++;
		    }
		    sum=3;		    
			clear();
			display(0x90,jinpao1);
			delay(2);
			clear();
			
			display(0x80,qiangxi0);
		    dlbjdj=35;
		    while(sum<10)
			{ 
			  display1(sum);
			  while(!yes)
			  {ctrl(0,10);
		      ctrl(1,10);}
			  yes=0;
			  sum++;
		    }
		    sum=4;	
			clear();
			display(0x90,qiangxi1);
			delay(2);
			clear();
			
			sum=4;
	        display(0x80,qingxi0);
			dlbjdj=55;
			  while(sum<10)
			{ 
			  display1(sum);
			  while(!yes)
			  {ctrl(0,7);
		      ctrl(1,7);}
			  yes=0;
			  sum++;
		    }
		    sum=4;	
			clear();
			display(0x90,qingxi1);
			delay(2);
		    clear();
		    	
		    display(0x80,ruoxi0);
		    dlbjdj=70;
		      while(sum<10)
			{ 
			  display1(sum);
			  while(!yes)
			  {ctrl(0,6);
		      ctrl(1,6);}
			  yes=0;
			  sum++;
		    }
		    sum=4;	 
			clear();
			display(0x90,ruoxi1);
			delay(2);
			clear();	
			
			display(0x80,water2);	
			while(p31)
			{adc0809A(ad);}
			delay(3);	
			p31=1;
			clear();
			display(0x80,water3);	
			delay(2);
				
			dlbjdj=50;
			display(0x80,tuoshui0);	
				while(sum<10)
			{ 
			  display1(sum);
			  while(!yes)
			  {ctrl(0,10);
			   ctrl(0,10);
		      }
			  yes=0;
			  sum++;
		     }
		    sum=0;	 
			clear();						    	
			display(0x90,tuoshui1);
			delay(2);
			clear();
					
			clear();
			p31=0;
			display(0x90,water0);
			delay(3);
			while(!p31)
			{adc0809(ad);}		
			clear();
			display(0x90,water1);
			delay(3);
			clear();					
			
			dlbjdj=50;
			display(0x80,piaoxi0);
	          while(sum<10)
			{ 
			  display1(sum);
			  while(!yes)
			  {ctrl(0,10);
		      ctrl(1,10);}
			  yes=0;
			  sum++;
		    }
		    sum=0;	 
			clear();
			display(0x90,piaoxi1);
			delay(2);			
			clear();
			
			p31=1;
			display(0x80,water2);	
			while(p31)
			{adc0809A(ad);}	
			p31=1;
			clear();
			display(0x80,water3);	
			delay(2);
			
			dlbjdj=40;
			display(0x80,shuaigan0); 
		    	while(sum<10)
			{ 
			  display1(sum);
			  while(!yes)
			  {ctrl(0,15);
		      }
			  yes=0;
			  sum++;
		    }
		    sum=0;	 
			clear();		
			display(0x90,zidong1);
			delay(2);
			display(0x90,zidong2);
			delay(4);
			clear();
			mainmenu();
			break;	
		       }	
		}
    	}
}

/*各种菜单显示*/
void Welcome()
{   	
	clear();
	display(0x80,welcom0);   
    display(0x90,welcom1);   
    display(0x88,welcom2);
    display(0x98,welcom3);
}
void mainmenu()
{	clear();
	display(0x80,menu);
	display(0x90,menu0);
   	display(0x88,menu1);
}
void mainlyinterface()
{   
	clear();
	display(0x80,handwash);
    display(0x90,list21);  
	display(0x88,list22);
	display(0x98,list23);      
}
void choose()
{   clear();
	display(0x80,shuiwei);
    display(0x90,yiji);  
	display(0x88,erji);
	display(0x98,sanji); 
}
void IntensitySelectMenu()
{   clear();
    display(0x80,xidicaidan);  
	display(0x90,fangshi0);
	display(0x88,fangshi1);

}
void washtime(void)	
{   clear();
    display(0x80,piaoxicishu0);
    display(0x90,piaoxicishu1);
    display(0x88,piaoxicishu2);
}
void dlms(uint speed)   /*步进电机节拍控制*/
{   
	 uint i;
	 uint j;
	for(i=0;i<speed&&p30;i++)
	{
		for(j=0;j<10;j++);
	}
}

void delay(uint n)
{   uint i;
    for(i=0;i<n;i++)
	{
       delay1();
     }

}




/* LCD 函数 */

void lcd_busy(void)   /*LCD忙状态检测函数 */
{
	do 
	{
  	  status=r_s_add;  /* 读状态字地址的第7位 */
	}	
	while(busy);
}

void clear()
{
    lcd_busy();
	w_c_add=0x30;   /* 功能设置:8位数据 */
	lcd_busy();     
	w_c_add=0x0C;   /* 显示状态:整体显示,游标位置无效*/
	lcd_busy();
	w_c_add=0x01;/* 清除显示:将DDRAM填满“20H”,并且设定DDRAM的地址计数器到“00”*/
	lcd_busy();
	w_c_add=0x02;/* 地址归位:设定DDRAM的地址计数器到“00”,将游标移到开头原点位置 */
	display(0x80,space);  
	display(0x90,space);
	display(0x88,space);
	display(0x98,space);
}
void display(uint m,uchar *p)
{   uint n;
	uint add;	
	add=m;    /* 设置显示坐标,80H对应字符的第一行第一列 */  
	lcd_busy();
	w_c_add=add; /* 写数据 */
	for(n=0;n<8;n++)
	{
		lcd_busy();
		w_d_add=p[2*n];
		lcd_busy();       /* 写数据 ,上半字节*/
		w_d_add=p[2*n+1]; /* 写数据 ,下半字节*/
	}
	
}
/*倒计时显示函数*/
void display1(uchar time)
{   uchar n;
	uchar add;	
	lcd_busy();
	add=0x90;    /* 设置显示坐标,80H对应字符的第一行第一列 */  
	lcd_busy();
	w_c_add=add; /* 写数据 */
	for(n=0;n<8;n++)
	{
		lcd_busy();
		w_d_add=xidi[2*n];
		lcd_busy();       /* 写数据 ,上半字节*/
		w_d_add=xidi[2*n+1]; /* 写数据 ,下半字节*/
	}
    add=0x94;
    lcd_busy();
    w_c_add=add; 	
    lcd_busy();
    w_d_add=number[time];
    lcd_busy();
}	



/*键盘函数*/

uint  getkey()/*取键值函数*/
{ uchar i;
  while(ifkey()==0);/*无键按下等待*/
  COM=0x40;/*读fifo ram命令*/
  i=DAT;
  i=i&0x3f;/*取键值低6位*/
  return(i);/*返回键值*/
}
uint ifkey(void)/*判断fifo有键按下函数*/
{ uint k;
  k=COM;
  return(k&0x0f);/*有键按下*/
}


/*步进电机*/
void  ctrl(bit cf,uint n)
{   uint  i;
	uchar  j=0;
	uint  k;
    if(cf==0)         /*正转标志*/
	for(k=0;k<n;k++)
    {for(i=0;i<11;i++)
     {P1=plus[j];
  	  dlms(dlbjdj);
      j+=1;
      if(plus[j]==0)  j=0;
       }
  }
      else              /*反转标志*/
      for(k=0;k<n;k++)
      { for(i=0;i<11;i++)
          {P1=minu[j];
  	       dlms(dlbjdj);
           j+=1;
           if(minu[j]==0)  j=0;
           }
       }
}

/*ad转换函数*/     
/*上水检测函数*/ 
void adc0809(uchar idata *x)
{ uchar i;
  uchar xdata *ad_adr;
   p31=0;	
  ad_adr=&IN0;
  for(i=0;i<2;i++)               /* 1个通道           */
  { *ad_adr=i;                   /* 启动AD转换        */
    delaymm();                     /* 延时等待          */
    x[i]=*ad_adr;                /* 取转换值          */
    
  }
  if(x[1]>180)p31=1;
  else p31=0;
}
/*上水检测函数*/
void adc0809A(uchar idata *x)
{ uchar i;
  uchar xdata *ad_adr;
   p31=0;	
  ad_adr=&IN0;
  for(i=0;i<2;i++)               /* 1个通道           */
  { *ad_adr=i;                   /* 启动AD转换        */
    delaymm();                   /* 延时等待          */
    x[i]=*ad_adr;                /* 取转换值          */
  }
  if(x[1]>100)p31=1;
  else p31=0;
}
void delaymm(void)               /*ad用延时           */
{  uchar i,j;
	for(i=0;i<10;i++)
	{
     for(j=0;j<200;j++)
     {;}
    }
}

⌨️ 快捷键说明

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