السلام عليكم و رحمة الله و بركاته
م/أحمد ، أرجو أن تقبلني تلميذا عند حضرتك
أنا متابع للدورة منذ بدايتها
و في برمجتي أستخدم PIC16F628A و هو تطوير ل PIC16F84A
و قد كتب البرنامج التالي و هو بسيط جدا
و لكنه لا يعمل سواء على Proteus أو على الPIC نفسه بعد برمجته
كود:
void main()
{
int i;
int j;
VRCON = 0x00;
CMCON = 0x07;
trisa=trisa | 0xff;
trisb=0x00;
portb=0x00;
loop:
if(porta.f4==0)
portb=0b00000001;
{
for(i=0;i<4;i++)
{
for(j=0;j<7;j++)
{
portb=portb<<1;
delay_ms(200);
}
for(j=0;j<7;j++)
{
portb=portb>>1;
delay_ms(200);
}
}
}
if(porta.f5==0)
{
for(i=0;i<4;i++)
{
portb=0b00011000;
delay_ms(200);
portb=0b00111100;
delay_ms(200);
portb=0b01111110;
delay_ms(200);
portb=0b11111111;
delay_ms(200);
portb=0b01111110;
delay_ms(200);
portb=0b00111100;
delay_ms(200);
portb=0b00011000;
delay_ms(200);
portb=0b00000000;
delay_ms(200);
}
}
goto loop;
}
وظيفة الأمرين
كود:
VRCON = 0x00;
CMCON = 0x07;
أنهما يلغيان ما يسمى بال Comparator و هو ميزة في هذا النوع من PIC لا توجد في 84A و هي تعمل على الأرجل A1,A2
أرجو توضيح الخطأ في الكود أو في طؤيقة التعامل مع هذه الأرجل