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

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

عبقرينو1
:: مهندس متميز ::
تاريخ التسجيل: Oct 2010
الدولة: جمهورية مصر العربية - الاسكندرية
المشاركات: 557
نشاط [ عبقرينو1 ]
قوة السمعة:0
قديم 16-07-2013, 03:44 AM المشاركة 1   
افتراضي مساعده ضرورى في مشروع قفل بالباسورد Twitter FaceBook Google+



كود:
                              // global variables declaration

char i = 0 , m = 0 , error = 0 , error2 = 0 ;
const int number[]={'y','y',3,2,1,'x',6,5,4,'x',9,8,7,'x','x',0 ,'y'} ;
char temp[6] ;
char temp2[6] ;
char attempts = 0 ;
unsigned cnt ;
                            // interrupt subroutine

void interrupt()
{
     cnt++ ;
     INTCON = 0x20 ;
}

                                // subroutines
void tone1()
{
     sound_play ( 659, 250 ) ;
}
void tone2()
{
     sound_play ( 698, 250 ) ;
}
void Tone3()
{
     sound_play ( 784, 250 ) ;
}
void melody()
{
           cnt = 0 ; tmr0 = 0 ;
           while( cnt < 36621 && keypad_read()!= 16 )  // 5-minute alarm until long press on *
           {
                     tone1(); tone2(); tone3(); tone3();
                     tone1(); tone2(); tone3(); tone3();
                     tone1(); tone2(); tone3();
                     tone1(); tone2(); tone3(); tone3();
                     tone1(); tone2(); tone3();
                     tone3(); tone3(); tone2(); tone2(); tone1();
           }


          stop_alarm : portc.f3 = 0 ;
}


void set_new_pass()
{
     lcd_cmd(lcd_clear) ;
     lcd_out(1,1,"ENTER NEW PASS:") ;
     lcd_cmd(lcd_second_row) ;
     i = 0 ;
     get_new_pass :
     m = 0 ; error = 0 ;
     m = keypad_released() ;
     while(m==0 || m==14) goto get_new_pass ;
     if(m==16)                  // if CANCEL button is pressed
     {

            if(i!=0)
            {
                    while(portc.f2==0) {}
                    lcd_out(2,i," ") ;
                    lcd_cmd(lcd_move_cursor_left);
                    i-- ;
                    goto get_new_pass ;
            }
            else goto end_sub ;
     }
     lcd_chr_cp('*') ;
     temp[i] = number[m] ;
     i++ ;
     if(i==6) goto confirm_new_pass ;
     goto get_new_pass ;

     confirm_new_pass:
     while(keypad_released() !=14 && portc.f2==1) {}
     if(portc.f2==0) goto get_new_pass ;

     for(i=0;i<6;i++)
     {
                     eeprom_write(i,temp[i]) ;
                     delay_ms(20) ;
     }

    lcd_cmd(lcd_clear) ;
    lcd_out(1,3,"NEW PASS HAS" ) ;
    lcd_out(2,4,"BEEN ADDED") ;
    delay_ms(2000) ;
    end_sub :
    lcd_cmd(lcd_clear) ;


}
void check_old_pass()
{

     start2:
     m = 0 ; i = 0 ; error = 0 ;
     lcd_cmd(lcd_clear) ;
     lcd_out(1,1,"ENTER OLD PASS:") ;
     lcd_cmd(lcd_second_row) ;
     while(keypad_released()==16) {}
     wait2 :
     m = keypad_released() ;
     while(m==0 || m==14) goto wait2 ;

     edit2 :
     if(m==16)
     {
            if(i!=0)
            {
                  while(portc.f2==0) {}
                  if(eeprom_read(i-1)!=temp2[i-1] && error>0 ) error-- ;
                  lcd_out(2,i," ") ;
                  lcd_cmd(lcd_move_cursor_left);
                  i-- ;
                  goto wait2 ;
            }
            else goto end_sub ;
     }
     lcd_chr_cp('*') ;
     temp2[i] = number[m] ;
     if(eeprom_read(i)!=temp2[i]) error++ ;
     i++ ;
     if(i==6)
     {
                     wait4 :
                     m = 0 ;
                     m = keypad_released() ;
                     if(m!=16 && m!=14)goto wait4 ;
                     if(m==16) goto edit2 ;
                     goto compare2 ;
     }
     goto wait2 ;
     compare2:
     if(error!=0)
     {
                     lcd_cmd(lcd_clear) ;
                     lcd_out(1,4,"INVALID!!") ;
                     while(keypad_released()==0) {}
                     goto start2 ;
     }

      else set_new_pass() ;
      end_sub:
      lcd_cmd(lcd_clear) ;
}



                           // main program

