متابعة لما سبق هذا مثال عن كود بسيط للتوضيح :
كود:
char select= 0;
unsigned int adc;
void main()
{
adcon1=0b10001110; // or: adcon1= 0x8E ;
porta = 0;
trisa = 255;
trisb = 0; portb = 0;
while (1)
{ adc = ADC_Read(0);
// 1
if (porta.f1 == 1)
{ delay_ms(100); select= 1;}
if (select== 1)
{ portb = 0b11111111; Vdelay_ms(adc); portb = 0; Vdelay_ms(adc);}
//2
if (porta.f2 == 1)
{ delay_ms(100); select= 2;}
if (select== 2)
{ portb = 0b01010101; Vdelay_ms(adc); portb = 0; Vdelay_ms(adc);}
//3
if (porta.f3 == 1)
{ delay_ms(100); select= 3;}
if (select== 3)
{ portb = 0b11110000; Vdelay_ms(adc); portb = 0; Vdelay_ms(adc);}
// 4
if (porta.f4 == 1)
{ delay_ms(100); select= 4;}
if (select== 4)
{ portb = 0b00001111; Vdelay_ms(adc); portb = 0; Vdelay_ms(adc);}
// off
if (porta.f5 == 1)
{ delay_ms(100); select= 0; portb = 0;}
}
}
التطبيق عبارة عن برمجة طرف واحد من Porta هو الطرف RA0 كدخل أنالوج موصول بالرجل الوسطى لمقاومة متغيرة .
على هذه الرجل نحصل على فولت متغير يدخل على الدخل الأنالوج.
و باقي الأطراف كبرمجت كدخول ديجيتال موصولة ب 5 مفاتيح .
والفكرة هي فلاشر بسيط ب 4 حركات ضوئية.
يتم اختيار الحركات بواسطة 4 أزرار
والزر الخامس off يوقف كل الحركات.
والمقاومة المتغيرة تتحكم في السرعة :