|
:: مهندس متواجد ::
تاريخ التسجيل: Apr 2007
الدولة: Syria -Aleppo
المشاركات: 59
|
|
نشاط [ mared83 ]
قوة السمعة:
|
|
25-07-2010, 02:07 PM
المشاركة 15
|
|
بسم الله والصلاة والسلام على رسول الله
اشكر جميع الأخوة على الكلام الطيب والتشجيع الرائع.
قبل الدخول في المرحلة الأخيرة يجب معرفة بعض الأمور وهي :
حتى نستطيع التحكم بمنفذ الطابعة LPT يجب أن نضيف مكتبة ربط اسمها inpout32.dll إلى برنامجنا سنجدها على الرابط التالي:
http://www.4shared.com/file/NFjynYAE/inpout32.html
ننسخ الملف بعد فك الضغط عنه ونضعه في المجلد الذي حفظنا به المشروع وتنتهي المشكلة.
الأمر الثاني : هو أن مخارج منفذ الطابعة تكون جميعها في حالة 1 منطقي أي أنها تعطي جهد قدره 5V ومهمتنا هي أننا سوف نجعلها جميعها 0 منطقي في بداية عمل برنامجنا .
دعونا نتعرف على بعض الكودات التي سوف نستخدمها:
الأمر Out &H378, 0 يجعل جميع المخارج 0 منطقي يكون الجهد عليها 0 V
يمتلك منفذ الطابعة ثمانية مخارج تبدأ من الرجل رقم 2 وتنتهي بالرجل رقم 9
إن أردنا أن نخرج على المخرج الأول قيمة 1 منطقي أي جهد قدره 5V نكتب الأمر التالي Out &H378, 1
إن أردنا أن نخرج على المخرج الثاني قيمة 1 منطقي أي جهد قدره 5V نكتب الأمر التالي Out &H378, 2
إن أردنا أن نخرج على المخرج الثالث قيمة 1 منطقي أي جهد قدره 5V نكتب الأمر التالي Out &H378, 4
إن أردنا أن نخرج على المخرج الرابع قيمة 1 منطقي أي جهد قدره 5V نكتب الأمر التالي Out &H378, 8
إن أردنا أن نخرج على المخرج الخامس قيمة 1 منطقي أي جهد قدره 5V نكتب الأمر التالي : Out &H378, 16
إن أردنا أن نخرج على المخرج السادس قيمة 1 منطقي أي جهد قدره 5V نكتب الأمر التالي : Out &H378, 32
إن أردنا أن نخرج على المخرج السابع قيمة 1 منطقي أي جهد قدره 5V نكتب الأمر التالي : Out &H378, 64
إن أردنا أن نخرج على المخرج الثامن قيمة 1 منطقي أي جهد قدره 5V نكتب الأمر التالي Out &H378, 128
الآن لو أردنا أن نخر ج 1 منطقي على المخرج الأول والثاني معا نكتب الأمر التالي: Out &H378, 3
و لو أردنا أن نخر ج 1 منطقي على المخرج الأول والثاني والثالث معا نكتب الأمر التالي: Out &H378, 7
أي أننا نكتب بعد الفاصلة مجموع الأرقام المكتوبة بعد الفاصلة في جميع الأوامر للمخارج المطلوبة .
وان أردنا أن نجعل المخرج الأول 0 والثاني والثالث 1 نكتب الأمر التالي: Out &H378, 6
أتمنى أن يكون الشرح واضح ومستعد للإجابة عن الأسئلة .
نعود الآن لبرنامجنا.
نحن نستخدم في مشروعنا ثلاث مخارج فقط هي :
المخرج الأول (الرجل رقم 2 ) وسوف تكون مهمته إعطاء البيانات ( الشخص الذي يوزع البنادق ) وهو مربوط مع النقطة 14
المخرج الثاني( الرجل رقم 3 ) ومهمته توليد نبضات الساعة ( يمثل طابور الجنود) وهو مربوط مع النقطة 11
المخرج الثالث (الرجل رقم 4 ) ومهمته إظهار النتائج وتجديدها كل مرة ( قائد الجنود) وهو مربوط بالمأخذ رقم 12
فكرة عمل البرنامج:
الفكرة الأساسية في عمل برنامجنا تكون كالتالي:
سوف نجعل البرنامج يقرأ القيمة المكتوبة في كل أداة Label وذلك بشكل متتالي من Label1 حتى Label16 فمثلا
لو كانت القيمة في Label1 هي 0 هذا يعني أن الجهاز الأول مطفئ . ومن اجل إرسال هذه المعلومة لدارتنا الالكترونية نقوم بما يلي:
نجعل المخرج الأول 0 منطقي أي ( نجهز بندقية فارغة) ثم نجعل المخرج الثاني 1 منطقي (ندفع جندي ليأخذ البندقية الفارغة)
أما إذا كانت القيمة المكتوبة في Label1 هي 1 هذا يعني أن الجهاز الأول شغال . ونرسل هذه المعلومة كما يلي:
نجعل المخرج الأول 1 منطقي أي ( نجهز بندقية مملوءة) ثم نجعل المخرج الثاني 1 منطقي (ندفع جندي ليأخذ البندقية المملوءة)
نكرر العملية السابقة مع باقي الأدوات حتى أخر واحدة .
بعد الوصول وفحص قيمة آخر واحدة أي Label16 نعطي الأمر بإظهار القيم على جميع المخارج في الدارة وذلك بجعل المخرج الثالث 1 منطقي
ثم 0 منطقي وهو ما شبهناه بعملية إطلاق النار
يتبع.........
التعديل الأخير تم بواسطة : mared83 بتاريخ 25-07-2010 الساعة 02:10 PM
|