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

مشاهدة نتائج الإستفتاء: هل ترى أنه من الأفضل عمل قسم جديد في المنتدى للغات الحديثة مثل لغة MikroC ؟؟
نعم 53 92.98%
لا 4 7.02%
المصوتون: 57. أنت لم تصوت في هذا الإستفتاء

   

الصورة الرمزية ahmad_s_f
ahmad_s_f
:: المهندس/ أحمد سمير فايد ::
تاريخ التسجيل: Jun 2006
الدولة: سائح في ارض الله
المشاركات: 632
نشاط [ ahmad_s_f ]
قوة السمعة:
قديم 04-03-2009, 11:36 PM المشاركة 73   
افتراضي



الأستاذ المحترف الكبير // الأستاذ حيدر

معلومة ,وبالتالي يكون الشكل النهائي للبرنامج المطلوب كما يلي
كود:
void main()
{
trisb=0;
trisa=0xff;
loop:
if(porta.f0==0){while(porta.f0==0){} portb.f0=1;}
else portb.f0=0;
goto loop;
}
هنا استخدمنا جملة if لاختبار شرط معين في حال تحقق هذا الشرط أي في حال تم الضغط على السويتش سينفذ البك الأوامر التي بين القوسين الخاصين بجملة if وأول أمر في هذه الأوامر هو while والذي سيجعل البك لا يفعل أي شيء طالما لازلت ضاغطا على السويتش وعند رفعي من على السويتش يكون البك انتهى من تنفيذ الأمر while و سينفذ البك الأمر الذي يلي while وهو الأمر الذي سيضيء الليد

بعد ذلك استخدمنا else والتي تعني في حال عدم تحقق الشرط نفذ الأمر التالي وهو الأمر الذي سيطفئ الليد .

السلام عليكم
استاذ احمد اعتقد انك هنا نسيت جملة التاخير التي تمكننا من رؤية اشتغال الليد ولنفرض اننا حددنا هذه الفتره سيطرح سؤال آخر وهو اننا لو اردنا ان يكون زمن اشتغال الليد اختياري يعني مسيطر عليه فأعتقد انه يجب علينا استخدام مفتاح آخر حيث ان المفتاح الاول لايمكن ان يتحكم بشرط ثالث
ارجو التعليق من حضرتك
[/QUOTE]
أستاذ حيدر .. كلامك صحيح مئة في المئة وهذا إن دل على شيء فإنما يدل على فهمك القوي وتخيلك الواسع لما سيحدث ... (وهذا شيء أسعدني كثيرا)

لدي حل آخر لهذه المشكلة وهو أن نجعل جملة while بعد الأمر portb.f0=1 وبالتالي سيضيء الليد طالما لازلت ضاغطا على المفتاح switch .. كما في الكود التالي ...
كود:
void main() { trisb=0; trisa=0xff; loop: if(porta.f0==0){portb.f0=1;while(porta.f0==0){}} else portb.f0=0; goto loop; }
وبالتالي عند الضغط على السويتش سيضيء البك الليد ثم ينتظر حتى يتم رفع اليد من على السويتش (من خلال جملة while ) فإذا تم رفع اليد ينفذ الأمر التالي والذي سيطفئ الليد . .

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

================================
وفقنا الله جميعا لما يحب ويرضى ورزقنا وإياكم العلم النافع

والسلام عليكم ورحمة الله وبركاته

اعلانات

الصورة الرمزية ahmad_s_f
ahmad_s_f
:: المهندس/ أحمد سمير فايد ::
تاريخ التسجيل: Jun 2006
الدولة: سائح في ارض الله
المشاركات: 632
نشاط [ ahmad_s_f ]
قوة السمعة:
قديم 20-03-2009, 11:26 PM المشاركة 74   
افتراضي الدرس الخامس


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

اللهم لك الحمد حتى ترضى ولك الحمد إذا رضيت ولك الحمد بعد الرضا

اللهم زدنا من حبك يا أكرم الأكرمين

صلو ا على الحبيب محمد ... صلوا عليه مرة أخرى

أما بعد :-

