بسم الله الرحمن الرحيم
أخي الكريم .. أتمنى لك التوفيق في ما تريد فعله .. وأسأل الله أن يرزقنا وإياكم العلم النافع .
سأقدم لك بعض معلوماتي المتواضعة عن كيفية الإتصال بالمنفذ RS232 :-
أولا : عليك أن تضيف COMPONANT اسمه MSComm ليمكنك من عملية الإتصال بالمنفذ التسلسلي :
إذا لم تكن تعرف كيف تتم هذه العملية : اتبع ببساطة الخطوات التالية : -
1- اضغط بزر الماوس الأيمن على TOOLBOX ثم اختار Components
2- اختر بعد ذلك Microsoft Comm Control 6.0
3- اضغط OK
والآن قم بوضع هذا الـ COMPONANT في مشروعك في الـ FORM .. ستجد رمزه يشبه التليفون .
طبعا هذا الرمز لن يظهر أثناء تشغيل البرنامج فقط سيظهر في بيئة عمل المشروع.
وسيكون الاسم الافتراضي له هو MSComm1 ومن المؤكد أنك تعلم أنه يمكن تغيير هذا الإسم .
=============================================
=============================================
ثانيا : والآن ما هو الكود الذي سنستخدمه في عملية الإتصال بالسيريال بورت .
هذا الأمر هو الذي يجعلنا نختار رقم البورت فمثلا لو كان COM2 كتبنا يساوي اثنين ولو كان COM1 نكتب يساوي واحد . ( اعتقد أن إعداداته الإفتراضية بواحد).
كود:
MSComm1.Settings = "9600,N,8,1"
حيث 9600 هو الباود ريت BAUDRATE والحرف N يشير إلى no parity والرقم 8 هو عدد DATA BITS و الرقم واحد هو STOP BIT .
كود:
MSComm1.PortOpen = True
هذا الأمر هو الذي سيقوم بعملية فتح البورت (المنفذ) ليستخدمه مشروعنا .
كود:
MsComm1.Output = "AHMAD SAMIR"
هذا الأمر الذي من خلاله نرسل بيانات معينة من خلال المنفذ
في هذا المثال سنرسل العبارة AHMAD SAMIR
كود:
Buffer$ = Buffer$ & MSComm1.Input
هذا الأمر من خلاله سنقوم بعمل متغير من النوع استرنج يستقبل هذا المتغير البيانات الداخلة إلى البورت . وإذا استقبل بيانات مرة أخرى فسيضيفها إلى البيانات القديمة وهكذا .
=================================
أعتقد أن الأمر بسيط جداً .. أليس كذلك .
=================================
والآن يجب التنبيه إلى أمر هام وهو أنه في حالة استخدام الكود السابق بنفس الطريقة فإنه يتوجب عليك أن تقوم بعملية اختبار البورت باستمرار (باستخدام تايمر مثلا ) وهذا طبعا يعتبر عيب في البرنامج لأنه يستهلك جزء أكبر من البروسيسور (المعالج) ولهذا يفضل اللجوء إلى ما يسمى
بـ event driven communications فهذه الطريقة تمتاز بأنها تستهلك وقت أقل من المعالج كما أنها تنفذ أوامر معينة فقط في حالة استلام الداتا ( وليس هناك حاجة لعملية تكرار الإختبار) فقط إذا أردت استخدام هذه الطريقة (وهي الأفضل طبعا) الجأ إلى الصفحة التالية التي فيها شرح وافي لذلك وبها مثال بالكود :-
http://support.microsoft.com/kb/194922
============================================
والآن أحب أن أضيف إليك بعض المراجع التي ستجيبك عن جميع أسئلتك وبها شرح وافي لتقنية الإتصال التسلسلي من عدة جوانب :-
http://mc-computing.com/languages/SerialIO.htm
أيضا هذا الرابط به بعض المعلومات المفيدة
http://digital.ni.com/public.nsf/all...256DA5005FA553
============================================
في النهاية إذا استفدت من مشاركتي هذه فلا تنسانا من دعواتك .
============================================
وفقنا الله جميعا لما يحب ويرضى ورزقنا وإياكم العلم النافع
والسلام عليكم ورحمة الله وبركاته .