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

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

الصورة الرمزية king5star
king5star
:: مهندس جيد ::
تاريخ التسجيل: Jun 2008
الدولة: Alexandria, Egypt
المشاركات: 240
نشاط [ king5star ]
قوة السمعة:0
قديم 25-03-2012, 04:34 PM المشاركة 1   
افتراضي مساعدة بسيطة فى برنامج بسيط Twitter FaceBook Google+



السلام عليكم

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




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

وهذا الملف الخاص بالدائرة


http://www.gulfup.com/X3iqfz2732lzd

اعلانات

Imozar
:: مهندس متميز ::
تاريخ التسجيل: Dec 2011
المشاركات: 318
نشاط [ Imozar ]
قوة السمعة:0
قديم 25-03-2012, 05:10 PM المشاركة 2   
افتراضي


أخي عندي ملاحظات بسيطة على الدائرة:
1- كل طرف من من اطراف المنفذ "ب" يحتاج الى مقاومة 10 كيلو كمثال توصل مع الارضي .
هذه الطريقة تعرف باسم : pull down resistor .. اسم كبير لكن مضمونه بسيط.
2- الطرف RA5 لايمكن ان يبرمج خرجا على الاطلاق . يبرمج كدخل فقط .
اما بالنسبة للكود فليست لي خبرة كبيرة بالمكروسي .

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

الصورة الرمزية king5star
king5star
:: مهندس جيد ::
تاريخ التسجيل: Jun 2008
الدولة: Alexandria, Egypt
المشاركات: 240
نشاط [ king5star ]
قوة السمعة:0
قديم 25-03-2012, 06:05 PM المشاركة 3   
افتراضي


أخي عندي ملاحظات بسيطة على الدائرة:
1- كل طرف من من اطراف المنفذ "ب" يحتاج الى مقاومة 10 كيلو كمثال توصل مع الارضي .
هذه الطريقة تعرف باسم : pull down resistor .. اسم كبير لكن مضمونه بسيط.
2- الطرف RA5 لايمكن ان يبرمج خرجا على الاطلاق . يبرمج كدخل فقط .
اما بالنسبة للكود فليست لي خبرة كبيرة بالمكروسي .

شكراً لك اخى لقد تم تعديل جميع الاشياء الذى اوضحتها وشكراً لك على هذه المعلومات التى من السهل الغفوا عنها .


الصورة الرمزية حيدر علاج حسن
حيدر علاج حسن
:: مشرف منتدى الهندسة الكهربائية ::
تاريخ التسجيل: Mar 2005
الدولة: IRAQ
المشاركات: 10,061
نشاط [ حيدر علاج حسن ]
قوة السمعة:394
قديم 25-03-2012, 09:22 PM المشاركة 4   
افتراضي


اذا كانت الشاشة الاولى تعطي عدد الازرار المضغوطة فما الداعي لعمل شاشة اخرى تقرأ عدد الازرار الغير مضغوطة ؟
و بالاخص ان حسابها ذهنيا لا ياخذ اكثر من ثانية واحدة ..

سؤال اخر : لنفرض ان احد الازرار تم ضغطه مرتين او اكثر فهل تسجل اول ضغطة فقط ام يضيف الضغطات التالية ؟؟


الصورة الرمزية king5star
king5star
:: مهندس جيد ::
تاريخ التسجيل: Jun 2008
الدولة: Alexandria, Egypt
المشاركات: 240
نشاط [ king5star ]
قوة السمعة:0
قديم 25-03-2012, 09:39 PM المشاركة 5   
افتراضي


اذا كانت الشاشة الاولى تعطي عدد الازرار المضغوطة فما الداعي لعمل شاشة اخرى تقرأ عدد الازرار الغير مضغوطة ؟
و بالاخص ان حسابها ذهنيا لا ياخذ اكثر من ثانية واحدة ..

سؤال اخر : لنفرض ان احد الازرار تم ضغطه مرتين او اكثر فهل تسجل اول ضغطة فقط ام يضيف الضغطات التالية ؟؟

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

اما السؤال الثانى ضطة واحدة فقط .


الصورة الرمزية حيدر علاج حسن
حيدر علاج حسن
:: مشرف منتدى الهندسة الكهربائية ::
تاريخ التسجيل: Mar 2005
الدولة: IRAQ
المشاركات: 10,061
نشاط [ حيدر علاج حسن ]
قوة السمعة:394
قديم 25-03-2012, 10:21 PM المشاركة 6   
افتراضي


هذا يعني ان كل طالب يعرف رقم المفتاح الخاص به ...
و بذلك فان احتمالية الضغط على مفتاحين ليست واردة ..
تبقى مسئلة عدد الطلاب اذا كان كبير فسوف تختلف البرمجة عن حالة 8 طلاب ..
واذا كان فعلا 8 فقط فلا داعي لمعرفة العدد المتبقي ..


الصورة الرمزية حيدر علاج حسن
حيدر علاج حسن
:: مشرف منتدى الهندسة الكهربائية ::
تاريخ التسجيل: Mar 2005
الدولة: IRAQ
المشاركات: 10,061
نشاط [ حيدر علاج حسن ]
قوة السمعة:394
قديم 25-03-2012, 11:31 PM المشاركة 7   
افتراضي


هذه الفكرة العامة للكود تعمل وفق الشروط التالية :
1- عدد الطلبة الكلي لا يزيد عن 8 .
2- عدم احتمالية الضغط المتكرر على المفتاح الواحد .

و في حال كون حساب العدد المتبقي الكترونيا ضروري يمكن تطوير الكود ..

كود:
void main(){
trisa=0;trisb=0xff;porta=0;
loop:

if(portb<0xff){while(portb<0xff){} porta++;}

goto loop;
}


الصورة الرمزية king5star
king5star
:: مهندس جيد ::
تاريخ التسجيل: Jun 2008
الدولة: Alexandria, Egypt
المشاركات: 240
نشاط [ king5star ]
قوة السمعة:0
قديم 26-03-2012, 02:51 AM المشاركة 8   
افتراضي


هذه الفكرة العامة للكود تعمل وفق الشروط التالية :
1- عدد الطلبة الكلي لا يزيد عن 8 .
2- عدم احتمالية الضغط المتكرر على المفتاح الواحد .

و في حال كون حساب العدد المتبقي الكترونيا ضروري يمكن تطوير الكود ..

كود:
void main(){
trisa=0;trisb=0xff;porta=0;
loop:

if(portb<0xff){while(portb<0xff){} porta++;}

goto loop;
}

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

إضافة رد

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

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

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


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

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