电路图为JPG图形格式,高清晰。
- #include <iom16v.h>
- #include <macros.h>
- #include <eeprom.h>
- //PA
- //NTC IN
- #define clk 0x02
- //NC
- #define com7 0x08
- #define com1 0x10
- #define com6 0x20
- #define com2 0x40
- #define com3 0x80
- #define clk_h SETBIT(PORTA,clk)
- #define clk_l CLRBIT(PORTA,clk)
- #define com7_h SETBIT(PORTA,com7)
- #define com7_l CLRBIT(PORTA,com7)
- #define com6_h SETBIT(PORTA,com6)
- #define com6_l CLRBIT(PORTA,com6)
- #define com1_h SETBIT(PORTA,com1)
- #define com1_l CLRBIT(PORTA,com1)
- #define com2_h SETBIT(PORTA,com2)
- #define com2_l CLRBIT(PORTA,com2)
- #define com3_h SETBIT(PORTA,com3)
- #define com3_l CLRBIT(PORTA,com3)
- //PB
- #define data 0x01
- #define direct 0x02
- #define wash_spin 0x04
- #define heat 0x08
- //DOOR IN
- #define door_in 0x10
- //WATER2
- #define water2 0x20
- //WATER1
- #define water1 0x40
- #define bumpa 0x80
- #define data_h SETBIT(PORTB,data)
- #define data_l CLRBIT(PORTB,data)
- #define direct_on SETBIT(PORTB,direct)
- #define direct_off CLRBIT(PORTB,direct)
- #define wash_on CLRBIT(PORTB,wash_spin)
- #define spin_on SETBIT(PORTB,wash_spin)
- #define heat_on SETBIT(PORTB,heat)
- #define heat_off CLRBIT(PORTB,heat)
- #define bumpa_on SETBIT(PORTB,bumpa)
- #define bumpa_off CLRBIT(PORTB,bumpa)
- //PD
- #define bumpb 0x01
- #define bumpc 0x02
- //ZERO IN
- #define zero_in 0x04
- //SPEED IN
- #define speed_in 0x08
- #define bumph 0x10
- #define drain 0x20
- #define door 0x40
- #define motor 0x80
- #define bumpb_on SETBIT(PORTD,bumpb)
- #define bumpb_off CLRBIT(PORTD,bumpb)
- #define bumpc_on SETBIT(PORTD,bumpc)
- #define bumpc_off CLRBIT(PORTD,bumpc)
- #define bumph_on SETBIT(PORTD,bumph)
- #define bumph_off CLRBIT(PORTD,bumph)
- #define drain_on SETBIT(PORTD,drain)
- #define drain_off CLRBIT(PORTD,drain)
- #define door_on SETBIT(PORTD,door)
- #define door_off CLRBIT(PORTD,door)
- #define motor_on SETBIT(PORTD,motor)
- #define motor_off CLRBIT(PORTD,motor)
- //PC
- #define buz 0x01
- #define key_in 0x02
- //S1/SPEED SET
- #define speed_set 0x04
- //S2/MODE SET
- #define mode_set 0x08
- //S4
- //S3
- #define com4 0x80
- #define com5 0x40
- #define buz_on SETBIT(PORTC,buz)
- #define buz_off CLRBIT(PORTC,buz)
- #define com4_h SETBIT(PORTC,com4)
- #define com4_l CLRBIT(PORTC,com4)
- #define com5_h SETBIT(PORTC,com5)
- #define com5_l CLRBIT(PORTC,com5)
- #define k_power 1
- #define k_start 2
- #define k_cycle 3
- #define k_fab 4
- #define k_temp 5
- #define k_extrinse 6
- #define k_delay 7
- unsigned int temp_ad;
- unsigned int value,ad;
- unsigned char ad_count;
- unsigned char water_temp;
- unsigned char fact_water_temp;
- unsigned char water_temp1;
- unsigned char water_temp2;
- unsigned char t_1ms;
- unsigned char t_3ms;
- unsigned char t_10ms;
- unsigned char t_50ms;
- unsigned char t_100ms;
- unsigned int t_500ms;
- unsigned int t_1s;
- unsigned int t_1m;
- unsigned char t_1m_count;
- unsigned int time_t_1h_count;
- unsigned char time_data;
- unsigned char scan_count;
- unsigned char buz_count;
- unsigned char end_buz_count;
- unsigned char test_buz_count;
- unsigned char k_power_count;//key_count
- unsigned char k_start_count;
- unsigned char k_cycle_count;
- unsigned char k_fab_count;
- unsigned char k_temp_count;
- unsigned char k_extrinse_count;
- unsigned char k_delay_count;
- unsigned char set_count;
- unsigned char key_num;
- unsigned int addr;
- unsigned int addr1;
- unsigned int enter_water_count; //err_count
- unsigned char drain_count;
- unsigned char overflow_count;
- unsigned char door_lock_count;
- unsigned int rise_temp_count;
- unsigned char motor_count;
- unsigned char door_on_count;
- unsigned char door_off_count;
- unsigned char water1_on_count;
- unsigned char water1_off_count;
- unsigned char water2_on_count;
- unsigned char water2_off_count;
- unsigned char test_count;
- unsigned char test_time_count;
- unsigned char test_disp_count;
- unsigned char temp_disp_count;
- unsigned char delay_flash_count;
- unsigned char time_flash_count;
- unsigned char spin_count; //脱水计数
- unsigned int low_spin_count;
- unsigned char main_wash_time;
- unsigned int speed_count;
- unsigned char wash_time_count;
- unsigned char wash_t;
- unsigned char flag_prewash;//过程标志
- unsigned char flag_wash;
- unsigned char flag_rinse;
- unsigned char flag_extrinse;
- unsigned char flag_spin;
- unsigned char flag_time;
- unsigned char disp0,disp1,disp2,dig1,dig2,dig3,dig4;//dig为数字
- unsigned int s1;//实际测得转速
- unsigned int s2;//设定转速
- unsigned char t2_count;
- unsigned char t1_count;
- unsigned int t;//定时器timer1定时常数
- unsigned int t1;//可控硅延时开通起始时间,调速宽度t1/100us单位
- //可控硅固定开通时间//单位100us待定
- #define t2 9000
- #define t0 1000
- //时间步长250us
- #define t_step 20
- //初始速度100us #define t 0xFFFF-t1-100
- #define led_h_h_on SETBIT(disp1,0x40)
- #define led_h_h_off CLRBIT(disp1,0x40)
- //#define led_h_h_flash disp1^=0x40
- #define led_h_c_on SETBIT(disp0,0x10)
- #define led_h_c_off CLRBIT(disp0,0x10)
- //#define led_h_c_flash disp0^=0x10
- #define led_w_w_on SETBIT(disp0,0x04)
- #define led_w_w_off CLRBIT(disp0,0x04)
- //#define led_w_w_flash disp0^=0x04
- #define led_c_c_on SETBIT(disp0,0x02)
- #define led_c_c_off CLRBIT(disp0,0x02)
- //#define led_c_c_flash disp0^=0x02
- #define led_mianma_on SETBIT(disp1,0x10)
- #define led_mianma_off CLRBIT(disp1,0x10)
- //#define led_mianma_flash disp1^=0x10
- #define led_huaxian_on SETBIT(disp1,0x08)
- #define led_huaxian_off CLRBIT(disp1,0x08)
- //#define led_huaxian_flash disp1^=0x08
- #define led_sinong_on SETBIT(disp1,0x01)
- #define led_sinong_off CLRBIT(disp1,0x01)
- //#define led_sinong_flash disp1^=0x01
- #define led_maoliao_on SETBIT(disp0,0x80)
- #define led_maoliao_off CLRBIT(disp0,0x80)
- //#define led_maoliao_flash disp0^=0x80
- #define led_prewash_on SETBIT(disp1,0x20)
- #define led_prewash_off CLRBIT(disp1,0x20)
- #define led_prewash_flash disp1^=0x20
- #define led_wash_on SETBIT(disp0,0x08)
- #define led_wash_off CLRBIT(disp0,0x08)
- #define led_wash_flash disp0^=0x08
- #define led_rinse_on SETBIT(disp1,0x04)
- #define led_rinse_off CLRBIT(disp1,0x04)
- #define led_rinse_flash disp1^=0x04
- #define led_spin_on SETBIT(disp0,0x01)
- #define led_spin_off CLRBIT(disp0,0x01)
- #define led_spin_flash disp0^=0x01
- #define led_extrinse_on SETBIT(disp1,0x02)
- #define led_extrinse_off CLRBIT(disp1,0x02)
- #define led_extrinse_flash disp1^=0x02
- #define led_delay_on SETBIT(disp0,0x20)
- #define led_delay_off CLRBIT(disp0,0x20)
- #define led_delay_flash disp0^=0x20
- #define led_door_on SETBIT(disp0,0x40)
- #define led_door_off CLRBIT(disp0,0x40)
- #define led_door_flash disp0^=0x40
- #define colon_on SETBIT(disp2,0x50)
- #define colon_off CLRBIT(disp2,0x50)
- #define colon_flash disp2^=0x50
- #define c_on SETBIT(disp2,0x08)
- #define c_off CLRBIT(disp2,0x08)
- //#define c_flash disp2^=0x08
- //74LS164QG-QA QH=0数码管共阳
- const unsigned char data_7seg[]={0x5F,0x48,0x73,0x79,0x6C,0x3D,0x3F,0x58,0x7F,0x7D,0x37,0x22,0x17,0x08,0x00};
- // 0,1,2,3,4,5,6,7,8,9,E,R,c,度,无显示,
- //-----------------------------------------------------------------------------
- // A/D table -10~110度
- //-----------------------------------------------------------------------------
- //#pragma data:data
- const unsigned int adtable[]=
- {
- //0x3F1,0x3BD,0x3BA,0x3B7,0x3B0,0x3A8,0x3A2,0x39F,0x39D,0x398,
- 0x393,0x38F,0x387,0x385,0x382,0x380,0x378,0x371,0x366,0x360,
- 0x35E,0x355,0x34D,0x340,0x33E,0x338,0x330,0x327,0x31F,0x31C,
- 0x30F,0x307,0x305,0x303,0x300,0x2E6,0x2E0,0x2D5,0x2C7,0x2C0,
- 0x2BF,0x2B1,0x2A2,0x29B,0x290,0x27F,0x27B,0x278,0x267,0x260,
- 0x258,0x24C,0x23F,0x238,0x22F,0x21F,0x218,0x20E,0x203,0x1FC,
- 0x1F0,0x1E7,0x1E0,0x1D8,0x1C7,0x1C0,0x1BD,0x1B0,0x1A3,0x19E,
- 0x18F,0x187,0x182,0x180,0x170,0x167,0x160,0x158,0x14F,0x144,
- 0x13F,0x138,0x130,0x127,0x11F,0x11C,0x110,0x106,0x103,0xFF,
- 0xFC,0xF8,0xF0,0xE7,0xE3,0xE0,0xD8,0xCF,0xC9,0xC6,
- 0xC3,0xC0,0xB8,0xB5,0xB0,0xA7,0xA5,0xA2,0x9F,0x9C,
- 0x98,0x94,0x8F,0x8D,0x8A,0x7F,0x7C,0x7A,0x78,0x75,
- };
- void buzing(void)//一次130-150ms
- {
- if( f3.bit.buzed==1)//按键
- {
- buz_count++;
- buz_on;
- if(buz_count>=3)
- {
- buz_count=0;
- buz_off;
- f3.bit.buzed=0;
- }
- }
- }
- void end_buzing(void)
- {
- end_buz_count++;
- PORTC^=buz;
- if(end_buz_count>=12)
- {
- end_buz_count=0;
- buz_off;
- f2.bit.end_buz=1;
- }
- }
- void test_buzing(void)
- {
- if(f3.bit.test_buz==1)
- {
- buz_off;
- PORTC^=buz;
- test_buz_count++;
- if(test_buz_count>=3)
- {
- buz_off;
- test_buz_count=0;
- f3.bit.test_buz=0;
- }
- }
- }
- void err_buzing(void)
- {
- if((f10.byte!=0)||(f11.bit.motor_erred==1))
- PORTC^=buz;
- }
- void disp_test(void)
- {
- if(test_count==0) {dig1=dig2=dig3=dig4=0;colon_flash;}
- if(test_count==2) {dig1=dig2=dig3=dig4=1;colon_flash;}
- if(test_count==4) {dig1=dig2=dig3=dig4=2;colon_flash;}
- if(test_count==6) {dig1=dig2=dig3=dig4=3;colon_flash;}
- if(test_count==8) {dig1=dig2=dig3=dig4=4;colon_flash;}
- if(test_count==10) {dig1=dig2=dig3=dig4=5;colon_flash;}
- }
- void disp_delay_time(void)
- {
- c_off;
- dig1=time_data/10;
- dig2=time_data%10;
- dig3=dig4=0x00;
- if(f2.bit.started==1) colon_flash;
- else colon_on;
- }
- void disp_time(void)
- {
- c_off;
- if(f2.bit.started==1) colon_flash;
- else colon_on;
- dig1=0;
- dig2=main_wash_time/60;
- dig3=(main_wash_time-dig2*60)/10;
- dig4=main_wash_time-dig2*60-dig3*10;
- }
- void disp_temp(void)
- {
- colon_off;
- c_on;
- dig1=0;
- dig2=water_temp/10;
- dig3=water_temp%10;
- dig4=12;//data_7seg[12];C
- }
- void disp_time_temp(void)
- {
- if(f8.bit.time_disp==0)
- {
- disp_time();
- temp_disp_count++;
- if(temp_disp_count>8)
- {
- temp_disp_count=0;
- f8.bit.temp_disp=1;
- f8.bit.time_disp=1;
- }
- }
- else
- {
- if(f8.bit.temp_disp==1)
- {
- disp_temp();
- temp_disp_count++;
- if(temp_disp_count>8)
- {
- temp_disp_count=0;
- f8.bit.temp_disp=0;
- f8.bit.time_disp=0;
- }
- }
- }
- }
- void disp_err(void)
- {
- if(f10.bit.enter_water_erred==1) {dig1=10;dig2=dig3=11;dig4=1;colon_off;c_off;} //显示ERR1
- if(f10.bit.drain_erred==1) {dig1=10;dig2=dig3=11;dig4=2;colon_off;c_off;} //显示ERR2
- if(f10.bit.overflow_erred==1) {dig1=10;dig2=dig3=11;dig4=3;colon_off;c_off;}
- if(f10.bit.door_lock_erred==1) {dig1=10;dig2=dig3=11;dig4=4;colon_off;c_off;}
- if(f10.bit.rise_temp_erred==1) {dig1=10;dig2=dig3=11;dig4=5;colon_off;c_off;}
- if(f10.bit.abnormality_temp_erred==1) {dig1=10;dig2=dig3=11;dig4=6;colon_off;c_off;}
- if(f10.bit.sensor_erred==1) {dig1=10;dig2=dig3=11;dig4=7;colon_off;c_off;}
- if(f11.bit.motor_erred==1) {dig1=10;dig2=dig3=11;dig4=8;colon_off;c_off;}
- }
- void disp_conv(void) //数码管显示处理
- {
- if(f1.bit.tested==1) disp_test();//测试显示
- else
- {
- if(f2.bit.powered==1)
- {
- if(f2.bit.started==1)//程序运行显示
- {
- if((f10.byte!=0)||(f11.bit.motor_erred==1)) disp_err();
- else
- {
- if(flag_time>=1) disp_delay_time();//定时显示
- else disp_time(); //洗涤时间显示
- }
- }
- else //程序暂停显示
- {
- if(f3.bit.set==0) //暂停状态
- {
- if(flag_time>0)
- {
- if(flag_time==1) disp_delay_time();
- else //显示闪烁
- {
- delay_flash_count++;
- if(delay_flash_count==1) {dig1=dig2=dig3=dig4=14;disp2=0;}
- else {delay_flash_count=0;disp_delay_time();}
- }
- }
- else
- {
- time_flash_count++;
- if(time_flash_count==1) {dig1=dig2=dig3=dig4=14;disp2=0;}
- else {time_flash_count=0;disp_time();} //洗涤时间显示闪烁
- }
- }
- else //设定状态
- {
- if(flag_time==!0) disp_delay_time();
- else
- {
- if((f0.bit.k_fab_pushed==1)||(f0.bit.k_cycle_pushed==1)||(f0.bit.k_extrinse_pushed==1))
- {
- f0.bit.k_temp_pushed=0;
- disp_time();
- set_count++;
- if(set_count>=3)
- {
- set_count=0;
- f0.bit.k_fab_pushed=0;
- f0.bit.k_cycle_pushed=0;
- f0.bit.k_extrinse_pushed=0;
- }
- }
- else if(f0.bit.k_temp_pushed==1)
- {
- f0.bit.k_fab_pushed=0;
- f0.bit.k_cycle_pushed=0;
- f0.bit.k_extrinse_pushed=0;
- disp_temp();
- set_count++;
- if(set_count>=3)
- {
- set_count=0;
- f0.bit.k_temp_pushed=0;
- }
- }
- else disp_time_temp();
- }
- }
- }
- }
- }
- }
- void led_disp_test(void)
- {
- if(f11.bit.test_prog_end==0)
- {
- test_disp_count++;
- disp0&=0x40;disp1=0;
- if(test_disp_count==1) {led_delay_off;led_extrinse_on;}
- if(test_disp_count==2) {led_extrinse_off;led_h_h_on;}
- if(test_disp_count==3) {led_h_h_off;led_h_c_on;}
- if(test_disp_count==4) {led_h_c_off;led_w_w_on;}
- if(test_disp_count==5) {led_w_w_off;led_c_c_on;}
- if(test_disp_count==6) {led_c_c_off;led_prewash_on;}
- if(test_disp_count==7) {led_prewash_off;led_wash_on;}
- if(test_disp_count==8) {led_wash_off;led_rinse_on;}
- if(test_disp_count==9) {led_rinse_off;led_spin_on;}
- if(test_disp_count==10) {led_spin_off;led_mianma_on;}
- if(test_disp_count==11) {led_mianma_off;led_huaxian_on;}
- if(test_disp_count==12) {led_huaxian_off;led_sinong_on;}
- if(test_disp_count==13) {led_sinong_off;led_maoliao_on;}
- if(test_disp_count==14) {led_maoliao_off;led_delay_on;test_disp_count=0;}
- }
- if(f11.bit.test_prog_end==1)
- {
- if(f1.bit.doored==1) led_door_flash;
- else led_door_off;
- }
- else
- {
- if(test_count>=2) {if(f1.bit.doored==1) led_door_on;}
- }
- }
- void process_led_disp(void)
- {
- if(f1.bit.tested==1) led_disp_test();//测试显示
- else
- {
- if(f2.bit.powered==1)
- {
- if(f9.bit.h_h_sel==1) led_h_h_on; else led_h_h_off;
- if(f9.bit.h_c_sel==1) led_h_c_on; else led_h_c_off;
- if(f9.bit.w_w_sel==1) led_w_w_on; else led_w_w_off;
- if(f9.bit.c_c_sel==1) led_c_c_on; else led_c_c_off;
-
- if(f9.bit.maoliao_sel==1) led_maoliao_on; else led_maoliao_off;
- if(f9.bit.sinong_sel==1) led_sinong_on; else led_sinong_off;
- if(f9.bit.huaxian_sel==1) led_huaxian_on; else led_huaxian_off;
- if(f9.bit.mianma_sel==1) led_mianma_on; else led_mianma_off;
- //显示洗衣状态和过程
-
- if(flag_time==0)
- {
- if(flag_prewash==1) led_prewash_on;
- else if(flag_prewash==2)
- {
- if(f2.bit.started==1) led_prewash_flash;
- else led_prewash_on;
- }
- else led_prewash_off;
- // -------------------------------------
- if(flag_wash==1) led_wash_on;
- else if(flag_wash==2)
- {
- if(f2.bit.started==1) led_wash_flash;
- else led_wash_on;
- }
- else led_wash_off;
- //---------------------------------------
- if(flag_extrinse==1) led_extrinse_on;
- else if(flag_extrinse==2)
- {
- if(f2.bit.started==1) led_extrinse_flash;
- else led_extrinse_on;
- }
- else led_extrinse_off;
- // ---------------------------------------
- if(flag_rinse==1) led_rinse_on;
- else if(flag_rinse==2)
- {
- if(f2.bit.started==1) led_rinse_flash;
- else led_rinse_on;
- }
- else led_rinse_off;
- //--------------------------------
- if(flag_spin==1) led_spin_on;
- else if(flag_spin==2)
- {
- if(f2.bit.started==1) led_spin_flash;
- else led_spin_on;
- }
- else led_spin_off;
- // --------------------------------
- }
- else
- {
- if(flag_prewash==0) led_prewash_off;
- else led_prewash_on;
-
- if(flag_wash==0) led_wash_off;
- else led_wash_on;
-
- if(flag_extrinse==0) led_extrinse_off;
- else led_extrinse_on;
-
- if(flag_rinse==0) led_rinse_off;
- else led_rinse_on;
-
- if(flag_spin==0) led_spin_off;
- else led_spin_on;
- }
-
- if(flag_time==1) led_delay_on;
- else if(flag_time==2)
- {
- if(f2.bit.started==1) led_delay_flash;
- else led_delay_on;
- }
- else led_delay_off;
-
-
- if(f2.bit.started==1)
- {
- if(f3.bit.prog_end==1)
- {
- if(f1.bit.doored==1) led_door_flash;
- else led_door_off;
- }
- else
- {
- if(f1.bit.doored==1) led_door_on;
- else led_door_off;
- }
- }
- }
- }
- }
- void out_off(void) //
- {
- bumpa_off;
- bumpb_off;
- bumpc_off;
- bumph_off;
- drain_off;
- motor_off;
- wash_on;
- direct_off;
- heat_off;
- }
- void check_k_power(void)
- {
- if(f6.bit.key_power_push==0)
- {
- if(!CHKBIT(PINC,key_in))
- f6.bit.key_power_push=1;
- }
- else
- {
- if(CHKBIT(PINC,key_in))
- {
- key_num=k_power;
- f6.bit.key_power_push=0;
- f3.bit.buzed=1;
- f3.bit.set=1;
- }
- }
- }
- void check_k_start(void)
- {
- if((f2.bit.powered==1)||(f1.bit.tested==1))
- {
- if(f6.bit.key_start_push==0)
- {
- if(!CHKBIT(PINC,key_in))
- f6.bit.key_start_push=1;
- }
- else
- {
- if(CHKBIT(PINC,key_in))
- {
- f6.bit.key_start_push=0;
- f0.bit.k_start_pushed=1;
- key_num=k_start;f3.bit.buzed=1;
- }
- }
- }
- if(!CHKBIT(PINC,key_in))
- f2.bit.k_test3=1;
- else f2.bit.k_test3=0;
- }
- void check_k_cycle(void)
- {
- if((f2.bit.powered==1)&&(f2.bit.started==0))
- {
- if(f6.bit.key_cycle_push==0)
- {
- if(!CHKBIT(PINC,key_in))
- f6.bit.key_cycle_push=1;
- }
- else
- {
- if(CHKBIT(PINC,key_in))
- {
- f6.bit.key_cycle_push=0;
- f0.bit.k_cycle_pushed=1;
- key_num=k_cycle;f3.bit.set=1;f3.bit.buzed=1;
- }
- }
- }
- }
- void check_k_fab(void)
- {
- if((f2.bit.powered==1)&&(f2.bit.started==0))
- {
- if(f6.bit.key_fab_push==0)
- {
- if(!CHKBIT(PINC,key_in))
- f6.bit.key_fab_push=1;
- }
- else
- {
- if(CHKBIT(PINC,key_in))
- {
- f6.bit.key_fab_push=0;
- f0.bit.k_fab_pushed=1;
- key_num=k_fab;f3.bit.set=1;f3.bit.buzed=1;
- }
- }
- }
- }
- void check_k_temp(void)
- {
- if((f2.bit.powered==1)&&(f2.bit.started==0))
- {
- if(f6.bit.key_temp_push==0)
- {
- if(!CHKBIT(PINC,key_in))
- f6.bit.key_temp_push=1;
- }
- else
- {
- if(CHKBIT(PINC,key_in))
- {
- f6.bit.key_temp_push=0;
- f0.bit.k_temp_pushed=1;
- key_num=k_temp;f3.bit.set=1;f3.bit.buzed=1;
- }
- }
- }
- }
- void check_k_extrinse(void)
- {
- if((f2.bit.powered==1)&&(f2.bit.started==0))
- {
- if(f6.bit.key_extrinse_push==0)
- {
- if(!CHKBIT(PINC,key_in))
- f6.bit.key_extrinse_push=1;
- }
- else
- {
- if(CHKBIT(PINC,key_in))
- {
- f6.bit.key_extrinse_push=0;
- f0.bit.k_extrinse_pushed=1;
- key_num=k_extrinse;f3.bit.set=1;f3.bit.buzed=1;
- }
- }
- }
- else
- {
- if(!CHKBIT(PINC,key_in))
- f2.bit.k_test2=1;
- else f2.bit.k_test2=0;
- }
- }
- void check_k_delay(void)
- {
- if((f2.bit.powered==1)&&(f2.bit.started==0))
- {
- if(f6.bit.key_delay_push==0)
- {
- if(!CHKBIT(PINC,key_in))
- f6.bit.key_delay_push=1;
- }
- else
- {
- if(CHKBIT(PINC,key_in))
- {
- f6.bit.key_delay_push=0;
- f0.bit.k_delay_pushed=1;
- key_num=k_delay;f3.bit.set=1;f3.bit.buzed=1;
- }
- }
- }
- else
- {
- if(!CHKBIT(PINC,key_in))
- f2.bit.k_test1=1;
- else f2.bit.k_test1=0;
- }
- }
- void process_key(void)
- {
- //-----------------------------------------
- if(key_num==k_power)
- {
- key_num=0;
- k_power_count++;
- if(k_power_count==1)
- {
- f2.bit.powered=1;
- //-------------------POWER ON默认程序:热洗冷漂,化纤,主洗+漂洗+脱水
- f7.bit.wash_prog6=1;
- f9.bit.huaxian_sel=1;
- f9.bit.h_c_sel=1;
- flag_wash=flag_rinse=flag_spin=1;
- main_wash_time=86;
- water_temp=60;
- }
- else
- {
- k_start_count=0;//清START记数
- k_power_count=0;
- f2.bit.powered=0;
- }
- }
- //-----------------------------------------
- if(f1.bit.tested==0)
- {
- if(key_num==k_start)
- {
- key_num=0;
- k_start_count++;
- if(k_start_count==1)
- f2.bit.started=1;
- else
- {
- k_start_count=0;
- f2.bit.started=0;
- }
- }
- }
- else //测试
- {
- if(f11.bit.test_prog_end==0)
- {
- if(key_num==k_start) {key_num=0;test_count++;}
- }
- }
-
- if(key_num==k_fab)
- {
- key_num=0;
- f9.byte=0;
- k_cycle_count=0;
- f7.byte=f5.byte=0;
- flag_prewash=0;
- flag_wash=flag_rinse=flag_spin=1;
- k_fab_count++;
- if(k_fab_count==1)
- {
- f9.bit.mianma_sel=1;
- f9.bit.h_h_sel=1;
- water_temp=90;
- main_wash_time=106;
- }
- if(k_fab_count==2)
- {
- f9.bit.huaxian_sel=1;
- f9.bit.h_c_sel=1;
- water_temp=60;
- main_wash_time=86;
- }
- if(k_fab_count==3)
- {
- f9.bit.sinong_sel=1;
- f9.bit.h_c_sel=1;
- water_temp=60;
- main_wash_time=66;
- }
- if(k_fab_count==4)
- {
- f9.bit.maoliao_sel=1;
- f9.bit.w_w_sel=1;
- water_temp=45;
- main_wash_time=46;
- }
- if(k_fab_count>=5)
- {
- k_fab_count=1;
- f9.bit.mianma_sel=1;
- f9.bit.h_h_sel=1;
- water_temp=90;
- main_wash_time=86;
- }
- }
- ///-----------------------------------------
- if(f9.bit.mianma_sel==1)
- {
- if(key_num==k_cycle)
- {
- key_num=0;
- flag_extrinse=0;
- f7.byte=f5.byte=0;
- flag_prewash=flag_wash=flag_rinse=flag_spin=0;
- k_cycle_count++;
- if(k_cycle_count==1)
- {
- main_wash_time=120;
- f7.bit.wash_prog2=1;
- flag_prewash=flag_wash=flag_rinse=flag_spin=1;
- }
- else if(k_cycle_count==2)
- {
- main_wash_time=8;
- f7.bit.wash_prog3=1;
- flag_spin=1;
- }
- else if(k_cycle_count==3)
- {
- main_wash_time=21;
- f7.bit.wash_prog4=1;
- flag_rinse=flag_spin=1;
- }
- else if(k_cycle_count==4)
- {
- main_wash_time=98;
- f7.bit.wash_prog5=1;
- flag_wash=flag_rinse=1;
- }
- else if(k_cycle_count>4)
- {
- k_cycle_count=0;
- main_wash_time=106;
- f7.bit.wash_prog1=1;
- flag_wash=flag_rinse=flag_spin=1;
- }
- }
- else if(key_num==k_temp)//--------------------------------
- {
- key_num=0;
- f9.bit.h_h_sel=f9.bit.h_c_sel=f9.bit.w_w_sel=f9.bit.c_c_sel=0;
- k_temp_count++;
- if(k_temp_count==1) {f9.bit.h_h_sel=1;water_temp=90;}
- if(k_temp_count==2) {f9.bit.h_c_sel=1;water_temp=60;}
- if(k_temp_count==3) {f9.bit.w_w_sel=1;water_temp=45;}
- if(k_temp_count==4) {f9.bit.c_c_sel=1;}
- if(k_temp_count>=5)
- {k_temp_count=1;f9.bit.h_h_sel=1;water_temp=90;}
- }
- }
- //---------------------------------------
- else if(f9.bit.sinong_sel==1)
- {
-
- if(key_num==k_cycle)
- {
- key_num=0;
- flag_extrinse=0;
- f7.byte=f5.byte=0;
- flag_prewash=flag_wash=flag_rinse=flag_spin=0;
- k_cycle_count++;
- if(k_cycle_count==1)
- {
- main_wash_time=8;
- f7.bit.wash_prog3=1;
- flag_spin=1;
- }
- else if(k_cycle_count==2)
- {
- main_wash_time=21;
- f7.bit.wash_prog4=1;
- flag_rinse=flag_spin=1;
- }
- else if(k_cycle_count==3)
- {
- main_wash_time=58;
- f5.bit.wash_prog12=1;
- flag_wash=flag_rinse=1;
- }
- else if(k_cycle_count>3)
- {
- k_cycle_count=0;
- main_wash_time=66;
- f5.bit.wash_prog9=1;
- flag_wash=flag_rinse=flag_spin=1;
- }
- }
- else if(key_num==k_temp)//----------------------------
- {
- key_num=0;
- f9.bit.h_h_sel=f9.bit.h_c_sel=f9.bit.w_w_sel=f9.bit.c_c_sel=0;
- k_temp_count++;
- if(k_temp_count==1) {f9.bit.h_c_sel=1;water_temp=60;}
- if(k_temp_count==2) {f9.bit.w_w_sel=1;water_temp=45;}
- if(k_temp_count==3) {f9.bit.c_c_sel=1;}
- if(k_temp_count>=4)
- {k_temp_count=1;f9.bit.h_c_sel=1;water_temp=60;}
- }
- }
- //---------------------------
- else if(f9.bit.huaxian_sel==1)
- {
- if(key_num==k_cycle)
- {
- key_num=0;
- flag_extrinse=0;
- f7.byte=f5.byte=0;
- flag_prewash=flag_wash=flag_rinse=flag_spin=0;
- k_cycle_count++;
- if(k_cycle_count==1)
- {
- main_wash_time=100;
- f7.bit.wash_prog7=1;
- flag_prewash=flag_wash=flag_rinse=flag_spin=1;
- }
- else if(k_cycle_count==2)
- {
- main_wash_time=8;
- f5.bit.wash_prog10=1;
- flag_spin=1;
- }
- else if(k_cycle_count==3)
- {
- main_wash_time=21;
- f5.bit.wash_prog11=1;
- flag_rinse=flag_spin=1;
- }
- else if(k_cycle_count==4)
- {
- main_wash_time=78;
- f7.bit.wash_prog8=1;
- flag_wash=flag_rinse=1;
- }
- else if(k_cycle_count>4)
- {
- k_cycle_count=0;
- main_wash_time=86;
- f7.bit.wash_prog6=1;
- flag_wash=flag_rinse=flag_spin=1;
- }
- }
- else if(key_num==k_temp)//----------------------------
- {
- key_num=0;
- k_temp_count++;
- f9.bit.h_c_sel=f9.bit.h_h_sel=f9.bit.w_w_sel=f9.bit.c_c_sel=0;
- if(k_temp_count==1) {f9.bit.h_c_sel=1;water_temp=60;}
- if(k_temp_count==2) {f9.bit.w_w_sel=1;water_temp=45;}
- if(k_temp_count==3) {f9.bit.c_c_sel=1;}
- if(k_temp_count>=4)
- {k_temp_count=1;f9.bit.h_c_sel=1;water_temp=60;}
- }
- }
- //---------------------------
- else if(f9.bit.maoliao_sel==1)
- {
- if(key_num==k_cycle)
- {
- key_num=0;
- flag_extrinse=0;
- f7.byte=f5.byte=0;
- flag_prewash=flag_wash=flag_rinse=flag_spin=0;
- k_cycle_count++;
- if(k_cycle_count==1)
- {
- main_wash_time=8;
- f5.bit.wash_prog14=1;
- flag_spin=1;
- }
- else if(k_cycle_count==2)
- {
- main_wash_time=21;
- f5.bit.wash_prog15=1;
- flag_rinse=flag_spin=1;
- }
- else if(k_cycle_count==3)
- {
- main_wash_time=38;
- f5.bit.wash_prog16=1;
- flag_wash=flag_rinse=1;
- }
- else if(k_cycle_count>3)
- {
- k_cycle_count=0;
- main_wash_time=46;
- f5.bit.wash_prog13=1;
- flag_wash=flag_rinse=flag_spin=1;
- }
- }
- else if(key_num==k_temp)//----------------------------
- {
- key_num=0;
- f9.bit.h_c_sel=f9.bit.h_h_sel=f9.bit.w_w_sel=f9.bit.c_c_sel=0;
- k_temp_count++;
- if(k_temp_count==1) {f9.bit.w_w_sel=1;water_temp=45;}
- if(k_temp_count==2) f9.bit.c_c_sel=1;
- if(k_temp_count>2)
- {k_temp_count=1;f9.bit.w_w_sel=1;water_temp=45;}// 是否选择没温度。
- }
- }
-
- ///-----------------------------------------
- if(key_num==k_extrinse)
- {
- key_num=0;
- k_extrinse_count++;
- if(k_extrinse_count==1)
- {
- if((flag_spin>=1)&&(flag_prewash==0)&&(flag_wash==0)&&(flag_rinse==0))
- flag_extrinse=0;
- else if(flag_rinse==2)
- {flag_rinse=1;flag_extrinse=1;;main_wash_time+=8;}
- else {flag_extrinse=1;main_wash_time+=8;}
- }
- else
- {
- k_extrinse_count=0;
- if(flag_extrinse==1)
- {flag_extrinse=0;main_wash_time-=8;}
- }
- }
- ///-----------------------------------------
- if(key_num==k_delay)
- {
- key_num=0;
- flag_time=1;
- time_data++;
- if(time_data>24)
- {
- time_data=0;
- flag_time=0;
- }
- }
- ///-----------------------------------------
- if(f2.bit.started==1)
- {
- f3.bit.set=0;
- if(flag_time>=1) flag_time=2;
- }
- }
- void check_water1(void)
- {
- if(!CHKBIT(PINB,water1))
- {
- water1_off_count++;
- if(water1_off_count>=3)
- {
- f1.bit.water1ed=0;
- water1_off_count=0;
- }
- }
- else {water1_off_count=0;
-
- if(CHKBIT(PINB,water1))
- {
- water1_on_count++;
- if(water1_on_count>=18)
- {
- f1.bit.water1ed=1;
- water1_on_count=0;
- }
- }
- else water1_on_count=0;
- }
- }
- void check_water2(void)
- {
- if(!CHKBIT(PINB,water2))
- {
- water2_off_count++;
- if(water2_off_count>=3)
- {
- f1.bit.water2ed=0;
- water2_off_count=0;
- }
- }
- else {water2_off_count=0;
-
- if(CHKBIT(PINB,water2))
- {
- water2_on_count++;
- if(water2_on_count>=18)
- {
- f1.bit.water2ed=1;
- water2_on_count=0;
- }
- }
- else water2_on_count=0;
- }
- }
- void check_door(void)
- {
- if(!CHKBIT(PINB,door_in))
- {
- door_on_count++;
- if(door_on_count>=4)
- {
- f1.bit.doored=1;
- door_on_count=0;
- }
- }
- else door_on_count=0;
- if(CHKBIT(PINB,door_in))
- {
- door_off_count++;
- if(door_off_count>=18)
- {
- f1.bit.doored=0;
- door_off_count=0;
- }
- }
- else door_off_count=0;
- }
- void check_switch(void)
- {
- check_water1();
- check_water2();
- check_door();
- }
- void enter_water_err(void) //按START键取消
- {
- if(f10.bit.enter_water_erred=0)
- {
- if((CHKBIT(PORTB,bumpa))||(CHKBIT(PORTD,bumpb))||(CHKBIT(PORTD,bumpc))||(CHKBIT(PORTD,bumph)))
- {
- enter_water_count++;
- if(enter_water_count>480)
- {
- enter_water_count=0;
- if(f1.bit.water1ed==0)
- f10.bit.enter_water_erred=1;
- }
- }
- }
- }
- void drain_err(void)
- {
- if(f10.bit.drain_erred==0)
- {
- if(CHKBIT(PIND,drain))//排水泵启动
- {
- drain_count++;
- if(drain_count>240)
- {
- drain_count=0;
- if(f1.bit.water1ed==1)
- f10.bit.drain_erred=1;
- }
- }
- }
- }
- void overflow_err(void)
- {
- if(f10.bit.overflow_erred==0)
- {
- if(f1.bit.water2ed==1)
- {
- overflow_count++;
- if(overflow_count>2)
- {
- overflow_count=0;
- f10.bit.overflow_erred=1;
- }
- }
- }
- }
- void door_lock_err(void)
- {
- if( f10.bit.door_lock_erred==0)
- {
- if((f11.bit.test_prog_end==0)||(f3.bit.prog_end==0))//程序未结束
- {
- door_lock_count++;
- if(door_lock_count>10)
- {
- door_lock_count=0;
- if(f1.bit.doored==1)
- f10.bit.door_lock_erred=0;
- else f10.bit.door_lock_erred=1;
- }
- }
- else f10.bit.door_lock_erred=0;
- }
- else
- {
- if(f1.bit.doored==1)
- f10.bit.door_lock_erred=0;
- }
- }
- void rise_temp_err(void)
- {
- if(f10.bit.rise_temp_erred==0)
- {
- water_temp1=fact_water_temp;
- rise_temp_count++;
- if(rise_temp_count>900)
- {
- rise_temp_count=0;
- water_temp2=fact_water_temp;
- if((water_temp2-water_temp1)<1)
- {
- if((f3.bit.prog_end==1)||(f11.bit.test_prog_end==1)) // 冷洗冷漂程序结束后报警
- f10.bit.rise_temp_erred=1;
- }
- }
- }
- }
- void abnormality_temp_err(void)
- {
- if(f10.bit.abnormality_temp_erred==0)
- {
-
- if((fact_water_temp>90)&&(f9.bit.mianma_sel==1))
- f10.bit.abnormality_temp_erred=1;
- if((fact_water_temp>60)&&(f9.bit.sinong_sel==1))
- f10.bit.abnormality_temp_erred=1;
- if((fact_water_temp>60)&&(f9.bit.huaxian_sel==1))
- f10.bit.abnormality_temp_erred=1;
- if((fact_water_temp>45)&&(f9.bit.maoliao_sel==1))
- f10.bit.abnormality_temp_erred=1;
- }
- }
- void sensor_err(void)
- {
- if(f10.bit.sensor_erred==0)
- {
- 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;
- }
- }
- void wash_program3(void)
- {
- if(flag_spin>=1) spin();
- else
- {
- f2.bit.started=0;
- f7.bit.wash_prog3=0;
- f3.bit.prog_end=1;
- }
- }
- void wash_program4(void)
- {
- if(flag_extrinse>=1) extrinse();
- if((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_prog4=0;
- f3.bit.prog_end=1;
- }
- }
- void wash_program5(void)
- {
- if(flag_wash>=1) strongwash();
- if((flag_extrinse>=1)&&(flag_wash==0)) extrinse();
- if((flag_wash==0)&&(flag_extrinse==0)&&(flag_rinse>=1)) rinse();
- if(flag_rinse==0)
- {
- f2.bit.started=0;
- f7.bit.wash_prog5=0;
- f3.bit.prog_end=1;
- }
- }
- void wash_program6(void)
- {
- if(flag_wash>=1) softwash();
- if((flag_extrinse>=1)&&(flag_wash==0)) extrinse();
- if((flag_wash==0)&&(flag_extrinse==0)&&(flag_rinse>=1)) softrinse();
- if((flag_spin>=1)&&(flag_rinse==0)) soft_lastspin();
- if(flag_spin==0)
- {
- f2.bit.started=0;
- f7.bit.wash_prog6=0;
- f3.bit.prog_end=1;
- }
- }
- void wash_program7(void)
- {
- if(flag_prewash>=1) prewash();
- if((flag_wash>=1)&&(flag_prewash==0)) softwash();
- if((flag_extrinse>=1)&&(flag_wash==0)&&(flag_prewash==0)) extrinse();
- if((flag_wash==0)&&(flag_prewash==0)&&(flag_extrinse==0)&&(flag_rinse>=1)) softrinse();
- if((flag_spin>=1)&&(flag_rinse==0)) soft_lastspin();
- if(flag_spin==0)
- {
- f2.bit.started=0;
- f7.bit.wash_prog7=0;
- f3.bit.prog_end=1;
- }
- }
- void wash_program10(void)
- {
- if(flag_spin>=1) soft_lastspin();
- else if(flag_spin==0)
- {
- f2.bit.started=0;
- f5.bit.wash_prog10=0;
- f3.bit.prog_end=1;
- }
- }
- void wash_program11(void)
- {
- if(flag_extrinse>=1) extrinse();
- if((flag_extrinse==0)&&(flag_rinse>=1)) softrinse();
- if((flag_spin>=1)&&(flag_rinse==0)) soft_lastspin();
- if(flag_spin==0)
- {
- f2.bit.started=0;
- f5.bit.wash_prog11=0;
- f3.bit.prog_end=1;
- }
- }
- void wash_program8(void)
- {
- if(flag_wash>=1) softwash();
- if((flag_extrinse>=1)&&(flag_wash==0)) extrinse();
- if((flag_wash==0)&&(flag_extrinse==0)&&(flag_rinse>=1)) softrinse();
- if(flag_rinse==0)
- {
- f2.bit.started=0;
- f7.bit.wash_prog8=0;
- f3.bit.prog_end=1;
- }
- }
- void wash_program9(void)
- {
- if(flag_wash>=1) washing();
- if((flag_extrinse>=1)&&(flag_wash==0)) extrinse();
- if((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;
- f5.bit.wash_prog9=0;
- f3.bit.prog_end=1;
- }
- }
- void wash_program12(void)
- {
- if(flag_wash>=1) washing();
- if((flag_extrinse>=1)&&(flag_wash==0)) extrinse();
- if((flag_wash==0)&&(flag_extrinse==0)&&(flag_rinse>=1)) rinse();
- if(flag_rinse==0)
- {
- f2.bit.started=0;
- f5.bit.wash_prog12=0;
- f3.bit.prog_end=1;
- }
- }
- void wash_program13(void)
- {
- if(flag_wash>=1) quickwash();
- if((flag_extrinse>=1)&&(flag_wash==0)) extrinse();
- if((flag_wash==0)&&(flag_extrinse==0)&&(flag_rinse>=1)) rinse();
- if((flag_spin>=1)&&(flag_rinse==0)) quickwash_lastspin();
- if(flag_spin==0)
- {
- f2.bit.started=0;
- f5.bit.wash_prog13=0;
- f3.bit.prog_end=1;
- }
- }
- void wash_program14(void)
- {
- if(flag_spin>=1) quickwash_lastspin();
- if(flag_spin==0)
- {
- f2.bit.started=0;
- f5.bit.wash_prog14=0;
- f3.bit.prog_end=1;
- }
- }
- void wash_program15(void)
- {
- if(flag_extrinse>=1) extrinse();
- if((flag_rinse>=1)&&(flag_extrinse==0)) rinse();
- if((flag_spin>=1)&&(flag_rinse==0)) quickwash_lastspin();
- if(flag_spin==0)
- {
- f2.bit.started=0;
- f5.bit.wash_prog13=0;
- f3.bit.prog_end=1;
- }
- }
- void wash_program16(void)
- {
- if(flag_wash>=1) quickwash();
- if((flag_extrinse>=1)&&(flag_wash==0)) extrinse();
- if((flag_rinse>=1)&&(flag_wash==0)&&(flag_extrinse==0)) rinse();
- if(flag_rinse==0)
- {
- f2.bit.started=0;
- f5.bit.wash_prog16=0;
- f3.bit.prog_end=1;
- }
- }
- void wash_time_control(void)
- {
- if((f2.bit.started==1)&&(flag_time==0))
- {
- wash_t++;
- if(main_wash_time>0)
- main_wash_time--;
- else main_wash_time=0;
- // if(flag_prewash==0) {main_wash_time=(main_wash_time-prewash_time); prewash_time=0;}
- // if(flag_wash==0) {main_wash_time=(main_wash_time-wash_time);wash_time=0;}
- //if(flag_rinse==0) {main_wash_time=(main_wash_time-rinse_time);rinse_time=0;}
- //if(flag_spin==0) {main_wash_time=(main_wash_time-spin_time);spin_time=0;}
- }
- }
- void main_wash_prog(void)
- {
- if(f2.bit.started==1)
- {
- if(flag_time==0)
- {
- if((f10.byte==0)&&(f11.bit.motor_erred==0))
- {
- if(f7.bit.wash_prog1==1) wash_program1();
- else if(f7.bit.wash_prog2==1) wash_program2();
- else if(f7.bit.wash_prog3==1) wash_program3();
- else if(f7.bit.wash_prog4==1) wash_program4();
- else if(f7.bit.wash_prog5==1) wash_program5();
- else if(f7.bit.wash_prog6==1) wash_program6();
- else if(f7.bit.wash_prog7==1) wash_program7();
- else if(f7.bit.wash_prog8==1) wash_program8();
- else if(f5.bit.wash_prog9==1) wash_program9();
- else if(f5.bit.wash_prog10==1) wash_program10();
- else if(f5.bit.wash_prog11==1) wash_program11();
- else if(f5.bit.wash_prog12==1) wash_program12();
- else if(f5.bit.wash_prog13==1) wash_program13();
- else if(f5.bit.wash_prog14==1) wash_program14();
- else if(f5.bit.wash_prog15==1) wash_program15();
- else if(f5.bit.wash_prog16==1) wash_program16();
- }
- else process_err();
- }
- }
- else out_off();
- }
- void erasure_eep(void)
- {
- unsigned char i;
- for(i=0;i<=250;i++)
- EEPROMwrite(addr+i, 0x00);
- }
- void process_power_off(void)
- {
- door_off;
- out_off();
- disp0=disp1=disp2=0;
- dig1=dig2=dig3=dig4=14;
- f1.byte&=0xF0;//speed/modeselect/test
- // f3.byte&=0x08;//buz,set
- // f2.byte&=0xF0;//test1,test2,test3标志
- f2.byte=f3.byte=f4.byte=f5.byte=f7.byte=0;
- f8.byte=f9.byte=f10.byte=f11.byte=0;
- flag_time=flag_prewash=flag_wash=flag_rinse=flag_spin=flag_extrinse=0;
- time_data=0;
- buz_off;
- //erasure_eep();
- }
- void check_test(void)
- {
- if(f2.bit.powered==0)
- {
- if(f1.bit.tested==0)
- {
- if((f2.bit.k_test1==1)&&(f2.bit.k_test2==1)&&(f2.bit.k_test3==1))
- {
- f2.bit.k_test1=f2.bit.k_test2=f2.bit.k_test3=0;
- f1.bit.tested=1;
- f3.bit.test_buz=1;
- }
- }
- else
- {
- if(( f2.bit.k_test1==1)&&( f2.bit.k_test2==1)&&( f2.bit.k_test3==1))
- {
- f2.bit.k_test1=f2.bit.k_test2=f2.bit.k_test3=0;
- f1.bit.tested=0;
- }
- }
- }
- }
- void test_prog(void)
- {
- if(test_count==2) test_step1();
- if((test_count==4)||(f11.bit.step1_end==1)) test_step2();
- if((test_count==6)||(f11.bit.step2_end==1)) test_step3();
- if((test_count==8)||(f11.bit.step3_end==1)) test_step4();
- if((test_count==10)||(f11.bit.step4_end==1)) test_step5();
- if((test_count==11)||(f11.bit.step5_end==1))
- {
- f2.bit.k_test1=f2.bit.k_test2=f2.bit.k_test3=0;
- test_count=0;
- f11.bit.test_prog_end=1;
- }
- }
-
- void program_control(void)
- {
- if(f1.bit.tested==1)
- {
- door_on;
- if(f11.bit.test_prog_end==0) test_prog(); //测试
- else
- {
- if(f1.bit.doored==0)
- {
- door_off;
- if(f2.bit.end_buz==0) end_buzing();
- else f1.bit.tested=0;
- }
- }
- }
- else
- {
- if(f2.bit.powered==1)
- {
- door_on;
- if(f3.bit.prog_end==0) main_wash_prog();//洗衣程序
- else
- {
- if(f1.bit.doored==0)
- {
- door_off;
- if(f2.bit.end_buz==0) end_buzing();
- else f2.bit.powered=0;
- }
- }
- }
- else process_power_off(); // 关机
- }
- }
- void process_water_in(void)
- {
- if(f8.bit.water_in==1)
- {
- if(flag_prewash==2)
- {
- if(f1.bit.water1ed==0) bumpa_on;
- else {bumpa_off;f8.bit.water_in=0;}
- }
- else if(flag_wash==2)
- {
- if(f1.bit.water1ed==0) bumpb_on;
- else {bumpb_off;f8.bit.water_in=0;}
- }
- else if(flag_rinse==2)
- {
- if(f1.bit.water1ed==0) bumpc_on;
- else {bumpc_off;f8.bit.water_in=0;}
- }
- }
- }
- void heat_control(void)
- {
- if(f1.bit.heated==1)
- {
- if(f9.bit.h_h_sel==1)
- {
- if(fact_water_temp<88) heat_on;
- else if(fact_water_temp>=90) heat_off;
- else
- {
- if(CHKBIT(PORTB,heat)) heat_on;
- else if(!CHKBIT(PORTB,heat)) heat_off;
- }
- }
- if(f9.bit.h_c_sel==1)
- {
- if(fact_water_temp<58) heat_on;
- else if(fact_water_temp>=60) heat_off;
- else
- {
- if(CHKBIT(PORTB,heat)) heat_on;
- else if(!CHKBIT(PORTB,heat)) heat_off;
- }
- }
- if(f9.bit.w_w_sel==1)
- {
- if(fact_water_temp<43) heat_on;
- else if(fact_water_temp>=45) heat_off;
- else
- {
- if(CHKBIT(PORTB,heat)) heat_on;
- else if(!CHKBIT(PORTB,heat)) heat_off;
- }
- }
- if(f9.bit.c_c_sel==1) heat_off;
- }
- }
- void speed_control(void)
- {
- if(f4.bit.motor_run==1)
- {
- if(f4.bit.s_55==1) s2=320;
- else if(f4.bit.s_93==1) s2=645;
- else if(f4.bit.s_500==1) s2=120;
- else if(f4.bit.s_800==1) s2=75;
- else s2=0;
-
- if(s1<s2) //S1<S2转速偏高
- {
- if(t1>120) t1=(t1-t_step);
- else t1=120;
- }
- else if(s1>s2) //S1>S2转速偏低
- {
- if(t1<=t2) t1=(t1+t_step);
- }
- t=(0xFFFF-t1/8);
- }
- else {s2=0;t=0XFFFF;t1=120;}
- }
- void check_zero(void)
- {
- if(f4.bit.motor_run==1)
- {
- if(f4.bit.zero_come==1)
- {
- if(t1_count==0)
- {
- CLI();
- TCCR1B = 0x00; //stop
- TCNT1H = t>>8;
- TCNT1L = t;
- TCCR1B = 0x03; //start Timer
- SEI();
- t1_count=1;
- }
- if(f8.bit.t1_come==1)
- {
- f8.bit.t1_come=0;
- if(t1_count==1)//设置第二次中断时间t
- {
- CLI();
- TCCR1B = 0x00; //stop
- TCNT1H = 0xFF; //setup
- TCNT1L = 0x83;
- TCCR1B = 0x03; //start Timer
- SEI();
- t1_count=2;
- motor_on;
- asm("nop");
- }
- else
- {
- t1_count=0;
- motor_off;
- f4.bit.zero_come=0;
- TCCR1B = 0x00; //stop
- //f4.bit.motor_run=0;
- if(MCUCR==0x0A) MCUCR = 0x0B;
- else MCUCR = 0x0A;
- }
- }
- }
- }
- else
- {
- t1_count=0;
- f4.bit.zero_come=0;
- motor_off;
- }
- }
- //过零中断
- #pragma interrupt_handler int0_isr:2
- void int0_isr(void)
- {
- f4.bit.zero_come=1;
- }
- //电机反馈脉冲中断
- #pragma interrupt_handler int1_isr:3
- void int1_isr(void)
- {
- s1=speed_count; //读取速度单位100us
- speed_count=0;
- }
- #pragma interrupt_handler timer1_ovf_isr:9
- void timer1_ovf_isr(void)
- {
- f8.bit.t1_come=1;
- }
- #pragma interrupt_handler timer2_ovf_isr:5
- void timer2_ovf_isr(void)
- {
- TCNT2 = 0x9C; //reload counter value
- speed_count++;
- }
- #pragma interrupt_handler timer0_ovf_isr:10
- void timer0_ovf_isr(void)
- {
- TCNT0 = 0x83; //reload counter value
- t_1ms=1;
- }
- //-----------------------------------------------------------------------------
- // initialization
- //-----------------------------------------------------------------------------
- void port_init(void)
- {
- PORTA = 0xFE;
- DDRA = 0xFE;
- PORTB = 0x00;
- DDRB = 0x8F;
- PORTC = 0xC0; //m103 output only
- DDRC = 0xC1;
- PORTD = 0x00;
- DDRD = 0xF3;
- }
- //Watchdog initialize
- // prescale: 2048K
- void watchdog_init(void)
- {
- WDR(); //this prevents a timout on enabling
- WDTCR = 0x0F; //WATCHDOG ENABLED - dont forget to issue WDRs
- }
- //TIMER0 initialize - prescale:64
- // WGM: Normal
- // desired value: 1mSec
- // actual value: 1.000mSec (0.0%)
- void timer0_init(void)
- {
- TCCR0 = 0x00; //stop
- TCNT0 = 0x83; //set count
- OCR0 = 0x7D; //set compare
- TCCR0 = 0x03; //start timer
- }
- //TIMER1 initialize - prescale:8
- // WGM: 0) Normal, TOP=0xFFFF
- // desired value: 120uSec
- // actual value: 119.000uSec (0.8%)
- void timer1_init(void)
- {
- TCCR1B = 0x00; //stop
- TCNT1H = 0xFF; //setup
- TCNT1L = 0x89;
- OCR1AH = 0x00;
- OCR1AL = 0x77;
- OCR1BH = 0x00;
- OCR1BL = 0x77;
- // OCR1CH = $OCR1CH$;
- // OCR1CL = $OCR1CL$;
- ICR1H = 0x00;
- ICR1L = 0x77;
- TCCR1A = 0x00;
- TCCR1B = 0x02; //start Timer
- }
- //TIMER2 initialize - prescale:8
- // WGM: Normal
- // desired value: 100uSec
- // actual value: 100.000uSec (0.0%)
- void timer2_init(void)
- {
- TCCR2 = 0x00; //stop
- ASSR = 0x00; //set async mode
- TCNT2 = 0x9C; //setup
- OCR2 = 0x64;
- TCCR2 = 0x02; //start
- }
- //ADC initialize
- // Conversion time: 3uS
- void adc_init(void)
- {
- ADCSR = 0x00; //disable adc
- ADMUX = 0x00; //select adc input 0
- ACSR = 0x80;
- ADCSR = 0xC1;
- }
- //call this routine to initialize all peripherals
- void init_devices(void)
- {
- //stop errant interrupts until set up
- CLI(); //disable all interrupts
- port_init();
- watchdog_init();
- timer0_init();
- timer1_init();
- timer2_init();
- adc_init();
- MCUCR = 0x0A;
- GICR = 0xC0;
- TIMSK = 0x45; //timer interrupt sources
- SEI(); //re-enable interrupts
- //all peripherals are now initialized
- }
- void init_disp(void)
- {
- disp0=disp1=disp2=0;
- dig1=dig2=dig3=dig4=14;
- }
- //-----------------------------------------------------------------------------
- // main
- //-----------------------------------------------------------------------------
- main()
- {
-
- init_devices();
- heat_select();
- speed_select();
- init_disp();
- init_tasktime();
- f3.bit.buzed=1;
-
- while(1)
- {
- check_zero();
- if(t_1ms==1)
- {
- t_1ms=0;
- check_switch();//door,water lever
- }
-
- if(t_3ms==0)
- {
- t_3ms=3;
- scan();
- }
-
- if(t_50ms==0)
- {
- t_50ms=50;
- buzing();
- ad_conv();
- }
-
- if(t_100ms==0)
- {
- t_100ms=100;
- process_key();
- speed_control();
- }
-
- if(t_500ms==0)
- {
- t_500ms=500;
- test_buzing();
- err_buzing();
- disp_conv();
- process_led_disp();
- }
-
- if(t_1s==0)
- {
- t_1s=1000;
- process_water_in();
- check_err();
- check_test();
- program_control();//test_prog,main_wash_prog
- heat_control();
- WDR();
- }
-
- if(t_1m==0)
- {
- t_1m=60000;
- time_on();
- check_key_10m();//不按键>10min切断电源,进入待机状态,需重新按POWER键进入默认状态
- wash_time_control();
- }
- }
- }
复制代码
【必读】版权免责声明
1、本主题所有言论和内容纯属会员个人意见,与本论坛立场无关。2、本站对所发内容真实性、客观性、可用性不做任何保证也不负任何责任,网友之间仅出于学习目的进行交流。3、对提供的数字内容不拥有任何权利,其版权归原著者拥有。请勿将该数字内容进行商业交易、转载等行为,该内容只为学习所提供,使用后发生的一切问题与本站无关。 4、本网站不保证本站提供的下载资源的准确性、安全性和完整性;同时本网站也不承担用户因使用这些下载资源对自己和他人造成任何形式的损失或伤害。 5、本网站所有软件和资料均为网友推荐收集整理而来,仅供学习用途使用,请务必下载后两小时内删除,禁止商用。6、如有侵犯你版权的,请及时联系我们(电子邮箱1370723259@qq.com)指出,本站将立即改正。
|
|