قلب عربي

هل تريد التفاعل مع هذه المساهمة؟ كل ما عليك هو إنشاء حساب جديد ببضع خطوات أو تسجيل الدخول للمتابعة.
قلب عربي

من قلب العرب لكل البشر

المواضيع الأخيرة

» رابط الي صفحات مشتركة
الفيجوال بيسك والتحكم I_icon_minitimeالأربعاء 16 ديسمبر 2009, 9:02 am من طرف mobi

» قصة الكرواسون
الفيجوال بيسك والتحكم I_icon_minitimeالثلاثاء 08 ديسمبر 2009, 9:35 am من طرف mobi

» عندما تجرح الانثي
الفيجوال بيسك والتحكم I_icon_minitimeالإثنين 07 ديسمبر 2009, 10:59 am من طرف mobi

» فصص فصيرة
الفيجوال بيسك والتحكم I_icon_minitimeالسبت 05 ديسمبر 2009, 12:16 pm من طرف good_heart

» اجمل جمل بالعالم
الفيجوال بيسك والتحكم I_icon_minitimeالسبت 05 ديسمبر 2009, 9:27 am من طرف عاشق لتراب مصر

» الي رجل ...الي نزار
الفيجوال بيسك والتحكم I_icon_minitimeالخميس 26 نوفمبر 2009, 9:59 am من طرف عاشق لتراب مصر

» نزار والسيدة
الفيجوال بيسك والتحكم I_icon_minitimeالخميس 26 نوفمبر 2009, 9:50 am من طرف عاشق لتراب مصر

» نزار والغضب
الفيجوال بيسك والتحكم I_icon_minitimeالخميس 26 نوفمبر 2009, 9:48 am من طرف عاشق لتراب مصر

» انا ونزار
الفيجوال بيسك والتحكم I_icon_minitimeالخميس 26 نوفمبر 2009, 9:40 am من طرف عاشق لتراب مصر

التبادل الاعلاني

احداث منتدى مجاني

تصويت

المتواجدون الآن ؟

ككل هناك 6 عُضو متصل حالياً :: 0 عضو مُسجل, 0 عُضو مُختفي و 6 زائر :: 1 روبوت الفهرسة في محركات البحث

لا أحد


[ مُعاينة اللائحة بأكملها ]


