Äϲý´óѧ¹²ÇàѧԺ±ÏÒµÉè¼Æ(ÂÛÎÄ) ¸½Â¼A Ô´³ÌÐò
LED_XiDi = 1; LED_PiaoXi = 1; LED_TuoShui = 1; PIN_BaoJing = 1; PIN_JinShui = 1; PIN_PaiShui = 1; PIN_Motor_A = 1; PIN_Motor_B = 1; }
/********************Öжϳõʼ»¯³ÌÐò********************/ void ExInt_Init(void) { IT0 = 1; EX0 = 1; IT1 = 1; EX1 = 1; }
/*******************¶¨Ê±Æ÷0³õʼ»¯³ÌÐò******************/ void Timer0_Init(void) { TMOD = TMOD | 0X01; TH0 = 0X3C; TL0 = 0XB0; TR0 = 1; _50ms = 0; s = 0; }
/*******************¶¨Ê±Æ÷1³õʼ»¯³ÌÐò******************/ void Timer1_Init(void) { TMOD = TMOD | 0X10; TH1 = 0X3C; TL1 = 0XB0; }
/********************µç»ú³õʼ»¯³ÌÐò********************/ void T_Motor_Ctl(uchar t1,uchar t2,uchar t3) { if(!flag_SEl_QiangRuo) T_Motor = t1;
if(flag_SEl_QiangRuo) T_Motor = t2; if(flag_TuoShui) T_Motor = t3; }
/********************µç»ú³õʼ»¯³ÌÐò********************/ void Motor_Init(void) { ZhengZhuan();
T_Motor_Ctl(4,3,5);
35
Äϲý´óѧ¹²ÇàѧԺ±ÏÒµÉè¼Æ(ÂÛÎÄ) ¸½Â¼A Ô´³ÌÐò
}
/**********************½â³ý±¨¾¯************************/ void No_BaoJing(void) { flag_BaoJing= 0; PIN_BaoJing = 1; TR1 = 0; }
/*******ÍⲿÖжÏ0³ÌÐòΪÔËÐС¢½â³ý±¨¾¯»òÕßÔÝÍ£***********/ void int0(void) interrupt 0 {
if(!p32)
{ Delay_10ms(1); if(!p32)
{ if(!flag_Run)
flag_Run = 1; else if(flag_BaoJing) No_BaoJing(); else if(flag_Ok)
{ static bit flag_ZanTing;
flag_ZanTing = ~flag_ZanTing; if(flag_ZanTing) {ZanTing();}
else {JiXu();} } } } }
/**********************±¨¾¯³ÌÐò************************/ void BaoJing(void)
{ flag_BaoJing= 1; TR0 = 0; TR1 = 1; }
/*******************ʱ¼äµ½´¦Àí³ÌÐò*********************/ void Ok_Timer(void) { s = 0;
if(flag_JinShui || flag_PaiShui) { BaoJing(); } else
{ flag_XiDi = 0; flag_PiaoXi = 0; flag_TuoShui= 0;
36
Äϲý´óѧ¹²ÇàѧԺ±ÏÒµÉè¼Æ(ÂÛÎÄ) ¸½Â¼A Ô´³ÌÐò
Stop(); } }
/********************µç»ú¿ØÖƳÌÐò**********************/ void Motor(void)
{ static uchar s_Motor; s_Motor++;
if(s_Motor==T_Motor) { static uchar Motors; s_Motor = 0; Motors++;
if(Motors==3) Motors = 0; switch(Motors)
{ case ZHENGZHUAN : ZhengZhuan();
T_Motor_Ctl(4,3,5); break; case STOP : Stop();
T_Motor_Ctl(1,1,2); break;
case FANZHUAN : FanZhuan();
T_Motor_Ctl(4,3,5); break; default : break; } } }
/*******************¶¨Ê±Æ÷0ÖжϳÌÐò********************/ void Timer0(void) interrupt 1 {
TR0 = 0; TH0 = 0X3C; TL0 = 0XB0; TR0 = 1; _50ms++;
if(_50ms == 20) { _50ms = 0; s++;
if(s == T_S) Ok_Timer(); if(flag_XiDi || flag_PiaoXi || flag_TuoShui) Motor(); } }
37
Äϲý´óѧ¹²ÇàѧԺ±ÏÒµÉè¼Æ(ÂÛÎÄ) ¸½Â¼A Ô´³ÌÐò
/**********ÍⲿÖжÏ1³ÌÐòΪˮλµ½»òÕ߸ǿª´¦Àí***********/ void int1(void) interrupt 2 { if(!p33)
{ Delay_10ms(1); if(!p33) { } } }
/************¶¨Ê±Æ÷1ÖжϳÌÐò×÷ΪÉÁ˸¼°±¨¾¯**************/ void Timer1(void) interrupt 3 { static uchar _50ms; TR1 = 0; TH1 = 0X3C; TL1 = 0XB0; TR1 = 1; _50ms++;
if(_50ms == 14) { _50ms = 0;
if(flag_XiDi) LED_XiDi = ~LED_XiDi; if(flag_PiaoXi) LED_PiaoXi = ~LED_PiaoXi; if(flag_TuoShui) LED_TuoShui = ~LED_TuoShui; if(flag_BaoJing)
PIN_BaoJing = ~PIN_BaoJing; } }
/**********************³ÌÐòÑ¡Ôñ³ÌÐò********************/ void SEL_ChengXU(void)
{ if(!K_SEL_ChengXu) { Delay_10ms(1); if(!K_SEL_ChengXu)
{ while(!K_SEL_ChengXu); flag_SEL_ChengXu++; if(flag_SEL_ChengXu==5) flag_SEL_ChengXu = 0; switch(flag_SEL_ChengXu)
{ case BIAOZHUN : LED_BiaoZhun= 0; LED_JingJi = 1; LED_DanDu = 1;
LED_PaiShui = 1;
38