إخواني الأحباء المتابعين لهذه الدورة .. أرحب بكم جميعا مرة أخرى .. وأتقدم للجميع بالأسف لتأخري في الدرس الخامس .. ولكن يعلم الله أن هناك ما منعني وأخرني عليكم ..
ولتتقبلوا الأسف مني حاولت أن أقوم بتعويض هذا الخطأ الذي صدر مني (التأخير) وأقدم لكم اليوم إن شاء الله درس دسم نوعاً ما .. ليعوض ما فات من أيام ..
==============================================

((الدرس الخامس))

يحتوي هذا الدرس على التجارب التالية ::
التجربة رقم 8
التجربة رقم 9
التجربة رقم 10
التجربة رقم 11
التجربة رقم 12
التجربة رقم 13
التجربة رقم 14
التجربة رقم 15
التجربة رقم 16
أي أن هذا الدرس يحتوي على تسع تجارب مختلفة .. وأحب أن أخبركم أن هذا الدرس يحتوي على نوعية مختلفة من الشرح فقد ارتقينا من مستوى المبتدئين لمستوى أعلى .. ففي هذا الدرس تم نقاش الكود بطريقة مختلفة تنشط العقل أكثر وأكثر (خصوصا التجربة رقم 12 ).. فالهدف من هذا الدرس الفهم الأقوى لما ينفذه البك خطوة خطوة .. وكيف يمكننا التعديل في ترتيب الأوامر ..

أيضا في هذا الدرس تم استخدام عنصر إلكتروني جديد ::
ففي الدروس السابقة استخدمنا الليدات led والسويتشات push button أما في هذا الدرس فسنستخدم عناصر إضافية وهي السفن سيجمنت ومفكك الترميز 7447 وتم استخدام السفن سيجمنت بطريقة معينة .. وفي دروس قادمة سيكون هناك تفصيل أكثر وأكثر ,, بالإضافة إلى العديد من الطرق والأوامر البرمجية وسأشير بإذن الله إلى كيفية استخدام أكثر من سفن سيجمنت بالعديد من الطرق وسأشرحها بتفصيل أكثر إن شاء الله ..

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

هذا الدرس عبارة عن ملف شرح pdf
38 صفحة
بالإضافة لملف مضغوط يحتوي على ملفات الكود والمحاكاة والهيكس .

==========================================

تستطيع تحميل ملف الشرح Pdf من هنا

ولتحميل ملفات المحاكاة والكود من هنا

=========================================

وفقنا الله جميعا لما يحب ويرضى ورزقنا وإياكم العلم النافع والعمل الصالح

لا تنسونا من دعواتكم ..

والسلام عليكم ورحمة الله وبركاته
=========================================

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

الصورة الرمزية ahmad_s_f
ahmad_s_f
:: المهندس/ أحمد سمير فايد ::
تاريخ التسجيل: Jun 2006
الدولة: سائح في ارض الله
المشاركات: 632
نشاط [ ahmad_s_f ]
قوة السمعة:
قديم 21-03-2009, 06:38 AM المشاركة 75   
افتراضي كلمتان خفيفتان على اللسان ثقيلتان في الميزان سبحان الله وبحمده سبحان الله العظيم


في انتظار أي سؤال أو استفسار عن الدرس الخامس
=====================================

ملحوظة هامة جدا : : يجب أن نعرف الفرق بين ملف المشروع وملف الكود
فهناك ملفات من نوع ppc. وهناك ملفات من نوع c. ما الفرق بينهما ؟؟


إننا الآن عندما نقوم بإنشاء مشروع جديد فإن هذا المشروع يعتبر ملف من النوع ppc. وعندما نقوم بكتابة الكود فإن الكود الذي سنكتبه سيحفظ تلقائيا في ملف من نوع c. وعندما نقوم بعملية ترجمة المشروع فإن ملف الكود c. الذي يعتبر ضمن المشروع يتحول إلى ملف من النوع hex . كما ينتج أيضا انواع أخرى من الملفات .

ما يهمنا الآن ثلاثة أنواع :
ppc
c
hex
الملف الذي من النوع ppc يعتبر هو ملف المشروع فهو الذي يحتوي على ملف الكود c. وهو الذي عند ترجمته يتم إنتاج ملف الهيكس hex .

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

آسف للإطالة في هذه النقطة لكنها مهمة وأساسية .

