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

   

الصورة الرمزية حيدر علاج حسن
حيدر علاج حسن
:: مشرف منتدى الهندسة الكهربائية ::
تاريخ التسجيل: Mar 2005
الدولة: IRAQ
المشاركات: 9,848
نشاط [ حيدر علاج حسن ]
قوة السمعة:
قديم 10-06-2009, 12:43 AM المشاركة 25   
افتراضي



انا بعرف اتعامل مع الكيباد

لا انا لا أريد التعامل مع المفاتيح
ماشي الحال .و لكن هنا سوف نستخدم 10 مفاتيح
ان شاء الله سنعمل الكود و ينجح

اعلانات

الصورة الرمزية حيدر علاج حسن
حيدر علاج حسن
:: مشرف منتدى الهندسة الكهربائية ::
تاريخ التسجيل: Mar 2005
الدولة: IRAQ
المشاركات: 9,848
نشاط [ حيدر علاج حسن ]
قوة السمعة:
قديم 10-06-2009, 11:41 AM المشاركة 26   
افتراضي


تفضل يا عزيزي هذه ملفات القفل السري كاملة
و اي سؤال اسئل و لاتتردد


قفل_سري.rar - 22.2 Kb

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

عادل100
:: مهندس ::
تاريخ التسجيل: Apr 2009
المشاركات: 20
نشاط [ عادل100 ]
قوة السمعة:
قديم 10-06-2009, 12:13 PM المشاركة 27   
Thumbs up


السلام عليكم
شكرا استاذ حيدر
ممكن لو سمحت تشرح لنا الكود لانى مش فاهمه
وكمان الرقم السرى كام
معلهش انا مبتدا
شكرا جزيلا


الصورة الرمزية حيدر علاج حسن
حيدر علاج حسن
:: مشرف منتدى الهندسة الكهربائية ::
تاريخ التسجيل: Mar 2005
الدولة: IRAQ
المشاركات: 9,848
نشاط [ حيدر علاج حسن ]
قوة السمعة:
قديم 10-06-2009, 12:34 PM المشاركة 28   
افتراضي


الرقم السري 1536 وسياتي الشرح لاحقا ان شاء الله


عادل100
:: مهندس ::
تاريخ التسجيل: Apr 2009
المشاركات: 20
نشاط [ عادل100 ]
قوة السمعة:
قديم 10-06-2009, 12:54 PM المشاركة 29   
افتراضي


شكرا استاذ حيدر
البرنامج شغال تمام
لاكنى ما زلت لا افهم الكود جيدا
ارجو ان تشرحه لنا


الصورة الرمزية أبو زكووور
أبو زكووور
:: عضو فضي ::
تاريخ التسجيل: Mar 2009
الدولة: سوريا العروبة
المشاركات: 428
نشاط [ أبو زكووور ]
قوة السمعة:
قديم 10-06-2009, 01:33 PM المشاركة 30   
افتراضي


يا جماعة فكرة الكود ممتازة و صحيحة
هو يريد عند إدخال الأرقام بهذا الترتيب
1
5
3
6
طبعا هو في البروتوس لم يضع مفاتيح مرقمة
وضعية المفاتيح في الرسمة مطابقة لوضعية المفاتيح على الكي بورد
أي رقم 1 من الزاوية السفلية اليسرى وهكذا
أما لماذا كل هذا الكود ؟؟؟؟
فهو للحماية أي عند إدخال أي رقم غلط يعود إلى نقطة الصفر LOOP
و عند إدخال رقم صحيح يذهب إلى المرحلة التالية
LOOP1 LOOP2 LOOP3 LOOP4
عندها يومض اللد لفترة زمنية

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


الصورة الرمزية عطية حسن محمود
عطية حسن محمود
:: عضو ذهبي و مشرف سابق لورشة صيانة التلفزيون ::
تاريخ التسجيل: Aug 2005
المشاركات: 1,029
نشاط [ عطية حسن محمود ]
قوة السمعة:
قديم 10-06-2009, 10:10 PM المشاركة 31   
افتراضي


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


الصورة الرمزية حيدر علاج حسن
حيدر علاج حسن
:: مشرف منتدى الهندسة الكهربائية ::
تاريخ التسجيل: Mar 2005
الدولة: IRAQ
المشاركات: 9,848
نشاط [ حيدر علاج حسن ]
قوة السمعة:
قديم 11-06-2009, 12:56 AM المشاركة 32   
افتراضي


كود:
 
char n[10]={2,7,4,8},m=0,i=0;
اخواني الاعزاء اذا تلاحضون الارقام في المصفوفة هي بالضبط قيم المتغير m عند الضغط على المفاتيح الخاصة بالرقم السري في الكيباد . فعند الضغط على المفتاح رقم 1 ستكون قيمة المتغير m=2 و بما ان المفتاح رقم 1 هو اول رقم في الرقم السري لذلك وضعناه الرقم الاول في المصفوفة و كذلك بالنسبة لبقية الارقام كل حسب تسلسله في الرقم السري.
كود:
void main() { trisd=0;portd=1;trisb=0;portb=0; keypad_init(&portc);
هذا الكود هو البرنامج الرئيسي و هو مفهوم طبعا فقط اريد ان اشير الى اننا لسنا بحاجة الى المنفذ B انما هو فقط لا ستخراج قيمة m عند الضغط على كل مفتاح وسياتي لاحقا . السطر الاخير من هذا المقطع هو لاخبار المتحكم بان الكيباد متصل بالمنفذ C

كود:
loop: m=keypad_read();portb=m;
هنا سنخزن القيمة الراجعة عند الضغط على اي مفتاح في المتغير m و قد سجلناها على الكيباد لتسهيل عملية تغيير الرقم السري .
و جعلنا المنفذ B يخرج قيمة m كاجراء مؤقت نستطيع الاستغناء عنه بعد تسجيل قيمة m التي تقابل كل مفتاح على الكيباد مباشرة

كود:
if(i<4)on();
هنا اذا كان عدد الارقام المدخلة اقل من 4 ارقام استدعي البرنامج الفرعي الذي اسمه on . وفي البرنامج الفرعي
كود:
void on() { if(m==n[i])i++; }
سيتم مقارنة الرقم المضغوط من خلال القيمة الراجعة في المتغير m و مقارنتها مع الارقام في المصفوفة فاذا جاء مطابق زادت قيمة المتغير I بواحد و الا سيرجع لانتظار ادخال رقم جديد وهكذا حتى يتم ادخال الارقام الاربعة الصحيحية . عندها ستكون قيمة المتغير I تساوي 4 و هنا لاحاجة لادخال قيم اخرى وسيتم فتح القفل من خلال الكود التالي
كود:
if(i==4)portd=2; goto loop; }
و يتم تغيير قيمة المنفذ D من 1 الى 2 فينطفيء الليد الاحمر و يشتغل الليد الاخضر للدلالة على فتح القفل .
و اي سؤال عن الكود انا ان شاء الله مستعد للتوضيح .
و شكرا لكل الاعضاء الذين شاركونا في هذا الموضوع


التعديل الأخير تم بواسطة : حيدر علاج حسن بتاريخ 11-06-2009 الساعة 01:07 AM


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