ولكن تواجهنى مشكله وهيا مثلا .. لو انا عندى 10 سوتشات وعايز لما اضغط على سويتش معين يضوى الليد وعند رفع يدى من على السويتش يظل الليد يضوى .. وهذة النقطة لا افهما حيث انا كتبت برنامج أعلاة الموضوع وكتبت أمر الشرط .. عند نزول الفولت صفر فولت على البن porta .. يخرج 5 فولت على البن port b0...
والبرنامج اشتغل معاية تمام ولكن واجهتنى مشكله وهى عند الضغط على السويتش يضوى الليد وعند رفع يدى ينطفئ الليد .. السؤال .. كيف اكتب امر الشرط برمجياا أن يظل الليد يضوى حتى بعد رفع الليد من على السويتش ...
|
كود:
if(portb.f0==0){portc.f0=1;}
لا تضع امر
else
|
والسؤال الثانى كيف يتم استخدام امر الشرط .. مثلا زى البرنامج اللى حضرتك كاتبة .. بمعنى عند الضغط على سويتش معين يضوى الليد رقم 1 .. وعند الضغط على سويتش أخر ينطفى الليد رقم 1 ويضوى الليد رقم اثنين .. السؤال كيف يتم ذالك برمجيااا فى أمر الشرط ..
|
كود:
if(portb.f0==0){portc=1;}////1=0b0000001;
if(portb.f1==0){portc=2;}////2=0b0000010;
if(portb.f2==0){portc=4;}////4=0b0000100;
الامر الاول لجعل البين الاولى مضاءه وبالتالى سينطفئ اى بين اخر
والامر الثانى لحعل البين الثانى مضاءه وبالتالى سينطفئ اى بين اخر
وهكذا باقى الاوامر
وسؤال أخر بعد اذنك أخى الكريم كيف أقوم بذيادة عدد السويتشات وأخليهم مستقلين بتنفيذ اوامر معينه بعيدااا عن ال 10 سوتشات الاولين .. بمعن انا عند ى10 ليدات وكتبت برنامج يضوى الليد حسب السويتش اللى ضغط عليه وال 10 سوتشات دول مربطين ببعض بمعنى لو ضغط على سويتش أخر ينطفئ الليد الاول ويضوى الليد الثانى ... السؤال .. اريد أن اذود 3 سوتشات أخرين يقوموو بضوى 3 ليداد ولكن منفصلين عن بعض .. بمعنى لو ضغط على السويتش رقم 1 يضوى الليد رقم 1 ولو ضغط على السويتش رقم 2 يظل الليد رقم 1يضوى وايضا يضوى الليد رقم 2 وايذا ضغط على السويتش رقم واحد مرة أخرة ينطفئ الليد رقم 1 ويظل الليد رقم 2 يضوى ... اريد معرفة طريقة فصل السيوتشات عن بعضهم ليقوم كل واحد بوظيفة معينة .....
|
كود:
if(portb.f0==0) { while(portb.f0==0){}portc.f0=~portc.f0;}
هذا الكود عند الضغط على السويتش يضيئ الليد وعند ضغط السويتش مره اخرى ينطفئ الليد
كود:
void main() {
adcon1=0x07;
trisb=255;
trisa=255;
trisd=0;
trisc=0;
portc=0;
portd=0;
maty:
if(portb.f0==0){portc=1;}
if(portb.f0==0){portd.f0=0;}
if(portb.f0==0){portd.f1=0;}
if(portb.f1==0){portc=2;}
if(portb.f1==0){portd.f0=0;}
if(portb.f1==0){portd.f1=0;}
if(portb.f2==0){portc=4;}
if(portb.f2==0){portd.f0=0;}
if(portb.f2==0){portd.f1=0;}
if(portb.f3==0){portc=8;}
if(portb.f3==0){portd.f0=0;}
if(portb.f3==0){portd.f1=0;}
if(portb.f4==0){portc=16;}
if(portb.f4==0){portd.f0=0;}
if(portb.f4==0){portd.f1=0;}
if(portb.f5==0){portc=32;}
if(portb.f5==0){portd.f0=0;}
if(portb.f5==0){portd.f1=0;}
if(portb.f6==0){portc=64;}
if(portb.f6==0){portd.f0=0;}
if(portb.f6==0){portd.f1=0;}
if(portb.f7==0){portc=128;}
if(portb.f7==0){portd.f0=0;}
if(portb.f7==0){portd.f1=0;}
if(porta.f0==0){portd=1;}
if(porta.f0==0){portc=0;}
if(porta.f1==0){portd=2;}
if(porta.f1==0){portc=0;}
if(porta.f2==0) { while(porta.f2==0){}portd.f3=~portd.f3;}
if(porta.f3==0) { while(porta.f3==0){}portd.f4=~portd.f4;}
if(porta.f4==0) { while(porta.f4==0){}portd.f5=~portd.f5;}
goto maty;
}
هل هذا ما تريده