基于的51单片机全自动洗衣机设计Word文件下载.docx
《基于的51单片机全自动洗衣机设计Word文件下载.docx》由会员分享,可在线阅读,更多相关《基于的51单片机全自动洗衣机设计Word文件下载.docx(15页珍藏版)》请在冰豆网上搜索。
#defineucharunsignedchar
#defineuintunsignedint
//*******************************//
//***************************//
sbitmo_r=P3^2;
//电机右控制线
sbitmo_l=P3^3;
//电机左控制线
sbitkey_menu=P3^4;
//菜单按键
sbitkey_on=P3^5;
//开始按键
sbitkey_off=P3^6;
//结束按键
sbitkey_se=P3^7;
//菜单选择按键
sbitled_in=P0^0;
//进水指示灯
sbitled_xi=P0^1;
//洗衣指示灯
sbitled_pao=P0^2;
//泡洗指示灯
sbitled_xx=P0^3;
//脱水指示灯
sbitled_out=P0^4;
//出水指示灯
sbitled_over=P0^5;
//洗衣结束指示灯
sbitled_work=P0^6;
//电机工作指示灯
sbitled_wring=P0^7;
//报警指示灯
sbitother=P3^1;
//脱水电源控制开关
sbitanther=P3^0;
//洗衣电源控制开关
//******************************//
ucharcodenum[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
//
//*****************************//
charsec=0;
//时间秒
charmin=0;
//时间分
ucharcount=0;
//中断计数
ucharflag0=0;
//洗衣机工作状态标志
ucharflag1=0;
//进水次数标志
ucharflag2=0;
//出水次数标志
ucharflag3=0;
//泡洗次数标志
ucharerr=0;
//报警标志
ucharquan=0;
//正反转计数
//**********************************//
//函数声明
//*************************************//
voiddelay();
//延时函数
voidin();
//进水子程序
voidout();
//出水子程序
voidover();
//结束子程序
voidxi();
//洗衣子程序
voidpao();
//泡衣子程序
voidxx();
//脱水子程序
voidon();
//工作on处理子程序
voidse();
//显示菜单选择
voidSEG_display();
//显示时间子程序
voidkey_scan();
//按键扫描子程序
voiddelay(uinti)
{
uintx,y;
for(x=i;
x>
0;
x--)
for(y=120;
y>
y--);
}
//工作on处理子程序
//********************************//
voidon()
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();
//结束子程序
//*********************************//
voidover()
{other=0;
anther=0;
mo_r=0;
mo_l=0;
led_over=0;
EA=0;
//进水子程序
voidin()
{anther=0;
other=0;
led_in=0;
flag1++;
mo_r=0;
mo_l=0;
min=0;
sec=8;
//洗衣子程序
voidxi()
{anther=1;
led_work=0;
led_xi=0;
mo_r=1;
min=1;
sec=36;
quan=0;
//泡衣子程序
voidpao()
{
anther=1;
led_pao=0;
flag3++;
sec=35;
//脱水子程序
voidxx()
{other=1;
led_xx=0;
mo_l=1;
sec=50;
//出水子程序
voidout()
led_out=0;
flag2++;
sec=5;
//显示菜单选择
voidse()
if(flag0>
=5)
flag0=0;
{
led_in=0;
}
led_xi=0;
led_pao=0;
led_xx=0;
led_out=0;
//菜单处理子程序
voidmenu()
sec=0;
SEG_display();
while
(1)
if(key_on==0)
{
delay(5);
if(key_on==0)
{
while(!
key_on);
on();
break;
}
}
//**************************//
if(key_off==0)
if(key_off==0)
key_off);
over();
if(key_se==0)
if(key_se==0)
key_se);
flag0++;
se();
}
//按键扫描子程序
voidkey_scan()
if(key_menu==0)
delay(5);
if(key_menu==0)
while(!
key_menu);
menu();
if(key_on==0)
on();
if(key_off==0)
over();