اخ هاني، صار (غدا) وانا ناطر بقية الدروس :D
Do as I say, not as I do
We are Anonymous. We are Legion. We don't forgive. We don't forget
اخ هاني، صار (غدا) وانا ناطر بقية الدروس :D
Do as I say, not as I do
We are Anonymous. We are Legion. We don't forgive. We don't forget
hanysaad كتب:السلام عليكمشكرا جزيلا لك اخى الكريم Amrkhaledccd على تعبك واهتمامك
بالفعل انا اشعر بسعادة غامرة عندما ارى انه يوجد من استفاد من شرحى , وانت خير مثال على ذلك
انا شفت المثال وجربته وهو اكثر من رائع
شكرا جزيلا مرة اخرى وبارك الله فيك,
العفو اخي hanysaad هذا اقل واجب امام المجهود الذي تبذله معنا
جزاك الله خير

جزاك الله خيرا أخي و زادك من علمه... (h)
____________________________________________________________________________
{ اقْتَرَبَ لِلنَّاسِ حِسَابُهُمْ وَهُمْ فِي غَفْلَةٍ مَّعْرِضُونَ } سورة الأنبياء (1)
____________________________________________________________________________
In a world without walls and fences, who needs Windows and Gates
جزاك الله خير اخي هاني سعد وشكرا على مجهودك وتعبك معنا
بعد إذن أستاذنا أريد أن أضيف جزء و هو لعمل 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 في 9 سبتمبر 2005 في 02:31

