قسم الميكروكنترولر والروبوت ودوائر الاتصال بالحاسب الالي قسم المتحكمات الـ microcontroller و المعالجات microprocessor و التحكم الرقمي بالكمبيوتر CNC والانظمة الآلية والروبوت Robots

أدوات الموضوع

abdewidad
:: مهندس متميز ::
تاريخ التسجيل: Dec 2013
الدولة: casablanca
المشاركات: 712
نشاط [ abdewidad ]
قوة السمعة:0
قديم 06-05-2015, 03:54 PM المشاركة 1   
افتراضي طلب تصحيح الكود وشكرا Twitter FaceBook Google+



السلام عليكم
اريد صنع ساعة باربع منبهات
وتنبيه المنبه يكون حسب الوقت الدي حددته له
من الوقت الى الوقت المحدد مع حفظ التوقيت في الابروم
حتى يتم تعديل
اخواني بدون استعمال DS1307
هدا الكود لساعة مع التعديل في الاوقات والايام
16f876 4mhz
كود:
// LCD module connections
sbit LCD_RS at RB6_bit;
sbit LCD_EN at RB1_bit;
sbit LCD_D4 at RB2_bit;
sbit LCD_D5 at RB3_bit;
sbit LCD_D6 at RB4_bit;
sbit LCD_D7 at RB5_bit;

sbit LCD_RS_Direction at TRISB6_bit;
sbit LCD_EN_Direction at TRISB1_bit;
sbit LCD_D4_Direction at TRISB2_bit;
sbit LCD_D5_Direction at TRISB3_bit;
sbit LCD_D6_Direction at TRISB4_bit;
sbit LCD_D7_Direction at TRISB5_bit;
char s0,s1,m0,m1,h0,h1,j,x,y;
bit r;
void jour(){
if(j==0) Lcd_Out(1,11,"LUN");
if(j==1) Lcd_Out(1,11,"MAR");
if(j==2) Lcd_Out(1,11,"MER");
if(j==3) Lcd_Out(1,11,"JEU");
if(j==4) Lcd_Out(1,11,"VEN");
if(j==5) Lcd_Out(1,11,"SAM");
if(j==6) Lcd_Out(1,11,"DIM");
}
void InitTimer0(){
  OPTION_REG         = 0x87;
  TMR0                 = 61;

}

void Interrupt(){
  if (TMR0IF_bit){
    TMR0IF_bit         = 0;
    TMR0                 = 61;
    //Enter your code here
    y++;
    x++;
    if(y==20){y=0;s0++;}
    if(s0==10){s0=0;s1++;}
    if(s1==6){s1=0;m0++;}
    if(m0==10){m0=0;m1++;}
    if(m1==6){m1=0;h0++;}
    if(h0==10){h0=0;h1++;}
    if(h1==2 && h0==4){h1=h0=s1=s0=m1=m0=0;j++;}
    if(j==7)j=0; }
    if(INTCON.INTF==1){
  r=~r;
  }
 INTCON.INTF=0;
}
void aficher(){
lcd_chr(1,8,s0+48); lcd_chr(1,7,s1+48);lcd_out(1,3,":");lcd_out(1,6,":");lcd_chr(1,5,m0+48); lcd_chr(1,4,m1+48);
lcd_chr(1,2,h0+48); lcd_chr(1,1,h1+48);
}
void main() {
trisa=0xff;
trisb=1;
porta=portb=0;
InitTimer0();
intcon=0xB0;
j=0;
r=0;
Lcd_Init();
  Lcd_Cmd(_LCD_CLEAR);               // Clear display
  Lcd_Cmd(_LCD_CURSOR_OFF);
 for(;;){
aficher();
jour();
Lcd_Out(2, 1,"menu");
while(r==1){
Lcd_Cmd(_LCD_CLEAR);aficher();delay_ms(1000);Lcd_Cmd(_LCD_CLEAR);aficher();
while(porta.f0==0){h1++;if(h1==3){h1=0;}lcd_chr(1,1,h1+48);delay_ms(500); }
Lcd_Cmd(_LCD_CLEAR);aficher();delay_ms(1000);
while(porta.f0==0){h0++;if(h0==10){h0=0;}aficher();delay_ms(500); }
Lcd_Cmd(_LCD_CLEAR);aficher();delay_ms(1000);
while(porta.f0==0){m1++;if(m1==6){m1=0;}aficher();delay_ms(500); }
Lcd_Cmd(_LCD_CLEAR);aficher();delay_ms(1000);
while(porta.f0==0){m0++;if(m0==10){m0=0;}aficher();delay_ms(500); }
Lcd_Cmd(_LCD_CLEAR);aficher();delay_ms(1000);
while(porta.f0==0){j++;if(j==7){j=0;}jour();delay_ms(500);}
r=0;
}

}}


