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

   

الصورة الرمزية Abdulla873
Abdulla873
:: مهندس متميز ::
تاريخ التسجيل: Sep 2009
الدولة: Baghdad, Iraq
المشاركات: 504
نشاط [ Abdulla873 ]
قوة السمعة:
قديم 16-12-2009, 07:42 PM المشاركة 9   
افتراضي



اخي العزيز وليد, شكرا لك
اما بالنسبة للاجابة على سؤالك:
البرنامج يقوم بفحص دوري لل keypad , عندما يتم ضغط اي زر منه يتم تحسسة عن
طريق المايكرو من خلال RD0, RD1, RD1 والتي تكون فولتيتها 0 فولت عندما تضغط
اي زر عدا ذالك فهي دائما 5 فولت, لذا تجد في الروتين Row فحص دوري مستمر اذا
كانت الفولطتية 5 ,اما اذا كانت 0 فولت , فيتم الانتقال الى الروتين Found وهذا معناه
ان هناك زر قد ضغط.
طبعا , بالنسبة للفحص الدوري للkeypad يكون كما يلي:
1- يتم اختيار السطر الاول , ولقد تم ذالك في الروتين scan , اما بالنسبة للاختيار
الاسطر الاخرى فقد تم في الروتين NewRow
2- يتم فحص كل من RD0, RD1, RD3 , ويتم ذالك في الروتين Row
وكما تلاحظ هناك عداد للارقام في بداية كل جزء وهو الkey , عندما نختار السطر الاول قيمتة
تزداد من 1 الى 3 , وعندما نختار السطر الثاني قيمتة تزداد من 4 الى 6 , وهكذا
فمثلا , افرض انا ضغطنا على الزر 2, عندا ذالك RD1 ستكون قيمتها صفر ,
عند ذالك الوقت قيمة العداد key ستكون 2 .عند الجزء الثاني من الروتين Row
الشرطBTFSS سوف لن يتحقق , لذا سنذهب الى الروتين Found الذي سوف
يعيدنا الى الروتين Start بعد السطر call scan ومعنا قيمة المفتاح المضغوط
المخزن في العداد Key وهكذا.
كما تذكر لقد كان هناك في الروتين Start ال call Scan , صح!
عندما تعمل call ينخزن العنوان المكان الذي كنت فية في ال stack area
باستخدام ال Found نرجع الى المكان الذي كنا في بعد call scan
طبعا ذالك يحدث فقط عندما نقوم بضغط اي زر من ال keypad
ارجوا اني قد وفقت في شرحي لك, وارجوا ان تفهمه, انا لست بارع جدا في
الشرح هههه, على كل حال, اذا احتجت اي شيء يمكنك ان تتفضل في السؤال
وان شاء الله استطيع ان اساعدك.
خالص التحية

المهندس عبدالله


التعديل الأخير تم بواسطة : Abdulla873 بتاريخ 16-12-2009 الساعة 07:55 PM
اعلانات


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