# تنفيذ تعبير switch (count) أى :
أ- تقييم قيمة المتغير count (وهو فى الوضع الابتدائى بصفر) ثم
ب- مقارنة نتيجة التقييم بجميع الحالات التى يذكر فى بدايتها كلمة case يليها ثابت وهو هنا من صفر إلى 15 .
ت- الحالة التى يتم فيها تطابق التقييم مع المقارنة يتم تحويل مسار البرنامج إليها أى تنفيذ التعليمات التى تتضمنها .
وبما أن المتغير count يبدأ بالصفر فإن التطابق يحدث مع case 0 : ومن ثم يتم تنفيذ محتويات هذه الحالة وهى : جعل الشرئح المناظرة للرقم صفر فى الحالة المرتفعة 1 حتى تضىء هذه الشرائح لعرض الرقم صفر . تنتهى محتويات الحالة بكلمة break حيث يتم الخروج عبارة switch (count){ …..}
switch (count) {
case 0 : seg_a=1; seg_b=1; seg_c=1;
seg_d=1; seg_e=1; seg_f=1; seg_g=0;
break;
case 1 : seg_a=0; seg_b=1; seg_c=1; seg_d=0;
seg_e=0; seg_f=0; seg_g=0;
break;
case 2 : seg_a=1; seg_b=1; seg_c=0; seg_d=1;
seg_e=1; seg_f=0; seg_g=1;
break;
case 3 : seg_a=1; seg_b=1; seg_c=1; seg_d=1;
seg_e=0; seg_f=0; seg_g=1;
break;
case 4 : seg_a=0; seg_b=1; seg_c=1; seg_d=0;
seg_e=0; seg_f=1; seg_g=1;
break;
case 5 : seg_a=1; seg_b=0; seg_c=1; seg_d=1;
seg_e=0; seg_f=1; seg_g=1;
break;
case 6 : seg_a=1; seg_b=0; seg_c=1; seg_d=1;
seg_e=1; seg_f=1; seg_g=1;
break;
case 7 : seg_a=1; seg_b=1; seg_c=1; seg_d=0;
seg_e=0; seg_f=0; seg_g=0;
break;
case 8 : seg_a=1; seg_b=1; seg_c=1; seg_d=1;
seg_e=1; seg_f=1; seg_g=1;
break;
case 9 : seg_a=1; seg_b=1; seg_c=1; seg_d=0;
seg_e=0; seg_f=1; seg_g=1;
break;
case 10 : seg_a=1; seg_b=1; seg_c=1; seg_d=0;
seg_e=1; seg_f=1; seg_g=1;
break;
case 11 : seg_a=0; seg_b=0; seg_c=1; seg_d=1;
seg_e=1; seg_f=1; seg_g=1;
break;
case 12 : seg_a=1; seg_b=0; seg_c=0; seg_d=1;
seg_e=1; seg_f=1; seg_g=0;
break;
case 13 : seg_a=0; seg_b=1; seg_c=1; seg_d=1;
seg_e=1; seg_f=0; seg_g=1;
break;
case 14 : seg_a=1; seg_b=0; seg_c=0; seg_d=1;
seg_e=1; seg_f=1; seg_g=1;
break;
case 15 : seg_a=1; seg_b=0; seg_c=0; seg_d=0;
seg_e=1; seg_f=1; seg_g=1;
break;
} //case end
# بعد الخروج من عبارة switch يتم تزايد العداد بواحد فيصبح count = 1 للتجهيز لعرض الرقم 1
count ++;
# بعد الانتهاء من عرض الأرقام من 0 إلى 15 يتم إعادة العرض مرة أوخرى ويتم ذلك عن طريق عبارة الشرط if بمعنى إذا كانت محتويات المتغير تساوى 16 يتم وضع صفر بدلا منها .
if(count ==16) count =0;
# فترة تأخير أو انتظار 1 ثانية بين عرض رقم وآخر للسماح بمشاهدة المعروض
Delay_ms(1000); // Wait for 1 sec before updating the display
# تكرار ما سبق بصفة مستمرة
} while(1); // Infinite Loop
# نهاية الدالة الرئيسية
}