التعديل الأخير تم بواسطة : abdewidad بتاريخ 06-05-2015 الساعة 04:11 PM
اعلانات

abdewidad
:: مهندس متميز ::
تاريخ التسجيل: Dec 2013
الدولة: casablanca
المشاركات: 712
نشاط [ abdewidad ]
قوة السمعة:0
قديم 06-05-2015, 04:00 PM المشاركة 2   
افتراضي


هدا الكود يتم برمجت المنبه من الوقت الى الوقت الدي تريد
في مشاكل تعديل هدا الكود حتى تصبح اعدادات المنبه في الابروم
وان عند تشغيل المنبه لا تعمل الساعة جيدا
كود:
// LCD module connections
sbit LCD_RS at RB6_bit;
sbit LCD_EN at RB1_bit;
sbit LCD_D4 at RB2_bit;
sbit LCD_D5 at RB3_bit;
sbit LCD_D6 at RB4_bit;
sbit LCD_D7 at RB5_bit;

sbit LCD_RS_Direction at TRISB6_bit;
sbit LCD_EN_Direction at TRISB1_bit;
sbit LCD_D4_Direction at TRISB2_bit;
sbit LCD_D5_Direction at TRISB3_bit;
sbit LCD_D6_Direction at TRISB4_bit;
sbit LCD_D7_Direction at TRISB5_bit;

sbit MODE at Rc2_bit;
 sbit SELECT at Rc3_bit;
 sbit ENTER at Rc4_bit;
 sbit RelaySW at RB7_bit;
 sbit START at Rc5_bit;
