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

📄 real2.c

📁 基于单片机的全自动洗衣机
💻 C
字号:
#include<reg51.h>
int count=1;
bit flag=0;
int log=0;
int help=0;
char code dis_7[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
sbit p20=P2^0;
sbit p21=P2^1;
sbit p33=P3^3;
sbit p34=P3^4;
sbit p35=P3^5;
sbit p36=P3^6;
sbit p37=P3^7;
sbit p31=P3^1;
sbit p25=P2^5;
sbit p26=P2^6;
sbit p27=P2^7;
sbit p14=P1^4;
sbit p15=P1^5;
sbit p17=P1^7;
sbit p10=P1^0;
sbit p11=P1^1;
sbit p12=P1^2;
sbit p32=P3^2;
sbit p24=P2^4;
int sum=0;
int count;
sbit p30=P3^0;
int amount;
int time=15;
int h=0;
int d=0;
int k=0;
sbit p13=P1^3;

void delay(void)interrupt 1 using 1
{
TL0=0xAF;
TH0=0x3C;
count++;
if(count==10)
{
count=0;
flag=1;
}
}


void delay1ms(int t)
{  
    int i,j;
     for(i=0;i<t;i++)
        for(j=0;j<100;j++)
            ;
}

void scan(void)
{

EA=0;

if(p17==0)
{delay1ms(10);while(p17==0);h++;ET0=0;
}

if(p14==0&&h==1)
{delay1ms(10);while(p14==0);time=time+1;if(time>99){time=1;sum=0;}}
if(p15==0&&h==1)
{delay1ms(10);while(p15==0);time=time+10;if(time>99){time=1;sum=0;}}




if(h>1|h==0){h=0;ET0=1;}
EA=1;



}





void display(void)
{
int i,j;

i=amount/10;
j=amount%10;
p20=0;p21=1;P0=dis_7[i];delay1ms(1);p21=1;p20=1;delay1ms(1);p20=1;p21=0;P0=dis_7[j];delay1ms(1);p21=1;p20=1;delay1ms(1);}

void ruoxi(void)
{

ET0=1;EA=1;

TMOD=0X21;

TL0=0xAF;
TH0=0x3c;
TF0=0;
TR0=1;
p25=0;//进水
log=1;
while(sum<time)
{
scan();
amount=time-sum;
display();
if(flag)
sum++;
flag=0;

}

p25=1;
p36=1;
p37=0;
p33=0;p34=1;p35=0;p27=0;//work
sum=0;
time=15;
time=time+15;log=2;
while(sum<time-15)
{if(flag)
sum++;
flag=0;
scan();
amount=time-sum;
display();
}
p36=1;
p37=1;
p30=0;p31=1;//change
time=15;sum=0;log=3;
while(sum<time)
{if(flag)
sum++;
flag=0;
scan();
amount=time-sum;
display();
}
p26=0;p27=1;p30=1;p31=1;//fangshui
sum=0;time=15;log=4;
while(sum<=time)
{if(flag)
sum++;
flag=0;
scan();
amount=time-sum;
display();}
p25=0;p26=1;
p33=1;p34=1;p35=0;//piaoxi

log=5;//biaozhi
sum=0;
time=10;
while(sum<time)
{if(flag)
sum++;
flag=0;
scan();
amount=time-sum;
display();}
p25=1;p27=0;p36=1;p37=0;
sum=0;time=10;log=2;
while(sum<time)
{if(flag)
sum++;
flag=0;
scan();
amount=time-sum;
display();}
p36=1;p37=1;
p27=1;
p26=0;
sum=0;
time=10;log=7;
while(sum<time)
{if(flag)
sum++;
flag=0;
amount=time-sum;
scan();
display();}
p27=0;p36=1;p37=0;
p33=0;
p34=0;
p35=1;
sum=0;time=10;log=2;
while(sum<time)
{if(flag)
sum++;
flag=0;scan();amount=time-sum;
display();}
p33=1;p34=1;p35=1;p27=1;p36=1;p37=1;p26=1;


}
void qiangxi(void)
{


ET0=1;EA=1;

TMOD=0X21;

TL0=0xAF;
TH0=0x3c;
TF0=0;
TR0=1;
p25=0;//进水

while(sum<time)
{
scan();
amount=time-sum;
display();
if(flag)
sum++;
flag=0;

}

p25=1;
p36=1;
p37=0;
p33=1;p34=0;p35=0;p27=0;log=2;//work
sum=0;
time=15;
time=time+15;
while(sum<time-15)
{if(flag)
sum++;
flag=0;
scan();
amount=time-sum;
display();
}
p36=1;
p37=0;log=2;
//nochange
time=15;sum=0;
while(sum<time)
{if(flag)
sum++;
flag=0;
scan();
amount=time-sum;
display();
}
p26=0;p27=1;p36=1;p37=1;//fangshui
sum=0;time=15;
while(sum<=time)
{if(flag)
sum++;
flag=0;
scan();
amount=time-sum;
display();}
p25=0;p26=1;
p33=1;p34=1;p35=0;//piaoxi


sum=0;
time=10;
while(sum<time)
{if(flag)
sum++;
flag=0;
scan();
amount=time-sum;
display();}
p25=1;p27=0;p36=1;p37=0;log=2;
sum=0;time=10;
while(sum<time)
{if(flag)
sum++;
flag=0;
scan();
amount=time-sum;
display();}
p36=1;p37=1;
p27=1;
p26=0;
sum=0;
time=10;
while(sum<time)
{if(flag)
sum++;
flag=0;
amount=time-sum;
scan();
display();}
p27=0;p36=1;p37=0;log=2;
p33=0;
p34=0;
p35=1;
sum=0;time=10;
while(sum<time)
{if(flag)
sum++;
flag=0;scan();amount=time-sum;
display();}
p33=1;p34=1;p35=1;p27=1;p36=1;p37=1;p26=1;
}


main()
{
EA=1;EX0=1;
while(1)
{
log=0;
if(p10==0){delay1ms(10);while(p10==0);sum=0;ruoxi();}
if(p11==0){delay1ms(10);while(p11==0);sum=0;qiangxi();}

}
}



void stop(void)interrupt 0 using 2
{
EA=0;
if(p32==0){delay1ms(5);while(p32==0);p24=0;if(log==2|log==3){p36=1;p37=1;p31=1;p30=1;}}
while(p32==1)
{
d=amount/10;
k=amount%10;
p20=0;p21=1;P0=dis_7[d];delay1ms(1);p21=1;p20=1;delay1ms(1);p20=1;p21=0;P0=dis_7[k];delay1ms(1);p21=1;p20=1;delay1ms(1);
}
while(p32==0);
if(log==2){p36=1;p37=0;p24=1;}
if(log==3){p31=1;p30=0;p24=1;}
p24=1;
EA=1;
}

⌨️ 快捷键说明

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