اطلاعیه

Collapse
No announcement yet.

گیر کردن رله هنگام متصل شدن برق به مدار

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    #16
    پاسخ : گیر کردن رله هنگام متصل شدن برق به مدار

    به نظر شما این کدها اشتباه نیست چرا برای پورت c.0 یا b.7 هگز ff دادید؟

    کد شما
    کد:
    DDRB.7=0xFF; 
    DDRC.0=0xFF;
    PORTD=0XFF;
    این کدها رو جایگزین کن ببین درست میشه

    کد:
    DDRB.7=0x1; 
    DDRC.0=0x1;
    PORTD=0XFF;
    البته من زیاد با کد ویژن کار نمی کنم ولی مثل اینکه اون کد ها اشتباهند :read:
    برد جوجه کشی:
    مطالعه پست 1 (حتما مطالعه کنید)


    مطالعه پست 2 (برای مطلع شدن از تغییرات برنامه مطالعه کنید)

    دانلود

    توجه:
    این برد نیمه صنعتی و خانگی هست...
    برای صنعتی شدن حتما برد مخصوص خودتون رو بزنید...

    آی دی کانال تلگرامی مربوط به برد جوجه کشی : electr0o0nic@

    دیدگاه


      #17
      پاسخ : گیر کردن رله هنگام متصل شدن برق به مدار

      سلام
      یسئوال این قضیه در پرتئوس فقط اینطوره یا در مدار عملی همینطوره؟
      امام مهدی(عج): اگر شیعیان ما ، که خداوند طاعتشان دهد. در عهد ما وفادار و همدل بودند، هرگز دیدار ما (ظهور) به تاخیر نمی افتاد.(کدام عهد ؟)

      دیدگاه


        #18
        پاسخ : گیر کردن رله هنگام متصل شدن برق به مدا&#1585

        نوشته اصلی توسط mohammad...
        به نظر شما این کدها اشتباه نیست چرا برای پورت c.0 یا b.7 هگز ff دادید؟

        کد شما
        کد:
        DDRB.7=0xFF; 
        DDRC.0=0xFF;
        PORTD=0XFF;
        این کدها رو جایگزین کن ببین درست میشه

        کد:
        DDRB.7=0x1; 
        DDRC.0=0x1;
        PORTD=0XFF;
        البته من زیاد با کد ویژن کار نمی کنم ولی مثل اینکه اون کد ها اشتباهند :read:
        ممنون دوست عزیز: والا من سورس این مدار خریدم و خودم برنامه نویسی اش نکردم تا بدونم چی به چی هست!!! خودم هم برنامه نویسی ام داغون هست!
        ان کدی که شما دادید را تست کردم ولی باز کار نکرد!! ان 0x1 یعنی چی؟

        سپاس

        اضافه شده در تاریخ :
        نوشته اصلی توسط mahdi8866
        سلام
        یسئوال این قضیه در پرتئوس فقط اینطوره یا در مدار عملی همینطوره؟
        توی عمل هم اینطوری هست دوست عزیز!! قبلا تست کردم مشکل داشت!
        این مشکل اش از تابع delay-ms هست که پورت ها را چند ثانیه(lcd و رله و..) مشغول می کند!! جایگزین برای این تابع ایا هست؟
        سپاس

        دیدگاه


          #19
          پاسخ : گیر کردن رله هنگام متصل شدن برق به مدار

          این کد رو پروگرام کن ببین درست میشه!

          کد:
          #include <mega8.h>
          #include <delay.h>
          #include <stdio.h> 
          #include <i2c.h>
          #include <ds1307.h>
          #include <alcd.h> 
          #define b_down   PIND.1
          #define b_up    PIND.2   
          #define b_set   PIND.0
          #define b_set_down PIND.3
          #define relay   PORTB.7 
          #define buzzer   PORTC.0 
          //____________________________________________________________
          void main(){ 
          char lcd_buffer1[16];
          
          unsigned char hr,min,sec,status=0,value=0,roz=0;
          unsigned char week,year,month,day;
          unsigned char en_hr=0,en_min=0,en_sec=0;
          unsigned char st_hr=0,st_min=0,st_sec=0;
          unsigned char en_year=0,en_month=0,en_day=0;
          unsigned char st_year=0,st_month=0,st_day=0;
          unsigned int main_year;
          DDRB=0xFF; 
          DDRC=0xFF;
          PORTD=0XFF;
          portb.7=0;
          i2c_init();
          lcd_init(16);
          rtc_init(0,0,0);
          
          if(b_set == 0)
          {
            rtc_set_time(0,0,0);
            rtc_set_date(0,8,7,15);
            lcd_putsf("Successfully!");
            while(1)
            {
            }
          }
           
          delay_ms(20);
          rtc_get_time(&en_hr,&en_min,&en_sec); 
          rtc_get_time(&st_hr,&st_min,&st_sec);
          rtc_get_date(&week,&en_day,&en_month,&en_year);
          rtc_get_date(&week,&st_day,&st_month,&st_year);
          delay_ms(20);
              
            while (1){  
              while(status == 0)
              {
                rtc_get_time(&hr,&min,&sec);
                rtc_get_date(&week,&day,&month,&year); 
                main_year = year + 2000;
                
                if(b_up == 0)
                {
                  roz++;
                  if(roz == 2) roz = 0;
                  while(b_up == 0); 
                }  
                
                if(roz == 0)
                {
                  if(hr == en_hr & min == en_min & sec == en_sec & year == en_year & month == en_month & day == en_day)
                  {
                    value = 1;
                    relay = 1;
                    buzzer = 1;
                    delay_ms(3000);
                    buzzer = 0;
                  } 
          
                  if(hr == st_hr & min == st_min & sec == st_sec & year == en_year & month == en_month & day == en_day)
                  {
                    value = 0;
                    relay = 0;
                  } 
                }
                else
                {
                  if(hr == en_hr & min == en_min & sec == en_sec)
                  {
                    value = 1;
                    relay = 1;
                    buzzer = 1;
                    delay_ms(3000);
                    buzzer = 0;
                  } 
          
                  if(hr == st_hr & min == st_min & sec == st_sec)
                  {
                    value = 0;
                    relay = 0;
                  } 
                }      
          
                lcd_clear();
          
                sprintf(lcd_buffer1,"Time~ %02u:%02u:%02u",hr,min,sec);
                lcd_gotoxy(0,0);    
                lcd_puts(lcd_buffer1);
                sprintf(lcd_buffer1,"%u/%02u/%02u ",main_year,month,day);
                lcd_gotoxy(0,1);    
                lcd_puts(lcd_buffer1); 
                   
                if(value == 0)  
                  lcd_putsf("Off");
                else
                  lcd_putsf("On"); 
                  
                if(roz != 0)  
                  lcd_putsf(" R");        
          
                if(b_set == 0)
                {
                  status++;
                  if(status == 19) status = 0;
                  while(b_set == 0); 
                }
                delay_ms(200);
              }  
              
              rtc_get_time(&hr,&min,&sec);
              b:
              while(status == 1)
              {
                if(b_up == 0)
                {  
                  hr++;
                  if(hr == 25) hr = 0;
                  delay_ms(70);
                }  
          
                if(b_down == 0)
                {  
                  hr--;
                  if(hr == -1) hr = 0;
                  delay_ms(70);
                }  
               
                lcd_clear();  
                lcd_gotoxy(0,0);
                sprintf(lcd_buffer1,"Time~%02u:%02u:%02u",hr,min,sec);
                lcd_puts(lcd_buffer1);
                delay_ms(80); 
                lcd_clear();
                sprintf(lcd_buffer1,"Time~ :%02u:%02u",min,sec);
                lcd_puts(lcd_buffer1);       
                delay_ms(80);
                if(b_set == 0)
                {
                  rtc_set_time(hr,min,sec);
                  status++;
                  if(status == 19) status = 0;
                  while(b_set == 0);  
                }
                if(b_set_down == 0)
                {
                  status--;
                  if(status == -1) status = 0;
                  while(b_set_down == 0); 
                  goto b; 
                }  
              }
          برد جوجه کشی:
          مطالعه پست 1 (حتما مطالعه کنید)


          مطالعه پست 2 (برای مطلع شدن از تغییرات برنامه مطالعه کنید)

          دانلود

          توجه:
          این برد نیمه صنعتی و خانگی هست...
          برای صنعتی شدن حتما برد مخصوص خودتون رو بزنید...

          آی دی کانال تلگرامی مربوط به برد جوجه کشی : electr0o0nic@

          دیدگاه


            #20
            پاسخ : گیر کردن رله هنگام متصل شدن برق به مدار

            اینم یه تست کن ببین چطوره
            کد:
            #include <mega8.h>
            #include <delay.h>
            #include <stdio.h> 
            #include <i2c.h>
            #include <ds1307.h>
            #include <alcd.h>
            #define b_down   PIND.1
            #define b_up    PIND.2   
            #define b_set   PIND.0
            #define b_set_down PIND.3
            #define relay   PORTB.7
            #define buzzer   PORTC.0
            //____________________________________________________________
            void main(){
            DDRB=0xFF;
            PORTB.7=0;
            char lcd_buffer1[16];
            
            unsigned char hr,min,sec,status=0,value=0,roz=0;
            unsigned char week,year,month,day;
            unsigned char en_hr=0,en_min=0,en_sec=0;
            unsigned char st_hr=0,st_min=0,st_sec=0;
            unsigned char en_year=0,en_month=0,en_day=0;
            unsigned char st_year=0,st_month=0,st_day=0;
            unsigned int main_year;
            
            
            DDRC=0xFF;
            PORTD=0XFF;
            i2c_init();
            lcd_init(16);
            rtc_init(0,0,0);
            
            if(b_set == 0)
            {
              rtc_set_time(0,0,0);
              rtc_set_date(0,8,7,15);
              lcd_putsf("Successfully!");
              while(1)
              {
              }
            }
             
            delay_ms(20);
            rtc_get_time(&en_hr,&en_min,&en_sec);
            rtc_get_time(&st_hr,&st_min,&st_sec);
            rtc_get_date(&week,&en_day,&en_month,&en_year);
            rtc_get_date(&week,&st_day,&st_month,&st_year);
            delay_ms(20);
                
              while (1){  
                while(status == 0)
                {
                  rtc_get_time(&hr,&min,&sec);
                  rtc_get_date(&week,&day,&month,&year);
                  main_year = year + 2000;
                  
                  if(b_up == 0)
                  {
                    roz++;
                    if(roz == 2) roz = 0;
                    while(b_up == 0); 
                  }  
                  
                  if(roz == 0)
                  {
                    if(hr == en_hr & min == en_min & sec == en_sec & year == en_year & month == en_month & day == en_day)
                    {
                      value = 1;
                      relay = 1;
                      buzzer = 1;
                      delay_ms(3000);
                      buzzer = 0;
                    }
            
                    if(hr == st_hr & min == st_min & sec == st_sec & year == en_year & month == en_month & day == en_day)
                    {
                      value = 0;
                      relay = 0;
                    }
                  }
                  else
                  {
                    if(hr == en_hr & min == en_min & sec == en_sec)
                    {
                      value = 1;
                      relay = 1;
                      buzzer = 1;
                      delay_ms(3000);
                      buzzer = 0;
                    }
            
                    if(hr == st_hr & min == st_min & sec == st_sec)
                    {
                      value = 0;
                      relay = 0;
                    }
                  }      
            
                  lcd_clear();
            
                  sprintf(lcd_buffer1,"Time~ %02u:%02u:%02u",hr,min,sec);
                  lcd_gotoxy(0,0);    
                  lcd_puts(lcd_buffer1);
                  sprintf(lcd_buffer1,"%u/%02u/%02u ",main_year,month,day);
                  lcd_gotoxy(0,1);    
                  lcd_puts(lcd_buffer1);
                     
                  if(value == 0)  
                    lcd_putsf("Off");
                  else
                    lcd_putsf("On");
                    
                  if(roz != 0)  
                    lcd_putsf(" R");        
            
                  if(b_set == 0)
                  {
                    status++;
                    if(status == 19) status = 0;
                    while(b_set == 0); 
                  }
                  delay_ms(200);
                }  
                
                rtc_get_time(&hr,&min,&sec);
                b:
                while(status == 1)
                {
                  if(b_up == 0)
                  {  
                    hr++;
                    if(hr == 25) hr = 0;
                    delay_ms(70);
                  }  
            
                  if(b_down == 0)
                  {  
                    hr--;
                    if(hr == -1) hr = 0;
                    delay_ms(70);
                  }  
                 
                  lcd_clear();  
                  lcd_gotoxy(0,0);
                  sprintf(lcd_buffer1,"Time~%02u:%02u:%02u",hr,min,sec);
                  lcd_puts(lcd_buffer1);
                  delay_ms(80); 
                  lcd_clear();
                  sprintf(lcd_buffer1,"Time~ :%02u:%02u",min,sec);
                  lcd_puts(lcd_buffer1);       
                  delay_ms(80);
                  if(b_set == 0)
                  {
                    rtc_set_time(hr,min,sec);
                    status++;
                    if(status == 19) status = 0;
                    while(b_set == 0);  
                  }
                  if(b_set_down == 0)
                  {
                    status--;
                    if(status == -1) status = 0;
                    while(b_set_down == 0);
                    goto b; 
                  }  
                }
            امام مهدی(عج): اگر شیعیان ما ، که خداوند طاعتشان دهد. در عهد ما وفادار و همدل بودند، هرگز دیدار ما (ظهور) به تاخیر نمی افتاد.(کدام عهد ؟)

            دیدگاه


              #21
              پاسخ : گیر کردن رله هنگام متصل شدن برق به مدار

              نوشته اصلی توسط mohammad...
              این کد رو پروگرام کن ببین درست میشه!

              کد:
              #include <mega8.h>
              #include <delay.h>
              #include <stdio.h> 
              #include <i2c.h>
              #include <ds1307.h>
              #include <alcd.h> 
              #define b_down   PIND.1
              #define b_up    PIND.2   
              #define b_set   PIND.0
              #define b_set_down PIND.3
              #define relay   PORTB.7 
              #define buzzer   PORTC.0 
              //____________________________________________________________
              void main(){ 
              char lcd_buffer1[16];
              
              unsigned char hr,min,sec,status=0,value=0,roz=0;
              unsigned char week,year,month,day;
              unsigned char en_hr=0,en_min=0,en_sec=0;
              unsigned char st_hr=0,st_min=0,st_sec=0;
              unsigned char en_year=0,en_month=0,en_day=0;
              unsigned char st_year=0,st_month=0,st_day=0;
              unsigned int main_year;
              DDRB=0xFF; 
              DDRC=0xFF;
              PORTD=0XFF;
              portb.7=0;
              i2c_init();
              lcd_init(16);
              rtc_init(0,0,0);
              
              if(b_set == 0)
              {
                rtc_set_time(0,0,0);
                rtc_set_date(0,8,7,15);
                lcd_putsf("Successfully!");
                while(1)
                {
                }
              }
               
              delay_ms(20);
              rtc_get_time(&en_hr,&en_min,&en_sec); 
              rtc_get_time(&st_hr,&st_min,&st_sec);
              rtc_get_date(&week,&en_day,&en_month,&en_year);
              rtc_get_date(&week,&st_day,&st_month,&st_year);
              delay_ms(20);
                  
                while (1){  
                  while(status == 0)
                  {
                    rtc_get_time(&hr,&min,&sec);
                    rtc_get_date(&week,&day,&month,&year); 
                    main_year = year + 2000;
                    
                    if(b_up == 0)
                    {
                      roz++;
                      if(roz == 2) roz = 0;
                      while(b_up == 0); 
                    }  
                    
                    if(roz == 0)
                    {
                      if(hr == en_hr & min == en_min & sec == en_sec & year == en_year & month == en_month & day == en_day)
                      {
                        value = 1;
                        relay = 1;
                        buzzer = 1;
                        delay_ms(3000);
                        buzzer = 0;
                      } 
              
                      if(hr == st_hr & min == st_min & sec == st_sec & year == en_year & month == en_month & day == en_day)
                      {
                        value = 0;
                        relay = 0;
                      } 
                    }
                    else
                    {
                      if(hr == en_hr & min == en_min & sec == en_sec)
                      {
                        value = 1;
                        relay = 1;
                        buzzer = 1;
                        delay_ms(3000);
                        buzzer = 0;
                      } 
              
                      if(hr == st_hr & min == st_min & sec == st_sec)
                      {
                        value = 0;
                        relay = 0;
                      } 
                    }      
              
                    lcd_clear();
              
                    sprintf(lcd_buffer1,"Time~ %02u:%02u:%02u",hr,min,sec);
                    lcd_gotoxy(0,0);    
                    lcd_puts(lcd_buffer1);
                    sprintf(lcd_buffer1,"%u/%02u/%02u ",main_year,month,day);
                    lcd_gotoxy(0,1);    
                    lcd_puts(lcd_buffer1); 
                       
                    if(value == 0)  
                      lcd_putsf("Off");
                    else
                      lcd_putsf("On"); 
                      
                    if(roz != 0)  
                      lcd_putsf(" R");        
              
                    if(b_set == 0)
                    {
                      status++;
                      if(status == 19) status = 0;
                      while(b_set == 0); 
                    }
                    delay_ms(200);
                  }  
                  
                  rtc_get_time(&hr,&min,&sec);
                  b:
                  while(status == 1)
                  {
                    if(b_up == 0)
                    {  
                      hr++;
                      if(hr == 25) hr = 0;
                      delay_ms(70);
                    }  
              
                    if(b_down == 0)
                    {  
                      hr--;
                      if(hr == -1) hr = 0;
                      delay_ms(70);
                    }  
                   
                    lcd_clear();  
                    lcd_gotoxy(0,0);
                    sprintf(lcd_buffer1,"Time~%02u:%02u:%02u",hr,min,sec);
                    lcd_puts(lcd_buffer1);
                    delay_ms(80); 
                    lcd_clear();
                    sprintf(lcd_buffer1,"Time~ :%02u:%02u",min,sec);
                    lcd_puts(lcd_buffer1);       
                    delay_ms(80);
                    if(b_set == 0)
                    {
                      rtc_set_time(hr,min,sec);
                      status++;
                      if(status == 19) status = 0;
                      while(b_set == 0);  
                    }
                    if(b_set_down == 0)
                    {
                      status--;
                      if(status == -1) status = 0;
                      while(b_set_down == 0); 
                      goto b; 
                    }  
                  }
              ممنون: ولی جواب نمیده!!

              دیدگاه


                #22
                پاسخ : گیر کردن رله هنگام متصل شدن برق به مدا&#1585

                نوشته اصلی توسط mahdi8866
                اینم یه تست کن ببین چطوره
                کد:
                #include <mega8.h>
                #include <delay.h>
                #include <stdio.h> 
                #include <i2c.h>
                #include <ds1307.h>
                #include <alcd.h>
                #define b_down   PIND.1
                #define b_up    PIND.2   
                #define b_set   PIND.0
                #define b_set_down PIND.3
                #define relay   PORTB.7
                #define buzzer   PORTC.0
                //____________________________________________________________
                void main(){
                DDRB=0xFF;
                PORTB.7=0;
                char lcd_buffer1[16];
                
                unsigned char hr,min,sec,status=0,value=0,roz=0;
                unsigned char week,year,month,day;
                unsigned char en_hr=0,en_min=0,en_sec=0;
                unsigned char st_hr=0,st_min=0,st_sec=0;
                unsigned char en_year=0,en_month=0,en_day=0;
                unsigned char st_year=0,st_month=0,st_day=0;
                unsigned int main_year;
                
                
                DDRC=0xFF;
                PORTD=0XFF;
                i2c_init();
                lcd_init(16);
                rtc_init(0,0,0);
                
                if(b_set == 0)
                {
                  rtc_set_time(0,0,0);
                  rtc_set_date(0,8,7,15);
                  lcd_putsf("Successfully!");
                  while(1)
                  {
                  }
                }
                 
                delay_ms(20);
                rtc_get_time(&en_hr,&en_min,&en_sec);
                rtc_get_time(&st_hr,&st_min,&st_sec);
                rtc_get_date(&week,&en_day,&en_month,&en_year);
                rtc_get_date(&week,&st_day,&st_month,&st_year);
                delay_ms(20);
                    
                  while (1){  
                    while(status == 0)
                    {
                      rtc_get_time(&hr,&min,&sec);
                      rtc_get_date(&week,&day,&month,&year);
                      main_year = year + 2000;
                      
                      if(b_up == 0)
                      {
                        roz++;
                        if(roz == 2) roz = 0;
                        while(b_up == 0); 
                      }  
                      
                      if(roz == 0)
                      {
                        if(hr == en_hr & min == en_min & sec == en_sec & year == en_year & month == en_month & day == en_day)
                        {
                          value = 1;
                          relay = 1;
                          buzzer = 1;
                          delay_ms(3000);
                          buzzer = 0;
                        }
                
                        if(hr == st_hr & min == st_min & sec == st_sec & year == en_year & month == en_month & day == en_day)
                        {
                          value = 0;
                          relay = 0;
                        }
                      }
                      else
                      {
                        if(hr == en_hr & min == en_min & sec == en_sec)
                        {
                          value = 1;
                          relay = 1;
                          buzzer = 1;
                          delay_ms(3000);
                          buzzer = 0;
                        }
                
                        if(hr == st_hr & min == st_min & sec == st_sec)
                        {
                          value = 0;
                          relay = 0;
                        }
                      }      
                
                      lcd_clear();
                
                      sprintf(lcd_buffer1,"Time~ %02u:%02u:%02u",hr,min,sec);
                      lcd_gotoxy(0,0);    
                      lcd_puts(lcd_buffer1);
                      sprintf(lcd_buffer1,"%u/%02u/%02u ",main_year,month,day);
                      lcd_gotoxy(0,1);    
                      lcd_puts(lcd_buffer1);
                         
                      if(value == 0)  
                        lcd_putsf("Off");
                      else
                        lcd_putsf("On");
                        
                      if(roz != 0)  
                        lcd_putsf(" R");        
                
                      if(b_set == 0)
                      {
                        status++;
                        if(status == 19) status = 0;
                        while(b_set == 0); 
                      }
                      delay_ms(200);
                    }  
                    
                    rtc_get_time(&hr,&min,&sec);
                    b:
                    while(status == 1)
                    {
                      if(b_up == 0)
                      {  
                        hr++;
                        if(hr == 25) hr = 0;
                        delay_ms(70);
                      }  
                
                      if(b_down == 0)
                      {  
                        hr--;
                        if(hr == -1) hr = 0;
                        delay_ms(70);
                      }  
                     
                      lcd_clear();  
                      lcd_gotoxy(0,0);
                      sprintf(lcd_buffer1,"Time~%02u:%02u:%02u",hr,min,sec);
                      lcd_puts(lcd_buffer1);
                      delay_ms(80); 
                      lcd_clear();
                      sprintf(lcd_buffer1,"Time~ :%02u:%02u",min,sec);
                      lcd_puts(lcd_buffer1);       
                      delay_ms(80);
                      if(b_set == 0)
                      {
                        rtc_set_time(hr,min,sec);
                        status++;
                        if(status == 19) status = 0;
                        while(b_set == 0);  
                      }
                      if(b_set_down == 0)
                      {
                        status--;
                        if(status == -1) status = 0;
                        while(b_set_down == 0);
                        goto b; 
                      }  
                    }
                برای شما کلا جواب نمبده!!! :mrgreen: یک ارور خفن داد!!
                این جابه جا کردن کد ها را قبلا تست کردم بودم ولی جواب نداد!!

                دیدگاه


                  #23
                  پاسخ : گیر کردن رله هنگام متصل شدن برق به مدار

                  اینم تست کن
                  کد:
                  #include <mega8.h>
                  #include <delay.h>
                  #include <stdio.h> 
                  #include <i2c.h>
                  #include <ds1307.h>
                  #include <alcd.h>
                  #define b_down   PIND.1
                  #define b_up    PIND.2   
                  #define b_set   PIND.0
                  #define b_set_down PIND.3
                  #define relay   PORTB.7
                  #define buzzer   PORTC.0
                  //____________________________________________________________
                  void main(){
                  char lcd_buffer1[16];
                  
                  unsigned char hr,min,sec,status=0,value=0,roz=0;
                  unsigned char week,year,month,day;
                  unsigned char en_hr=0,en_min=0,en_sec=0;
                  unsigned char st_hr=0,st_min=0,st_sec=0;
                  unsigned char en_year=0,en_month=0,en_day=0;
                  unsigned char st_year=0,st_month=0,st_day=0;
                  unsigned int main_year;
                  
                  DDRC=0xFF;
                  PORTD=0XFF;
                  
                  i2c_init();
                  lcd_init(16);
                  rtc_init(0,0,0);
                  DDRB=0xFF;
                   relay = 0;
                  if(b_set == 0)
                  {
                    rtc_set_time(0,0,0);
                    rtc_set_date(0,8,7,15);
                    lcd_putsf("Successfully!");
                    while(1)
                    {
                    }
                  }
                   
                  delay_ms(20);
                  rtc_get_time(&en_hr,&en_min,&en_sec);
                  rtc_get_time(&st_hr,&st_min,&st_sec);
                  rtc_get_date(&week,&en_day,&en_month,&en_year);
                  rtc_get_date(&week,&st_day,&st_month,&st_year);
                  delay_ms(20);
                      
                    while (1){  
                      while(status == 0)
                      {
                        rtc_get_time(&hr,&min,&sec);
                        rtc_get_date(&week,&day,&month,&year);
                        main_year = year + 2000;
                        
                        if(b_up == 0)
                        {
                          roz++;
                          if(roz == 2) roz = 0;
                          while(b_up == 0); 
                        }  
                        
                        if(roz == 0)
                        {
                          if(hr == en_hr & min == en_min & sec == en_sec & year == en_year & month == en_month & day == en_day)
                          {
                            value = 1;
                            relay = 1;
                            buzzer = 1;
                            delay_ms(3000);
                            buzzer = 0;
                          }
                  
                          if(hr == st_hr & min == st_min & sec == st_sec & year == en_year & month == en_month & day == en_day)
                          {
                            value = 0;
                            relay = 0;
                          }
                        }
                        else
                        {
                          if(hr == en_hr & min == en_min & sec == en_sec)
                          {
                            value = 1;
                            relay = 1;
                            buzzer = 1;
                            delay_ms(3000);
                            buzzer = 0;
                          }
                  
                          if(hr == st_hr & min == st_min & sec == st_sec)
                          {
                            value = 0;
                            relay = 0;
                          }
                        }      
                  
                        lcd_clear();
                  
                        sprintf(lcd_buffer1,"Time~ %02u:%02u:%02u",hr,min,sec);
                        lcd_gotoxy(0,0);    
                        lcd_puts(lcd_buffer1);
                        sprintf(lcd_buffer1,"%u/%02u/%02u ",main_year,month,day);
                        lcd_gotoxy(0,1);    
                        lcd_puts(lcd_buffer1);
                           
                        if(value == 0)  
                          lcd_putsf("Off");
                        else
                          lcd_putsf("On");
                          
                        if(roz != 0)  
                          lcd_putsf(" R");        
                  
                        if(b_set == 0)
                        {
                          status++;
                          if(status == 19) status = 0;
                          while(b_set == 0); 
                        }
                        delay_ms(200);
                      }  
                      
                      rtc_get_time(&hr,&min,&sec);
                      b:
                      while(status == 1)
                      {
                        if(b_up == 0)
                        {  
                          hr++;
                          if(hr == 25) hr = 0;
                          delay_ms(70);
                        }  
                  
                        if(b_down == 0)
                        {  
                          hr--;
                          if(hr == -1) hr = 0;
                          delay_ms(70);
                        }  
                       
                        lcd_clear();  
                        lcd_gotoxy(0,0);
                        sprintf(lcd_buffer1,"Time~%02u:%02u:%02u",hr,min,sec);
                        lcd_puts(lcd_buffer1);
                        delay_ms(80); 
                        lcd_clear();
                        sprintf(lcd_buffer1,"Time~ :%02u:%02u",min,sec);
                        lcd_puts(lcd_buffer1);       
                        delay_ms(80);
                        if(b_set == 0)
                        {
                          rtc_set_time(hr,min,sec);
                          status++;
                          if(status == 19) status = 0;
                          while(b_set == 0);  
                        }
                        if(b_set_down == 0)
                        {
                          status--;
                          if(status == -1) status = 0;
                          while(b_set_down == 0);
                          goto b; 
                        }  
                      }
                  امام مهدی(عج): اگر شیعیان ما ، که خداوند طاعتشان دهد. در عهد ما وفادار و همدل بودند، هرگز دیدار ما (ظهور) به تاخیر نمی افتاد.(کدام عهد ؟)

                  دیدگاه


                    #24
                    پاسخ : گیر کردن رله هنگام متصل شدن برق به مدار

                    یه نکته دیگه که مهمه چون کتابخونه LCD از پورت B داره استفاده میکنه احتمالا ازینه
                    من پین رله رو به پین D.7 تغییر دادم اینم شما در پرتئوس رله رو به PIND.7 وصل کن حتما تست کن کد رو کوچولو تغییر دادم دوباره تست کن
                    کد:
                    #include <mega8.h>
                    #include <delay.h>
                    #include <stdio.h> 
                    #include <i2c.h>
                    #include <ds1307.h>
                    #include <alcd.h>
                    #define b_down   PIND.1
                    #define b_up    PIND.2   
                    #define b_set   PIND.0
                    #define b_set_down PIND.3
                    #define relay   PORTD.7
                    #define buzzer   PORTC.0
                    //____________________________________________________________
                    void main(){
                    char lcd_buffer1[16];
                    
                    unsigned char hr,min,sec,status=0,value=0,roz=0;
                    unsigned char week,year,month,day;
                    unsigned char en_hr=0,en_min=0,en_sec=0;
                    unsigned char st_hr=0,st_min=0,st_sec=0;
                    unsigned char en_year=0,en_month=0,en_day=0;
                    unsigned char st_year=0,st_month=0,st_day=0;
                    unsigned int main_year;
                    
                    DDRC=0xFF;
                    DDRD=0xFF;
                    PORTD=0XFF;
                    
                    relay = 0;
                    i2c_init();
                    lcd_init(16);
                    rtc_init(0,0,0);
                    
                    if(b_set == 0)
                    {
                      rtc_set_time(0,0,0);
                      rtc_set_date(0,8,7,15);
                      lcd_putsf("Successfully!");
                      while(1)
                      {
                      }
                    }
                     
                    delay_ms(20);
                    rtc_get_time(&en_hr,&en_min,&en_sec);
                    rtc_get_time(&st_hr,&st_min,&st_sec);
                    rtc_get_date(&week,&en_day,&en_month,&en_year);
                    rtc_get_date(&week,&st_day,&st_month,&st_year);
                    delay_ms(20);
                        
                      while (1){  
                        while(status == 0)
                        {
                          rtc_get_time(&hr,&min,&sec);
                          rtc_get_date(&week,&day,&month,&year);
                          main_year = year + 2000;
                          
                          if(b_up == 0)
                          {
                            roz++;
                            if(roz == 2) roz = 0;
                            while(b_up == 0); 
                          }  
                          
                          if(roz == 0)
                          {
                            if(hr == en_hr & min == en_min & sec == en_sec & year == en_year & month == en_month & day == en_day)
                            {
                              value = 1;
                              relay = 1;
                              buzzer = 1;
                              delay_ms(3000);
                              buzzer = 0;
                            }
                    
                            if(hr == st_hr & min == st_min & sec == st_sec & year == en_year & month == en_month & day == en_day)
                            {
                              value = 0;
                              relay = 0;
                            }
                          }
                          else
                          {
                            if(hr == en_hr & min == en_min & sec == en_sec)
                            {
                              value = 1;
                              relay = 1;
                              buzzer = 1;
                              delay_ms(3000);
                              buzzer = 0;
                            }
                    
                            if(hr == st_hr & min == st_min & sec == st_sec)
                            {
                              value = 0;
                              relay = 0;
                            }
                          }      
                    
                          lcd_clear();
                    
                          sprintf(lcd_buffer1,"Time~ %02u:%02u:%02u",hr,min,sec);
                          lcd_gotoxy(0,0);    
                          lcd_puts(lcd_buffer1);
                          sprintf(lcd_buffer1,"%u/%02u/%02u ",main_year,month,day);
                          lcd_gotoxy(0,1);    
                          lcd_puts(lcd_buffer1);
                             
                          if(value == 0)  
                            lcd_putsf("Off");
                          else
                            lcd_putsf("On");
                            
                          if(roz != 0)  
                            lcd_putsf(" R");        
                    
                          if(b_set == 0)
                          {
                            status++;
                            if(status == 19) status = 0;
                            while(b_set == 0); 
                          }
                          delay_ms(200);
                        }  
                        
                        rtc_get_time(&hr,&min,&sec);
                        b:
                        while(status == 1)
                        {
                          if(b_up == 0)
                          {  
                            hr++;
                            if(hr == 25) hr = 0;
                            delay_ms(70);
                          }  
                    
                          if(b_down == 0)
                          {  
                            hr--;
                            if(hr == -1) hr = 0;
                            delay_ms(70);
                          }  
                         
                          lcd_clear();  
                          lcd_gotoxy(0,0);
                          sprintf(lcd_buffer1,"Time~%02u:%02u:%02u",hr,min,sec);
                          lcd_puts(lcd_buffer1);
                          delay_ms(80); 
                          lcd_clear();
                          sprintf(lcd_buffer1,"Time~ :%02u:%02u",min,sec);
                          lcd_puts(lcd_buffer1);       
                          delay_ms(80);
                          if(b_set == 0)
                          {
                            rtc_set_time(hr,min,sec);
                            status++;
                            if(status == 19) status = 0;
                            while(b_set == 0);  
                          }
                          if(b_set_down == 0)
                          {
                            status--;
                            if(status == -1) status = 0;
                            while(b_set_down == 0);
                            goto b; 
                          }  
                        }
                    امام مهدی(عج): اگر شیعیان ما ، که خداوند طاعتشان دهد. در عهد ما وفادار و همدل بودند، هرگز دیدار ما (ظهور) به تاخیر نمی افتاد.(کدام عهد ؟)

                    دیدگاه


                      #25
                      پاسخ : گیر کردن رله هنگام متصل شدن برق به مدار

                      داداش این کد که ارور میده یه پارانتز کم اومده :mrgreen:

                      مال شما ارور نمیده ؟
                      برد جوجه کشی:
                      مطالعه پست 1 (حتما مطالعه کنید)


                      مطالعه پست 2 (برای مطلع شدن از تغییرات برنامه مطالعه کنید)

                      دانلود

                      توجه:
                      این برد نیمه صنعتی و خانگی هست...
                      برای صنعتی شدن حتما برد مخصوص خودتون رو بزنید...

                      آی دی کانال تلگرامی مربوط به برد جوجه کشی : electr0o0nic@

                      دیدگاه


                        #26
                        پاسخ : گیر کردن رله هنگام متصل شدن برق به مدار

                        نوشته اصلی توسط mohammad...
                        داداش این کد که ارور میده یه پارانتز کم اومده :mrgreen:

                        مال شما ارور نمیده ؟
                        سلام
                        کدی که من تغییر دادم یا کد اصلی که دوستمون گذاشتن؟
                        امام مهدی(عج): اگر شیعیان ما ، که خداوند طاعتشان دهد. در عهد ما وفادار و همدل بودند، هرگز دیدار ما (ظهور) به تاخیر نمی افتاد.(کدام عهد ؟)

                        دیدگاه


                          #27
                          پاسخ : گیر کردن رله هنگام متصل شدن برق به مدار

                          نوشته اصلی توسط mahdi8866
                          سلام
                          کدی که من تغییر دادم یا کد اصلی که دوستمون گذاشتن؟
                          سلام

                          کلا فرقی نمی کنه من این کد رو بدون تنظیمات اضافی میندازم تو کد ویژن و کامپایل می کنم و ارور میده

                          باید تنظیمات ویزارد رو دستکاری کنم یا نه

                          مثلا باید از ویزارد ال سی دی رو بفهمونم که به کدوم پایه ها وصله یا نه oo:
                          برد جوجه کشی:
                          مطالعه پست 1 (حتما مطالعه کنید)


                          مطالعه پست 2 (برای مطلع شدن از تغییرات برنامه مطالعه کنید)

                          دانلود

                          توجه:
                          این برد نیمه صنعتی و خانگی هست...
                          برای صنعتی شدن حتما برد مخصوص خودتون رو بزنید...

                          آی دی کانال تلگرامی مربوط به برد جوجه کشی : electr0o0nic@

                          دیدگاه


                            #28
                            پاسخ : گیر کردن رله هنگام متصل شدن برق به مدار

                            نوشته اصلی توسط mahdi8866
                            یه نکته دیگه که مهمه چون کتابخونه LCD از پورت B داره استفاده میکنه احتمالا ازینه
                            من پین رله رو به پین D.7 تغییر دادم اینم شما در پرتئوس رله رو به PIND.7 وصل کن حتما تست کن کد رو کوچولو تغییر دادم دوباره تست کن
                            کد:
                            #include <mega8.h>
                            #include <delay.h>
                            #include <stdio.h> 
                            #include <i2c.h>
                            #include <ds1307.h>
                            #include <alcd.h>
                            #define b_down   PIND.1
                            #define b_up    PIND.2   
                            #define b_set   PIND.0
                            #define b_set_down PIND.3
                            #define relay   PORTD.7
                            #define buzzer   PORTC.0
                            //____________________________________________________________
                            void main(){
                            char lcd_buffer1[16];
                            
                            unsigned char hr,min,sec,status=0,value=0,roz=0;
                            unsigned char week,year,month,day;
                            unsigned char en_hr=0,en_min=0,en_sec=0;
                            unsigned char st_hr=0,st_min=0,st_sec=0;
                            unsigned char en_year=0,en_month=0,en_day=0;
                            unsigned char st_year=0,st_month=0,st_day=0;
                            unsigned int main_year;
                            
                            DDRC=0xFF;
                            DDRD=0xFF;
                            PORTD=0XFF;
                            
                            relay = 0;
                            i2c_init();
                            lcd_init(16);
                            rtc_init(0,0,0);
                            
                            if(b_set == 0)
                            {
                              rtc_set_time(0,0,0);
                              rtc_set_date(0,8,7,15);
                              lcd_putsf("Successfully!");
                              while(1)
                              {
                              }
                            }
                             
                            delay_ms(20);
                            rtc_get_time(&en_hr,&en_min,&en_sec);
                            rtc_get_time(&st_hr,&st_min,&st_sec);
                            rtc_get_date(&week,&en_day,&en_month,&en_year);
                            rtc_get_date(&week,&st_day,&st_month,&st_year);
                            delay_ms(20);
                                
                              while (1){  
                                while(status == 0)
                                {
                                  rtc_get_time(&hr,&min,&sec);
                                  rtc_get_date(&week,&day,&month,&year);
                                  main_year = year + 2000;
                                  
                                  if(b_up == 0)
                                  {
                                    roz++;
                                    if(roz == 2) roz = 0;
                                    while(b_up == 0); 
                                  }  
                                  
                                  if(roz == 0)
                                  {
                                    if(hr == en_hr & min == en_min & sec == en_sec & year == en_year & month == en_month & day == en_day)
                                    {
                                      value = 1;
                                      relay = 1;
                                      buzzer = 1;
                                      delay_ms(3000);
                                      buzzer = 0;
                                    }
                            
                                    if(hr == st_hr & min == st_min & sec == st_sec & year == en_year & month == en_month & day == en_day)
                                    {
                                      value = 0;
                                      relay = 0;
                                    }
                                  }
                                  else
                                  {
                                    if(hr == en_hr & min == en_min & sec == en_sec)
                                    {
                                      value = 1;
                                      relay = 1;
                                      buzzer = 1;
                                      delay_ms(3000);
                                      buzzer = 0;
                                    }
                            
                                    if(hr == st_hr & min == st_min & sec == st_sec)
                                    {
                                      value = 0;
                                      relay = 0;
                                    }
                                  }      
                            
                                  lcd_clear();
                            
                                  sprintf(lcd_buffer1,"Time~ %02u:%02u:%02u",hr,min,sec);
                                  lcd_gotoxy(0,0);    
                                  lcd_puts(lcd_buffer1);
                                  sprintf(lcd_buffer1,"%u/%02u/%02u ",main_year,month,day);
                                  lcd_gotoxy(0,1);    
                                  lcd_puts(lcd_buffer1);
                                     
                                  if(value == 0)  
                                    lcd_putsf("Off");
                                  else
                                    lcd_putsf("On");
                                    
                                  if(roz != 0)  
                                    lcd_putsf(" R");        
                            
                                  if(b_set == 0)
                                  {
                                    status++;
                                    if(status == 19) status = 0;
                                    while(b_set == 0); 
                                  }
                                  delay_ms(200);
                                }  
                                
                                rtc_get_time(&hr,&min,&sec);
                                b:
                                while(status == 1)
                                {
                                  if(b_up == 0)
                                  {  
                                    hr++;
                                    if(hr == 25) hr = 0;
                                    delay_ms(70);
                                  }  
                            
                                  if(b_down == 0)
                                  {  
                                    hr--;
                                    if(hr == -1) hr = 0;
                                    delay_ms(70);
                                  }  
                                 
                                  lcd_clear();  
                                  lcd_gotoxy(0,0);
                                  sprintf(lcd_buffer1,"Time~%02u:%02u:%02u",hr,min,sec);
                                  lcd_puts(lcd_buffer1);
                                  delay_ms(80); 
                                  lcd_clear();
                                  sprintf(lcd_buffer1,"Time~ :%02u:%02u",min,sec);
                                  lcd_puts(lcd_buffer1);       
                                  delay_ms(80);
                                  if(b_set == 0)
                                  {
                                    rtc_set_time(hr,min,sec);
                                    status++;
                                    if(status == 19) status = 0;
                                    while(b_set == 0);  
                                  }
                                  if(b_set_down == 0)
                                  {
                                    status--;
                                    if(status == -1) status = 0;
                                    while(b_set_down == 0);
                                    goto b; 
                                  }  
                                }
                            ممنون دوست عزیز: این کد را تست کردم و همچنین کد قبلی تان را متاسفانه باز جواب نداد !!! شاخ در اوردم!!!
                            سپاس

                            دیدگاه


                              #29
                              پاسخ : گیر کردن رله هنگام متصل شدن برق به مدار

                              من از بعدازظهر نبودم....مشکلتون هنوز پا برجاست؟...الان چه مشکلی دارید؟
                              تولید کننده تجهیزات برنامه پذیر اتوماسیون صنعتی

                              www.intelart.ir


                              ساخت کنترلر دما PID فازی با AVR [آموزشی]

                              دیدگاه


                                #30
                                پاسخ : گیر کردن رله هنگام متصل شدن برق به مدار

                                نوشته اصلی توسط Mahdi.Faani
                                من از بعدازظهر نبودم....مشکلتون هنوز پا برجاست؟...الان چه مشکلی دارید؟
                                سلام دوست عزیز: بله مشکل هنوز حل نشده! مشکل از برنامه نویسی مدار هست!!! الان مشکل این هست که زمان اجرا led و رله و بازر 3 ثانیه روشن می شوند و بعد خاموش می شوند و بعد مدار اجرا می شود!! یعنی بین یک وقفه هست که باعث گیر کردن رله می شود!! فیلم اش را هم گذاشتم!! من میگم مشکل از کد بازر هست ولی دوستان می گویند مشکل از رجیستر ها هست! هر کاری کردیم درست نشد!
                                فیلم مشکل مدار:
                                http://s6.picofile.com/file/8210027650/bandicam_2015_09_03_17_03_05_905.zip.html
                                سپاس

                                دیدگاه

                                لطفا صبر کنید...
                                X