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

   

الصورة الرمزية #MAAM#
#MAAM#
:: عضو ذهبي ::
تاريخ التسجيل: Jun 2008
الدولة: EGYPT
المشاركات: 529
نشاط [ #MAAM# ]
قوة السمعة:
قديم 11-12-2009, 04:46 PM المشاركة 17   
ha



السلام عليكم

ممكن حضرتك أخي الكريم تتفضل وتشرح الدالة ده

كود:
void lcdclv ()  {                  
for(nmb=0;nmb<4;nmb++) {            
lcd_cmd(lcd_second_row);            
error=0;                          
for(chiffr=0;chiffr<a;chiffr++) {    
do {                                
clavier = Keypad_Released();
kp1=kp[clavier] ;
clavier = kp1;
} while(!clavier);
clavier--;                        
if(clavier!=pin[chiffr] ) {if (a==4) {error=1;} }        
if(clavier!=puk[chiffr] ) {  if (a==8) { error=1;  }  }
lcd_chr_cp(clavier+48);                                
}
if(error==0) { ok ();  break;}                         
if(error==1) { 
 lcd_out(1,1,"wrong code"); 
 delay();
 lcd_cmd(lcd_clear);
 if (nmb<3) 
 lcd_out(1,1,"try again"); }  
delay_ms(300);
} 
}
لإنها بصراحة مش واضحة بالنسبة ليا

وجزاكم الله خيرا أخي الكريم

اعلانات

الصورة الرمزية bigstreet
bigstreet
:: مهندس ::
تاريخ التسجيل: Nov 2009
المشاركات: 35
نشاط [ bigstreet ]
قوة السمعة:
قديم 11-12-2009, 05:26 PM المشاركة 18   
افتراضي


السلام عليكم ...
نالنسبة لهده الدالة يا اخي فهي اهم جزء في البرنامج فهي المسؤلة عن قرائة keypad اي ادخال pin puk
وكدلك مقارنتهما بالكود الصحيح...
اولا نبدا بشرح وضيفة المتغيرات لتسهيل فهم البرنامج
nmb : تدل على عدد المحاولات وهي 4 ..
error : يدل على مدى صحة الكود الدي قمت بادخاله القيمة 1 تعني كود خاطئ ..القيمة 0 تعني كود صحيح..
chiffr : تدل على عدد ارقام الكود ( 4 pin ...8 puk) ..ويتم تحديد دلك عن طريق المتغير a من الدالة الرئيسية...
والباقي اظن انه سهل الان فهو مقارنة الكود المدخل مع الاصلي و و ضع القيمة واحد عند الخطا او ترك المتغير الخاص بالخطا على حالته الاصلية وهي الصفر....
اتمنى ان اكون قد وفقت في شرحي هدا ...
و ارجو من كل احد احس انه استفاد شيئا ما من الدرس ان يدعو لي و لكم جزيل الشكر...
و اي سؤال اخر انا موجود بالرغم من انشغالي بالدراسة و مشروع التخرج ...لاني استفدت كثيرا من هدا المنتدى الجميل
و الحمد لله على كل حال

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

الصورة الرمزية #MAAM#
#MAAM#
:: عضو ذهبي ::
تاريخ التسجيل: Jun 2008
الدولة: EGYPT
المشاركات: 529
نشاط [ #MAAM# ]
قوة السمعة:
قديم 12-12-2009, 06:00 PM المشاركة 19   
ha


السلام عليكم

معلهش أخي الكريم ............... أنا مهتم بالموضوع جدا ............... بالنسبة للمصفوفة kp في ماذا تستخدم

كود:
kp[]={0,0,10,9,8,0,7,6,5,0,4,3,2,0,0,1,0}
وممكن حضرتك تشرحها بشوية تفصيل .........................

بارك الله في علمك

أخوكم في الله محمد


الصورة الرمزية bigstreet
bigstreet
:: مهندس ::
تاريخ التسجيل: Nov 2009
المشاركات: 35
نشاط [ bigstreet ]
قوة السمعة:
قديم 13-12-2009, 03:32 PM المشاركة 20   
افتراضي


السلام عليكم و رحمة الله وبركاته..
اخ محمد نالنسبة اللمصفوفة kp قمت بعملها خصيصا لقراءة ال keypad
حيث سوف تمكننا من التعرف على الزر المضغوط حيث بتجاهل الاشارات مثل + - * / on و يقرأ الارقام حسب ترتيبها الاصلي المكتوب على keypad
الان مع التفاصيل ...
هدا هو الخرج الدي يعطيه الكايپاد قبل التعديل :
{1,2,3,4,5,6,7,8,9,10,11,12,13,14,15}
وهدا موافق لترتيب الموالي :
/9,8,7,*,6,5,4,-,3,2,1,+,=,0,on
حيث انه اذا قمنا نالضغط على الزر / فسوف تقرأ الرقم 1 الرقم5 سوف يقرأ 7
الان لاحظ معي نريد حدف الاشارات و الاحتفاض بالارقام مع تعديل ترتيبها
لذلك سوف نقوم بتغييرهم ، حيث سنعطي الاشارات الرقم 0 ونرتب باقي الارقام حيث نعطي باقي الارقام مقابلاتها الحقيقية مع اضافة رقم واحد..
مثلا الرقم 5 سنعطيه 6
بعد الخروج من دائرة القراءة سنحدف واحد للعودة للوضع الاصلي
المسالة شيئاما معقدة لكن حاول اعادتها مع كود اخر للفهم اكثر...
اما بالنسبة للاخ fadi tout قرات ايمايلك صراحة ملاحظات جميلة..
بالنسبة للمتغير clavier فانت محق لايوجد من داعي له و قد قمت بتعديل الكود .. اما بالنسبة للامر if(clavier!=pin[chiffr] ) {if (a==4) {error=1;} }
فانا لا اتفق معك فيه لانه لايمكن الاستغناء عنه عند حدفه لن يتمكن البرنامج من التمييز بين الكودين pin puk
اما القسم الفرعي delay(); فهو جد مهم ، لان الامر يتكرر اكتر من مرة الا اني نسيت اعادته يمكنك ملاحظة ذلك ..
و في الاخير اود شكر الاخوين على المشاركة القيمة و الملاحظات الدقيقة..
و السلام عليكم


الصورة الرمزية bigstreet
bigstreet
:: مهندس ::
تاريخ التسجيل: Nov 2009
المشاركات: 35
نشاط [ bigstreet ]
قوة السمعة:
قديم 13-12-2009, 03:39 PM المشاركة 21   
افتراضي


اما بالنسبة لخاصية تغيير الكود فقد طرحها احد الاخوة ، و هي ممكنة و ليست بالصعبة لكن نظرا لضيق الوقت سوف اتاخر قليلا لكن اعد الاخوة المهتمين بوضعها...
فكلما تحتاجه هو وضع الكود في الداكرة eeprom بدلا من ال ram
و أظن ان ذلك سهل حيث ندلا من التعامل مع الرقم السري مباشرة سوف نتعامل مع عنوانه في eeprom...


الصورة الرمزية أبو زكووور
أبو زكووور
:: عضو فضي ::
تاريخ التسجيل: Mar 2009
الدولة: سوريا العروبة
المشاركات: 428
نشاط [ أبو زكووور ]
قوة السمعة:
قديم 13-12-2009, 07:37 PM المشاركة 22   
attension السلام عليكم


على هذا الرابط ......

http://www.qariya.com/vb/showthread.php?t=49979

يوجد مشروع كامل و متكامل و متميز , قام به الأستاذ أشرف الخطيب
بعدة أشكال وصور
يجب الإطلاع و الفائدة


الصورة الرمزية #MAAM#
#MAAM#
:: عضو ذهبي ::
تاريخ التسجيل: Jun 2008
الدولة: EGYPT
المشاركات: 529
نشاط [ #MAAM# ]
قوة السمعة:
قديم 14-12-2009, 12:25 AM المشاركة 23   
x4


السلام عليكم و رحمة الله وبركاته..
اخ محمد نالنسبة اللمصفوفة kp قمت بعملها خصيصا لقراءة ال keypad
حيث سوف تمكننا من التعرف على الزر المضغوط حيث بتجاهل الاشارات مثل + - * / on و يقرأ الارقام حسب ترتيبها الاصلي المكتوب على keypad
الان مع التفاصيل ...
هدا هو الخرج الدي يعطيه الكايپاد قبل التعديل :

وهدا موافق لترتيب الموالي :

حيث انه اذا قمنا نالضغط على الزر / فسوف تقرأ الرقم 1 الرقم5 سوف يقرأ 7
الان لاحظ معي نريد حدف الاشارات و الاحتفاض بالارقام مع تعديل ترتيبها
لذلك سوف نقوم بتغييرهم ، حيث سنعطي الاشارات الرقم 0 ونرتب باقي الارقام حيث نعطي باقي الارقام مقابلاتها الحقيقية مع اضافة رقم واحد..
مثلا الرقم 5 سنعطيه 6
بعد الخروج من دائرة القراءة سنحدف واحد للعودة للوضع الاصلي
المسالة شيئاما معقدة لكن حاول اعادتها مع كود اخر للفهم اكثر...
اما بالنسبة للاخ fadi tout قرات ايمايلك صراحة ملاحظات جميلة..
بالنسبة للمتغير clavier فانت محق لايوجد من داعي له و قد قمت بتعديل الكود .. اما بالنسبة للامر if(clavier!=pin[chiffr] ) {if (a==4) {error=1;} }
فانا لا اتفق معك فيه لانه لايمكن الاستغناء عنه عند حدفه لن يتمكن البرنامج من التمييز بين الكودين pin puk
اما القسم الفرعي delay(); فهو جد مهم ، لان الامر يتكرر اكتر من مرة الا اني نسيت اعادته يمكنك ملاحظة ذلك ..
و في الاخير اود شكر الاخوين على المشاركة القيمة و الملاحظات الدقيقة..
و السلام عليكم
جزاكم الله خيرا على وقتك في الشرح ولكن أخي الكريم ممكن تضع مصفوفة kp تحت المصفوفة الاخري المقابلة لها التي تخرج من الكيباد ............. حيث إنيي لاحظت أن kp تحتوي على 10 والكيباد لاتخرج هذا الرقم .............. فأريد توضيح هذه النقطة وجزاكم الله كل خير ....................ز


mustafasaad
:: مهندس ::
تاريخ التسجيل: Dec 2014
المشاركات: 9
نشاط [ mustafasaad ]
قوة السمعة:
قديم 06-12-2014, 02:29 AM المشاركة 24   
افتراضي


طلب عايز نفس المشروع بلغه اسمبلي رجاااء وبارك الله فيك يارب يجعله ميزان حسناتك



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