منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : دورة منفذ الطابعة:الدرس الثالث-منفذ الطباعة Parallel Port وطريقة التعامل معه بالتفصيل
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
بسم الله الرحمن الرحيم .

السلام عليكم ورحمة الله وبركاته .



مقدمة :
كان درسنا السابق مخصصاً للحديث باختصار عن منافذ الكومبيوتر ، هذا الدرس للحديث عن واحد منها ولكن بالتفصيل نظراً لإننا سوف نقوم باستخدامه ضمن هذه السلسة اضافة لكونه المنفذ الأشهر لعمليات التحكم من خلال الكومبيوتر قبل أن يظهر USB كمنافس قوي لهذا المنفذ ، ولكن ليس للمبتدئين .

منفذ الطابعة Parallel Port Interface :
يعد منفذ الطابعة أسهل المنافذ للتعامل معها من خلال الكومبيوتر نظراً لكونه أصبح شاغراً بعد ظهور USB واعتماد الأجيال الحديثة من الطابعات عليه ، أيضاً كونه سهل في التعامل معه ولا يحتاج إلى أدوات اضافية وغيره .



وباختصار فإن منفذ الطابعة مكون من خمسة وعشرين Pin أو Hole حسب شكل المنفذ ( بمعنى غاطس أو بارز ) تقوم بارسال 0 في حالة Close و 1 في حالة Open - حيث أن 1 هي قيمة تقترب من 5 volte في أغلب الأحيان - .

تركيب منفذ الطابعة :




سنبدأ الشرح من خلال الصورة السابقة :
الرقم 1 + الأرقام 14،16،17 تسمى بالـ Control Pins .
الأرقام من 2 إلإلى 9 تسمى بالـ Data Pins .
الأرقام من 10 إلى 13 + 15 تسمى بال Statues Pins .
الأرقام من 18 إلى 25 تسمى بالـ Ground Pins .

Control Pins :
عدد 8 من المنافذ ولكن 4 منها غير ظاهرة تستخدم للادخال والاخراج في نفس الوقت .

Data Pins :
هذه هي ال Pins هي الأشهر والأكثر استخداماً ، وتستخدم دائماً لعرض البيانات بعد توصيلها بجهاز مناسب ، وعددها 8 ، وفي الطابعات كانت تستخدم هذه المنافذ لنقل البيانات إلى الطباعة تمهيداً لعملية طباعتها .

Statues Pins :
تستخدم هذه المنافذ لادخال البيانات ، وعددها الفعلي هو 8 وليس خمسة ولكن هناك ثلاث منها غير ظاهرة ، وفي الطابعات كانت تستخدم لادخال بيانات من الطابعة إلى الكومبيوتر مثل رسائل اشعار انتهاء ورق الطابعة .

Ground Pins :
كأي دائرة كهربائية ، لا بد من وجود قطب موجب وقطب سالب لتعمل الدائرة ، ال Ground هو ما يشكل القطب السالب ، وفي العادة لا يتم استخدام سوى واحد فقط من ال 8 pins لجميع ال Pins الخاصة بالادخال والإخراج .

ارسال البيانات عبر منفذ الطابعة .

لارسال البيانات عبر منفذ الطابعة لا بد من تحديد رقم المنفذ اولاً وعادة ما يكون 387h ومن ثم ارسال قيمة ما بين 0 إلى 255 لتحديد ال Pins التي ستكو عليها القيمة 1 بالشكل التالي مثلاً :
لجعل جميع Pins مفتوحة = 11111111 بالعد الثنائي binary وهو ما يساوي 255 .
لجعل Pins الأول والثاني والرابع والسادس مفتوحة = 00101011 بالعد الثنائي binarty وهو ما يساوي 1+2+16+64 = 83 .
*** لمزيد من التفاصيل راجع الدرس الأول الخاص بالتعامل مع نظم الأعداد .

تحديد رقم منفذ الطابعة :
قد يحتوي جهازك على أكثر من منفذ للطابعة اضافة إلى احتمالية كون رقم المنفذ غير الافتراضي ، لذلك من لوحة التحكم Control Panel - النظام System - الأجهزة Hardware - ادارة الأجهزة Device Manager - المنافذ Ports (COM & LPT) - منفذ الطابعة Printer Port (LPT1) - الخصائص Properties ، ثم من خلال المصادر Resources ثم Resources Setting سوف تجد الرقم المخصص للمنفذ الخاص بك .

في الدرس القادم سوف نتعلم كيفية برمجة المنفذ ، ولكن حتى الدرس القادم تستطيع عمل هذه التجربة البسيطة :

تجربة :

قم بشراء واحد من ال LED's من أي محل للالكترونيات ، وباختصار فال Leds هي عبارة عن انوار كهربائية بسيطة تنير عندما يمر فيها فرق جهد = 5 ، وفي خلال دروسنا القادمة سوف نتعرف تفصيلاً على تركيبه هو وبعض الأجزاء الأخرى التي سوف نقوم باستخدامها .



سعر ال LED الواحد لا يتعدى 20 قرشاً مصرياً (أقل من ربع جنيه) ويمكنك شرائها من أي محل للالكترونيات .

خطوتنا الثانية هي معرفة أن لل LED توصيلة للسالب وأخرى للموجب ، قم بتوصيل السالب بواحد من ال Grounds في منفذ الطابعة لديك وقم بتوصيل الموجب في أحد ال Data Pins وليكن الأول لديك ، ومن ثم قم بعمل برنامج سريع يقوم بفتح واغلاق هذا ال Pin
.

إذا كنت مبرمج .net فقم أولاً بعمل import أو using - حسب VB أو C# - ل : System.Runtime.InteropServices ومن ثم قم باستيراد المكتبة impout32.dll بالشكل التالي - سي شارب - :

PHP كود :
[DllImport("inpout32.dll"EntryPoint="Out32")] 

ومن ثم قم بتعريف ال function التالية - مبرمج سي شارب - .


PHP كود :
public static extern void Output(int adressint value); 


أو مبرمج VB.net :

PHP كود :
public static extern sub Output(int adressint value)
end sub 

ومن ثم قم بكتابة الرقم الذي يحدد ال Pins التي تريدها مفتوحة وليكن مثلاً الأول فقط وقم بارساله باستخدام Output بالشكل التالي :

PHP كود :
Output(8881); 

مبرمج VB.net ؟؟؟؟ فقط قم بازالة ال ; من آخر السطر .


وحتى إذا كنت مبرمج Visual Basic 6 فهذا الأمر لك أيضاً ولكن وفر وقتك وجهدك وتحول إلى .net - دعاية مجانية - .

قم بعمل Module وضع هذا الكود داخله :

PHP كود :
Public Declare Function Inp Lib "inpout32.dll" _
Alias 
"Inp32" (ByVal PortAddress As Integer) As Integer
Public Declare Sub Out Lib "inpout32.dll" _
Alias 
"Out32" (ByVal PortAddress As IntegerByVal Value As Integer

ومن ثم في زر الأمر (فتح) :

PHP كود :
Out "&H378"


زر الأمر ( إغلاق ) :

PHP كود :
Out "&H378"

حيث يتم فتح واغلاق كامل ال Pins في كل خطوة .

تنبيه : في حالة كونك تعمل على Windows XP فسوف تحتاج لاستخدام هذه المكتبة في الغالب بدلاً من الافتراضية inpout32.dll وهي موجودة هنا .

أتمنى من الجميع التجربة ، وفي حالة واجهتكم أي مشاكل سنتناقش فيها سوية إن شاء الله .

والله الموفق ..
والسلام عليكم ورحمة الله وبركاته .