📄 real2.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 + -