تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
عرض جميع منافذ الـ usb
#21
حلو

الطريقة بسيطة وابسط مما تتخيل

الكود المستعمل في البرنامج السابق (طبعا محول للفيجوال على حسب طلبك)

ملاحظة : الbutton1 هو لتشغيل الD3
والbutton2 لإغلاقه

PHP كود :
Imports System.Runtime.InteropServices
Partial 
Public Class Form1
    Inherits Form

    
<DllImport("inpout32.dll"EntryPoint:="Out32")> _
    
Public Shared Sub Output(ByVal address As IntegerByVal value As Integer)
    
End Sub


    
Private address As Integer 888
    
Private outData As Integer 0
    
Private IsD3Open As Boolean False

    
Private Sub Form1_Load(ByVal sender As ObjectByVal e As EventArgsHandles Me.Load
        Output
(address0)
        
IsD3Open False
    End Sub


    
Private Sub Button1_Click_1(ByVal sender As System.ObjectByVal e As System.EventArgsHandles Button1.Click
        
If IsD3Open FalseThen
            outData 
+= 8
            IsD3Open 
True
            Output
(addressoutData)
        
End If
    
End Sub

    
Private Sub Button2_Click_1(ByVal sender As System.ObjectByVal e As System.EventArgsHandles Button2.Click
        
If IsD3Open True Then
            outData 
-= 8
Output
(addressoutData)
            
IsD3Open False
        End 
If
    
End Sub
End 
Class 

لو تسئلني لماذا وضعت 8 لانها تنحسب بهذي الطريقة

لدينا 8 مخارج
والبايت لديه 8 ارقام ايضا بين 0 و 1


كل خانة في البايت تعبر عن مخرج

مثلا لو كتبت 00000010 `ذلك يساوي 3 بالديسمال او outData = 3

هذا الامر يعني تشغيل المخرج D1 واغلاق البقية

لو امبي اشغل المخرج الاول والمخرج الاخير بيكون البايت جدي 10000001

ولو اردت تشغيل جميع المخارج يكون البايت 11111111

كما ترى العملية سهلة ولكن لايمككنا كتابة 11111111 وارسالها باستعمال دالة output فهي تتطلب قيمة من نوع decimal

لذلك علينا التحويل من النظام الثنائي الى العادي (ديسمال)

-
فالان 8 تساوي في الثنائي 00001000

اي تشغيل المخرج الرابع

D0,D1,D2,D3

كما ترى ترتيب المخرج هو الرابع

لذلك كتبت 8 ليتم تشغيله

ولاقوم بإطفائه قمت بسحب ال8 التي اضفتها عبر outData -= 8


--

الان لو اردت تشغيل D5 ماهو الرقم الذي يشير اليه ؟؟

احنا قلنا ان كل خانة في البايت تشير لمخرج لذلك البايت بكون جدي عشان نشغل D5
0 0 0 0 0 1 0 0
D7 D6 D5 D4 D3 D2 D1 DO

يعني 00100000
وبالتحويل للنظام العادي يصبح 32

اي لتشغيل D5 تكتب

outData += 32

ولاطفائه نقوم بسحب ال 32

outData -= 32



--


وال address هو عنوان بورت الparallel
افتراضيا هو يكون 888 اي 378 hex

ولكن اذا كان عندك بورتين راح يكون هناك عنوان مختلف لكل منهما _ يمكنك معرفة العنوان من الdevice manger

اتمنى توصل الفكرة واستفدت مني

وانا حاضر لأي استفسار


تحياتي
الرد }}}
تم الشكر بواسطة:


الردود في هذا الموضوع
عرض جميع منافذ الـ usb - بواسطة kslawy - 25-07-13, 12:05 AM
عرض جميع منافذ الـ usb - بواسطة kslawy - 25-07-13, 11:03 AM
عرض جميع منافذ الـ usb - بواسطة الشاكي لله_mybb_import4784 - 26-07-13, 01:29 AM

المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  إغلاق الفورم مع حذف جميع البيانات الموجودة به صالح عبدالله 10 1,052 19-04-25, 08:54 PM
آخر رد: Kamil
  [VB.NET] مشكل ظهور Query SQLITE في إظهار جميع التواريخ b4getws 3 530 28-02-25, 10:36 AM
آخر رد: b4getws
  [VB.NET] استعراض بيانات في Datagridview واضافة جميع البيانات لجدول محدد sql skode 0 491 12-01-25, 12:50 AM
آخر رد: skode
  اريد كود يحذف جميع سجلات جدول بقاعدة بيانات اكسس دفعه واحده khalidalwdi 2 649 18-11-24, 01:02 AM
آخر رد: rdxdz
  [VB.NET] مساعدة في تغير لون جميع شاشة المشروع MOHAMMED ALZWI 2 492 29-08-24, 02:33 PM
آخر رد: MOHAMMED ALZWI
  تعديل طول حقل معين في جميع جداول القاعدة atefkhalf2004 1 422 09-03-24, 03:17 AM
آخر رد: atefkhalf2004
  تحميل جميع الماسحات الضوئية المتصلة بالجهاز في كومبوبوكس جيولوجي مبتدئ 2 592 22-02-24, 07:10 PM
آخر رد: جيولوجي مبتدئ
  [VB.NET] احتاج كود يغلق جميع الفورم ويبقي فقط الفورم Home Ali_hassn 4 911 15-08-23, 06:43 PM
آخر رد: Alexander Max2
  سؤال حول اغلاق جميع النوافذالمفتوحة maherhaddaf 3 798 20-07-23, 08:48 AM
آخر رد: maherhaddaf
  أريد كود لغلق جميع النوافذ عند تسجيل الخروج Emam emam 2 825 10-07-23, 02:12 AM
آخر رد: Emam emam

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم