hanysaad

سلسلة دروس لشرح التعامل والتحكم بالparallel port

268 ردود في هذا الموضوع

اخ هاني، صار (غدا) وانا ناطر بقية الدروس :D

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
السلام عليكم

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

بالفعل انا اشعر بسعادة غامرة عندما ارى انه يوجد من استفاد من شرحى , وانت خير مثال على ذلك

انا شفت المثال وجربته وهو اكثر من رائع

شكرا جزيلا مرة اخرى وبارك الله فيك,

العفو اخي hanysaad هذا اقل واجب امام المجهود الذي تبذله معنا

جزاك الله خير

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

الجزء الثانى من الدرس الثالث

وانا اسف على التأخير,

08_09_05_01_15_58_11262105583-_.jpg

فى المرفقات الدرس بصيغة pdf

فى انتظار ردودكم واسئلتكم :rolleyes:

3-2.pdf

تم تعديل بواسطه hanysaad
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

جزاك الله خيرا أخي و زادك من علمه... (h)

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

جزاك الله خير اخي هاني سعد وشكرا على مجهودك وتعبك معنا

بعد إذن أستاذنا أريد أن أضيف جزء و هو لعمل complement لpin واحده في البورت

و ال complement هو قلب قيمه ال pin فإذا كانت 0 تصبح 1 والعكس صحيح

ويتم ذلك عن طريق ال Xor فمثلا إذا اردنا قلب القيمه المطبقه على ال pin رقم 5 من ال control port دون التأثير على باقي الpins نقوم بقرأه القيمه المطبقه على ال control port و نعمل لها Xor مع 00010000 و هو يكافيء 16 بالعشري

(اي نعمل Xor مع الصفر لكل البينات التى لا نريد تغير قيمتها و Xor مع الواحد للبينه التى نريد قلبها ، فإذا كانت القيمه المطبقه على البينه رقم 5 هي 1 فإن 1 Xor مع 1 بنتج 0 وإذا كانت القيمه المطبقه على البينه رقم 5 هي 0 فإن 0 Xor مع 1 بنتج 1 )

نفرض ان القيمه المطبقه على البورت هي 00101001 ونريد قلب البينه رقم 5

00101001

Xor

00010000

---------------

00111001

وهنا تلاحظ ان البينه رقم 5 اصبحت 1 بدلا من ال 0 اما باقي البينات لم تتأثر

ولو فرضنا ان القيمه المطبقه على البورت هي 01010100 ونريد قلب البينه رقم 5

01010100

Xor

00010000

----------------

01000100

وتلاحظ ان البينه رقم 5 اصبحت 0 بدلا من 1 وباقي البينات لم تتأثر

و لتنفيذ ذلك بالفيجوال بيسيك نستخدم الكود التالي :

Private Sub Command1_Click()
value1 = inp(&H37A)
value2 = value1 Xor 16
out &H37A, value2
End Sub

تم تعديل بواسطه Amrkhaledccd
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

اخي هاني

جزاك الله خيرا على هذه الدروس واعتذر حبيبي على عدم المتابعة والله مشغول الى درجة لا تتصورها

إن شاء الله لو تجمع الملفات بحيث يمكنن قرائتها متسلسلة مباشرة يكون أفضل

وفقك الله تعالى لكل خير

تحياتي لك

اخوك ناصر

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

هلأ بالمقال ذكرت انه عندما تقوم بتطبيق التعليمة Not مع القيمة 166 فان الناتج يظهر -167 مع انه لازم يظهر 89 .. خلينا نوضح شوي عمل التعليمة Not..

التعليمة Not متل ما بيشير الاسم بتعكس قيمة الخانة الثنائية فان كانت الخانة قيمتها 0 بتصير 1 والعكس صحيح (كما ذكر في المقال).

كيف هالشي بيصير وليه عم تظهر القيمة -167 بدلا من 89 (مع اننا اختبرناها بالالة الحاسبة الخاصة بالويندوز!؟) - هالشي تم مناقشته بالسلسلة المطروحة بمنتدى الاسمبلي مؤخرا حيث طرح الاخ allko تساؤلا بالنسبة لمجال النظام الثنائي binary base. في البداية نقول بان الحاسب عندما يتعامل مع المعطيات العددية فانه يتعامل مع نوعين من المعطيات، معطيات مؤشرة (وهي قيم الاعداد الموجبة والسالبة وسميت مؤشرة نسبة الى الاشارة التي تحدد العدد موجب او سالب) ومعطيات غير مؤشرة وهي القيم اللي بيستخدمها كتمثيل لعناوين مثلا حيث ان العناوين في البرمجة لا يمكن ان تكون سالبة!

