قسم الميكروكنترولر والروبوت ودوائر الاتصال بالحاسب الالي قسم المتحكمات الـ microcontroller و المعالجات microprocessor و التحكم الرقمي بالكمبيوتر CNC والانظمة الآلية والروبوت Robots

   

العابدي
:: مهندس ::
تاريخ التسجيل: Feb 2007
المشاركات: 48
نشاط [ العابدي ]
قوة السمعة:
قديم 25-07-2009, 06:41 PM المشاركة 17   
افتراضي



شكرا لك اخي وليد على هذا الموضوع الرائع وعلى الاسلوب الجميل في الطرح وليوفقك الباري تعالى

اعلانات

chafteyes
:: مهندس جيد ::
تاريخ التسجيل: Mar 2009
المشاركات: 225
نشاط [ chafteyes ]
قوة السمعة:
قديم 26-07-2009, 06:19 AM المشاركة 18   
افتراضي


سلام الله عليكم
شكراجزيلا لك اخي على مجهودك في التوظيح
الى هده اللحظة لاسؤال فقط اكمل الشرح جزاك الله خيرا
لي طلب لو امكن انا حديث بهدا المجال واتعلم على لغة ميكرو سي هل لك ان تضع الملفات بلغة ميكرو سي كذالك اكون جد شاكر لك
شكرا

اعلانات اضافية ( قم بتسجيل الدخول لاخفائها )

الصورة الرمزية wleed antar
wleed antar
:: عضو ماسي ::
تاريخ التسجيل: May 2006
الدولة: القاهرة - مصر
المشاركات: 1,484
نشاط [ wleed antar ]
قوة السمعة:
قديم 27-07-2009, 10:37 AM المشاركة 19   
افتراضي


مرحبا بكم جميعا ونواصل الحوار


لا ننزعج من اختلاف لغات البرمجة أبدا كما ذكرت قبل ، فقد تختلف لغات الإنسان ولا تختلف لغة الإشارة والرسم , وكذلك لو اختلفت لغة البرمجة فلن تختلف لغة المخططات ،


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

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


والآن وباسلوب أبسط من المخططات سأقوم بتبسيط الفكرة أكثر ولغة الحوار بين المتحكمات ،


المتحكم الرئيسى متصل بالشاشة فى مثالنا وسنرمز له بالرمز
MAIN


المتحكم الفرعى الأول سنرمز له بالرمز

PIC1


المتحكم الفرعى الثانى سنرمز له بالرمز

PIC2




والآن لنرى ما هى وظيفة كل متحكم :-

وظيفة المتحكم الرئيسى هنا سيعرض على الشاشة فى السطر الثانى والعامود 5 والعامود رقم 6 كلا من خانة العشرات والأحاد للرقم القادم من المتحكم
PIC1


وسيعرض بعد ذلك على الشاشة فى السطر الثانى والعامود 14 والعامود رقم 15 كلا من خانة العشرات والأحاد للرقم القادم من المتحكم
PIC2


فقط ولن يفعل شئ سوى هذا

وظيفة المتحكمان الفرعيان الأول والثانى هى حساب عدد الضغطات لمفتاح ضاغط






والآن لنرى لغة الحوار:-

يقوم المتحكم الرئيسى main

بالآتى :-

الروتين: وضع القيمة صفر على أطراف العنوان.


معناه : على جميع المتحكمات الفرعية إيقاف الإرسال.





الخطوة الثانية :-


الروتين : انتظرحتى تكون أطراف الداتا تساوى صفر.


معناه : نداء من المتحكمات الفرعية نحن جاهزون وننتظر التعليمات.





الروتين : أطراف العنوان تساوى واحد فقط .


معناه : على المتحكم الفرعى الأول إرسال خانة العشرات فقط .



يظل المتحكم الرئيسى منتظر الرد وعندها يقوم بوضع الجواب فى مكانه على الشاشة ونعلم أنه عند وضع الرقم على الشاشة فإننا نجمع الرقم على كود آسكى فنجمع الرقم + 48 طبعا لكننا هنا لن نجمعه إلا على 47 لماذا لأن الرقم القادم دوما سيكون زائد رقم يعنى أن المتحكم الفرعى إذا أراد إرسال القيمة 7 فإنه سيرسل 8 أى أضاف 1 لأى رقم مرسل ولذلك يقوم المتحكم الرئيسى بطرح قيمة واحد من الرقم الوارد وبدلا من عملية الطرح قمنا بإضافة 47 لرموز آسكى بدلا من 48 تماما كأننا قمنا بعملية الطرح ، لماذا إضافة واحد للرقم الصادر من المتحكم الفرعى ؟ دعنا من الإجابة حتى نتكلم عن حوار المتحكم الفرعى بعد أسطر قلائل قادمة وهذا لا يشغل بالنا فالرقم الوارد سواء أضفنا عليه 1 أو اثنان فالمهم أنه بعد استقباله عند المتحكم الرئيسى نقوم بطرحة لكى نحصل على القيمة الحقيقية ولا ينبغى أن نرسل القيمة كما هى ! لماذا لكى يمكننا إرسال القيمة صفر كقيمة واستقبالها كما قيمة وليس كصفرا وهنا إجابة اللغز لأنه طول ما تكون قيمة أطراف الداتا محملة بصفر فإن هذا يعنى أن المتحكم مشغول فإذا أراد أن يبعث بصفرا فإنه يضيف له واحد كما يضيف واحد لأى قيمة أخرى فبذلك يكون القيمة واحد تعنى صفر والقيمة اثنان تعنى واحد وهكذا ! !



