البرنامج :
يتلخص البرنامج فيما يلى :- تعريف كل طرف ميكروكونترولر يتصل بمفتاح باسم هذا المفتاح باستخدام موجه التعريف , على سبيل المثال # define KEY1 PORTB.B0 للمفتاح المتصل بالطرف RB0 .
- فى بداية الدالة الرئيسية main يتم إعلان ثلاثة متغيرات لكل مفاتيح متغير لحفظ حالته وتخصيص الصفر له كحالة ابتدائية , على سبيل المثال unsigned state_key1= 0 .
- كما يتم جعل جميع الأطراف التماثلية أطراف رقمية للدخل / الخرج الرقمى عن طريق السجل ADCON1 = 6 .
- وإعداد المنفذ PORTD كمخارج TRISD=0وتصفيره PORTD = 0و المنفذ PORTB كمداخل TRISB=0XFF ( على الرغم من أن حالته الافتراضية مداخل) والمنفذ PORTA كمداخل أيضا TRISA =0XFF.
- تمكين الرفع لأعلى داخليا عن طريق OPTION_REG.B7= 0 لتوفير استخدام مقاومات رفع خارجية .
- الغرض من تلك الإعدادات التعرف على التقنيات المختلفة .
الآن يأتى دور حلقة البرنامج اغير منتهية وفيها :
- يتم كشف الضغط على المفتاح (كشف تحول حالة الطرف للحالة المنخفضة) عن طريق استخدام دالة المفتاح , وعند تحقق الضغط يتم وضع الحالة 1 بمتغيره :
if (button (& portb, 0, 25, 0)) state_key1= 1
- ثم كشف تحريره بعد ضغطه عن طريق إجراء عملية "و" AND بين حالة الضغط و حالة التحرير:
if (state_key1&& button(&portb, 0, 25, 1))
- عند تحقق ذلك يتم تنفيذ العبارات المطلوبة منه وفى النهاية يتم تصفير متغيره للحالة الابتدائية تجهيزا للضغطة التالية state_key1= 0.