全自动洗衣机
单片机源程序如下:
- #include <reg51.h> /*地址头文件*/
- #include <absacc.h> /*绝对地址访问头文件*/
- #include <math.h> /*数学库函数*/
- #include <intrins.h> /*内部函数库*/
- #define IN0 XBYTE[0x2030] /* 0809通道0地址 */
- #define w_c_add XBYTE[0x2070] /* lcd写命令字地址 */
- #define w_d_add XBYTE[0x2071] /* lcd写数据地址 */
- #define r_s_add XBYTE[0x2072] /* lcd读状态字地址 */
- #define r_d_add XBYTE[0x2073] /* lcd读数据地址 */
- #define c8279 XBYTE [0x2021] /* 8279命令/状态口的地址 */
- #define d8279 XBYTE [0x2020] /* 8279数据口地址 */
- unsigned char water_level;/*水位*/
- unsigned char wash_power;/*洗涤强度*/
- unsigned char wash_power1;
- unsigned char piao_time;/*漂洗次数*/
- unsigned char m;
-
- unsigned char code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,
- 0x77,0x7c,0x39,0x5e,0x79,0x71}; /* 字型表 */
- unsigned char code TAB1[8] = {0x10,0x30,0x20,0x60,0x40,0xC0,0x80,0x90};//电机正转
- unsigned char code TAB2[8] = {0x90,0x80,0xC0,0x40,0x60,0x20,0x30,0x10};//电机反转
- unsigned char bdata status; /* 可位寻址片内数据存储器,允许位与字节混合访问 */
- sbit busy=status^7; /*“忙”线的第7位*/
- sbit clflag=ACC^7; /*8279查询位*/
- unsigned char key;
- unsigned char keyflag=0;
- unsigned char Min;
- unsigned char Sec;
- unsigned char TimeEnd=0;
- unsigned char ZTime;
- sbit Speaker=P3^6; /*蜂鸣器*/
- sbit Led=P3^0; /*Led小灯*/
- sbit Led1=P3^1; /*Led小灯*/
- void alarm(unsigned int t);
- void delay(unsigned int t);
- void delay1(unsigned char n);
- void DaoJiShi();
- void TimeSelect();
-
- void lcd_num(unsigned char i,unsigned char j,unsigned char num);
- void lcd_string(unsigned char i,unsigned char j,unsigned char *s);
- void lcd_clr(); /*LCD清除程序*/
- void init_lcd(); /*LCD初始化*/
- void lcd_busy(void); /*LCD忙状态检测函数 */
- void init_8279(void);
- unsigned char adc0809();
- void play0809(unsigned char m,unsigned char n);
-
- void MotorChoose();
- void MotorChoose1();
-
-
- void ZdCanShu();
- void PxTimes();
- void XdPower();
- void ShuiWei();
- void ShangShui();
- void QinPao();
- void TuoShui();
- void XiDi();
- void ShuaiGan();
- void PiaoXi();
-
- /*******************************************************************************
- 主函数
- *******************************************************************************/
- void main()
- { unsigned char j;
- init_lcd();
- init_8279();
-
-
- while(key!=0x0f); /*按f开启洗衣机*/
- alarm(2);
- keyflag=0;
- lcd_string(1,1,"****************");
- lcd_busy();
- lcd_string(2,1,"欢迎使用洗衣机");
- lcd_busy();
- lcd_string(3,1,"按任意键继续");
- lcd_busy();
- lcd_string(4,1,"****************");
- while(keyflag!=1);
- alarm(2);
- keyflag=0;
- lcd_clr();
- lcd_busy();
- lcd_string(2,3,"开始工作!");
- delay(5);
- lcd_busy();
- lcd_string(2,1,"请选择使用模式");
- delay(5);
- lcd_clr();
-
-
- lcd_clr();
- lcd_busy();
- lcd_string(1,1,"0 - 全自动模式");
- lcd_string(2,1,"1 - 浸泡");
- lcd_string(2,5,"2 - 洗涤");
- lcd_string(3,1,"3 - 漂洗");
- lcd_string(3,5,"4 - 甩干");
- while(1!=keyflag);
- alarm(2);
- keyflag=0;
- lcd_clr();
-
- switch(key)
- {
- case 0:
- { ZdCanShu();
- /*********************上水**************************/
-
- lcd_busy();
- lcd_string(4,1,"请按确认键");
- while(key!=0x0e); /*按e确认*/
- alarm(1);
- keyflag=0;
-
- lcd_clr();
- lcd_busy();
- lcd_string(1,1,"上水中");
- ShangShui();
- delay(5);
- /*******************浸泡***************************/
- QinPao();
- delay(2);
- /*********************洗涤**************************/
- XiDi();
- delay(2);
- /*********************脱水**************************/
- TuoShui();
- delay(2);
- /*********************漂洗**************************/
- PiaoXi();
- delay(2);
- /*********************甩干**************************/
- ShuaiGan();
- delay(2);
-
- break;
- }
- case 1:
- { ShuiWei();
- /*********************上水**************************/
-
- lcd_busy();
- lcd_string(3,1,"请按确认键");
- while(key!=0x0e); /*按e确认*/
- alarm(1);
- keyflag=0;
-
- lcd_clr();
- lcd_busy();
- lcd_string(1,1,"上水中");
- ShangShui();
- delay(5);
-
- /*******************浸泡***************************/
- QinPao();
- break;
- }
- case 2:
- { ShuiWei();
- XdPower();
- /*********************上水**************************/
-
- lcd_busy();
- lcd_string(3,1,"请按确认键");
- while(key!=0x0e); /*按e确认*/
- alarm(1);
- keyflag=0;
-
- lcd_clr();
- lcd_busy();
- lcd_string(1,1,"上水中");
- ShangShui();
- delay(5);
- /*********************洗涤**************************/
- XiDi();
- delay(2);
- /*********************脱水**************************/
- TuoShui();
- delay(2);
- break;
-
- }
- case 3:
-
- { ShuiWei();
- PxTimes();
- lcd_busy();
- lcd_string(3,1,"请按确认键");
- while(key!=0x0e); /*按e确认*/
- alarm(1);
- keyflag=0;
- /*********************漂洗**************************/
- PiaoXi();
- delay(2);
- break;
- }
-
- case 4:
- {/*********************甩干**************************/
- lcd_clr();
- lcd_busy();
- lcd_string(2,1,"请按确认键");
- while(key!=0x0e);
- alarm(1);
- keyflag=0;
- ShuaiGan();
- delay(2);
- break;
- }
-
- default:break;
- }
-
- lcd_clr();
- while(j<5)
- {
- alarm(2);
- delay(2);
- lcd_busy();
- lcd_string(2,3,"工作结束!");
- j++;
- }
-
- lcd_clr();
- while(1);
-
- }
- /*******************************************************************************
- 函数名:delay
- 函数功能:延时函数
- *******************************************************************************/
- void delay(unsigned int t)
- {
- unsigned int i,j;
- for(i=0;i<t;i++)
- {
- for(j=0;j<30000;j++);
- }
- }
- /*******************************************************************************
- 函数名:delay1
- 函数功能:延时xms函数
- *******************************************************************************/
- void delay1(unsigned char t)
- { unsigned int i,j;
- for(i=0;i<t;i++)
- {
- for(j=0;j<60;j++);
- }
-
- }
- /*******************************************************************************
- 函数名:init_8279
- 函数功能:8279初始化函数
- *******************************************************************************/
- void init_8279(void)
- {
- c8279=0xd1; /* 清除显示 */
- do {ACC=c8279;} /* 读8279状态寄存器 */
- while(clflag==1); /* 读状态字,等待清除结束*/
- c8279=0x00; /* 8字符显示左入口 */
- c8279=0x23; /* 12分频 */
- EA=1;
- EX0=1;
- }
- /*******************************************************************************
- 函数名:INT0_SERVICE
- 函数功能:外中断0服务函数(读键值)
- *******************************************************************************/
- void INT0_SERVICE(void) interrupt 0 using 2
- {
- unsigned char i;
- EA=0;
- c8279=0x40; /*读fifo ram命令*/
- i=d8279;
- i=i&0x0f; /*取键值低4位*/
- key=i; /*返回键值*/
-
- keyflag=1;
- c8279=0x80;
- d8279=table[key];
-
- EA=1;
- }
- /*******************************************************************************
- 函数名:init_lcd
- 函数功能:LCD初始化函数
- *******************************************************************************/
- void init_lcd() /*LCD初始化*/
- {
- lcd_busy();
- w_c_add=0x30; /* 功能设置:8位数据 */
- lcd_busy();
- w_c_add=0x0C; /* 显示状态:整体显示,游
- 标位置无效*/
- lcd_busy();
- w_c_add=0x01; /* 清除显示:将DDRAM填满
- “20H”*/
- lcd_busy();
- w_c_add=0x02; /* 地址归位:设定DDRAM地址计数器
- 到“00” */
-
- }
- /*******************************************************************************
- 函数名:lcd_busy
- 函数功能:LCD检测忙函数
- *******************************************************************************/
- void lcd_busy(void) /*LCD忙状态检测函数 */
- {
- do
- {
- status=r_s_add; /* 读状态字地址的第7位 */
- }
- while(busy);
- }
- /*******************************************************************************
- 函数名:lcd_clr
- 函数功能:LCD清屏函数
- *******************************************************************************/
- void lcd_clr() /*LCD清除程序*/
- {
-
- lcd_busy();
- w_c_add=0x01; /* 清除显示:将DDRAM填满“20H”*/
- }
- /*******************************************************************************
- 函数名:lcd_string
- 函数功能:LCD字符串显示
- *******************************************************************************/
- void lcd_string(unsigned char i,unsigned char j,unsigned char *s)
- { unsigned char m;
- switch(i)
- {case 1:m=0x80;break;
- case 2:m=0x90;break;
- case 3:m=0x88;break;
- case 4:m=0x98;break;
- default:break;
- }
- w_c_add=m+j-0x01;
-
- for(;*s!='\0';s++)
- {
- lcd_busy();
- w_d_add=*s;
- }
- }
- /*******************************************************************************
- 函数名:lcd_num
- 函数功能:LCD字符串显示
- *******************************************************************************/
- void lcd_num(unsigned char i,unsigned char j,unsigned char num) /*显示一个数字*/
- { unsigned char m;
- switch(i)
- {case 1:m=0x80;break;
- case 2:m=0x90;break;
- case 3:m=0x88;break;
- case 4:m=0x98;break;
- default:break;
- }
- w_c_add=m+j-0x01;
- lcd_busy();
- w_d_add=0x30+num; /*0~9分别对应0x30~0x39*/
- }
- /*******************************************************************************
- 函数名:alarm
- 函数功能:报警函数
- *******************************************************************************/
- void alarm(unsigned int m)
- { Led=0;
- Led1=0;
- Speaker=0;
- delay(m); /*延时*/
- Speaker=1;
- Led=1;
- Led1=1;
- }
- /*******************************************************************************
- 函数名:ShuiWei
- 函数功能:水位选择显示
- *******************************************************************************/
- void ShuiWei()
- { lcd_clr();
- lcd_busy();
- lcd_string(1,1,"请选择水位:");
- lcd_string(2,1,"1-一级");
- lcd_string(3,1,"2-二级");
- lcd_string(4,1,"3-三级");
- delay(8);
-
-
- lcd_clr();
- lcd_busy();
- lcd_string(1,1,"水位:");
- while(1!=keyflag);
- alarm(1);
- water_level=key; /*水位*/
-
- keyflag=0;
- switch(water_level)
- {
- case 1:{lcd_busy();lcd_string(1,6,"一级");delay(8);break;}
- case 2:{lcd_busy();lcd_string(1,6,"二级");delay(8);break;}
- case 3:{lcd_busy();lcd_string(1,6,"三级");delay(8);break;}
- default:break;
- }
- }
- /*******************************************************************************
- 函数名:XdPower
- 函数功能:洗涤强度选择显示
- *******************************************************************************/
- void XdPower()
- { lcd_clr();
- lcd_busy();
- lcd_string(1,1,"请选择洗涤强度:");
- lcd_string(2,1,"1-强洗");
- lcd_string(2,5,"2-轻洗");
- lcd_string(3,1,"3-弱洗");
- lcd_string(3,5,"4-自动");
- delay(8);
-
- lcd_clr();
- lcd_busy();
- lcd_string(2,1,"洗涤强度:");
-
- while(1!=keyflag);
- alarm(1);
- wash_power=key;/*洗涤强度*/
- keyflag=0;
-
- switch(wash_power)
- {
- case 1:{lcd_busy();lcd_string(2,6,"强洗");delay(8);break;}
- case 2:{lcd_busy();lcd_string(2,6,"轻洗");delay(8);break;}
- case 3:{lcd_busy();lcd_string(2,6,"弱洗");delay(8);break;}
- case 4:{lcd_busy();lcd_string(2,6,"自动");delay(8);break;}
- default:break;
- }
- }
- /*******************************************************************************
- 函数名:PxTimes
- 函数功能:洗涤强度选择显示
- *******************************************************************************/
- void PxTimes()
- { lcd_clr();
- lcd_busy();
- lcd_string(1,1,"请选择漂洗次数:");
- lcd_string(2,1,"1-三次");
- lcd_string(3,1,"2-四次");
- lcd_string(4,1,"3-五次");
- delay(8);
-
- lcd_clr();
- lcd_busy();
- lcd_string(1,1,"漂洗次数:");
-
- while(1!=keyflag);
- alarm(1);
- piao_time=key;/*漂洗次数*/
- keyflag=0;
- switch(piao_time)
- {
- case 1:{lcd_busy();lcd_string(1,6,"三次");delay(8);break;}
- case 2:{lcd_busy();lcd_string(1,6,"四次");delay(8);break;}
- case 3:{lcd_busy();lcd_string(1,6,"五次");delay(8);break;}
- default:break;
- }
- }
- /*******************************************************************************
- 函数名:ZdCanShu
- 函数功能:洗涤强度选择显示
- *******************************************************************************/
- void ZdCanShu()
- {
- lcd_clr();
- lcd_busy();
- lcd_string(1,1,"请选择水位:");
- lcd_string(2,1,"1-一级");
- lcd_string(3,1,"2-二级");
- lcd_string(4,1,"3-三级");
- delay(8);
- while(1!=keyflag);
- alarm(1);
- water_level=key; /*水位*/
- keyflag=0;
-
- lcd_clr();
- lcd_busy();
- lcd_string(1,1,"请选择洗涤强度:");
- lcd_string(2,1,"1-强洗");
- lcd_string(2,5,"2-轻洗");
- lcd_string(3,1,"3-弱洗");
- lcd_string(3,5,"4-自动");
- delay(8);
- while(1!=keyflag);
- alarm(1);
- wash_power=key;/*洗涤强度*/
- keyflag=0;
-
- lcd_clr();
- lcd_busy();
- lcd_string(1,1,"请选择漂洗次数:");
- lcd_string(2,1,"1-三次");
- lcd_string(3,1,"2-四次");
- lcd_string(4,1,"3-五次");
- delay(8);
- while(1!=keyflag);
- piao_time=key;/*漂洗次数*/
- alarm(1);
- keyflag=0;
-
- lcd_clr();
- lcd_busy();
- lcd_string(1,1,"水位:");
- lcd_busy();
- lcd_string(2,1,"洗涤强度:");
- lcd_busy();
- lcd_string(3,1,"漂洗次数:");
-
-
- switch(water_level)
- {
- case 1:{lcd_busy();lcd_string(1,6,"一级");delay(8);break;}
- case 2:{lcd_busy();lcd_string(1,6,"二级");delay(8);break;}
- case 3:{lcd_busy();lcd_string(1,6,"三级");delay(8);break;}
- default:break;
- }
-
-
- switch(wash_power)
- {
- case 1:{lcd_busy();lcd_string(2,6,"强洗");delay(8);break;}
- case 2:{lcd_busy();lcd_string(2,6,"轻洗");delay(8);break;}
- case 3:{lcd_busy();lcd_string(2,6,"弱洗");delay(8);break;}
- case 4:{lcd_busy();lcd_string(2,6,"自动");delay(8);break;}
- default:break;
- }
-
-
- switch( piao_time)
- {
- case 1:{lcd_busy();lcd_string(3,6,"三次");delay(8);break;}
- case 2:{lcd_busy();lcd_string(3,6,"四次");delay(8);break;}
- case 3:{lcd_busy();lcd_string(3,6,"五次");delay(8);break;}
- default:break;
- }
-
-
-
-
- }
- /*******************************************************************************
- 函数名:TimeSelect
- 函数功能:根据条件选择洗涤时间
- *******************************************************************************/
- void TimeSelect()
- {
- switch(wash_power1)
- {
- case 1:{Sec=10; Min=0;break;}
- case 2:{Sec=15; Min=0;break;}
- case 3:{Sec=20; Min=0;break;}
- default:break;
- }
-
-
- }
- /*******************************************************************************
- 函数名:DaoJiShi
- 函数功能:定时器0 50ms定时,用于倒计时计时
- *******************************************************************************/
- void DaoJiShi()
- {
- TMOD=0x11;
- TH0=(65536-46080)/256;// 由于晶振为11.0592,故所记次数应为46080,计时器每隔50000微秒发起一次中断。
- TL0=(65536-46080)%256;
- ET0=1;
- EA=1;TR0=1;
- TimeEnd=0;
- }
- /*******************************************************************************
- 函数名:Time0
- 函数功能:定时器0中断处理程序,用于倒计时计时
- *******************************************************************************/
- void Time0() interrupt 1 using 2
- {
-
- int t[4];
-
- EA=0;
- TH0=(65536-46080)/256;
- TL0=(65536-46080)%256;
-
- t[0]=Sec/10;
- t[1]=Sec%10;
- t[2]=Min/10;
- t[3]=Min%10;
-
- lcd_busy();
- lcd_num(3,1,t[2]);
- lcd_busy();
- lcd_num(3,2,t[3]);
- lcd_busy();
- lcd_num(3,3,10);
- lcd_busy();
- lcd_num(3,4,t[0]);
- lcd_busy();
- lcd_num(3,5,t[1]);
-
-
-
- if(TimeEnd==0)
- {
- m++;
-
- if(m>=20)
- { m=0;
- Sec--;
- }
- if(Sec==0&&Min!=0)
- {
- Sec=59;
- Min--;
- }
- if(Sec==0&&Min==0)
- { ET0=0;
- TimeEnd=1;
- t[0]=Sec/10;
- t[1]=Sec%10;
- t[2]=Min/10;
- t[3]=Min%10;
-
- lcd_busy();
- lcd_num(3,1,t[2]);
- lcd_busy();
- lcd_num(3,2,t[3]);
- lcd_busy();
- lcd_num(3,3,10);
- lcd_busy();
- lcd_num(3,4,t[0]);
- lcd_busy();
- lcd_num(3,5,t[1]);
- lcd_busy();
-
-
- }
- }
-
- EA=1;
- }
- /*******************************************************************************
- 函数名:MotorChoose
- 函数功能:步进机强度选择模块
- *******************************************************************************/
- void MotorChoose()
- { unsigned char j,i,time;
-
- switch(wash_power1)
- {
- case 1:{ time=25;lcd_busy();lcd_string(1,6,": 强洗");break;} /*用来控制转速*/
- case 2:{ time=30;lcd_busy();lcd_string(1,6,": 轻洗");break;}
- case 3:{ time=35;lcd_busy();lcd_string(1,6,": 弱洗");break;}
- default:break;
- }
- ZTime=Min*60+Sec;
- if(ZTime!=0)
- { for(j=0;j<=15;j++)
- {
- for(i=0;i<9;i++)
- {
- P1 = TAB1[i];
- delay1(time);
-
- }
- }
- // }
-
- /* ZTime=Min*60+Sec;
- if(ZTime!=0)*/
- for(j=0;j<=15;j++)
- {
- for(i=0;i<9;i++)
- {
- P1 = TAB2[i];
- delay1(time);
- }
- }
- }
- }
-
-
- /*******************************************************************************
- 函数名:MotorChoose1
- 函数功能:步进机强度选择模块
- *******************************************************************************/
- void MotorChoose1()
- { unsigned char j,i,time;
- time=28;
- switch(piao_time)
- {
- case 1:{ lcd_busy();lcd_string(1,6,": 三次");break;} /*用来控制转速*/
- case 2:{ lcd_busy();lcd_string(1,6,": 四次");break;}
- case 3:{ lcd_busy();lcd_string(1,6,": 五次");break;}
- default:break;
- }
- ZTime=Min*60+Sec;
- if(ZTime!=0)
- { for(j=0;j<=15;j++)
- {
- for(i=0;i<9;i++)
- {
- P1 = TAB1[i];
- delay1(time);
-
- }
- }
- //}
-
- /* ZTime=Min*60+Sec;
- if(ZTime!=0)*/
- for(j=0;j<=15;j++)
- {
- for(i=0;i<9;i++)
- {
- P1 = TAB2[i];
- delay1(time);
- }
- }
-
- }
- }
- /*******************************************************************************
- 函数名:adc0809
- 函数功能:AD转换函数
- *******************************************************************************/
- unsigned char adc0809()
- {
- IN0=0;
- delay(1);
- return(IN0); /*返回值,即转换后的数据*/
- }
- /*******************************************************************************
- 函数名:0809play
- 功能:显示AD转换后的值
- *******************************************************************************/
- void play0809(unsigned char m,unsigned char n)
- { unsigned char t[3];
- unsigned char temp;
- temp=adc0809();
-
- t[0]=temp/100;
- temp=temp%100;
- t[1]=temp/10;
- t[2]=temp%10;
-
- lcd_busy();
- lcd_num(m,n,t[0]); /*显示百位数字*/
-
- lcd_busy();
- lcd_num(m,n+1,t[1]); /*显示十位数字*/
-
- lcd_busy();
- lcd_num(m,n+2,t[2]); /*显示个位数字*/
-
- }
- /*******************************************************************************
- 函数名:ShangShui
- 函数功能:上水模块
- *******************************************************************************/
- void ShangShui()
- { unsigned char f_flag;
- f_flag=0;
- while(f_flag==0)
- {
- lcd_busy();
- lcd_string(2,1,"水位高度:");
- play0809(3,4);
- delay(1);
- switch(water_level)
- {
- case 3:{if(adc0809()>=200){alarm(3);f_flag=1;}
- break;}
- case 2:{if(adc0809()>=80) {alarm(3);f_flag=1;}
- break;}
- case 1:{if(adc0809()>=30) {alarm(3);f_flag=1;}
- break;}
- }
- delay(2);
- }
- }
- /*******************************************************************************
- 函数名:TuoShui
- 函数功能:脱水模块
- *******************************************************************************/
- void TuoShui()
- {
- unsigned char i,time;
- Min=0;Sec=5;time=18;
- lcd_clr();
- lcd_busy();
- lcd_string(1,1,"脱水中");
- lcd_busy();
- lcd_string(2,1,"剩余时间:");
- DaoJiShi();
- ZTime=Min*60+Sec;
- while(ZTime!=0)
- { ZTime=Min*60+Sec;
- for(i=0;i<9;i++)
- {
- P1 = TAB1[i];
- delay1(time);
-
- }
- }
-
- }
- /*******************************************************************************
- 函数名:ShuaiGan
- 函数功能:甩干模块
- *******************************************************************************/
- void ShuaiGan()
- {
- unsigned char i,time;
- Min=0;Sec=10;time=12;
- lcd_clr();
- lcd_busy();
- lcd_string(1,1,"甩干中");
- lcd_busy();
- lcd_string(2,1,"剩余时间:");
- DaoJiShi();
- ZTime=Min*60+Sec;
- while(ZTime!=0)
- { ZTime=Min*60+Sec;
- for(i=0;i<9;i++)
- {
- P1 = TAB1[i];
- delay1(time);
-
- }
- }
-
- }
- /*******************************************************************************
- 函数名:QinPao
- 函数功能:浸泡模块
- *******************************************************************************/
- void QinPao()
- {
- Sec=5;Min=0;TimeEnd=0;
- lcd_clr();
- lcd_busy();
- lcd_string(1,1,"浸泡中");
- lcd_string(2,1,"剩余时间:");
-
- TMOD=0x11;
- TH0=(65536-46080)/256;// 由于晶振为11.0592,故所记次数应为46080,计时器每隔50000微秒发起一中断。
- TL0=(65536-46080)%256;//46080的来历,为50000*11.0592/12
- ET0=1;
- TR0=1;
-
- while(ET0==1);
- }
- /*******************************************************************************
- 函数名:XiDi
- 函数功能:洗涤模块
- *******************************************************************************/
- void XiDi()
- { unsigned char i;
- wash_power1=wash_power;
-
- switch(wash_power)
- {case 1:
- case 2:
- case 3:{
- lcd_clr();
- lcd_busy();
- lcd_string(1,1,"洗涤中");
- lcd_busy();
- lcd_string(2,1,"剩余时间:");
- TimeSelect();
- DaoJiShi();
- ZTime=Min*60+Sec;
- while(ZTime!=0)
- { ZTime=Min*60+Sec;
- MotorChoose();
- }
- break;
- }
- case 4:
- { for(i=1;i<4;i++)
- { lcd_clr();
- lcd_busy();
- lcd_string(1,1,"洗涤中");
- lcd_busy();
- lcd_string(2,1,"剩余时间:");
- wash_power1=i;
- TimeSelect();
- DaoJiShi();
- ZTime=Min*60+Sec;
- while(ZTime!=0)
- { ZTime=Min*60+Sec;
- MotorChoose();
- }
- }
- break;
- }
- default:break;
- }
-
- }
-
- /*******************************************************************************
- 函数名:PiaoXi
- 函数功能:漂洗模块
- *******************************************************************************/
- void PiaoXi()
- { unsigned char i;
- switch(piao_time)
- { case 1:{
- for(i=0;i<3;i++)
- { /*********************上水**************************/
- lcd_clr();
- lcd_busy();
- lcd_string(1,1,"上水中");
- ShangShui();
- delay(5);
-
-
- /*********************漂洗**************************/
- Sec=10;Min=0;
- lcd_clr();
- lcd_busy();
- lcd_string(1,1,"漂洗中");
- lcd_busy();
- lcd_string(2,1,"剩余时间:");
- DaoJiShi();
- ZTime=Min*60+Sec;
- while(ZTime!=0)
- { ZTime=Min*60+Sec;
- MotorChoose1();
- }
-
- delay(2);
- /*********************脱水**************************/
- TuoShui();
- delay(2);
- }
- break;
- }
-
- case 2:{
- for(i=0;i<4;i++)
- { /*********************上水**************************/
- lcd_clr();
- lcd_busy();
- lcd_string(1,1,"上水中");
- ShangShui();
- delay(5);
-
-
- /*********************漂洗**************************/
- Sec=10;Min=0;
- lcd_clr();
- lcd_busy();
- lcd_string(1,1,"漂洗中");
- lcd_busy();
- lcd_string(2,1,"剩余时间:");
- DaoJiShi();
- ZTime=Min*60+Sec;
- while(ZTime!=0)
- { ZTime=Min*60+Sec;
- MotorChoose1();
- }
-
- delay(2);
- /*********************脱水**************************/
- TuoShui();
- delay(2);
- }
- break;
- }
-
- case 3:{
- for(i=0;i<5;i++)
- { /*********************上水**************************/
- lcd_clr();
- lcd_busy();
- lcd_string(1,1,"上水中");
- ShangShui();
- delay(5);
-
-
- /*********************漂洗**************************/
- Sec=10;Min=0;
- lcd_clr();
- lcd_busy();
- lcd_string(1,1,"漂洗中");
- lcd_busy();
- lcd_string(2,1,"剩余时间:");
- DaoJiShi();
- ZTime=Min*60+Sec;
- while(ZTime!=0)
- { ZTime=Min*60+Sec;
- MotorChoose1();
- }
-
- delay(2);
- /*********************脱水**************************/
- TuoShui();
- delay(2);
- }
- break;
- }
- default:break;
- }
-
- }
复制代码
所有资料51hei提供下载:
47432zhang.zip
(46.32 KB, 下载次数: 30)
|