الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

برنامج دلفي للتعامل مع Serial Port

مغلق
بدأه electronics في 5 يونيو 2006 · 6 رد · 2,775 مشاهدة · في لغة Delphi
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

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

البرنامج باختصار يقوم بإرسال بيانات إلى السيريال بورت وما أريده هو إعدادات السيريال بورت أي

baud rate

no. of stop bit

parity

flow control

يقوم البرنامج بإرسال 35 بايت فهل يقوم بوضع فاصل زمني بين كل بايت والآخر

ولكم جزيل الشكر وجزاكم الله خيراً

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

delphi_program.rar

1
#2

البرنامج الذي أدرجته يحتاج لكود الوحدة SerialNG.pas.

لا يمكنك الإستفادة من الكود لأنه كله موجود بهذه الوحدة التي تعتمد على مكتبة inpout32.dll في التواصل مع المنفذ التسلسلي.

هذا المشروع هو برنامج يقوم بإرسال جملة. كل حرف يكتب بواسطة 35صمام مضيء led مرصوصة على شكل مصفوفة 7x5.

10.jpg

هذه الجملة يقوم البرنامج بإرسالها نحو لوحة إلكترونية بها ععد من الشاشات ذات 7x5 leds:

05_06_06_09_07_11_1149523631SerialNG.gif

هذه صورة لهذه الشاشات المضيءة مرصوصة بعضها بجانب بعض لعرض رسالة ترحيبية أو بعض الوصلات الإشهارية:

ultra.jpg

يمكنك عمل مشروعك باللغة التي تريدها فالمشروع الذي قمت بإرفاقه إعتمد على مكتبة INPOUT32.DLL ويمكنك فعل نفس الشيء في لغات برمجة أخرى كVB و C++.

تم تعديل هذه المشاركة بواسطة ikossan في 5 يونيو 2006 في 19:11

سأتغيب عن المنتدى وستكون لي زيارات خفيفة بين الحين و الحين

يا صاحب الهم إن الهم منفرج.....................أبشر بخير فإن الفارج الله.

اليأس يقطع أحيانا بصاحبه..........................لا تيأس فإن الكافي الله.

الله يحدث بعد العسر ميسرة.........................لا تفزعن فإن الصانع الله.

إذا بليت فثق بالله وارض به...................فإن الذي يكشف البلوى هو الله.

و الله ما لك غير الله من أحد.......................فحسبك الله في كل لك الله

أخوكم مراد

27_06_06_05_21_41_1151410901logo_adl_wal_ihsan.jpg

#3

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

أشكرك أخي على الرد

أنا أعلم ما هي الفائدة من البرنامج وما هي آلية عمله وانا قادر على كتابة البرنامج بلغات أخرى ولكن كان كل ما أريده هو إعدادات السيريال بورت حتى أستطيع كتابة البرنامج باللغات الأخرى هل يوجد أي طريقة أستطيع بواسطتها الحصول على الإعدادات، لأني أعتقد أن المبرمج الذي كتب هذا البرنامج تعمد إخفاء الإعدادات حتى لا أستطيع كتابة البرنامج بلغات أخرى فهو يعلم أنني قادر على كتابته بلغات أخرى .

لا نستطيع مثلا تحويل الكود إلى أسمبلي و من الأسمبلي نستطيع الحصول على بعض المعلومات

كما أن SerialNG.pas أعتقد أنها اداة خاصة للتعامل مع الدلفي فهل هذا صحيح؟

#4

الوحدة serialng هي من تصميم المبرمج وليست من وحدات ديلفي.

معرفة إعدادات المنفذ لن يفيدك في شيء إذا لم تكن عندك تصميمات اللوحة الإلكترونية وكيفية ربطها بالمنفذ التسلسلي.

يجب دراسة القسم الإلكتروني أولا ثم بعده تدرس وفق طريقة ربطها بالحاسب وبواسطة مكتبة الربط inpout32.dll, كيفية إرسال البيانات.

و قد لا تحتاج لإرسال البيانات بالطريقة التقليدية: أي بإعداد المنفذ,عدد البايتات للكلمة المرسلة, بيت التوقف وبيت البدأ. لأن الإلكتروني لا يتعامل مع منافذ الحاسب كما يتعامل معها المبرمج وفق البروطوكولات الإرسال والإستقبال.

برمج باللغة التي ترتاح لها.

سأتغيب عن المنتدى وستكون لي زيارات خفيفة بين الحين و الحين

يا صاحب الهم إن الهم منفرج.....................أبشر بخير فإن الفارج الله.

اليأس يقطع أحيانا بصاحبه..........................لا تيأس فإن الكافي الله.

الله يحدث بعد العسر ميسرة.........................لا تفزعن فإن الصانع الله.