char s0,s1,m0,m1,h0,h1,j,x,y;
bit u;
 char MSG2[] = "off";
 char MSG3[] = "on ";
  char MSG5[] = "led/off";
 char MSG6[] = "led/on ";
 char MSG0[] = "TIME:";
 unsigned short HHMM_Pos[] = {6, 7, 8, 9, 10};
 unsigned short ON_Time[] = {0, 0, 10, 0, 0}; // 10 + 48 is :
 unsigned short OFF_Time[] = {0, 0, 10, 0, 0};
 bit a;
 unsigned short Mode_Select = 0 ; // 0:ON, 1:OFF
 unsigned short i,t=0, n, k, Timer_On, Get_Input, Cur_Pos, Cur_On;
 unsigned short temp, refresh, Num, HalfSec, Blink, ChangeMin=0;
 unsigned short OFF_HH, OFF_MM, ON_HH, ON_MM;

 void Disp_First_Row(){
  if (RelaySW == 0) Lcd_Out(2,11, MSG5);
  if (RelaySW == 1) Lcd_Out(2,11, MSG6);
 }

 void Disp_Char(unsigned short col, unsigned short chr){
  Lcd_Chr(2, col, chr+48);
 }

 void Disp_Time(){

   for(i=0; i<5; i++){
      if(!Mode_Select){
       Lcd_Out(2,1, MSG2);
       Disp_Char(HHMM_Pos[i],OFF_Time[i]);
      }
      if(Mode_Select){
       Lcd_Out(2,1, MSG3);
       Disp_Char(HHMM_Pos[i],ON_Time[i]);
      }
   }
 }
 void debounce(){
  Delay_ms(250);
 }

 void cursor_left(){
   for(n=0; n<5; n++){
      Lcd_Cmd(_LCD_MOVE_CURSOR_LEFT);
   }
 }

 void disable_timer(){
  INTCON = 0x00;
  RelaySW = 0;
  INTCON.T0IF = 0;
  Timer_On = 0;
  Blink = 0xff;
  Mode_Select = 0;
  Disp_First_Row();
  Disp_Time();

 }
 void aficher(){
lcd_chr(1,15,s0+48); lcd_chr(1,14,s1+48);lcd_out(1,10,":");lcd_out(1,13,":");lcd_chr(1,12,m0+48); lcd_chr(1,11,m1+48);
lcd_chr(1,9,h0+48); lcd_chr(1,8,h1+48);
}
void jour(){
if(j==0) Lcd_Out(2,11,"LUN");
if(j==1) Lcd_Out(2,11,"MAR");
if(j==2) Lcd_Out(2,11,"MER");
if(j==3) Lcd_Out(2,11,"JEU");
if(j==4) Lcd_Out(2,11,"VEN");
if(j==5) Lcd_Out(2,11,"SAM");
if(j==6) Lcd_Out(2,11,"DIM");
}
 void interrupt() {
  Num ++;         // Interrupt causes Num to be incremented by 1
  if(Num == 9) {
   HalfSec ++;      // Increase sec
   Num = 0;
   Blink = ~Blink;
   if (HalfSec == 120){
    HalfSec = 0;
    ChangeMin = 1;
   }
  }
    if (TMR1IF_bit){
    TMR1IF_bit = 0;
    TMR1H         = 0x3C;
    TMR1L         = 0xB0;
    //Enter your code here
    t++;
    if(t==20){t=0;s0++;}
    if(s0==10){s0=0;s1++;}
    if(s1==6){s1=0;m0++;}
    if(m0==10){m0=0;m1++;}
    if(m1==6){m1=0;h0++;}
    if(h0==10){h0=0;h1++;}
     if(h1==2 && h0==4){h1=h0=s1=s0=m1=m0=0;j++;}
    if(j==7)j=0;
  }
  TMR0 = 39;        // TMR0 returns to its initial value
  INTCON.T0IF = 0;  // Bit T0IF is cleared so that the interrupt could reoccur
}
//Timer1
//Prescaler 1:1; TMR1 Preload = 15536; Actual Interrupt Time : 50 ms

//Place/Copy this part in declaration section
void InitTimer1(){
  T1CON         = 0x01;
  TMR1IF_bit         = 0;
  TMR1H         = 0x3C;
  TMR1L         = 0xB0;
  TMR1IE_bit         = 1;
  INTCON         = 0xC0;
}
void main() {
  TRISc = 0xff;
  TRISB = 0b00000001;
  InitTimer1();
  OPTION_REG = 0x07; // Prescaler (1:256) is assigned to the timer TMR0
  TMR0 = 39;          // Timer T0 counts from 39 to 255
  INTCON = 0xA0;     // Enable interrupt TMR0 and Global Interrupts
   INTCON.T0IF = 0;
  RelaySW = 0;
  Timer_On = 0;
  Get_Input = 0;
  Cur_Pos = 0;
  Cur_On = 0;
  refresh = 0;
  Num = 0;
  HalfSec = 0;
  Lcd_Init();                // Initialize LCD
  Lcd_Cmd(_LCD_CLEAR);       // Clear display
  Lcd_Cmd(_LCD_CURSOR_OFF);  // Cursor off
  i=t=a=0;
  Lcd_Cmd(_LCD_CLEAR);
  while(1){
  aficher();
  jour();
  Lcd_Out(1,1, MSG0);
  if(portb.f0==0) a=~a;
  while(a==1) {
  Lcd_Cmd(_LCD_CLEAR);
  Disp_First_Row();
  Lcd_Out(2,4,"-");
  Disp_Time();
  do {
   if(!MODE && !Timer_On){
    debounce();
    if(!Get_Input){
     Mode_Select = ~Mode_Select;
     Disp_Time();
    }
    if(Get_Input){
     if(!Mode_Select){
      OFF_time[Cur_Pos] = OFF_time[Cur_Pos]+1;
      temp = OFF_time[Cur_Pos];
      switch (Cur_Pos){
       case 0: if(temp > 9) OFF_time[Cur_Pos]=0;
               break;
       case 1: if(temp > 9) OFF_time[Cur_Pos]=0;
               break;
       case 3: if(temp > 5) OFF_time[Cur_Pos]=0;
               break;
       case 4: if(temp > 9) OFF_time[Cur_Pos]=0;
               break;
      }
      Disp_Char(6+Cur_Pos, OFF_time[Cur_Pos]);

     }

     if(Mode_Select){
      ON_time[Cur_Pos] ++;
      temp = ON_time[Cur_Pos];
      switch(Cur_Pos){

       case 0: if(temp > 9) ON_time[Cur_Pos]=0;
               break;
       case 1: if(temp > 9) ON_time[Cur_Pos]=0;
               break;
       case 3: if(temp > 5) ON_time[Cur_Pos]=0;
               break;
       case 4: if(temp > 9) ON_time[Cur_Pos]=0;
               break;
      }
      Disp_Char(6+Cur_Pos, ON_time[Cur_Pos]);
     }
     Lcd_Cmd(_LCD_MOVE_CURSOR_LEFT);
    }
   }   // END if(!MODE)

   if(!SELECT && !Timer_On){
     debounce();
     Get_Input = 1;

     if(Cur_On) {
       Cur_Pos ++;
       if (Cur_Pos == 2) {
         Lcd_Cmd(_LCD_MOVE_CURSOR_RIGHT);
         Cur_Pos ++;
       }
       if(Cur_Pos > 4) {
         Lcd_Cmd(_LCD_MOVE_CURSOR_RIGHT);
         Cur_Pos = 0;
         cursor_left();
       }
       else Lcd_Cmd(_LCD_MOVE_CURSOR_RIGHT);
     }

     if(!Cur_On) {
       Cur_On = 1;
       cursor_left();
       Lcd_Cmd(_LCD_UNDERLINE_ON);
     }
   }

   if(!ENTER && Get_Input){
    debounce();
    Get_Input = 0;
    Cur_On = 0;
    Cur_Pos = 0;
    Disp_Time();
    Lcd_Cmd(_LCD_CURSOR_OFF);  // Cursor off
   }

   if (!START && !Get_Input){
    debounce();
    switch(Timer_On){
    case 0:  aficher();
  Lcd_Out(1,1, MSG0);
            Timer_On = 1;
            Mode_Select = 0;
            Blink = 0;
            Disp_Time();
            break;
    case 1: disable_timer();
            break;
    }
   }

   if(Timer_On){  aficher();
    Lcd_Out(1,1, MSG0);
    OFF_HH = OFF_Time[0]*10 + OFF_Time[1];
    OFF_MM = OFF_Time[3]*10 + OFF_Time[4];
    ON_HH = ON_Time[0]*10 + ON_Time[1];
    ON_MM = ON_Time[3]*10 + ON_Time[4];
    switch(Blink){
     case 0: Lcd_Chr(2,8,' ');aficher();
             break;
     case 255: Lcd_Chr(2,8,':');aficher();
             break;
    }

    if(!OFF_HH && !OFF_MM &&!RelaySW){
     if(ON_HH || ON_MM){
      RelaySW = 1;
      Mode_Select = 0xff;
      Disp_First_Row();
      Disp_Time();
        aficher();
  Lcd_Out(1,1, MSG0);a=0;
     }
     else {
      disable_timer();
     }
    }

    if(!ON_HH && !ON_MM && RelaySW){
     disable_timer();
    }

    if(ChangeMin) {
     switch(Mode_Select){
      case 0: if(OFF_MM == 0 && OFF_HH>0){
               OFF_MM = 59;
               OFF_HH -- ;
               aficher();
              }
              else if (OFF_MM >>0) OFF_MM --;
              OFF_Time[0] = OFF_HH/10;
              OFF_Time[1] = OFF_HH%10;
              OFF_Time[3] = OFF_MM/10;
              OFF_Time[4] = OFF_MM%10;
              aficher();
              break;

      case 255: if(ON_MM == 0 && ON_HH>0){
               ON_MM = 59;
               ON_HH -- ;
              }
              else if(ON_MM >> 0) ON_MM --;
              ON_Time[0] = ON_HH/10;
              ON_Time[1] = ON_HH%10;
              ON_Time[3] = ON_MM/10;
              ON_Time[4] = ON_MM%10;
              break;
     }
     ChangeMin = 0;
     Disp_Time();
    }

   }


  }while(1);
 }}}