لذلك ستجد في الملفات المرفقة في الدرس الخامس ملف المشروع ppc. وملف الكود c. وملف الهيكس وملف المحاكاة .. بقية الملفات لسنا بحاجة إليها .. لذلك عندما تريد التعديل في أي كود عليك أن تقوم بفتح ملف المشروع ppc والذي بدوره سيفتح ملف الكود c. فعند تعديلك والقيام بعميلة الترجمة حينها ينتج ملف الهيكس المطلوب ...
============================================
ملحوظة خاصة بملف الشرح (الخاص بالدرس الخامس) :

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

الملحوظة الثانية يوجد خطأ إملائي بسيط في الصفحة رقم 24 التي لها الترقم 82 حيث ستجدوا في السطر الثالث من أسفل كلمة "يمكلون" تصحيحها "يملكون" .
============================================
في انتظار أي سؤال أو استفسار عن الدرس الخامس

============================================
وفقنا الله جميعا لما يحب ويرضى ورزقنا وإياكم العلم النافع والعمل الصالح

والسلام عليكم ورحمة الله وبركاته
============================================


Doimand
:: مهندس ::
تاريخ التسجيل: Mar 2007
المشاركات: 12
نشاط [ Doimand ]
قوة السمعة:
قديم 21-03-2009, 08:24 AM المشاركة 76   
افتراضي


عود حميد أخي أحمد

أظن أنه في الصفحة رقم 7 عند استخدام جملة for لا بد أن تكون x<=9

حتى نعد 10 مرات

أليس كذلك؟؟؟؟؟؟


الصورة الرمزية ahmad_s_f
ahmad_s_f
:: المهندس/ أحمد سمير فايد ::
تاريخ التسجيل: Jun 2006
الدولة: سائح في ارض الله
المشاركات: 632
نشاط [ ahmad_s_f ]
قوة السمعة:
قديم 21-03-2009, 03:50 PM المشاركة 77   
افتراضي


أظن أنه في الصفحة رقم 7 عند استخدام جملة for لا بد أن تكون x<=9

حتى نعد 10 مرات

أليس كذلك؟؟؟؟؟؟
لا يا أخي الكريم .. انتبه للبرنامج مرة أخرى وحاول أن تتخيل ما سينفذه البك
كود:
void main(){ char x; TRISB=0; PORTB=0; delay_ms(1000); while(1){ for(x=0;x<9;x++){ PORTB++; delay_ms(1000);} portb=0;delay_ms(1000); } }
المطلوب من البرنامج العد من 0 إلى 9 ( أي عشر مرات ) ولكن ما هذا إن جملة FOR ستجعل الأوامر تتكرر تسع مرات فقط وليس عشر مرات . نعم صحيح ولكن انتبه قبل جملة FOR هناك الأمر الذي سيجعل البك يبدأ العد من الصفر ثم ينتظر البك لمدة ثانية وبهذا بقي تسع عدات والتي تقوم بهم جملة FOR حيث في كل عدة ستزيد قيمة PORTB عن طريق الأمر PORTB++ وبهذا جملة FOR ستجعل البك يظهر الأرقام من واحد إلى تسعة ..
ففي أول مرة تنفذ فيها جملة FOR عندها X=0 ستصبح قيمة PORTB تساوي واحد عن طريق تنفيذ الأمر PORTB++ وعندما يتم تكرار تنفيذ الأوامر مرة أخرى فستصبح قيمة X=1 وعندها ستصبح قيمة PORTB تساوي اثنين عن طريق الأمر PORTB++ وهكذا إلى أن تصبح قيمة X=8 حينها ستصبح قيمة PORTB تساوي تسعة وبعد ذلك تصبح قيمة X تساوي تسعة وهنا لن يتحقق الشرط X<9 فبهذا ينتهي البك من تنفيذ جملة FOR ولا يقوم بتكرار تنفيذ الأوامر مرة أخرى لذلك سوف ينتقل البك لينفذ الأوامر التي بعد جملة FOR والتي ستجعل قيمة PORTB تساوي صفر ثم ينتظر البك ثم يكرر ذلك كله مرة أخرى وهكذا باستمرار .. تأمل جيدا في الكود وتخيل ما سيحدث .. وأرجو أن تكون وصلت إليك المعلومة .

==========================
وفقنا الله جميعا لما يحب ويرضى ورزقنا وإياكم العلم النافع

والسلام عليكم ورحمة الله وبركاته
==========================
في انتظار مزيد من الأسئلة والاستفسارات حول هذا الدرس

==========================