إذا بليت فثق بالله وارض به...................فإن الذي يكشف البلوى هو الله.

و الله ما لك غير الله من أحد.......................فحسبك الله في كل لك الله

أخوكم مراد

27_06_06_05_21_41_1151410901logo_adl_wal_ihsan.jpg

#5

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

أشكرك أخي ikossan على الرد وتفاعلك معي

أخي بالنسبة للدارة هي موجودة وأعرف تصميمها تماما تتكون الدارة من معالج أتميل موصل بالسيريال بورت طبعا بعد max232 يقوم المعالج بقراءة البيانات من السيريال بورت ويرتبها في الذاكرة الخاصة به حتى ينهي قراءة 35 بايت وبعد ذلك يرسلها إلى shift register عددها 5 أي يقوم بإرسال البيانات سطر سطر ثم يفعل ال leds الخاصة بذلك السطر كانت الدارة تعمل على

baud rate 9600

1 stop bit

no parity

كنا نرسل لها البيانات عن طريق برنامج جاهز موجود على الانترنت أعتقد أنك تعرفه اسمه serial port monitor كما كنا نرسل عن طريق hyper terminal ولكن أخذ شخص ما هذه الدارة وقام بكتابة هذا البرنامج الذي أرسلته لك أول مرة ولم تعد تعمل الدارة إلا على برنامجه وأنا أعرف أنه لا يريدني أن أكتب البرنامج بلغات أخرى لهذا قد يكون قام بتغيير الإعدادات

على كل حال بالنسبة للوحدة serialng بحثت في الانترنت ووجدت أنها ليست من كتابة هذا الشخص وإنما هي جاهزة ومتاحة للجميع وقد أرفقتها لك

serialng.zip

#6

السلام عليكم.

الدارة الإلكترونية ليس لها إرتباط ببرنامج واحد لا تعمل إلا معه!! فهي تستقبل كما قلت 35 bytes من منفذ rs-232 ولا يهم هل مصدرها حاسب أم جهاز آخر.

بيجب فقط أن تعرف ما هي الإعدادات التي تستعملها اللوحة الإلكترونية.

أظن أن الملف للوحدة التي أرفقتها في مشاركتك تعتمد على إعدادجات إفتراضية و هي

comport = 'COM2'

dflt_BaudRate = CBR_9600;

dflt_ParityType = NOPARITY

dflt_StopBits = ONESTOPBIT;

dflt_DataBits = 8;

فما هي إعدادات اللوحة الإلكترونية؟؟

سأتغيب عن المنتدى وستكون لي زيارات خفيفة بين الحين و الحين

يا صاحب الهم إن الهم منفرج.....................أبشر بخير فإن الفارج الله.

اليأس يقطع أحيانا بصاحبه..........................لا تيأس فإن الكافي الله.

الله يحدث بعد العسر ميسرة.........................لا تفزعن فإن الصانع الله.

إذا بليت فثق بالله وارض به...................فإن الذي يكشف البلوى هو الله.

و الله ما لك غير الله من أحد.......................فحسبك الله في كل لك الله

أخوكم مراد

27_06_06_05_21_41_1151410901logo_adl_wal_ihsan.jpg

#7

أخي مراد

شكرا لك ولكن على ما يبدو أن هناك سوء تفاهم بيني وبينك أخي أنا كنت قد ذكرت منذ البداية أنني أريد إعدادات السيريال بورت والفائدة من ذلك هو معرفة إعدادات الدارة لأني كما ذكرت لك أن شخص ما أخذ الدارة وقام بكتابة هذا البرنامج على الدلفي وبالتأكيد قام بتغيير إعدادات الدارة لأن الإعدادات السابقة للدارة والتي كنت أرسل لها عن طريق الهايبرتيرمينال مثلا لم تعد تعمل فبالتاالي لا بد أن الدارة تم تغيير إعداداتها عن طريق تغيير إعدادات معالج الأتميل

فأنا أريد أن أعرف كيف ترسل البيانات إلى الدارة عن طريق الدلفي لأنها نفسها هي إعدادات الدارة أي إذا أرسل على سرعة 9600 فهذا يعني أن السيريال ريجيستير داخل المعالج تمت برمجته على هذه السرعة وكذلك لبقية الإعدادات فإذا تمكنت من معرف الإعدادات أستطيع بأريحية كتابة البرنامج بأي لغة أتقنها

هذه هي الغاية من سؤالي منذ البداية وكل ما أريده هل أستطيع من خلال البرنامج الذي أرفقته في البداية ومن خلال الوحدة serialng التي أرفقتها فيما بعد أن أعرف ما هي إعدادات السيريال بورت أم أقطع الأمل من هذه الطريقة وأبحث عن طريقة أخرى؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟

هذا الموضوع مغلق.

مواضيع مشابهة