بعد استقبال خانة العشرات يقوم المتحكم الرئيسى بوضع القيمة صفر على أطراف العنوان ليكف أى متحكم فرعى عن الإرسال ،




المتحكم الرئيسى ينتظر حتى تكون أطراف الداتا تحمل بصفر




المتحكم الرئيسى يضع القيمة 2 وهى تعنى طلب خانة الأحاد من المتحكم الفرعى وبنفس الطريقة السابقة تماما نفعل مع باقى المتحكمات على أن نعطى كل عنوان قيمة مقصودة فمثلا :



القيمة صفر لإيقاف ارسال كل المتحكمات فورا


القيمة 1 لطلب خانة العشرات من المتحكم الفرعى الأول


القيمة 2 لطلب خانة الأحاد من المتحكم الفرعى الأول


القيمة 3 لطلب خانة العشرات من المتحكم الفرعى الثانى


القيمة 4 لطلب خانة الأحاد من المتحكم الفرعى الثانى



وفى مثالنا والدارة السابقة استخدمت 3 أطراف للعنوان وهم قادرون على طلب 7 طلبات مختلفة وأما أطراف الداتا فيكفيها 4 أطراف فقط لحمل قيم حتى رقم عشرة لأننا سنحتاج فى الأصل من صفر إلى تسعة ومع زيادة الرقم واحد ستكون من واحد إلى عشرة فقط .





يتتبع ,



التعديل الأخير تم بواسطة : wleed antar بتاريخ 27-07-2009 الساعة 02:40 PM

الصورة الرمزية wleed antar
wleed antar
:: عضو ماسي ::
تاريخ التسجيل: May 2006
الدولة: القاهرة - مصر
المشاركات: 1,484
نشاط [ wleed antar ]
قوة السمعة:
قديم 27-07-2009, 10:56 AM المشاركة 20   
افتراضي


شكرا لك اخي وليد على هذا الموضوع المتميز وننتظر المتبقي ، لقد اتى في وقته منذ بضعة ايام وانا احاكي مثل ما يطرحه هذا الموضوع ولكن لم استطيع الوصول إلى مبتغاي وها انت اليوم تشرح لنا ما اريد ....



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


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


geniusse01
:: عضو ذهبي ::
تاريخ التسجيل: Apr 2008
الدولة: Jordan - Amman
المشاركات: 1,134
نشاط [ geniusse01 ]
قوة السمعة:
قديم 28-07-2009, 12:54 PM المشاركة 21   
افتراضي


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


الصورة الرمزية SAMI-ALG
SAMI-ALG
:: مهندس متواجد ::
تاريخ التسجيل: Jul 2009
الدولة: الجزائر
المشاركات: 199
نشاط [ SAMI-ALG ]
قوة السمعة:
قديم 28-07-2009, 04:21 PM المشاركة 22   
افتراضي


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

انا مبتدئ في هذا المجال واحببت فقط ان اعرف ما الفائدة من ربط المتحكمات مع بعض هل هو ازيادة عدد المداخل والمخارج ام لزيادة حجم الذاكرة ؟

ودمت في رعاية الله وحفظه


الصورة الرمزية wleed antar
wleed antar
:: عضو ماسي ::
تاريخ التسجيل: May 2006
الدولة: القاهرة - مصر
المشاركات: 1,484
نشاط [ wleed antar ]
قوة السمعة:
قديم 28-07-2009, 08:52 PM المشاركة 23   
افتراضي


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

انا مبتدئ في هذا المجال واحببت فقط ان اعرف ما الفائدة من ربط المتحكمات مع بعض هل هو ازيادة عدد المداخل والمخارج ام لزيادة حجم الذاكرة ؟

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

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