التعديل الأخير تم بواسطة : ahmad_s_f بتاريخ 21-03-2009 الساعة 03:55 PM

يوسف16
:: مهندس متواجد ::
تاريخ التسجيل: Dec 2004
المشاركات: 56
نشاط [ يوسف16 ]
قوة السمعة:
قديم 26-03-2009, 08:39 PM المشاركة 78   
x5


السلام عليكم اخي احمد
صدقا انا دائما ادعيللك بالموفقية والستر
سؤال؟جدا مهم انت لم تذكره فى الدورة وهو هل يمكننا اعادة البرمجة على البيك يعنى هل يمكننى ان استخدم البيك لاكثر من كود


الصورة الرمزية ahmad_s_f
ahmad_s_f
:: المهندس/ أحمد سمير فايد ::
تاريخ التسجيل: Jun 2006
الدولة: سائح في ارض الله
المشاركات: 632
نشاط [ ahmad_s_f ]
قوة السمعة:
قديم 26-03-2009, 09:35 PM المشاركة 79   
افتراضي


أخي الكريم // يوسف16

سؤال؟جدا مهم انت لم تذكره فى الدورة وهو هل يمكننا اعادة البرمجة على البيك يعنى هل يمكننى ان استخدم البيك لاكثر من كود
فهمت من سؤالك :: هل من الممكن أن نكتب كود معين على البك فيقوم البك بوظيفة معينة .. ثم نقوم بكتابة كود آخر ونكتبه مرة أخرى على البك وبالتالي ستتغير وظيفته ؟؟ أي هل يمكن الكتابة على البك أكثر من مرة ؟؟

إذا كان السؤال كذلك : فالإجابة نعم يمكن ولكن هذا يعتمد على نوع البك المستخدم فالبك الذي يحتوي على الحرف f يتمتع بهذه الصفة فمثلا pic16f84 يمكن أن نكتب عليه أكثر من مرة أما pic16c84 لا يمكن الكتابة عليه أكثر من مرة بسهولة .
حيث أن الحرف f يرمز إلى flash وهي تقنية تسمح للكتابة والمسح عدة مرات .
================
شكراً لك أخي على هذا السؤال وتمنياتي لك وللجميع بالتوفيق .
================
وفقنا الله جميعا لما يحب ويرضى ورزقنا وإياكم العلم النافع والعمل الصالح
وفرج الله همومنا
والسلام علكيم ورحمة الله وبركاته


الصورة الرمزية ahmad_s_f
ahmad_s_f
:: المهندس/ أحمد سمير فايد ::
تاريخ التسجيل: Jun 2006
الدولة: سائح في ارض الله
المشاركات: 632
نشاط [ ahmad_s_f ]
قوة السمعة:
قديم 27-03-2009, 04:04 PM المشاركة 80   
افتراضي تمارين على الدرس السابق ... حاول أن تجيب بقدر استطاعتك على أي سؤال تعرفه .


((تمارين))

السؤال الأول :: لدينا أربع ليدات موصلين بالبك عن طريق B0,B1,B2,B3 المطلوب عمل عداد يقوم بالعد من صفر إلى 15 ثم يقوم بتكرار ذلك العد مرة أخرى من صفر إلى 15 وهكذا باستمرار ...( طبعا العد سيكون بالثنائي لأنه عن طريق الليدات ) .

================================

السؤال الثاني :: لدينا أربع ليدات موصلين بالبك عن طريق B0,B1,B2,B3 المطلوب عمل عداد يقوم بالعد من 15 إلى صفر ثم يعود مرة أخرى إلى 15 ويعد تنازلياً إلى أن يصل للصفر وهكذا باستمرار ..

================================

السؤال الثالث :: لدينا خمس ليدات موصلين بالبك عن طريق B0,B1,B2,B3,B4 المطلوب عمل عداد يقوم بالعد من 10 إلى 31 ثم يبدأ العد من جديد من 10 إلى 31 وهكذا باستمرار ..

================================

السؤال الرابع :: لدينا أربع ليدات موصلين بالبك عن طريق B0,B1,B2,B3 المطلوب هنا عمل عداد يقوم بالعد من 0 إلى 15 وعند وصول العداد إلى الرقم 15 يقوم بالعد تنازليا 15 ثم 14 ثم 13 ثم .. وهكذا إلى أن يصل إلى الصفر . وعند وصوله للصفر يبدأ بالعد تصاعديا من جديد إلى أن يصل إلى 15 .. وبالطبع عند وصوله لـ 15 يبدأ بالعد التنازلي إلى أن يصل للصفر .. وهكذا باستمرار .

