|
اسفه على التأخير انا الصقت الكود اللي مو فاهمته بموضوع المشروع المشابه بالخطأ..ثاني مرة تحصل..مفيش تركيز ^_^
CMCON=0x07;
if (PORTA.f0==0){
for(x=0;x<5;x++){portb.f2=0;delay_us(600);portb.f2 =1;delay_us(600);}
delay_ms(250);}
انا قريت الشرح مره ومرتين بس ما وصلت الفكر
اسفه اتعبتك معي
|
هذه الجملة لتحويل المنفذ A باكمله الى منفذ رقمي يمكن التعامل معه بصورة طبيعية ... و هي عبارة ثابتة
عند الضغط على المفتاح الاول المتصل بالمنفذ ar0 فان قيمته سوف تتحول من 1 الى صفر و يتحقق الشرط و يبدا المتحكم بتنفيذ الجمل داخل عبارة الشرط
هذه الجملة من اجل تكوين حلقة تكرارية تتكرر خمس مرات . اي ان الكود الذي بداخلها سيتكرر خمس مرات ..
كود:
{portb.f2=0;delay_us(600);portb.f2 =1;delay_us(600
هذا الكود هو الذي سوف يتكرر خمس مرات تبعا للحلقة التي تحويه ..
في هذا الكود سيتم تغيير قيمة المنفذ ar2 من صفر الى واحد و بالعكس خمس مرات و هكذا سوف تنشا موجة مربعة مكونه من خمس نبضات سيتم عدها لاحقا من قبل البك في دائرة الاستقبال و على اساس عددها سيحدد الليد الذي سيعمل .
مثلا اذا كانوا خمس نبضات يعمل الليد الاحمر و اذا 6 نبضات يعمل الليد الاخضر و هكذا ...
هذه الجمله تجعل البك يتوقف عن العمل لفترة 250 ملي ثانية و لا يستجيب لاي امر خلال هذه الفترة و بذلك سيمنع التداخل بين المفاتيح و و التمييز بينها في حال تم الضغط على مفتاحين بوقت واحد ...