كود تفعيل العضوية - الابلاغ عن روابط لاتعمل - صيانة التلفزيون - الحاسبة - الأعضاء المتميزين - البرامج و المخططات - بث مباشر للقنوات الفضائية - إذاعة - تردد القنوات - بحث
|
التسجيل | اجعل كافة المشاركات مقروءة |
منتدى الإلكترونيات قسم الالكترونكس لمناقشة الافكار والمعلومات المتعلقة بالهندسة الالكترونية للمبتدئين والهواة والفنيين - Electronics |
![]() |
|
أدوات الموضوع |
![]() |
#1 |
مهندس
![]()
المشاركات: 44
معدل تقييم المستوى: 0
|
![]() السلام عليكم
نبدا اولا في 1- Device Driver : وهو عبارة عن برنامج خاص بالتعامل مع هاردوير معين يتم انتاجه من قبل الشركة المصنعة لهذا الجهاز ، حيث أن الشركة المصنعة للطابعة تقوم مثلاً بعمل البرنامج الخاص بالطابعة بحيث يحتوي على مجموعة من الأوامر مثل : Print Page ، Print Pages ... الخ ، حيث يقوم المبرمج أو نظام التشغيل بالتعامل مع هذه الأوامر فقط دون الدخول في تفاصيل كيفية عمل هذه الأوامر والتي تهتم بها فقط الشركة المصنعة . 2- Operating System : في اصدارات قديمة من نظام التشغيل Windows كان يمكن للمبرمج التعامل مباشرة مع منافذ الكومبيوتر أو تحديداً مع ال Device Driver مباشرة ، وكان هذا في DOS و Window 9x حيث كان الموضوع يقتر على مجموعة من ال API's للتعامل مباشرة ، ولكن بعد هجوم CIH عام 98 الشهير بدأت نظم التشغيل تحمي الهاردوير عن طريق عدم السماح لأي شخص بالتعامل معه مباشرة . مع الاصدارت التالية تم فقط تعريف نظامين للتعامل مع الهاردوير ، 0 و 3 ، حيث يقوم المبرمج بالعمل في 3 في حين يعمل الهاردوير وال Kernel في ال 0 أو ما يعرف باسم الحلقة 0 - ring 0 - حيث لا يمكن للمستخدم الوصول مباشرة إلى الهاردوير إلا عن طريق kernel . 3- Kernel Mode Driver : وهو برنامج مخصص يمكنه نقل البيانات من وإلى ال Device Driver ، ويتم استخدامه في نظم التشغيل التي لا تسمح بالوصول المباشر إلى الهاردوير . أشهر أنواع ال KMD كمبرمج ويندوز هي inpout32.dll والتي تحتوي على جزء منها Kernel Mode Driver والجزء الآخر خاص بدول API العادية التي تحتويها المكتبة . 4- Programming : المرحلة الأخيرة من هذه العملية ، حيث يتم من خلالها عمل البرنامج الخاص بالتعامل مع المستخدم من جهة ومع الهاردوير من جهة أخرى ، لن تفرق لغات البرمجة كثيراً في هذه النقطة في ال Java نستخدم Javax.comm.parallelport ، في ال PHP نستخدم إحدى السيرفس والتي تسمى lptout ،بخصوص C++ فهي مثلها مثل C# تحت الويندوز ، أما C++ في نظام التشغيل لينوكس نستخدم ioperm الموجودة في <asm/io.h> . منفذ الطابعة 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 الواحد لا يتعدى250 دينار ويمكنك شرائها من أي محل للالكترونيات او من سوق الالكترونيات في باب الشرجي في العراق او في مصر من محلات الالكترونيات وسعر الواحد تقريبا 20قرشاً مصرياً (أقل من ربع جنيه) . خطوتنا الثانية هي معرفة أن لل LED توصيلة للسالب وأخرى للموجب ، قم بتوصيل السالب بواحد من ال Grounds في منفذ الطابعة لديك وقم بتوصيل الموجب في أحد ال Data Pins وليكن الأول لديك ، ومن ثم قم بعمل برنامج سريع يقوم بفتح واغلاق هذا ال Pin . إذا كنت مبرمج .net فقم أولاً بعمل import أو using - حسب VB أو C# - ل : System.Runtime.InteropServices ومن ثم قم باستيراد المكتبة impout32.dll بالشكل التالي - سي شارب - : رمز: [DllImport("inpout32.dll", EntryPoint="Out32")] ، ومن ثم قم بتعريف ال function التالية - مبرمج سي شارب - . رمز: public static extern void Output(int adress, int value); أو مبرمج VB.net : رمز: public static extern sub Output(int adress, int value) end sub ومن ثم قم بكتابة الرقم الذي يحدد ال Pins التي تريدها مفتوحة وليكن مثلاً الأول فقط وقم بارساله باستخدام Output بالشكل التالي : رمز: Output(888, 1); مبرمج VB.net ؟؟؟؟ فقط قم بازالة ال ; من آخر السطر . وحتى إذا كنت مبرمج Visual Basic 6 فهذا الأمر لك أيضاً قم بعمل Module وضع هذا الكود داخله : رمز: 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 Integer, ByVal Value As Integer) ومن ثم في زر الأمر (فتح) : رمز: Out "&H378", 1 زر الأمر (اغلاق) : رمز: Out "&H378", 0 حيث يتم فتح واغلاق كامل ال Pins في كل خطوة . تنبيه : في حالة كونك تعمل على Windows XP فسوف تحتاج لاستخدام هذه المكتبة في الغالب بدلاً من الافتراضية inpout32.dll موجودة في موقع http://www.qariya.com/modules.php?na...getit&lid=2766 أتمنى من الجميع التجربة والسلام عليكم ورحمة الله وبركاته التعديل الأخير تم بواسطة : السايبورج9 بتاريخ 06-11-2008 الساعة 09:27 AM. |
![]() |
![]() |
اعلانات |
![]() |
#2 |
مهندس
![]()
المشاركات: 16
معدل تقييم المستوى: 0
|
![]() إذا كنت مبرمج .net فقم أولاً بعمل import أو using - حسب VB أو C# - ل : System.Runtime.InteropServices ومن ثم قم باستيراد المكتبة impout32.dll بالشكل التالي - سي شارب - :
رمز: [DllImport("inpout32.dll", EntryPoint="Out32")] ، ومن ثم قم بتعريف ال function التالية - مبرمج سي شارب - . رمز: public static extern void Output(int adress, int value); أو مبرمج VB.net : رمز: public static extern sub Output(int adress, int value) end sub ومن ثم قم بكتابة الرقم الذي يحدد ال Pins التي تريدها مفتوحة وليكن مثلاً الأول فقط وقم بارساله باستخدام Output بالشكل التالي : رمز: Output(888, 1); مبرمج VB.net ؟؟؟؟ فقط قم بازالة ال ; من آخر السطر . مشكوووووور والله يعطيك الف عافيه س ممكن تشرحلي النقطة هاي أنا باشتغل على هذا المشروع و بدي توضيح سريع """""""""""إذا كنت مبرمج .net فقم أولاً بعمل import أو using - حسب VB أو C# - ل : System.Runtime.InteropServices ومن ثم قم باستيراد المكتبة impout32.dll بالشكل التالي - سي شارب - :"""""""" |
![]() |
![]() |
اعلانات اضافية ( قم بتسجيل الدخول لاخفائها ) | |||
|
![]() |
#3 |
مهندس متميز
![]() الدولة: casablanca
المشاركات: 712
معدل تقييم المستوى: 0
|
![]() بارك الله فيك
ممكن تظف صور |
![]() |
![]() |
![]() |
العلامات المرجعية |
أدوات الموضوع | |
|
|