للاسف فان الالة الحاسبة تقوم بالتعامل مع المعطيات على انها معطيات غير مؤشرة دوما وهالشي بنقدر نلاحظه بانه ما بنقدر ندخل الرقم -100 مثلا في الالة الحاسبة.. فكيف بيقدر النظام يحصل على هالرقم لاستخدامه في الحسابات مثلا؟

خلينا نفرض انه عندنا رقم موجب وهو x = 166 وبدنا نحصل على الرقم السالب منه - هالشي بيتم عن طريق المتمم الثنائي two's complement للرقم المطلوب.

الان السؤال, كيف يمكن الحصول على المتمم الثنائي؟ يتم الحصول على المتمم الثنائي بايجاد المتمم الاحادي اولا one's complement وجمع 1 له. لكن ما هو المتمم الاحادي؟ هو ناتج عكس خانات العدد المطلوب (يعني اجراء Not لكن بحيث تكون المعطيات مؤشرة) فالعدد 166 (10100110) متممه الاحادي هو 01011001.

الان للحصول على المتمم الثنائي نقوم باضافة 1 للناتج: 01011001 + 1 = 01011010 واللي بيمثل القيمة السالبة للعدد 166 وهي -166 .. طيب كيف نتاكد من هالشي بدون برامج تتعامل مع المعطيات المؤشرة؟ بكل بساطة نقوم بجمع القيمتين حيث يجب ان يكون الناتج صفرا.. وبالتالي 10100110 + 01011010 = ..؟ 100000000 !!! كيف هذا؟؟ لاحظوا معي بان الخانة التي تحمل القيمة high هي الخانة التاسعة! ونحن نعلم بان البايت مكون من اجتماع 8 بتات فكيف هذا؟ هذه الخانة التاسعة هي القيمة الناتجة عن الحمل في النظام الثنائي والتي بكل بساطة.. يتم تجاهل قيمتها! فاذن يكون الناتج لدينا من الجمع هو 00000000.

نعود للمشكلة التي بين يدينا، لكن في البداية دعونا نتذكر بان القيمة المرتجعة يجب ان تكون -166 وبالتالي لن نعتمد على الالة الحاسبة الخاصة بالويندوز في حساباتنا اوكيه.

كيف القيمة المرتجعة عم تكون -167 ؟ الجواب هو انه البرنامج ما عم يقدر يستوعب انه عم نتعامل مع بايتات وبالتالي بيتالفوا من 8 بتات مش 9.. متل ما شفنا كان الناتح 100000000 واللي فينا نقول عنه لللتبسط هو: -166 (00000000) + -1 (00000001) = -167 << لا تنسوا المتمم الثنائي.. فاذن لازم نلاقي طريقة نفهمه هالكلمتين للبرنامج بالرواق! بكل بساطة بنهمل البت التاسع وبنتعامل مع القيمة الناتجة على انها مؤلفة من 8 بتات :)

(قرات المقال لتوي اخي هاني فقد عدت من سفر منذ حوالي عدة ساعات وساقوم بالبحث بذلك الموضوع بس تعبان -شوي- يمكن ما اقدر رد هلأ لاني فايق من حوالي 52 ساعة :blink: .. بالمناسبة، شو صار بالملف الصغنون؟)

تحياتي

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

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

بارك الله فيك يا أخي هاني على الدروس, و جزاك الله خيراً إن شاء.

عندي سؤال إذا ممكن, أريد أستلم قيمة صفر على البورت ( Status Port ), فكيف ذلك؟؟؟؟؟؟

أشكرك جزيل الشكر.

أخوك ميثم كمال

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

السلام عليكم

انا اسف على التاخير

وشكرا لكل الاعضاء على المشاركة والردود والتفاعل

بالنسبة لسؤال الاخ Maythem Kamal

ال Status Port للقراءة فقط ولا يمكن ارسال اى بيانات اليه

لكن يمكن فقط قراءة البيانات الموجودة عليه

ان شاء الله الدرس القادم بعد يومين

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

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

والله يكون في عونكم وبارك الله فيكم

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

