تمرين :
الدائرة الكهربية :

فى البرنامج أدناه :
• اشرح البرنامج متتبعا خطوات تنفيذ البرنامج .
• قم بتعديل البرنامج مستخدما الدوال Function .
كود:
sbit LED0 at PORTB.B0; // bit is fully defined
sbit LED1 at PORTB.B1;
sbit LED2 at PORTB.B2;
sbit LED3 at PORTB.B3;
sbit LED4 at PORTB.B4;// اسم يحل مكان البورت
sbit LED5 at PORTB.B5;
sbit LED6 at PORTB.B6;
sbit LED7 at PORTB.B7;
//main function
void main(void) // بداية البرنامج
{
unsigned int c; //for loop Counter
TRISB = 0;// جعل البورت B خرج
PORTB = 0; // حالياً الخرج 0 او سالب
while(1) // حلقة غير منتهية
{
for(c=0; c<10; c++) حلقة عد تبداء من 0 ولحد العد 10 للمتغير C
{
//forward
LED0 = 1; // اضاءة البورت الاول
Delay_ms(1000); // انتظار 1 ثانية
LED0 = 0;// اطفاء البورت الاول
LED1 = 1;// شغل البورت الثاني وهكذا بقية الاوامر
Delay_ms(1000);
LED1 = 0;
LED2 = 1;
Delay_ms(1000);
LED2 = 0;
LED3 = 1;
Delay_ms(1000);
LED3 = 0;
LED4 = 1;
Delay_ms(1000);
LED4 = 0;
LED5 = 1;
Delay_ms(1000);
LED5 = 0;
LED6 = 1;
Delay_ms(1000);
LED6 = 0;
LED7 = 1;
Delay_ms(1000);
LED7 = 0;
//reverse
LED6 = 1;
Delay_ms(1000);
LED6 = 0;
LED5 = 1;
Delay_ms(1000);
LED5 = 0;
LED4 = 1;
Delay_ms(1000);
LED4 = 0;
LED3 = 1;
Delay_ms(1000);
LED3 = 0;
LED2 = 1;
Delay_ms(1000);
LED2 = 0;
LED1 = 1;
Delay_ms(1000);
LED1 = 0;
LED0 = 1;
Delay_ms(1000);
}
//re-initalize PORTB
PORTB = 0b00000000;//تصفير بورت B بالكامل اي اجعل الخرج جميعه سالب
for(c=0; c<10; c++)//
{
PORTB = 0b10101010;//أزاحة بورت B لليسار بواحد
Delay_ms(1000);
PORTB = 0b01010101; //أزاحة بورت B لليمين بواحد
Delay_ms(1000);
}
for(c=0; c<10; c++)
{
PORTB = 0b11110000; //أزارحة بورت B لليسار ب 4 خطوات
Delay_ms(1000);
PORTB = 0b00001111;// أزاحة بورت B لليمين ب 4 خطوات
Delay_ms(1000);
}
for(c=0; c<10; c++)
{
PORTB = 0b11001100;//أزاحة بورت B لليسار ب 2 خطوة
Delay_ms(1000);
PORTB = 0b00110011;// أزاحة يمين 2 خطوة
Delay_ms(1000);
}
for(c=0; c<10; c++)
{
PORTB = 0b10000001; ////ازاحة من اليمين واليسار بواحد
Delay_ms(1000);
PORTB = 0b01000010;
Delay_ms(1000);
PORTB = 0b00100100;
Delay_ms(1000);
PORTB = 0b00011000;
Delay_ms(1000);
PORTB = 0b00100100;
Delay_ms(1000);
PORTB = 0b01000010;
Delay_ms(1000);
}
}
} // نهاية البرنامج
|
خطوة جداً رائعة أستاذنا الكريم .. وان شاء الله سوف احاول كتابة الكود بغير طريقة