void main()
{


     trisb = 0 ; portb = 0 ;
     trisd = 0 ; portd = 0 ;
     trisc.f0 = trisc.f1 = 0 ; portc = 0 ;
     trisc.f2 =1 ;
     trisc.f3 = 0 ;

     OPTION_REG = 0x84 ;       // Assign prescaler to TMR0
     INTCON = 0xA0 ;           // Enable TMRO interrupt


                      // lcd initialization
     lcd_init(&portb) ;
     lcd_cmd(lcd_cursor_off) ;

                        // keypad initialization
     keypad_init(&portd) ;

                         // sound play initialization
     sound_init(&portc,0) ;

     while(1)
     {
             start :
             if(eeprom_read(0) != 0xff) goto get_current_pass ;
             set_new_pass() ;

             get_current_pass :

             i = 0 ;
             error = 0 ;
             lcd_cmd(lcd_clear) ;
             lcd_out(1,4,"ENTER PASS:") ;

             lcd_cmd(lcd_second_row) ;


             wait :

             m = keypad_read() ;
             while(m==0) goto wait ;

             cancel_or_set :
             if(m==16)
             {
                    cnt = 0 ;
                    tmr0 = 0 ;
                    while(keypad_read() == 16)
                    {
                          if( cnt >= 367 )
                          {
                              check_old_pass() ;
                              goto get_current_pass ;
                          }
                    }
                          if(i!=0)
                          {
                               while(keypad_released()==16) {}
                               if(eeprom_read(i-1)!=temp2[i-1] && error>0 ) error-- ;
                               lcd_out(2,i," ") ;
                               lcd_cmd(lcd_move_cursor_left);
                               i-- ;
                               goto wait ;
                          }
             }


             m = 0 ;
             m = keypad_released() ;
             while(m==0) goto wait ;
             if(m==16) goto cancel_or_set ;
             if(m==14)
             {
                        if(i==3)
                        {
                             for(i=0;i<3;i++)
                             {
                                           if(temp2[i]!=3) error2 = 1 ;
                             }
                             if(error2==1) goto wait ;
                             set_new_pass() ;
                             goto start ;
                         }
                         goto wait ;
             }
             lcd_chr_cp('*') ;
             temp2[i] = number[m] ;

             if(eeprom_read(i)!=temp2[i]) error++ ;
             i++ ;
             if(i==6)
             {
                             wait4 :
                             m = 0 ;
                             m = keypad_released() ;
                             while(m!=14 && m!=16 && portc.f2==1) goto wait4 ;
                             if(m == 16) goto cancel_or_set  ;
                             if(portc.f2==0) goto wait ;
                             goto compare ;
             }
             goto wait ;

             compare :
             for(i=0;i<6;i++)
             {
                             if(temp2[i]!=eeprom_read(i)) error++ ;
             }

             if(error!=0)
             {
                             lcd_cmd(lcd_clear) ;
                             lcd_out(1,3,"INVALID PASS") ;
                             error = 0 ;
                             attempts++ ;
                             if(attempts>=3)
                             {
                                            lcd_out( 2,6,"ALARM" ) ;
                                            portc.f3 = 1 ;
                                            melody() ;
                                            goto get_current_pass ;
                             }
                             while(keypad_released()==0) {}
                             goto get_current_pass ;
             }

             else
             {
                             lcd_cmd(lcd_clear) ;
                             lcd_out(1,7,"OPEN") ;
                             portc.f1 = 1 ; delay_ms(5000) ;
                             portc.f1 = 0 ;
                             attempts = 0 ;
            }
}
}


ده كود لمشروع قفل بالباسورد
http://www.4shared.com/rar/kCTLivxA/project3.html?
ده رابط التحميل
فى المشروع فيه ماستر كود 333 لتغيير الباس القديم

عاوز اعرف مكان الامر ده داخل الكود لو حابب اغيره

ضرورى بالله عليكم

اعلانات

عبقرينو1
:: مهندس متميز ::
تاريخ التسجيل: Oct 2010
الدولة: جمهورية مصر العربية - الاسكندرية
المشاركات: 557
نشاط [ عبقرينو1 ]
قوة السمعة:0
قديم 16-07-2013, 04:07 PM المشاركة 2   
افتراضي


للرفع ومنتظر رد المهندسين

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

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

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

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


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

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