اخى الكريم :
geniusse01 شكرا جدا لك وجزاك الله كل خير على اهتمامك.
بالنسبة للسوال الأول فأنا لااملك برنامج لة بل ارجو التكرم بالمساعدة ولو حتى بالفكرة فى وضع برنامج العداد الذى يقوم بحفظ الرقم الموجود على شاشة اليفن سيجمنت
بالنسبة للسؤال الثانى سأشرح الفكرة من البداية حسب ترتيب البرنامج
للبرنامج وضعان احدهما اوتوماتيك والأخر يدوى
فى الوضع اليدوى واظنة واضحا = عند تغير حالة البورت XX شغل البورت YY كمثال. الا فى الأمر الخاص ببورتB4&B5 فلهم شرط محدد
1- عند الضغط على المفتاح الموصل ب B4 وهو يجعل الموتور يلف يمينا
(PORTC4)شرط ان يتوقف عن الدوران عند تغير حالة المفتاح B6 وهو ليمت سويتش و الذى سيكون نقطة بداية الدوران ونقطة الأنتهاء
2-- عند الضغط على المفتاح الموصل ب B5 وهو يجعل الموتور يلف يسارا(PORTC3)شرط ان يتوقف عن الدوران عند تغير حالة المفتاح B6 وهو ليمت سويتش الذى سيكون نقطة بداية الدوران ونقطة الأنتهاء ايضا
بالنسبة للوضع الأتوماتيكى
فهو محكوم بعدة شروط
اولهما ان يكون المفتاح على البورت D0=1 وهو وضع التشغيل الأتوماتيكى
ثانيا ان يكون المفتاح على البورت D1=1 وهو ليمت اسويتش عند الضغط علية يوكد تمام نزول بكرة السلك استعداد لأن يتم السحب منها
والشرط الثالث ان يكون مفتاح العربة القائمة على لف السلك على البكرة الموجوج على البورت B6=0
فى حالة تحقق الشروط جميعا وعند الضغط على المفتاح الموجود على البورتD2=0 تبداء عملية اللف بالتسلسل التالى ومبدئيا سيبك من الوقت الى انا كاتبة حيث سيتم تعديلة حسب الأحتياج
{PORTC.F3=1;delay_ms(500);PORTC.F3=0;PORTC.F2=1;de lay_ms(500);
PORTC.F6=1;delay_ms(500);PORTC.F7=1;delay_ms(1000) ;
حت الأن اعتقد الكود مفهوم
حيث سيقوم بتنزيل الزراع الحامل لبكرة السلك ويعطى اشارة للبلف لحظيا ثم سيقوم بأدارة البكرة ثم سيقوم بتشغيل موتور السلك ثم سيأمر العداد بالعد
ونأتى للأمور المعقدة
فى بداية الدوران سيكون البورت B6=0 ثم بعد الدوران بثوانى سيكون B6=1 اريد عند تغير حالة البورت B6=1 الى صفر ان يستمر السيتم كما هو لمدة ثلاث ثوانى ثم يعكس أتجاة موتور البكرة ويستمر فى اللف حتى يلامس المفتاح B6 ويجعل حالة البورت B6=0
وعندها يتوقف البرنامج وكأنة انهى عملة
اريد وقت ما يتم تنفيذ البرنامج ( {PORTC.F3=1;delay_ms(500);PORTC.F3=0;PORTC.F2=1;de lay_ms(500);
PORTC.F6=1;delay_ms(500);PORTC.F7=1;delay_ms(1000) ;
) وعندما اغير حالة البورت D3 واجعلها =0 لحظيا ان يجعل جميع مخارج البورت C=0;
وعند الضغط عى مفتاح الأستكمال الموجود على البورتD6 ان يستكمل عمل البرنامج بتشغيل بورتات C7&6&2 مع وضع الشرط السابق ذكرة وهو
بعد الدوران بثوانى سيكون B6=1 اريد عند تغير حالة البورت B6=1 الى صفر ان يستمر السيتم كما هو لمدة ثلاث ثوانى ثم يعكس أتجاة موتور البكرة ويستمر فى اللف حتى يلامس المفتاح B6 ويجعل حالة البورت B6=0
وعندها يتوقف البرنامج وكأنة انهى عملة بمعنى اخر اقسم عمل مرحلة الأوتوماتيك لوضعين ارجو ان اكون استطعت توضيح الفكرة كما كنت تتمنى وجزاك الله خيرا انت وكل من يهتم بأمور المسلمين ويسعى فى قضاء حوائجهم