اعلانات اضافية ( قم بتسجيل الدخول لاخفائها )
  

abdewidad
:: مهندس متميز ::
تاريخ التسجيل: Dec 2013
الدولة: casablanca
المشاركات: 712
نشاط [ abdewidad ]
قوة السمعة:0
قديم 06-05-2015, 04:12 PM المشاركة 3   
افتراضي


ازار الساعة
كود:
// LCD module connections
sbit LCD_RS at RB6_bit;
sbit LCD_EN at RB1_bit;
sbit LCD_D4 at RB2_bit;
sbit LCD_D5 at RB3_bit;
sbit LCD_D6 at RB4_bit;
sbit LCD_D7 at RB5_bit;

sbit LCD_RS_Direction at TRISB6_bit;
sbit LCD_EN_Direction at TRISB1_bit;
sbit LCD_D4_Direction at TRISB2_bit;
sbit LCD_D5_Direction at TRISB3_bit;
sbit LCD_D6_Direction at TRISB4_bit;
sbit LCD_D7_Direction at TRISB5_bit;

sbit MODE at Rc2_bit;
 sbit SELECT at Rc3_bit;
 sbit ENTER at Rc4_bit;
 sbit RelaySW at RB7_bit;
 sbit START at Rc5_bit;
char s0,s1,m0,m1,h0,h1,j,x,y;
bit u;
 char MSG2[] = "off";
 char MSG3[] = "on ";
  char MSG5[] = "led/off";
 char MSG6[] = "led/on ";
 char MSG0[] = "TIME:";
 unsigned short HHMM_Pos[] = {6, 7, 8, 9, 10};
 unsigned short ON_Time[] = {0, 0, 10, 0, 0}; // 10 + 48 is :
 unsigned short OFF_Time[] = {0, 0, 10, 0, 0};
 bit a;
 unsigned short Mode_Select = 0 ; // 0:ON, 1:OFF
 unsigned short i,t=0, n, k, Timer_On, Get_Input, Cur_Pos, Cur_On;
 unsigned short temp, refresh, Num, HalfSec, Blink, ChangeMin=0;
 unsigned short OFF_HH, OFF_MM, ON_HH, ON_MM;

 void Disp_First_Row(){
  if (RelaySW == 0) Lcd_Out(2,11, MSG5);
  if (RelaySW == 1) Lcd_Out(2,11, MSG6);
 }

 void Disp_Char(unsigned short col, unsigned short chr){
  Lcd_Chr(2, col, chr+48);
 }

 void Disp_Time(){

   for(i=0; i<5; i++){
      if(!Mode_Select){
       Lcd_Out(2,1, MSG2);
       Disp_Char(HHMM_Pos[i],OFF_Time[i]);
      }
      if(Mode_Select){
       Lcd_Out(2,1, MSG3);
       Disp_Char(HHMM_Pos[i],ON_Time[i]);
      }
   }
 }
 void debounce(){
  Delay_ms(250);
 }

 void cursor_left(){
   for(n=0; n<5; n++){
      Lcd_Cmd(_LCD_MOVE_CURSOR_LEFT);
   }
 }

 void disable_timer(){
  INTCON = 0x00;
  RelaySW = 0;
  INTCON.T0IF = 0;
  Timer_On = 0;
  Blink = 0xff;
  Mode_Select = 0;
  Disp_First_Row();
  Disp_Time();

 }
 void aficher(){
lcd_chr(1,15,s0+48); lcd_chr(1,14,s1+48);lcd_out(1,10,":");lcd_out(1,13,":");lcd_chr(1,12,m0+48); lcd_chr(1,11,m1+48);
lcd_chr(1,9,h0+48); lcd_chr(1,8,h1+48);
}
void jour(){
if(j==0) Lcd_Out(2,11,"LUN");
if(j==1) Lcd_Out(2,11,"MAR");
if(j==2) Lcd_Out(2,11,"MER");
if(j==3) Lcd_Out(2,11,"JEU");
if(j==4) Lcd_Out(2,11,"VEN");
if(j==5) Lcd_Out(2,11,"SAM");
if(j==6) Lcd_Out(2,11,"DIM");
}
 void interrupt() {
  Num ++;         // Interrupt causes Num to be incremented by 1
  if(Num == 9) {
   HalfSec ++;      // Increase sec
   Num = 0;
   Blink = ~Blink;
   if (HalfSec == 120){
    HalfSec = 0;
    ChangeMin = 1;
   }
  }
    if (TMR1IF_bit){
    TMR1IF_bit = 0;
    TMR1H         = 0x3C;
    TMR1L         = 0xB0;
    //Enter your code here
    t++;
    if(t==20){t=0;s0++;}
    if(s0==10){s0=0;s1++;}
    if(s1==6){s1=0;m0++;}
    if(m0==10){m0=0;m1++;}
    if(m1==6){m1=0;h0++;}
    if(h0==10){h0=0;h1++;}
     if(h1==2 && h0==4){h1=h0=s1=s0=m1=m0=0;j++;}
    if(j==7)j=0;
  }
  TMR0 = 39;        // TMR0 returns to its initial value
  INTCON.T0IF = 0;  // Bit T0IF is cleared so that the interrupt could reoccur
}
//Timer1
//Prescaler 1:1; TMR1 Preload = 15536; Actual Interrupt Time : 50 ms

