ارجو المعذره على تاخر الرد
فكنت احاول عمل البرنامج حسب الكود الذى اعطيتنى اياه
لكن يا اخى
عند الضغط على السويتش لا يعطى اى خرج
ارجو التوضيح اكثر من فضلك
واتمنى ان لا اثقل عليك
|
البرنامج انا منفذه على البروتس وكان عامل معي تمام
ومع ذلك ساحاول التوضيح
هذا المثال يقوم باختبار المنفذ A الذي عرفناه على انه منفذ دخول TRISA=0B00011111 والمنفذ B على اساس انه منفذ اخراج حسب التعريف TRISB=0B00000000 طبعا جملة for تعرفها لذا سادخل مباشرة الى جملة switch هذه الجملة تختبر المتغير بين الاقواس وهنا في البرنامج هو PORTA وبالاعتماد على قيمة PORTA فانه سيختبر هل ان قيمة PORTA تساوي الحالة الاولى والتي هي
فاذا كان PORTA قيمته 00000001 اي انه البن RA0 عليه جهد Hi فان الشرط متحقق ، بمعنى اخر اذا تساوت قيمة المنفذ مع ما موجود بين القوس في case الاولى فان تنفيذ البرنامج سيدخل الى الجمل التي بعد هذه ال case المتحققة وينفذها الى ان تصل الى كلمة BREAK و التي تعني توقف واذهب الى نهاية جملة switch بدون المرور بالحالات الاخرى من case اي انه سينقل التنفيذ الى خارج القوس الخاص بجملة switch معلنا عن نهايتها ويعود هنا الى تكرار جملة for هذا في حال كان PORTA مساوي الى ما موجود بين القوسين في جملة case الاولى .
اما اذا لم يكن مساويا لها فانه سينتقل الى جملة case التي بعدها دون تنفيذ ما موجود في case الاولى فاذا تساوى PORTA مع ما موجود بين القوسين في جملة case الثانية فانه سينفذ والا فانه سيختبر الثالثة وهكذا ......
اما اذا لم يجد شي مطابق فانه لم ينفذ شي
هذا ما يتعلق في جملة switch ارجوا ان يكون الشرح وافيا
بالتوفيق