#include
#include
#define uchar unsigned char
#define uint unsigned int
main()
{
int a,P1,TMOD,ET0,ET1,led7;
P1=0xff;
TMOD=0x11;//定时器0和定时器1同时工作在模式0;
ET0=1; //打开内部中断0
ET1=1; //打开内部中断1
led7=0;
while(d=0)
{
shao_maio();
if(b==1200)//b=20刚好1秒
{
b=0;
m=m-1;
if(m<0)
{
m=0;
}
if(t<0)
{
t=0;
}
shao_maio(); //扫描数码管
}
/*************进水控制****************************/
shao_maio();
if(b1==1200)
{
b1=0;
jins_time=jins_time-1;
}
if(jins_time==0)
{
sw1=1;//关闭水龙头
jins_time=1;
EX0=1; //开外部中断0
EA=1;//开总中断
TMOD=0x11;
jins_time=1;
TH0=(65536-50000)/256; //定时50毫秒
TL0=(65536-50000)%256;
ET0=1; //打开内部中断0
TR0=1;
if(x==4)
{
sn1=0;//4 点亮洗衣剩余时间指示灯
sn2=1;//2
sn3=1;//1
ET0=1; //打开内部中断0
TR0=1;
}
//if(x==3)//洗衣剩余时间
else
{
sn1=0; //4
sn2=1; //2
sn3=1;//1
x=3;
ET0=1; //打开内部中断0
TR0=1;
}
if(led6==0&&led7==1) //弱洗
{
if(b>=0&&b<200||(b>=600&&b<800))//10m
{q2=1;q3=1;
q1=0;q4=0;
}
if(b>=400&&b<600||(b>=800&&b<1000))
{q1=1;q4=1;
q2=0;q3=0;
}
}
if(led6==1&&led7==0) //强洗
{
q1=0;
q4=0;
q2=1;
q3=1;
}
}
/*****************开始脱水************************/
if(m==0)
{
sw1=1;//关水龙头1
sw2=0;//开水龙头2
EX0=0;//关外部中断0
ET0=0;//关定时器中断0
TR0=0;
EA=1;//开总中断
TMOD=0x11;
TH1=(65536-50000)/256; //定时50毫秒
TL1=(65536-50000)%256;
ET1=1; //打开内部中断0
TR1=1;
EX1=1; //外部中断1打开为放水准备
sn1=0; //4 脱水剩余时间指示灯亮
sn2=0; //2
sn3=1;//1
x=5;//显示脱水剩余时间
}
if(tuo_s==1200)
{
tuo_s=0;
t=t-1;
}
if(t<=0)
{
jins_time=jins_time1;
m=m1;
t=t;
d=d-1;
x=0;
xi_di=1;//判断是否跳转
}
if(d<=0)
{
EA=0;//关总中断
sw2=1;//关水龙头2
sm1=sm2=0;//数码管熄灭
sn1=sn2=sn3=1;//LED熄灭
q1=q2=q3=q4=1;//电动机停止
feng_m_qi=0;//蜂鸣器响
delay(2);//延时5秒
feng_m_qi=1;//蜂鸣器停止
}
else
goto start;
/************强洗弱洗选择***********************/
if(sb2==0&&x==0)//弱洗
{
for(a=0;a<140;a++) //按键去抖
{
shao_maio(); //扫描数码管
}
if(sb2==0&&x==0)
{
led6=0;
led7=1;
}
}
if(sb3==0&&x==0)//强洗
{
for(a=0;a<140;a++) //按键去抖
{
shao_maio(); //扫描数码管
}
if(sb3==0&&x==0)
{
led6=1;
led7=0;
}
}
/****************功能选择*************************/
if(sb1==0)
{
EA=0;
for(a=0;a<130;a++) //按键去抖
{
shao_maio(); //扫描数码管
}
if(sb1==0)
{
x=x+1;
if(x==1)//洗涤次数设置
{
sn1=1; //4
sn2=0; //2
sn3=1;//1
}
if(x==2)// 洗衣定时
{
sn1=1; //4
sn2=0; //2
sn3=0;//1
}
if(x==3)//洗衣剩余时间
{
sn1=0; //4
sn2=1; //2
sn3=1;//1
}
if(x==4)//脱水定时时间
{
sn1=0; //4
sn2=1; //2
sn3=0;//1
}
if(x==5)//脱水剩余时间
{
sn1=0; //4
sn2=0; //2
sn3=1;//1
}
if(x==6)//进水时间
{
sn1=0; //4
sn2=0; //2
sn3=0;//1
}
if(x==7)//强洗
{
x=0;
led6=1;
led7=0;
}
}
}
/****************增加设置*****************/
if(sb2==0&&x==1) //洗涤次数增加
{ //EA=0;
for(a=0;a<130;a++) //按键去抖
{
shao_maio(); //扫描数码管
}
if(sb2==0&&x==1)
{
d=d+1;
if(d>99)
{
d=0;
}
}
}
/*****************************************/
if(sb2==0&&x==2) //洗衣定时增加
{
for(a=0;a<130;a++) //按键去抖
{
shao_maio(); //扫描数码管
}
if(sb2==0&&x==2)
{
m=m+1;
m1=m;
if(m>99)
{
m=0;
}
}
}
/************************************************/
if(sb2==0&&x==4)//脱水定时增加
{
for(a=0;a<130;a++) //按键去抖
{
shao_maio(); //扫描数码管
}
if(sb2==0&&x==4)
{
t=t+1;
t1=t;
if(t>99)
{
t=0;
}
}
}
/************************************************/
if(sb2==0&&x==6)//进水水定时增加
{
for(a=0;a<130;a++) //按键去抖
{
shao_maio(); //扫描数码管
}
if(sb2==0&&x==6)
{
jins_time=jins_time+1;
jins_time1=jins_time;
if(jins_time>99)
{
jins_time=0;
}
}
}
/***************减少设置***********************/
if(sb3==0&x==1)//洗涤次数减少
{ EA=0;
for(a=0;a<130;a++) //按键去抖
{
shao_maio(); //扫描数码管
}
if(sb3==0&x==1)
{
d=d-1;
if(d<0)
{
d=0;
}
}
}
/***************************************************/
if(sb3==0&x==2)//洗衣定时减少
{ EA=0;
for(a=0;a<130;a++) //按键去抖
{
shao_maio(); //扫描数码管
}
if(sb3==0&x==2)
{
m=m-1;
m1=m;
if(m<0)
{
m=m1;
}
}
}
/**************************************************/
if(sb3==0&&x==4) //脱水定时减少
{
EA=0;
for(a=0;a<130;a++) //按键去抖
{
shao_maio(); //扫描数码管
}
if(sb3==0&&x==4)
{
t=t-1;
t1=t;
shao_maio();
if(t<0)
{
t=0;
}
}
}
/**************************************************/
if(sb3==0&&x==6) //进水定时减少
{ EA=0;
for(a=0;a<130;a++) //按键去抖
{
shao_maio(); //扫描数码管
}
if(sb3==0&&x==6)
{
jins_time=jins_time-1;
jins_time1=jins_time;
shao_maio();
if(jins_time<0)
{
jins_time=0;
}
}
}
/*****************启动******************************/
if(sb4==0&&x>0)
{
start:
xi_di=0;//如果洗涤次数不到重新赋值
for(a=0;a<130;a++) //按键去抖
{
shao_maio(); //扫描数码管
}
if(sb4==0&&x>0)
{
EA=1;//开总中断
EX0=1; //开外部中断0
sw1=0;//开水龙头1
sw2=1;
TMOD=0x11;
TH1=(65536-50000)/256; //定时50毫秒
TL1=(65536-50000)%256;
ET1=1; //打开内部中断0
TR1=1;
x=6;
sn1=0; //4
sn2=0; //2
sn3=0;//1
}
}
}
}
void ds1zhong_duan() interrupt 3 //定时器1中断
//进水水和脱水时间
{
//shaomaio(); //扫描数码管
TH1=(65536-50000)/256;//高8位
TL1=(65536-50000)%256;//低8位
if(EX0==1)
{
b1=b1+1;
} //记录中断次,数每次中断50ms
else
{
tuo_s=tuo_s+1;
}
}
void wai0_zhong_duan() interrupt 0//外部中断0
{
sw1=1;//关闭水龙头
jins_time==1;
if(led6==0&&led7==1) //弱洗
{
void dian_zf();
}
if(led6==1&&led7==0) //强洗
{
led6=1;
led7=0;
}
sw1=0;//关闭水龙头1
EA=1;//开总中断
TMOD=0x11;
jins_time=1;
TH0=(65536-50000)/256; //定时50毫秒
TL0=(65536-50000)%256;
ET0=1; //打开内部中断0
TR0=1;
if(x==4)
{
sn1=0; //4 点亮脱水剩余时间指示灯
sn2=1; //2
sn3=1;//1
ET0=1; //打开内部中断0
TR0=1;
}
else
{sn1=0; //4
sn2=1; //2
sn3=1;//1
x=3;
ET0=1; //打开内部中断0
TR0=1;
}
if(led6==0&&led7==1) //弱洗
{
if(b>=0&&b<200||(b>=600&&b<800))//10m
{q2=1;q3=1;
q1=0;q4=0;
}
if(b>=400&&b<600||(b>=800&&b<1000))
{q1=1;q4=1;
q2=0;q3=0;
}
}
if(led6==1&&led7==0) //强洗
{
q1=0;
q4=0;
q2=1;
q3=1;
}
}
void ds0zhong_duan() interrupt 1 //定时器0中断 洗衣时间
{
TH0=(65536-50000)/256;//高8位
TL0=(65536-50000)%256;//低8位
b=b+1; //记录中断次,数每次中断50ms
}
void wai1_zhong_duan() interrupt 2//外部中断1
{
q1=0;//电动机正转脱水
q4=0;
q2=1;
q3=1;
}
在keil里面编的程序调试显示compiling 3.c...
3.C(14): error C202: 'd': undefined identifier
3.c - 1 Error(s), 0 Warning(s).求解怎么修改对这个比较菜,求教个详细方法