//Place/Copy this part in declaration section
void InitTimer1(){
  T1CON         = 0x01;
  TMR1IF_bit         = 0;
  TMR1H         = 0x3C;
  TMR1L         = 0xB0;
  TMR1IE_bit         = 1;
  INTCON         = 0xC0;
}
void main() {
  TRISc = 0xff;
  TRISB = 0b00000001;
  InitTimer1();
  OPTION_REG = 0x07; // Prescaler (1:256) is assigned to the timer TMR0
  TMR0 = 39;          // Timer T0 counts from 39 to 255
  INTCON = 0xA0;     // Enable interrupt TMR0 and Global Interrupts
   INTCON.T0IF = 0;
  RelaySW = 0;
  Timer_On = 0;
  Get_Input = 0;
  Cur_Pos = 0;
  Cur_On = 0;
  refresh = 0;
  Num = 0;
  HalfSec = 0;
  Lcd_Init();                // Initialize LCD
  Lcd_Cmd(_LCD_CLEAR);       // Clear display
  Lcd_Cmd(_LCD_CURSOR_OFF);  // Cursor off
  i=t=a=0;
  Lcd_Cmd(_LCD_CLEAR);
  while(1){
  aficher();
  jour();
  Lcd_Out(1,1, MSG0);
while(portc.f1==0){
Lcd_Cmd(_LCD_CLEAR);aficher();delay_ms(1000);Lcd_Cmd(_LCD_CLEAR);aficher();
while(portc.f0==0){h1++;if(h1==3){h1=0;}lcd_chr(1,1,h1+48);delay_ms(500); }
Lcd_Cmd(_LCD_CLEAR);aficher();delay_ms(1000);
while(portc.f0==0){h0++;if(h0==10){h0=0;}aficher();delay_ms(500); }
Lcd_Cmd(_LCD_CLEAR);aficher();delay_ms(1000);
while(portc.f0==0){m1++;if(m1==6){m1=0;}aficher();delay_ms(500); }
Lcd_Cmd(_LCD_CLEAR);aficher();delay_ms(1000);
while(portc.f0==0){m0++;if(m0==10){m0=0;}aficher();delay_ms(500); }
Lcd_Cmd(_LCD_CLEAR);aficher();delay_ms(1000);
while(portc.f0==0){j++;if(j==7){j=0;}jour();delay_ms(500);}
}
  if(portb.f0==0) a=~a;
  while(a==1) {
  Lcd_Cmd(_LCD_CLEAR);
  Disp_First_Row();
  Lcd_Out(2,4,"-");
  Disp_Time();
  do {
   if(!MODE && !Timer_On){
    debounce();
    if(!Get_Input){
     Mode_Select = ~Mode_Select;
     Disp_Time();
    }
    if(Get_Input){
     if(!Mode_Select){
      OFF_time[Cur_Pos] = OFF_time[Cur_Pos]+1;
      temp = OFF_time[Cur_Pos];
      switch (Cur_Pos){
       case 0: if(temp > 9) OFF_time[Cur_Pos]=0;
               break;
       case 1: if(temp > 9) OFF_time[Cur_Pos]=0;
               break;
       case 3: if(temp > 5) OFF_time[Cur_Pos]=0;
               break;
       case 4: if(temp > 9) OFF_time[Cur_Pos]=0;
               break;
      }
      Disp_Char(6+Cur_Pos, OFF_time[Cur_Pos]);

     }

     if(Mode_Select){
      ON_time[Cur_Pos] ++;
      temp = ON_time[Cur_Pos];
      switch(Cur_Pos){

       case 0: if(temp > 9) ON_time[Cur_Pos]=0;
               break;
       case 1: if(temp > 9) ON_time[Cur_Pos]=0;
               break;
       case 3: if(temp > 5) ON_time[Cur_Pos]=0;
               break;
       case 4: if(temp > 9) ON_time[Cur_Pos]=0;
               break;
      }
      Disp_Char(6+Cur_Pos, ON_time[Cur_Pos]);
     }
     Lcd_Cmd(_LCD_MOVE_CURSOR_LEFT);
    }
   }   // END if(!MODE)

   if(!SELECT && !Timer_On){
     debounce();
     Get_Input = 1;

     if(Cur_On) {
       Cur_Pos ++;
       if (Cur_Pos == 2) {
         Lcd_Cmd(_LCD_MOVE_CURSOR_RIGHT);
         Cur_Pos ++;
       }
       if(Cur_Pos > 4) {
         Lcd_Cmd(_LCD_MOVE_CURSOR_RIGHT);
         Cur_Pos = 0;
         cursor_left();
       }
       else Lcd_Cmd(_LCD_MOVE_CURSOR_RIGHT);
     }

     if(!Cur_On) {
       Cur_On = 1;
       cursor_left();
       Lcd_Cmd(_LCD_UNDERLINE_ON);
     }
   }

   if(!ENTER && Get_Input){
    debounce();
    Get_Input = 0;
    Cur_On = 0;
    Cur_Pos = 0;
    Disp_Time();
    Lcd_Cmd(_LCD_CURSOR_OFF);  // Cursor off
   }

   if (!START && !Get_Input){
    debounce();
    switch(Timer_On){
    case 0:  aficher();
  Lcd_Out(1,1, MSG0);
            Timer_On = 1;
            Mode_Select = 0;
            Blink = 0;
            Disp_Time();
            break;
    case 1: disable_timer();
            break;
    }
   }

   if(Timer_On){  aficher();
    Lcd_Out(1,1, MSG0);
    OFF_HH = OFF_Time[0]*10 + OFF_Time[1];
    OFF_MM = OFF_Time[3]*10 + OFF_Time[4];
    ON_HH = ON_Time[0]*10 + ON_Time[1];
    ON_MM = ON_Time[3]*10 + ON_Time[4];
    switch(Blink){
     case 0: Lcd_Chr(2,8,' ');aficher();
             break;
     case 255: Lcd_Chr(2,8,':');aficher();
             break;
    }

    if(!OFF_HH && !OFF_MM &&!RelaySW){
     if(ON_HH || ON_MM){
      RelaySW = 1;
      Mode_Select = 0xff;
      Disp_First_Row();
      Disp_Time();
        aficher();
  Lcd_Out(1,1, MSG0);a=0;
     }
     else {
      disable_timer();
     }
    }

    if(!ON_HH && !ON_MM && RelaySW){
     disable_timer();
    }

    if(ChangeMin) {
     switch(Mode_Select){
      case 0: if(OFF_MM == 0 && OFF_HH>0){
               OFF_MM = 59;
               OFF_HH -- ;
               aficher();
              }
              else if (OFF_MM >>0) OFF_MM --;
              OFF_Time[0] = OFF_HH/10;
              OFF_Time[1] = OFF_HH%10;
              OFF_Time[3] = OFF_MM/10;
              OFF_Time[4] = OFF_MM%10;
              aficher();
              break;

      case 255: if(ON_MM == 0 && ON_HH>0){
               ON_MM = 59;
               ON_HH -- ;
              }
              else if(ON_MM >> 0) ON_MM --;
              ON_Time[0] = ON_HH/10;
              ON_Time[1] = ON_HH%10;
              ON_Time[3] = ON_MM/10;
              ON_Time[4] = ON_MM%10;
              break;
     }
     ChangeMin = 0;
     Disp_Time();
    }

   }


  }while(1);
 }}}