اخي هاني
جزاك الله خيرا على هذه الدروس واعتذر حبيبي على عدم المتابعة والله مشغول الى درجة لا تتصورها
إن شاء الله لو تجمع الملفات بحيث يمكنن قرائتها متسلسلة مباشرة يكون أفضل
وفقك الله تعالى لكل خير
تحياتي لك
اخوك ناصر
سبحان الله MCP,MCSA,MCDBA,MCSE,MCTegyptian in Dammam----------------------------------------------------مواضيعي بالمنتدي أنشأ مشروعك بالفيجوال بيسك 6كتاب أنشأ مشروعك بالفيجوال بيسك كامل pdfكل ما يتعلق بدوال التاريخالمستخدمون والصلاحيات في برنامجك
هلأ بالمقال ذكرت انه عندما تقوم بتطبيق التعليمة 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: .. بالمناسبة، شو صار بالملف الصغنون؟)
تحياتي
Do as I say, not as I do
We are Anonymous. We are Legion. We don't forgive. We don't forget
السلام عليكم و رحمة الله و بركاته
بارك الله فيك يا أخي هاني على الدروس, و جزاك الله خيراً إن شاء.
عندي سؤال إذا ممكن, أريد أستلم قيمة صفر على البورت ( Status Port ), فكيف ذلك؟؟؟؟؟؟
أشكرك جزيل الشكر.
أخوك ميثم كمال
السلام عليكم
انا اسف على التاخير
وشكرا لكل الاعضاء على المشاركة والردود والتفاعل
بالنسبة لسؤال الاخ Maythem Kamal
ال Status Port للقراءة فقط ولا يمكن ارسال اى بيانات اليه
لكن يمكن فقط قراءة البيانات الموجودة عليه
ان شاء الله الدرس القادم بعد يومين
Hany Saad Mostafa
ITI (Information Technology Institute) l
SD Dept.-Teaching Assistant
---
اسألكم الدعاء بظهر الغيب
بارك الله فيك أخي هاني وجزاك خيرا لقد وصلت متأخرا على الدورة ولكن لا يهم سأحاول إدراك الدروس مع العلم أني قد تابعت مثل هذه الدروس من قبل ولكن الواح ينسى كما تعلم لأنه ليس من إختصاصه ولكن قد يحتاجهايوم ويندم على مافاته أخي هاني نرجو منك إتمام هذه السلسلة كما نتمنا أن تكون سلسلة أخرى في الإلكترونيك موازية لهذه الدروس لنتمكن مستقبلا عمل دارة أو ريبوت مع العلم عند تصفح دروس الريبوت تجدها صعبة على الذين لا يفقهون شئء في الإلكترونيك مثلي ولهذا نرجو بعض الدروس ولا تيأس من تقديم الدروس في عدم وجود الردود أحيانا فقد يأتي شخص من بعد ويجد هذه السلسلة كمرجع في هذا المنتدى الفريد .
والله يكون في عونكم وبارك الله فيكم
السلام عليكم و ر حمة الله و بركاته
عفواً يا أخي قد أكون غير واضح في سؤالي, سؤالي هو أنا عندمات أقرأ المعلومات اللتي على الـStatus port فأنها لا تكون صفرعندما يجب أن تكون كذلك و أنما تكون 127, فلماذا ليست صفر؟
و جازاكم الله خير الجزاء إن شاء الله.
السلام عليكم
اخى Maythem Kamal
اقتباسعندما يجب أن تكون كذلك
هل تقصد انك تقيس البينات با ستخدام افوميتر؟؟؟
عموما لاحظ ان الـStatus port به البينة الاخيرةS7 معكوسة , وتأكد من ترتيب البينات
ولاحظ ايضا ان البينات الظاهرة فى الـStatus port تبدأ من s3 to s7 و اول 3 بيت ليس لها بينات خارجية
اى عندما تستخدم الافوميتر لقياس بينات الـStatus port ستستطيع قياس البينات من S3 to S7 والبيتات من S0 to S2 لن تستطيع قياسها بهذه الطريقة لانها ليس لها بينات خارجية
راجع الدرس الثانى
تم تعديل هذه المشاركة بواسطة hanysaad في 23 سبتمبر 2005 في 12:39
Hany Saad Mostafa
ITI (Information Technology Institute) l
SD Dept.-Teaching Assistant
---
اسألكم الدعاء بظهر الغيب
شكرا جزيلا اخى هانى على هذا الموضوع الرائع و الشرح البسيط و المنظم .
اقدر تعبك وصبرك لظهور الموضوع على ما هو عليه....
الى الامام دائما.
أنا فعلا حزين جدا جدا لأني لم أري الموضوع غير متأخر لكن الحمد لله قدرت أقطع مسافه كبيره في الدروس الجيده أنا سألت كتير في المنتدي علي حد يعرف حاجه عن الموضوع ده لكن للأسف ماحدش جاوبني .
أنا عندي تعليق واحد فقط علي الشرح هو إن التكرار أكتر من اللازم بيلغبط مش بيفهم وبيطول الوقت أكتر لكن أنت ليك جزيل الشكر علي الدروس الرائعه ديه وأنا دلوقتي فهمت معظم الدروس وبحاول أنفذها عملي لكن للأسف مش لاقي اللمبات دورت عليها في أماكن كتير ومش لاقي ليها أي أثر أنا من مصر من الهرم لو فيه حد يعرف مكان قريب أجيبها منه وسعرها كام بالظبط ياريت يقولي ..
اللي فهمته من الدروس إن الباريل بورت مش بيخرج أكتر من 5 فولت وإضائة المنزل عباره عن 220 فولت إذا كيف يمكنني عمل لوحة إضائه بها لمبات منزليه وأتحكم بها فكيف يمكنني أخرج أكثر من 5 فولت أعرف أن هناك محول لا كن كيف أحصل عليه ومن أين وهل يمكن طلب عمله من كهربائي مثلا أم يأتي جاهز كالمحولات فالفرق أن المحولات التي أعرفها تحول من كبير إلي صغير وليس من صغير إلي كبير؟
أرجو الرد ...
السلام عليكم
اخى half angel
شكرا جزيلا على رأيك فى الموضوع وبارك الله فيك
وانا سعيد بمتابعتك للموضوع
اخى remono84
اقتباسأنا فعلا حزين جدا جدا لأني لم أري الموضوع غير متأخر لكن الحمد لله قدرت أقطع مسافه كبيره في الدروس الجيدهلكن أنت ليك جزيل الشكر علي الدروس الرائعه ديه وأنا دلوقتي فهمت معظم الدروس وبحاول أنفذها عملي
شكرا جزيلا على رأيك , تابع الدروس وانا تحت امرك فى اى سؤال
وانا سعيد بمتابعتك للموضوع
اقتباسأنا عندي تعليق واحد فقط علي الشرح هو إن التكرار أكتر من اللازم بيلغبط مش بيفهم وبيطول الوقت أكتر
انا فقط قصدت من التكرار ان اربط المواضيع ببعضها
اقتباساللمبات دورت عليها في أماكن كتير ومش لاقي ليها أي أثر أنا من مصر من الهرم لو فيه حد يعرف مكان قريب أجيبها منه وسعرها كام بالظبط ياريت يقولي
اسأل عنها باسم leds او ليدات وسعرها رخيص جدا جدا ( لا اعتقد انه يزيد 10 قروش )
وستجدها ان شاء الله عند اى محل لبيع الالكترونيات , واذا لم تجدها اعتقد انه يمكنك ان تجدها فى اى قطعة اليكترونية قديمة ( تليفون , راديو , .......)
اقتباساللي فهمته من الدروس إن الباريل بورت مش بيخرج أكتر من 5 فولت وإضائة المنزل عباره عن 220 فولت إذا كيف يمكنني عمل لوحة إضائه بها لمبات منزليه وأتحكم بها فكيف يمكنني أخرج أكثر من 5 فولت أعرف أن هناك محول لا كن كيف أحصل عليه ومن أين وهل يمكن طلب عمله من كهربائي مثلا أم يأتي جاهز كالمحولات فالفرق أن المحولات التي أعرفها تحول من كبير إلي صغير وليس من صغير إلي كبير؟
الموضوع اللى انت بتتكلم عنه ده هو موضوع اخر درس فى هذه السلسلة ان شاء الله
ولكن عموما فى حالة 220 فولت ال parallel port يستخدم (مع بعض الاجزاء الالكترونية) كسويتش فقط switch اى مفتاح ومصدر الكهرباء يكون من الكهرباء العادية ( من القابس الكهربى) وال parallel port يوصل او يقطع الكهرباء فقط ولكنه لا يعطى اى كهرباء فى هذه الحالة
وانتظر الدرس الاخير لمزيد من التفاصيل ,,,
تم تعديل هذه المشاركة بواسطة hanysaad في 24 سبتمبر 2005 في 00:27
Hany Saad Mostafa
ITI (Information Technology Institute) l
SD Dept.-Teaching Assistant
---
اسألكم الدعاء بظهر الغيب
الله يعطيك الف عافية اخ hanysaad
بس سؤال.. هل عندك فكرة كيف بنفذ كلشي شرحتو بلغة الجافا او C++
شكرااااااااااااااااا
السلام عليكم ورحمة الله وبركاته
أنا لسه منتهي من قراءة الدروس ، ما شاء الله عليك يا أخي وعلى فكرة أنا برضوه خريج علوم بس عين شمس كيف أخذت هذا الطريق مع إن معلوماتي بتقول إن الطريق ده اللي بيمشي فيه بتوع هندسه ، طبعاً أنا قصدي عملت إيه علشان تعرف المعلومات ديه وليس إنتقاد.
بصراحه فعلا مشكور الف مرة على :-
1 - المجهود الضخم و المتابعة على هذا الموضوع
2- كمية المعلومات التى اضفتها لى فى مجال التعامل مع هذا الجزء الهام جدا فى مجال البرمجه
3- الأمثله و التوضيحات بالصور والتى تعد من افضل الطرق لايصال المعلومات
وبصراحة انا لى سؤال,,
سأفترض انى قمت بتصميم قطعة هاردوير تحتوى على كود معين ( نفس فكرة الDongle ) و سؤالى هنا هو كيفية قراءة هذه البيانات علما بأنة من الممكن ان تكون الطابعة موصلى على الجهاز و يتم الطباعة عليها ؟؟
أتمنى ان اكون قد أوصلت سؤالى بصورة مفهومة ,,,
و مشكور مرة ثانية على هذا المجهود,,,
السلام عليكم ورحمة الله وبركاته
أخي HanySaad ، أين أنت؟
انا اسف على التغيب الفترة السابقة وذلك لانشغالى الشديد خلال هذه الايام وكذلك ظروف الدراسة
ان شاء الله ساضع الدرس الجديد خلال ايام
الاخ wassim_homs
شكرا جزيلا على رأيك ومتابعتك
بالنسبة لسؤالك
بالنسبة لل C++ لا اعرف حاليا ولكن هابحث وارد عليك
بالنسبة للجافا
راجع الرابط التالى
اخى m_ab_78
اهلا بك فى المنتدى وشكرا على رأيك ومتابعتك
انا عرفت الموضوع ده من خلال البحث على النت ومن خلال العمل مع صديق لى فى مشروع يتعلق به فى كلية هندسة
الاخ بنيامين
لا شكر على واجب
طبعا ما ينفعش تقرى من نفس البورت وال printer موصلة بيه :unsure:
السلام عليكم والدرس القادم خلال ايام ان شاء الله
Hany Saad Mostafa
ITI (Information Technology Institute) l
SD Dept.-Teaching Assistant
---
اسألكم الدعاء بظهر الغيب
السلام عليكم
يعيني يا اخ هاني كفيت و وفييت انا و الله من سنتين بحاول اني افهم موضوع التحكم بالمنفذ المتوازي و لم استطع افهمه اكثر مما فهمته من شرحك و لكني وجدت الموضوع متأخرا و لم استطع الرد على مشاركاتك و دروسك بس إن شاء الله حكون متلبع لدروسك بشكل دائم.
بس في عندي سؤال احنا بنتكلم على طريقة اخراج و ادخال على المنفذ لكن اللي انا فهمته انتا ما بتقدر ترسل اشارة للكمبيوتر نفسه يعني في كلتا الحالتين انتا بتكتب للمنفذ من الكمبيوتر و بتقرا المنفذ من الكمبيوتر بينما السؤال هل بإمكاني ان ارسل انا اشارة الى الكمبيوتر؟
حيث ان البين عندما يكون في حالة High يكون عليه فرق جهد يساوي 5 فولت و صفر فولت في حالة الـ Low فهل يإمكاني تمثيل الـ High & Low بإدخال فولتية تبلغ 5 على البينات ثم بعد ذلك اقوم بقرائة البينات؟
نظريا لايمكن ذلك الا من خلال الـ Statuse Port حيث انه في حالة الكنترول و الداتا بورت يمكن ان يحدث زيادة في فرق الجهد على المدخل مما قد يؤدي الى تلف المدخل أو اللوحة.
أرجو منكم الافادة
كما اننا بانتظار الدرس القادم
اعانك على مابدأت و نصر بك الأمه
شكرا جزيلا
الحــــــــــــ سجين ـــــــــــرية