================================

السؤال الخامس :: قم بعمل عداد باستخدام سفن سيجمنت واحدة أول ما يبدأ البرنامج يظهر الرقم صفر على السفن سيجمنت. و عند الضغط على السويتش الموصل بـ A0 يقوم البك بزيادة الرقم الموجود على السفن سيجمنت وطبعا هذا العداد يمكنه العد من صفر إلى تسعة فقط . وعند الضغط على السويتش الموصل بـ A1 يقوم البك بتنقيص العدد الظاهر على السفن سيجمنت . ( إلى الآن هذا يشبه التجربة رقم 16 ) الجديد هنا هو أنه عند الضغط على السويتش الموصل بـ A2 يقوم البك بإظهار الرقم 5 على السفن سيجمنت وبالتالي لو ضغطنا على هذا السويتش ثم ضغطنا على السويتش الموصل بـ A0 سيظهر الرقم 6 . لأن السويتش A0 يزيد الرقم الحالي .

================================

السؤال السادس(سؤال قوي نوعا ما):: باستخدام السفن سيجمنت و مفتاحين قم بعمل البرنامج الذي يؤدي الوظيفة التالية : يقوم البرنامج بالعد تلقائيا من 9 إلى صفر وعند الضغط على السويتش الموصل بـ a0 يقوم البرنامج بالعد تصاعديا من صفر إلى 9 وعند الضغط على السويتش الموصل بـ a1 يقوم البرنامج بالعد تنازليا من 9 إلى صفر وهكذا باستمرار ... السؤال بعبارات أخرى البرنامج يقوم بالعد من 9 إلى صفر ثم يكرر هذا باستمرار إلى أن يتم الضغط على المفتاح الموصل بـ a0 حينها يعكس طريقة العد فيقوم بالعد من 0 إلى 9 باستمرار ولكن إذا تم الضغط من على المفتاح الموصل بـa1 سيقوم بالعد من 9 إلى صفر باستمرار .

ملحوظة توضيحية : لو بدأ البرنامج فكانت القيمة التي على السفن سيجمنت 9 ثم بعد مدة أصبحت 8 ثم أصبحت 7 مثلا عند الضغط على المفتاح الموصل بـ a0 حينها سيقوم البك بجعل الرقم الذي على السفن سيجمنت 0 ثم بعد نصف ثانية مثلا يزيد هذا الرقم ويجعله واحد وهكذا .. ولن يجعل الرقم 7 بثمانية .. وأيضاً عند الضغط على المفتاح الموصل بـ a1 سيقوم البك بإظهار الرقم 9 أيا كان الرقم الذي كان ظاهراً قبله ثم بعد نصف ثانية يصبح 8 وهكذا .. أرجو أن تكونوا فهمتم قصدي من السؤال .

======================================

السؤال السابع (سؤال قوي نوعا ما ):: قم بعمل نفس البرنامج السابق ولكن بتعديل بسيط وهو أنه عند الضغط على المفتاح الموصل بـ a0 يقوم البك بزيادة نفس الرقم الظاهر على السفن سيجمنت فلو كان الرقم الظاهر هو 5 وقبل أن يصبح أربعة تم الضغط على المفتاح a0 سيقوم البك بإظهار الرقم 6 ثم ينتظر نصف ثانية ثم يظهر الرقم 7 ثم ينتظر ثم يظهر الرقم ثمانية وهكذا .. ولو كان الرقم الظاهر 8 ثم تم الضغط على المفتاح الموصل بـ a1 سيقوم البك عندها بجعل الرقم الظاهر 7 ثم ينتظر نصف ثانية ثم يجعله 6 .. وهكذا ...

======================================