abdewidad
:: مهندس متميز ::
تاريخ التسجيل: Dec 2013
الدولة: casablanca
المشاركات: 712
نشاط [ abdewidad ]
قوة السمعة:0
قديم 06-05-2015, 04:22 PM المشاركة 4   
افتراضي


الملفات
http://www.up-00.com/?hiQb


abdewidad
:: مهندس متميز ::
تاريخ التسجيل: Dec 2013
الدولة: casablanca
المشاركات: 712
نشاط [ abdewidad ]
قوة السمعة:0
قديم 07-05-2015, 01:11 PM المشاركة 5   
افتراضي


هل من مجيب


abdewidad
:: مهندس متميز ::
تاريخ التسجيل: Dec 2013
الدولة: casablanca
المشاركات: 712
نشاط [ abdewidad ]
قوة السمعة:0
قديم 08-05-2015, 11:15 PM المشاركة 6   
افتراضي


هل من مجيب

إضافة رد

العلامات المرجعية

«     الموضوع السابق       الموضوع التالي    »
أدوات الموضوع

الانتقال السريع إلى


الساعة معتمدة بتوقيت جرينتش +3 الساعة الآن: 10:49 PM
موقع القرية الالكترونية غير مسؤول عن أي اتفاق تجاري أو تعاوني بين الأعضاء
فعلى كل شخص تحمل مسئولية نفسه إتجاه مايقوم به من بيع وشراء وإتفاق وأعطاء معلومات موقعه
التعليقات المنشورة لا تعبر عن رأي موقع القرية الالكترونية ولايتحمل الموقع أي مسؤولية قانونية حيال ذلك (ويتحمل كاتبها مسؤولية النشر)

Powered by vBulletin® Version 3.8.6, Copyright ©2000 - 2025