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

   

الصورة الرمزية funky112233
funky112233
:: عضو ذهبي ::
تاريخ التسجيل: Aug 2009
المشاركات: 664
نشاط [ funky112233 ]
قوة السمعة:
قديم 23-09-2012, 04:05 AM المشاركة 17   
افتراضي



بسم الله الرحمن الرحيم

شكرا جزيلا لك على كلامك الطيب
والحمد لله ان صحتك بخير وان شاء الله من تحسن لاخر

وانا اسف جدا على التاخير يا اخى والله ظروف كبيسة عطلتنى تماما عن كل شىء

ان شاء الله قريبا ارفع لك الكود

واسف على التاخر مرة اخرى

اعلانات

الصورة الرمزية كرار العامري
كرار العامري
:: مهندس متواجد ::
تاريخ التسجيل: Oct 2010
الدولة: العراق
المشاركات: 159
نشاط [ كرار العامري ]
قوة السمعة:
قديم 23-09-2012, 11:46 AM المشاركة 18   
افتراضي


السلام عليكم ورحمة الله
ارجو من الله ان تكون في تمام الصحو والعافية
اخي الحبيب funky112233 خذ وقتك (على اقل من مهلك)
وفقك الله للخير والعطاء




وما توفيقي إلا بالله العلي العظيم

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

الصورة الرمزية كرار العامري
كرار العامري
:: مهندس متواجد ::
تاريخ التسجيل: Oct 2010
الدولة: العراق
المشاركات: 159
نشاط [ كرار العامري ]
قوة السمعة:
قديم 23-09-2012, 03:08 PM المشاركة 19   
افتراضي


بسم الله الرحمن الرحيم

شكرا جزيلا لك على كلامك الطيب
والحمد لله ان صحتك بخير وان شاء الله من تحسن لاخر

وانا اسف جدا على التاخير يا اخى والله ظروف كبيسة عطلتنى تماما عن كل شىء

ان شاء الله قريبا ارفع لك الكود

واسف على التاخر مرة اخرى
السلام عليكم ورحمة الله وبركاته
اخي الحبيب
عندي طلب منك (اذا كان يضايق حظرتك بلاش منه)
اريد ايميلك على الياهو او سكاي بي)
وانا شاكر وممنون لك



وما توفيقي إلا بالله العلي العظيم


الصورة الرمزية كرار العامري
كرار العامري
:: مهندس متواجد ::
تاريخ التسجيل: Oct 2010
الدولة: العراق
المشاركات: 159
نشاط [ كرار العامري ]
قوة السمعة:
قديم 24-09-2012, 01:52 AM المشاركة 20   
افتراضي


اخي الحبيب funky112233
من خلال بحثي في المنتدى عثرت على هذا الكود الخاص بالباسسورد
وهو يحتوي على امكانية تغيير الرقم السري (الرقم مكون من ستة رموز) علما اني لم افهم اجزاء من البرنامج

المطلوب هو الاتي :-
1- شرح مفصل لهذا الكود
2- كيف لي ان اجعل امكانية رقمين سريين لشخصين كل شخص له رقم خاص به وعليه فعند ادخال الشخص الفلاني لرقمه تظهر رسالة على الشاشة باسم هذا الشخص


كود:
                              // global variables declaration