السؤال الثامن (سؤال قوي نوعاً ما ) : باستخدام السفن سيجمنت و مفتاحين قم بعمل البرنامج الذي يؤدي الوظيفة التالية : في بداية البرنامج يظهر الرقم صفر فقط ولا يحدث أي تغير إلا عند الضغط على السويتش الموصل بـA0 عندها يقوم البك بزيادة الرقم ويجعله واحد وبعد نصف ثانية يقوم تلقائيا بزيادة هذا الرقم ويجعله اثنين ثم ينتظر نصف ثانية ويجعله ثلاثة وهكذا .. ولكن في أثناء ذلك إذا تم الضغط على السويتش الموصل بـ A1 يقوم البك بوقف هذا العداد بمعنى لو أن العداد وصل مثلا إلى الرقم ثلاثة وقبل أن يصل للرقم أربعة تم الضغط على السويتش الموصل بـ A1 سيقوم البك بوقف هذا العداد وسيظل الرقم ثلاثة ظاهر على السفن سيجمنت وفي حالة تم الضغط مرة أخرى على المفتاح الموصل بـ A0 سيقوم البك بزيادة الرقم الموجود حاليا على السفن سيجمنت ( 3 مثلا ) فيجعله 4 ثم ينتظر نصف ثانية ويجعله 5 .. وهكذا إلى أن يتم الضغط على المفتاح A1 فيتوقف هذا العداد . . وهكذا

=====================================

السؤال التاسع :: قم بعمل برنامج يقوم بإظهار الرقم 0 على السفن سيجمنت وعند الضغط على المفتاح الموصل بـ a0 يقوم بجمع واحد على الرقم السابق فبالتالي لو كان الرقم الظاهر صفر سيجعله واحد ولو كان الرقم الظاهر 5 سيجعله 6 وهكذا ( معنى هذا أن كل ضغطة على المفتاح (السويتش) يتم زيادة الرقم ). وعند الضغط على المفتاح الموصل بـ a1 سيقوم بجمع 2 على الرقم السابق فلو كان الرقم الظاهر على السفن سيجمنت 2 سيجعله 4 ولو كان أربعة سيجعله 6 . وهكذا .

=====================================
السؤال العاشر :: قم بعمل نفس البرنامج السابق ولكن بطريقة عكسية فعند الضغط على المفتاح الموصل بـ a0 يقوم البك بطرح واحد من العدد السابق .. وعند الضغط على المفتاح الموصل بـ a1 يقوم البك بطرح اثنين من العدد السابق .
=====================================
السؤال الحادي عشر :: نريد أن نقوم بعمل برنامج تعليمي يقوم بتعليم الأرقام الثنائية ومقابلها بالنظام العشري وتم ما يلي : قمنا بتوصيل 4 ليدات موصلة بـ a0 , a1 , a2 ,a3 وقمنا بتوصيل سفن سيجمنت بـ portb . المطلوب هو عمل برنامج يقوم بالعد من صفر إلى تسعة بالنظامين في نفس الوقت بمعنى أن الرقم الذي سيظهر على الليدات بالنظام الثنائي هو نفس الرقم الذي سيظهر على السفن سيجمنت ولكن بالنظام العشري . فمثلا عن ظهور الرقم 5 على السفن سيجمنت في نفس الوقت سيظهر الرقم 0101 على الليدات ثم بعد ثانية يظهر الرقم 6 على السفن سيجمنت ويظهر في نفس الوقت الرقم 0110 على الليدات وهكذا باستمرار إلى أن يصل العداد للرقم تسعة ثم يبدأ العداد من صفر من جديد .
=====================================
السؤال الثاني عشر :: لنقوم بعملية تطوير للبرنامج التعليمي السابق سنجعل الرقم الذي يبدأ به البرنامج هو صفر (صفر على الليدات وصفر على السفن سيجمنت) وعند الضغط على السويتش الموصل بـ a0 سيتم تزويد هذا الرقم وجعله واحد أي أن كل ضغطة على هذا السويتش سيتم فيها زيادة الرقم . ويوجد أيضا مفتاح موصل بـ a1 كل ضغطة عليه يقوم بتنقيص هذا العدد
=====================================

ملحوظة : في أي سؤال من الأسئلة السابقة اذا تم استخدام السفن سيجمنت تكون حدود العد من صفر إلى تسعة .

=====================================

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

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

وفقنا الله جميعا لما يحب ويرضى ورزقنا وإياكم العلم النافع والعمل الصالح

اللهم فرج همومنا وغمومنا
والسلام عليكم ورحمة الله وبركاته

====================================


التعديل الأخير تم بواسطة : ahmad_s_f بتاريخ 28-03-2009 الساعة 05:02 PM


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