اخوانى
هذا برنامج يستخدم البيك 16f84A يتم وضع مفتاح على PORT B= 7(دخل ) ويتم وضع ليد على طرف
PORTB=0
PORTB=1
اى البورت كخرج
بالضغط على المفتاح يضىء الليد الاول
بالضغط على المفتاح مرة ثانية يطفاء الليد الاول
بالضغط على المفتاح مرة ثالثة يضىء الليد رقم واحد ثم ينتظر 1500 ثانية ويضىء الليد الثانى مع بقاء الاول مضاء
وبالضغط على المفتاح رابعا يطفاء الجميع يعنى الاول والثانى
كود:
int X =0;
void main() {
TRISB=128; PORTB=0;
while(1){
if(PORTB.F7==1){ X++; delay_ms(250); }
if(X==1){ PORTB=1;delay_ms(250);}
if(X==2){ PORTB=0;delay_ms(250);}
if(X==3){ PORTB=2;delay_ms(1500); PORTB=3; X=4;delay_ms(250);}
if(X==5){ PORTB=0; X=0;delay_ms(250); }
}
}
وتم عمل هذه الدائرة وتعمل بكفاءة على ارض الواقع
وتم تعديل هذا البرنامج كالاتى:
كود:
int X =0;
void main() {
TRISB=128; PORTB=0;
while(1){
if(PORTB.F7==1){ X++; delay_ms(1000); }
if(X==1){ PORTB.F0=1;}
if(X==2){ PORTB.F0=0;}
if(X==3){ PORTB.F1=1; delay_ms(1500); PORTB.F0=1; X=4; }
if(X==5){ PORTB=0; X=0; }
}
الا انه يعمل بالمحاكاه ولا يعمل اطـــــلاقا على ارض الواقع
ارجو المساعدة لماذا لا يعمل البرنامج المعدل فى الطبيعة ويعمل فى المحاكاه