أكبر عدد للأعضاء المتواجدين في هذا المنتدى في نفس الوقت كان 275 بتاريخ الجمعة 18 أكتوبر 2024, 1:41 pm


    الفيجوال بيسك والتحكم

    good_heart
    good_heart


    عدد المساهمات : 60
    تاريخ التسجيل : 04/11/2009
    العمر : 44
    الموقع : egypt

    الفيجوال بيسك والتحكم Empty الفيجوال بيسك والتحكم

    مُساهمة  good_heart الأربعاء 11 نوفمبر 2009, 2:10 pm

    الفجول بيسك و دوره في التحكم




    بعد ان تعلمنا معاً الاعداد الثنائية و كيفية الحويل بينها و فهمنا خصائص و عمل منفذ الطابعة , ننتقل الى القسم البرمجي من الدورة, كما ذكرت في السابق, سأشرح طريقة التحكم برمجيا بواسطة الفجوال بيسك, لاسباب كثيرة منها انه سهل و سريع و ايضا لان اغلب الناس يعرفون الفجول بيسك اكثر من غيره , حتى غير المبرمجين , يعرفون او يسمعون بالفجول بيسك اكثر من غيره.
    قبل البدء احب ان اذكر بعض الملاحظات التي سيواجهها البعض , و لتوفير وقت طرح اسئلة المشاكل التي قد تواجه البعض فاذكر النقطتين التاليتين:
    1. اولا نحتاج الى مكتبة يستطيع من خلالها الفجول بيسك ان يتعامل مع منفذ الطابعة , هي عبارة عن ملف تستطيعون انزاله من الرابط التالي
    اضغط هنا
    ملاحظة هامة : الملف هذا يجب وضعه في مجلد العمل , يعني اول ما تفتح ملف جديد في الفجول بيسك , احفظه على طول و حطه في مجلد معين , و حط الملف ايضا في نفس المجلد, هذا كل مافي الامر!
    2. لن تعمل المكتبة مع الوندوز 2000 او الوندوز اكس بي, ستعمل ان شاء الله في الوندوز ملنيوم و 98.

    لنبدأ العمل بعون الله:
    افتح ا لفجول بيسك و اختر standard EXE و اضغط على open
    اضف الى الفورم الذي تراه امامك زرين امر (command buttons) وغير الcaption كما هو موضح في الصورة:

    الان يجب اضافة module و هو بالضغط باليمين على كلمة project في القائمة الموجودة على اليمين كما هو موضح في الصورة:

    الان نكتب التالي في داخل الmodule
    Public Declare Sub Out Lib "inpout32.dll" Alias _
    "Out32" (ByVal PortAddress As Integer, ByVal Value As Integer)


    يجب ان يكون الكود مشابه تماماً لما ترونه في الصورة التالية:

    يفضل نسخ الجملة في الاعلى بل اطلب نسخة حتى لا تظهر مشاكل تعود لعدم كتابته بالطريقة الصحيحة. عموما الكود الخاص بالتحكم سيكون كالتالي كما هو موضح في الصورة:

    لنشرح الكود الآن:
    الكوماند الاول هو زر ( شغل) و يحتوي على الكود التالي:
    Out &H378, 1
    out هو الامر الذي ينفذ اخراج الفولت و التحكم فيه ( كما ذكرنا صفر وواحد , يعني تشغيل و اغلاق فقط- حاليا)
    &H378, هو العنوان المراد التحكم به, و هو عنوان منفذ الطابعة الديفولت في اغلب الاجهزة و الارقام هي بنظام السداسي العشري( الهكس)
    1 , هو الرقم بالنظام العشري , وهنا هو بيت القصيد, هنا نغير الرقم بحسب حاجتنا, اذا اردنا تشغيل D1 فقط فنكتب 1 ,و اذا اردنا مثلا تشغيل D1 and D2 and D3 يعني بالعدد الثنائي 111 و بتحويلها الى النظام العشري نحصل على الرقم 7 , نضعه مكان الرقم 1 و ستعمل الابر الثلاث ان شاء الله ( اعتقد بدأ الان الاخوان يربطون بين الدروس الماضية).

    الكوماند الثاني هو لاغلاق جميع ما تم تشغيله من ابر, بالتصفير, لاحظوا هنا , اننا نغلق كل شي و ليس شيئا واحد او ابرة واحدة.
    الامر الاخير هو امر ينفذ مع بداية تشغيل البرنامج , في اغلب الاحيان عند توصيل منفذ الطابعة و تشغيل الكمبيوتر تكون جميع المنافذ مشتغلة و تعطي 5 فولت بشكل افتراضي , فيجب تصفيرها في البداية حتى نتحكم بها بالشكل المطلوب.
    اذا فرضنا اننا بعد تشغيل D1 and D2 and D3 اردنا ان نغلق D3 و نبقي على البقية يعملون , ماذا نفعل؟؟ هذا السؤال انتظر الاجابة عليه بعد قراءة الدرس لاعلم مدى استيعابكم.
    اعتقد ان الامور اتضحت اكثر و اكثر الان, كل ماعلينا هو التأكد من ذلك بشكل عملي, و توصيل كيبل الى منفذ الطابعة و بعد الانتهاء من البرمجة او المثال المذكور, نوصل ال voltmeter بمنفذ الطابعة , وصلة نوصلها بالابرة الثانية و الوصلة الاخرى نوصلها بالابرة رقم 25 و نشغل البرنامج و نرى تغيير الفولت فيه. صورة للvoltmeter موجودة هنا:

    يمكن توصيل LED الى الابر التي ذكرتها و عند تشغيل البرنامج بنجاح سيضيء الLED و عند الضغط على اغلاق سيطفأ الLED

    **** الاخوة المبتدئين لا تقرأوا هذه الفقرة لانكم لن تحتاجونها و يمكن تزيد التعقيد ان وجد****
    وحتى لا نظلم اصحاب الانظمة الاخرى مثل اللنكس , فاني وجدت كود للغة السي ( لم اجرب الطريقة لكنني وجدتها في احد المواقع)

    #include
    #include
    #include
    #include

    #define base 0x378 /* printer port base address */
    #define value 255 /* numeric value to send to printer port */

    main(int argc, char **argv)
    {
    if (ioperm(base,1,1))
    fprintf(stderr, "Couldn't get the port at %xn", base), exit(1);

    outb(value, base);
    }

    الان احفظ الملف باي اسم و ليكن lpt_test.c ثم نفذ الامر التالي:

    gcc -O lpt_test.c -o lpt_test
    تكد من انك الرووت, و نفذ الامر التالي:
    chmod +s lpt_test
    و شغل البرنامج و ان شاء الله سيعمل معك , مع العلم ان الرقم 255 هو الرقم العشري بمعنى ان كل الابر ستعمل وقتها , غير القيمة الى اي قيمة تريدها حتى تملك التحكم الاكبر.
    **** انتهت فقرة التعقيد****
    هنا نكون قد وصلنا الى نهاية الدرس الثالث و اعتقد ان بعض الاسئلة و الاستفسارات التي كانت موجودة قبل الوصول لهذه المرحلة قد تمت الاجابة عليها , و ان شاء الله في نهاية الدورة ستتضح كل الامور الغامضة في هذا الموضوع.

      الوقت/التاريخ الآن هو الثلاثاء 26 نوفمبر 2024, 5:24 pm