:wacko: :wacko: :wacko: <_< <_< <_< :unsure: :unsure: :unsure:

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

اخى Amrkhaledccd

ما المشكلة؟؟؟ :unsure:

ان شاء الله الدرس القادم قريبا ولكنه طويل الى حد ما لذلك يحتاج الى اعداد جيد , وانا مشغول جدا

ان شاء الله ساضعه قريبا جدا

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

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

عفواً يا أخي قد أكون غير واضح في سؤالي, سؤالي هو أنا عندمات أقرأ المعلومات اللتي على الـStatus port فأنها لا تكون صفرعندما يجب أن تكون كذلك و أنما تكون 127, فلماذا ليست صفر؟

و جازاكم الله خير الجزاء إن شاء الله.

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

السلام عليكم

اخى Maythem Kamal

عندما يجب أن تكون كذلك

هل تقصد انك تقيس البينات با ستخدام افوميتر؟؟؟

عموما لاحظ ان الـStatus port به البينة الاخيرةS7 معكوسة , وتأكد من ترتيب البينات

ولاحظ ايضا ان البينات الظاهرة فى الـStatus port تبدأ من s3 to s7 و اول 3 بيت ليس لها بينات خارجية

اى عندما تستخدم الافوميتر لقياس بينات الـStatus port ستستطيع قياس البينات من S3 to S7 والبيتات من S0 to S2 لن تستطيع قياسها بهذه الطريقة لانها ليس لها بينات خارجية

راجع الدرس الثانى

تم تعديل بواسطه hanysaad
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

وفقق الله اخي هاني واعانك على إكمال الدروس

نحن في الإنتظار

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

شكرا جزيلا اخى هانى على هذا الموضوع الرائع و الشرح البسيط و المنظم .

اقدر تعبك وصبرك لظهور الموضوع على ما هو عليه....

الى الامام دائما.

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

أنا فعلا حزين جدا جدا لأني لم أري الموضوع غير متأخر لكن الحمد لله قدرت أقطع مسافه كبيره في الدروس الجيده أنا سألت كتير في المنتدي علي حد يعرف حاجه عن الموضوع ده لكن للأسف ماحدش جاوبني .

أنا عندي تعليق واحد فقط علي الشرح هو إن التكرار أكتر من اللازم بيلغبط مش بيفهم وبيطول الوقت أكتر لكن أنت ليك جزيل الشكر علي الدروس الرائعه ديه وأنا دلوقتي فهمت معظم الدروس وبحاول أنفذها عملي لكن للأسف مش لاقي اللمبات دورت عليها في أماكن كتير ومش لاقي ليها أي أثر أنا من مصر من الهرم لو فيه حد يعرف مكان قريب أجيبها منه وسعرها كام بالظبط ياريت يقولي ..

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

أرجو الرد ...

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

السلام عليكم

اخى half angel

شكرا جزيلا على رأيك فى الموضوع وبارك الله فيك

وانا سعيد بمتابعتك للموضوع

اخى remono84

أنا فعلا حزين جدا جدا لأني لم أري الموضوع غير متأخر لكن الحمد لله قدرت أقطع مسافه كبيره في الدروس الجيده

لكن أنت ليك جزيل الشكر علي الدروس الرائعه ديه وأنا دلوقتي فهمت معظم الدروس وبحاول أنفذها عملي

شكرا جزيلا على رأيك , تابع الدروس وانا تحت امرك فى اى سؤال

وانا سعيد بمتابعتك للموضوع

أنا عندي تعليق واحد فقط علي الشرح هو إن التكرار أكتر من اللازم بيلغبط مش بيفهم وبيطول الوقت أكتر

انا فقط قصدت من التكرار ان اربط المواضيع ببعضها

اللمبات دورت عليها في أماكن كتير ومش لاقي ليها أي أثر أنا من مصر من الهرم لو فيه حد يعرف مكان قريب أجيبها منه وسعرها كام بالظبط ياريت يقولي

اسأل عنها باسم leds او ليدات وسعرها رخيص جدا جدا ( لا اعتقد انه يزيد 10 قروش )

وستجدها ان شاء الله عند اى محل لبيع الالكترونيات , واذا لم تجدها اعتقد انه يمكنك ان تجدها فى اى قطعة اليكترونية قديمة ( تليفون , راديو , .......)

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

الموضوع اللى انت بتتكلم عنه ده هو موضوع اخر درس فى هذه السلسلة ان شاء الله

ولكن عموما فى حالة 220 فولت ال parallel port يستخدم (مع بعض الاجزاء الالكترونية) كسويتش فقط switch اى مفتاح ومصدر الكهرباء يكون من الكهرباء العادية ( من القابس الكهربى) وال parallel port يوصل او يقطع الكهرباء فقط ولكنه لا يعطى اى كهرباء فى هذه الحالة

وانتظر الدرس الاخير لمزيد من التفاصيل ,,,

تم تعديل بواسطه hanysaad
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

الله يعطيك الف عافية اخ hanysaad

بس سؤال.. هل عندك فكرة كيف بنفذ كلشي شرحتو بلغة الجافا او C++

شكرااااااااااااااااا

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

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

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

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

بصراحه فعلا مشكور الف مرة على :-

1 - المجهود الضخم و المتابعة على هذا الموضوع

2- كمية المعلومات التى اضفتها لى فى مجال التعامل مع هذا الجزء الهام جدا فى مجال البرمجه

3- الأمثله و التوضيحات بالصور والتى تعد من افضل الطرق لايصال المعلومات

وبصراحة انا لى سؤال,,

سأفترض انى قمت بتصميم قطعة هاردوير تحتوى على كود معين ( نفس فكرة الDongle ) و سؤالى هنا هو كيفية قراءة هذه البيانات علما بأنة من الممكن ان تكون الطابعة موصلى على الجهاز و يتم الطباعة عليها ؟؟

أتمنى ان اكون قد أوصلت سؤالى بصورة مفهومة ,,,

و مشكور مرة ثانية على هذا المجهود,,,

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

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

أخي HanySaad ، أين أنت؟

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

انا اسف على التغيب الفترة السابقة وذلك لانشغالى الشديد خلال هذه الايام وكذلك ظروف الدراسة

ان شاء الله ساضع الدرس الجديد خلال ايام

الاخ wassim_homs

شكرا جزيلا على رأيك ومتابعتك

بالنسبة لسؤالك

بالنسبة لل C++ لا اعرف حاليا ولكن هابحث وارد عليك

بالنسبة للجافا

راجع الرابط التالى

http://www.arabteam2000-forum.com/index.ph...topic=76311&hl=

اخى m_ab_78

اهلا بك فى المنتدى وشكرا على رأيك ومتابعتك

انا عرفت الموضوع ده من خلال البحث على النت ومن خلال العمل مع صديق لى فى مشروع يتعلق به فى كلية هندسة

الاخ بنيامين

لا شكر على واجب

طبعا ما ينفعش تقرى من نفس البورت وال printer موصلة بيه :unsure:

السلام عليكم والدرس القادم خلال ايام ان شاء الله

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

السلام عليكم

يعيني يا اخ هاني كفيت و وفييت انا و الله من سنتين بحاول اني افهم موضوع التحكم بالمنفذ المتوازي و لم استطع افهمه اكثر مما فهمته من شرحك و لكني وجدت الموضوع متأخرا و لم استطع الرد على مشاركاتك و دروسك بس إن شاء الله حكون متلبع لدروسك بشكل دائم.

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

حيث ان البين عندما يكون في حالة High يكون عليه فرق جهد يساوي 5 فولت و صفر فولت في حالة الـ Low فهل يإمكاني تمثيل الـ High & Low بإدخال فولتية تبلغ 5 على البينات ثم بعد ذلك اقوم بقرائة البينات؟

نظريا لايمكن ذلك الا من خلال الـ Statuse Port حيث انه في حالة الكنترول و الداتا بورت يمكن ان يحدث زيادة في فرق الجهد على المدخل مما قد يؤدي الى تلف المدخل أو اللوحة.

أرجو منكم الافادة

كما اننا بانتظار الدرس القادم

اعانك على مابدأت و نصر بك الأمه

شكرا جزيلا

الحــــــــــــ سجين ـــــــــــرية

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

السلام عليكم

اخى الكريم Freepreasone

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

شكرا جزيلا لك

بالنسبة لموضوع ارسال اشارة الى ال parallel port فهو موضوع الدرس القادم ان شاء الله,,,

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

  • يستعرض القسم حالياً   0 members

    لا يوجد أعضاء مسجلين يشاهدون هذه الصفحة .