إذن لا غنى عن ربط الوظائف ببعضهم ! وهذا بدوره لن يتم إلا بمعرفة كيفية ربط المتحكمات ببعضهم ،


التعديل الأخير تم بواسطة : wleed antar بتاريخ 24-09-2009 الساعة 12:19 PM

الصورة الرمزية wleed antar
wleed antar
:: عضو ماسي ::
تاريخ التسجيل: May 2006
الدولة: القاهرة - مصر
المشاركات: 1,484
نشاط [ wleed antar ]
قوة السمعة:
قديم 28-07-2009, 09:14 PM المشاركة 24   
افتراضي


السلام عليكمجزاك الله خيرا على الشرح الجميل..ولكن لم تصلني الفكرة بعد بالنسبة للنقل عن طريق خطوط الداتا المتنوعة . فهل يمكن التوضيح اكثر بالنسبة للموضوع.بالاضافة لماذا يتم اضافة 47 وليس 48 للحصول على الرقم حسب الاسكي كود..ربنا يوفقك وينفع بك الاسلام والمسلمين..واخر دعوانا ان الحمدلله رب العالمين..وصلى الله على سيدنا محمد وعلى اله وصحبه وسلم
سأشرح انشاء الله مستخدما الكود بلغة البيزيك وسأذكر التعليقات بجوار الأكواد لنفهم وظيفة كل كود لأنى أعلم أن حضرتك بتكتب بلغة السى ،
وبالنسبة لأطراف الداتا فهم أربع أطراف فقط .
لماذا ؟ لأننا سنقوم بنقل كل خانة على حدة ، وأى خانة مهما كانت ستنحصر قيمتها بين صفر و تسعة ، ونحن إذا استخدمنا ثلاث أطراف داتا فإن أقصى قيمة تحمل هى ( 1 + 2 + 4 ) يساوى 7 أى أن ثلاث أطراف تحمل بقيمة سبعة كحد أقصى ونحن نريد رقم تسعة فإننا سنستخدم أربع أطراف كأطراف داتا ، إذن أربع أطراف تستطيع تحميل أى قيمة نريد من صفر إلى 15 ونحن لن نريد أكثر من قيمة 10 فقط ،
أى رقم سينقل من المتحكم الفرعى للمتحكم الرئيسى يجب أن يحتوى على قيمة غير الصفر ! ! لماذا ؟ لأن أطراف الداتا عندما تساوى صفر فإن ذلك لا يحتسب كقيمة مرسلة بل يحتسب كنداء بأن المتحكم الفرعى لم يقم بالإرسال لأنه مشغول حاليا . فيجب أن يكون هناك قيمة على أطراف الداتا ! !
فماذا لو أردنا أن ننقل قيمة 10 عشرة سننقل خانة العشرات ثم خانة الأحاد فلو كنا سننقل خانة العشرات كقيمة واحد كما هى بدون زيادة أو نقصان فهذا يمكن عادى لكننا سنواجه مشكلة ! هى أننا فى حالة أن أردنا نقل خانة الأحاد للرقم 10 ألا وهى صفر فلن نستطيع لأن القيمة صفر تعنى أن المتحكم ليس فى وضع النقل بل هو فى وضع مشغول ولم يرسل وسيظل المتحكم الرئيسى منتظر حتى تأتى أى قيمة على أطراف الداتا ، ولتفادى هذه المشكلة فإننا سنجعل المتحكم الفرعى يضيف قيمة واحد على أى خانة يريد تحميلها على أطراف الداتا لإرسالها ثم بعد عملية الإرسال يقوم المتحكم الرئيسى بطرح واحد من كل قيمة تصل له فنكن قضينا على هذه المشكلة ، وفى حالة أن المتحكم الرئيسى سيعرض الخانات فقط على الشاشة ولن يفعل بها أى عملية حسابية فيمكننا من عدم القيام بعملية طرح قيمة واحد ، بل نكتفى بإضافة القيمة الواردة على 47 من رموز أسكى لأن الرقم زائد أصلا وبهذا نكن انتهينا بسلامة


برجاء مواصلة الرد إن كان هناك أى معلومة غير مفهومة ، وبالتوفيق



الساعة معتمدة بتوقيت جرينتش +3 الساعة الآن: 03:59 AM
موقع القرية الالكترونية غير مسؤول عن أي اتفاق تجاري أو تعاوني بين الأعضاء
فعلى كل شخص تحمل مسئولية نفسه إتجاه مايقوم به من بيع وشراء وإتفاق وأعطاء معلومات موقعه
التعليقات المنشورة لا تعبر عن رأي موقع القرية الالكترونية ولايتحمل الموقع أي مسؤولية قانونية حيال ذلك (ويتحمل كاتبها مسؤولية النشر)