char i = 0 , m = 0 , error = 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 ;


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 ;
     while(portc.f2==0) {}
     get_new_pass :

     if(portc.f2==0)                  // if CANCEL button is pressed
     {

            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 get_new_pass ;
            }
            else goto end_sub ;
     }

     m = 0 ;
     m = keypad_released() ;
     while(m==0 || m==14 ||m==16) goto get_new_pass ;
     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) ;
     wait2 :
     if(portc.f2==0)                  // if CANCEL button is pressed
     {
            if(i!=0)
            {
                  while(portc.f2==0) {}
                  if(eeprom_read(i-1) != temp2[i-1])
                  {
                              if(error>0) error-- ;
                  }
                  lcd_out(2,i," ") ;
                  lcd_cmd(lcd_move_cursor_left);
                  i-- ;
                  goto wait2 ;
            }
            else goto end_sub ;
     }
     m = keypad_released() ;
     while(m==0 || m==14 || m==16) goto wait2 ;
     lcd_chr_cp('*') ;
     temp2[i] = number[m] ;
     if(eeprom_read(i)!=temp2[i]) error++ ;
     i++ ;
     if(i==6)
     {
                     while(keypad_released()!=14 && portc.f2==1) {}
                     if(portc.f2==0) goto wait2 ;
                     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 ;           // reset error flag
             lcd_cmd(lcd_clear) ;
             lcd_out(1,4,"ENTER PASS:") ;

             lcd_cmd(lcd_second_row) ;


             wait :
             m = 0 ;
             edit:
             if(portc.f2==0)               // if CANCEL button is pressed
             {

                    cnt = 0 ;
                    tmr0 = 0 ;

                    while(portc.f2==0)
                    {
                            if(cnt>=367)
                            {
                                    set_new_pass() ;
                                    goto start ;
                            }
                    }
                            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 wait ;
                            }

             }

             m = keypad_released() ;
             while(m==0 || m==14) goto wait ;

             if(m==16)
             {
                            check_old_pass() ;
                            goto get_current_pass ;
             }

             lcd_chr_cp('*') ;
             temp2[i] = number[m] ;

             if(eeprom_read(i)!=temp2[i]) error++ ;
             i++ ;
             if(i==6)
             {
                             while(keypad_released()!=14 && portc.f2==1) {}
                             if(portc.f2==0) goto edit ;
                             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://upload.qariya.info/images/qar...45bb74b068.jpg
هذا ولك جزيل الشكر على ما بذلته من جهد معي


وما توفيقي إلا بالله العلي العظيم


الصورة الرمزية funky112233
funky112233
:: عضو ذهبي ::
تاريخ التسجيل: Aug 2009
المشاركات: 664
نشاط [ funky112233 ]
قوة السمعة:
قديم 26-09-2012, 11:38 PM المشاركة 21   
افتراضي


بسم الله الرحمن الرحيم

اخى كرارى

لا يضايقنى ولا شىء يا اخى تفضل

funky_112233*yahoo.com

.................................

هو انت كنت لسة مشوفتش المشروع الرائع دة
والله انا فاكرك شوفتة من زماااان هههههههههههه

عموما هو الشرح بتاعه معاه صاحب الموضوع شرحة
وانت الى يهمك جزئية الباسورد فقط

عموما هنتعاون قريبا ان شاء الله


الصورة الرمزية كرار العامري
كرار العامري
:: مهندس متواجد ::
تاريخ التسجيل: Oct 2010
الدولة: العراق
المشاركات: 159
نشاط [ كرار العامري ]
قوة السمعة:
قديم 29-09-2012, 11:37 PM المشاركة 22   
افتراضي


بسم الله الرحمن الرحيم

اخى كرارى

لا يضايقنى ولا شىء يا اخى تفضل

funky_112233*yahoo.com

.................................

هو انت كنت لسة مشوفتش المشروع الرائع دة
والله انا فاكرك شوفتة من زماااان هههههههههههه

عموما هو الشرح بتاعه معاه صاحب الموضوع شرحة
وانت الى يهمك جزئية الباسورد فقط

عموما هنتعاون قريبا ان شاء الله
السلام عليكم اخي الحبيب funky
انا ممتن لك على هذا الكلام الطيب والجميل انا ارسلت لك الكود الي كتبته وصورة من طريقة الربط ممكن ان تضع لمساتك الرائعة عليه وتنفعني بملاحظاتك المفيدة
واشكرك مجددا على ايميلك



وما توفيقي إلا بالله العلي العظيم


الصورة الرمزية كرار العامري
كرار العامري
:: مهندس متواجد ::
تاريخ التسجيل: Oct 2010
الدولة: العراق
المشاركات: 159
نشاط [ كرار العامري ]
قوة السمعة:
قديم 30-09-2012, 09:09 PM المشاركة 23   
افتراضي


السلام عليكم ورحمة الله وبركاته
اخي الحبيب funky انا اسف علازعاج بس حاب اخبرك انه انا خلصت البرنامج بس حصلت معي بعض الاشكالات الي هي :-

1-وضعت بعض رسائل الترحيب في بداية الكود لان زي منت عارف انه مشروع تخرج ولازم اكتب هذه الرسائل

2- هي لما اضغط على الرقم الاول من الرقام الستة تظهر ستة رموز معا على الشاشة ****** وطبعا لما اضغط على المفتاح # تظهر رسالة INVALID PASS ولما اكرر المحاولة ثلاث مرات يعمل جرس الانذار

3- علما اني غيرت ربط الدائرة غير الي ارسلتها اليك


ارجو الرد بسرعة لأن هذا المشروع سوف يسبب لي الشلل هههههه

واذا كنت تريد ان ارسل لك ملف البرنامج وملف المحاكاة




وما توفيقي الا بالله العلي العظيم


الصورة الرمزية funky112233
funky112233
:: عضو ذهبي ::
تاريخ التسجيل: Aug 2009
المشاركات: 664
نشاط [ funky112233 ]
قوة السمعة:
قديم 04-10-2012, 08:09 AM المشاركة 24   
افتراضي


بسم الله الرحمن الرحيم

والله يا اخى انا محرج منك على التاخر دة كلة

لكن للاسف لم يصلنى شىء على اميلى ولا حتى دعوة صداقة ههههههه

ان شاء الله لو انت فاضى النهاردة على العصر كدة نعد سوا على الياهو
ونخلص المشروع دة ان شاء الله انا فى انتظارك ان شاء الله



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