📄 icc(atmega16).c
字号:
{
if(temp_ad>0x03F0) //开路
f10.bit.sensor_erred=1;
else if(temp_ad<0x30)//短路
{
if((f3.bit.prog_end==1)||(f11.bit.test_prog_end==1))
f10.bit.sensor_erred=1;
}
}
}
void motor_err(void)
{
if(f4.bit.motor_run==1)
{
if(CHKBIT(PORTD,speed_in))
{
motor_count++;
if(motor_count>=10)
{
motor_count=0;
f11.bit.motor_erred=1;
}
}
}
}
void process_err(void)
{
bumpa_off;
bumpb_off;
bumpc_off;
bumph_off;
heat_off;
direct_off;
motor_off;
door_off;
if((f10.bit.abnormality_temp_erred==1)||(f10.bit.overflow_erred==1))
drain_on;
else drain_off;
}
void check_err(void)
{
if((f2.bit.started==1)||(f1.bit.tested==1))
{
enter_water_err();
drain_err();
overflow_err();
door_lock_err();
rise_temp_err();
abnormality_temp_err();
sensor_err();
motor_err();
}
}
void check_key_10m(void)
{
if((f2.bit.started==0)&&(f2.bit.powered==1))
{
if(f1.bit.doored==0)
{
if(!f0.byte&0x3f)
{
t_1m_count++;
if(t_1m_count>=10)
{
t_1m_count=0;
f2.bit.powered=0;
}
}
else {f0.byte=0;t_1m_count=0;}
}
}
}
void speed_select(void)
{
if(!CHKBIT(PINC,speed_set))
f1.bit.speed_selected=1;
else f1.bit.speed_selected=0;
}
void heat_select(void)
{
if(!CHKBIT(PINC,mode_set))
f1.bit.heated=1;
else f1.bit.heated=0;
}
void time_on(void)
{
if(flag_time>=1)
{
if(f2.bit.started==1)
{
// flag_time=2;
time_t_1h_count++;
if(time_t_1h_count>=60)
{
time_t_1h_count=0;
time_data--;
if(time_data==0)
{time_data=0;flag_time=0;}
}
}
}
}
void spin2(void)
{
spin_on;
f4.bit.motor_run=1;
low_spin_count++;
if(low_spin_count<=6) f4.bit.s_55=1;
else if(low_spin_count<=60) {f4.bit.s_55=0;f4.bit.s_93=1;}
else if(low_spin_count<=120) {f4.bit.s_93=0;f4.bit.s_500=1;}
else if(low_spin_count<=300) {f4.bit.s_500=0;f4.bit.s_800=1;}
else {f4.bit.s_800=0;f4.bit.motor_run=0;low_spin_count=0;}
}
void spin1(void)
{
spin_on;
f4.bit.motor_run=1;
low_spin_count++;
if(low_spin_count<=6) f4.bit.s_55=1;
else if(low_spin_count<=60) {f4.bit.s_55=0;f4.bit.s_93=1;}
else if(low_spin_count<=120) {f4.bit.s_93=0;f4.bit.s_500=1;}
else {f4.bit.s_500=0;f4.bit.motor_run=0;low_spin_count=0;}
}
void wash_cycle2(void) //逆时针11秒 停止4秒,顺时针11秒 停止4秒
{
wash_on;
f4.bit.s_55=1;
wash_time_count++;
if(wash_time_count<=11)
{
direct_on;
f4.bit.motor_run=1;
}
else if(wash_time_count<=15)
f4.bit.motor_run=0;
else if(wash_time_count<=26)
{
direct_off;
f4.bit.motor_run=1;
}
else if(wash_time_count<=30)
f4.bit.motor_run=0;
else
{
wash_time_count=0;
f4.bit.s_55=0;
}
}
void wash_cycle1(void)//逆时针6秒 停止9秒,顺时针6秒 停止9秒
{
wash_on;
f4.bit.s_55=1;
wash_time_count++;
if(wash_time_count<=6)
{
direct_on;
f4.bit.motor_run=1;
}
else if(wash_time_count<=15)
f4.bit.motor_run=0;
else if(wash_time_count<=21)
{
direct_off;
f4.bit.motor_run=1;
}
else if(wash_time_count<=29)
f4.bit.motor_run=0;
else
{
wash_time_count=0;
f4.bit.s_55=0;
}
}
void test_step1(void)
{
test_time_count++;
if(f1.bit.water1ed==0) bumpa_on;
else
{
bumpa_off;
wash_cycle2();
if(test_time_count>=60)
{
drain_on;
if(test_time_count>=80)
{
test_time_count=0;
f4.bit.motor_run=0;
drain_off;
f11.bit.step1_end=1;
}
}
}
}
void test_step2(void)
{
test_time_count++;
if(f1.bit.water1ed==0) bumpb_on;
else
{
bumpb_off;
wash_cycle2();
if(test_time_count>=60)
{
drain_on;
if(test_time_count>=80)
{
test_time_count=0;
f4.bit.motor_run=0;
drain_off;
f11.bit.step2_end=1;
}
}
}
}
void test_step3(void)
{
test_time_count++;
if(f1.bit.water1ed==0) bumpc_on;
else
{
bumpc_off;
wash_cycle2();
if(test_time_count>=60)
{
drain_on;
if(test_time_count>=80)
{
test_time_count=0;
f4.bit.motor_run=0;
drain_off;
f11.bit.step3_end=1;
}
}
}
}
void test_step4(void)
{
test_time_count++;
if(f1.bit.water1ed==0) bumph_on;//主水阀开?
else
{
bumph_off;
wash_cycle2();
if(test_time_count>=60)
{
drain_on;
if(test_time_count>=80)
{
test_time_count=0;
f4.bit.motor_run=0;
drain_off;
f11.bit.step4_end=1;
}
}
}
}
void test_step5(void)
{
test_time_count++;
drain_on;
if(test_time_count<=180)
{
if(f1.bit.water1ed==0)
spin2();
}
else
{
test_time_count=0;
f4.bit.motor_run=0;
drain_off;
f11.bit.step5_end=1;
}
}
void prewash(void)//当选棉麻或丝绒 14分
{
if(flag_prewash>=1)
{
flag_prewash=2;
if(wash_t<2)
{
f8.bit.water_in=1;
if(f1.bit.water1ed==1) wash_cycle2();
}
else if(wash_t<12) wash_cycle2();
else if(wash_t<14)
{
wash_time_count=0;
f4.bit.motor_run=0;
drain_on;
if(f1.bit.water1ed==0)
{
// wash_cycle_2();
spin1();
}
}
else
{
f4.bit.motor_run=0;
low_spin_count=0;
wash_t=0;
flag_prewash=0;
drain_off;
}
}
}
void washing(void)//丝绒
{
if(flag_wash>=1)
{
flag_wash=2;
if(wash_t<2)
{
f8.bit.water_in=1;
if(f1.bit.water1ed==1) wash_cycle2();
}
else if(wash_t<43) wash_cycle2();
else if(wash_t<45)
{
wash_time_count=0;
f4.bit.motor_run=0;
drain_on;
if(f1.bit.water1ed==0)
{
// wash_cycle_2();
spin1();
}
}
else
{
f4.bit.motor_run=0;
low_spin_count=0;
wash_t=0;
flag_wash=0;
drain_off;
}
}
}
void strongwash(void)//棉麻
{
if(flag_wash>=1)
{
flag_wash=2;
if(wash_t<2)
{
f8.bit.water_in=1;
if(f1.bit.water1ed==1) wash_cycle2();
}
else if(wash_t<83) wash_cycle2();
else if(wash_t<85)
{
wash_time_count=0;
f4.bit.motor_run=0;
drain_on;
if(f1.bit.water1ed==0)
{
// wash_cycle_2();
spin1();
}
}
else
{
f4.bit.motor_run=0;
low_spin_count=0;
wash_t=0;
flag_wash=0;
drain_off;
}
}
}
void softwash(void)//化纤
{
if(flag_wash>=1)
{
flag_wash=2;
if(wash_t<2)
{
f8.bit.water_in=1;
if(f1.bit.water1ed==1) wash_cycle1();
}
else if(wash_t<63) wash_cycle1();
else if(wash_t<65)
{
wash_time_count=0;
f4.bit.motor_run=0;
drain_on;
if(f1.bit.water1ed==0)
{
// wash_cycle_2();
spin1();
}
}
else
{
f4.bit.motor_run=0;
low_spin_count=0;
wash_t=0;
flag_wash=0;
drain_off;
}
}
}
void quickwash(void)//毛料
{
if(flag_wash>=1)
{
flag_wash=2;
if(wash_t<2)
{
f8.bit.water_in=1;
if(f1.bit.water1ed==1) wash_cycle2();
}
else if(wash_t<23) wash_cycle2();
else if(wash_t<25)
{
wash_time_count=0;
f4.bit.motor_run=0;
drain_on;
if(f1.bit.water1ed==0)
{
// wash_cycle_2();
spin1();
}
}
else
{
f4.bit.motor_run=0;
low_spin_count=0;
wash_t=0;
flag_wash=0;
drain_off;
}
}
}
void rinse(void)//一般飘洗,棉麻,丝绒,毛料
{
if(flag_rinse>=1)
{
flag_rinse=2;
if(wash_t<1) f8.bit.water_in=1;
else if(wash_t<11) wash_cycle2();
else if(wash_t<13)
{
wash_time_count=0;
f4.bit.motor_run=0;
drain_on;
if(f1.bit.water1ed==0)
{
// wash_cycle_2();
spin1();
}
}
else
{
f4.bit.motor_run=0;
low_spin_count=0;
wash_t=0;
flag_rinse=0;
drain_off;
}
}
}
void softrinse(void)//化纤
{
if(flag_rinse>=1)
{
flag_rinse=2;
if(wash_t<1) f8.bit.water_in=1;
else if(wash_t<11) wash_cycle1();
else if(wash_t<13)
{
wash_time_count=0;
f4.bit.motor_run=0;
drain_on;
if(f1.bit.water1ed==0)
{
// wash_cycle_2();
spin1();
}
}
else
{
f4.bit.motor_run=0;
low_spin_count=0;
wash_t=0;
flag_rinse=0;
drain_off;
}
}
}
void spin(void)//一般脱水,棉麻,丝绒
{
if(flag_spin>=1)
{
flag_spin=2;
if(wash_t<2)
{
drain_on;
if(f1.bit.water1ed==0) spin2();
}
else if(wash_t<=6) spin2();
else if(wash_t<=8)
{
f4.bit.motor_run=0;
low_spin_count=0;
wash_cycle2();//松化
}
else
{
wash_time_count=0;
f4.bit.motor_run=0;
drain_off;
wash_t=0;
flag_spin=0;
}
}
}
void soft_lastspin(void)//化纤
{
if(flag_spin>=1)
{
flag_spin=2;
if(wash_t<=8)
{
f4.bit.motor_run=1;
//f4.bit.s_55=1;
}
else
{
wash_time_count=0;
f4.bit.motor_run=0;
drain_off;
wash_t=0;
flag_spin=0;
}
}
}
/************************************
void soft_lastspin(void)//化纤
{
if(flag_spin>=1)
{
flag_spin=2;
if(wash_t<2)
{
drain_on;
if(f1.bit.water1ed==0) spin1();
}
else if(wash_t<=6) spin1();
else if(wash_t<=8)
{
f4.bit.motor_run=0;
low_spin_count=0;
wash_cycle1();//松化
}
else
{
wash_time_count=0;
f4.bit.motor_run=0;
drain_off;
wash_t=0;
flag_spin=0;
}
}
}
************************************/
void quickwash_lastspin(void)//毛料
{
if(flag_spin>=1)
{
flag_spin=2;
if(wash_t<2)
{
drain_on;
if(f1.bit.water1ed==0) spin2();
}
else if(wash_t<=6) spin2();
else if(wash_t<=8)
{
f4.bit.motor_run=0;
low_spin_count=0;
wash_cycle1();//松化
}
else
{
wash_time_count=0;
f4.bit.motor_run=0;
drain_off;
wash_t=0;
flag_spin=0;
}
}
}
void extrinse(void)
{
if(flag_extrinse>=1)
{
flag_extrinse=2;
if(wash_t<1) f8.bit.water_in=1;
else if(wash_t<6) wash_cycle2();
else if(wash_t<8)
{
wash_time_count=0;
f4.bit.motor_run=0;
drain_on;
if(f1.bit.water1ed==0)
{
// wash_cycle_2();
spin1();
}
}
else
{
f4.bit.motor_run=0;
low_spin_count=0;
wash_t=0;
flag_extrinse=0;
drain_off;
}
}
}
void wash_program1(void)
{
if(flag_wash>=1) strongwash();
if((flag_extrinse>=1)&&(flag_wash==0)) extrinse();
if((flag_wash==0)&&(flag_rinse>=1)&&(flag_extrinse==0)) rinse();
if((flag_spin>=1)&&(flag_rinse==0)) spin();
if(flag_spin==0)
{
f2.bit.started=0;
f7.bit.wash_prog1=0;
f3.bit.prog_end=1;
}
}
void wash_program2(void)
{
if(flag_prewash>=1) prewash();
if((flag_wash>=1)&&(flag_prewash==0)) strongwash();
if((flag_extrinse>=1)&&(flag_wash==0)&&(flag_prewash==0)) extrinse();
if((flag_prewash==0)&&(flag_wash==0)&&(flag_extrinse==0)&&(flag_rinse>=1)) rinse();
if((flag_spin>=1)&&(flag_rinse==0)) spin();
if(flag_spin==0)
{
f2.bit.started=0;
f7.bit.wash_prog7=0;
f3.bit.prog_end=1;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -