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

أسألة في المايكروكونترولير من مبتدأ

مغلق
بدأه فارس2005 في 19 أكتوبر 2004 · 16 رد · 2,358 مشاهدة · في الميكروكنترولر (المتحكم) و الدوائر الرقمية و المنطقية
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

1- كم يوجد ريجيستر في ال CPU مثل ما هو موجدو في الميكروبروسيسور مثل ax وغيرها وما هي أسماؤها وحجم كل منها ووظيفت كل واحدة؟

2- هل عدد الريجيتسرات في البورتات هما 2 واحده للبورت a والأخري للبورت b وحجم الاولي 5 بيت والثانية 8 بيت؟؟؟

3- كم حجم الرام التي تختص بالتعاون مع CPU كما في الكمبيوتر ؟ وهل هي مقسمة كما في الكمبيوتر حيث الانترابت في مكان معين ام انها فارغة؟

4- لاحظت ان الميكروكونترولير به 13 بورت يعني انهم يتصلو بالعالم الخارجي ولكن من المعروف ان الاشارة الخارجة منهم هي digital ولكن اذا اردت التحكم بشي غير ديجيتل فلابد من تحويله الي من ديجيتال الي تماثلي analoge يعني

وجود دائرة أخري مساعدة وهي A/D convertor فهل صحيح ذلك؟؟؟ ولكن علمت بانه يوجد داخل الميكروكونترولير A/D convertor هل هذا صحيح؟؟ وكيف يتم توصيل الميكروكونترولير مباشرتا بمصدر اشارة analoge ؟

#2

بخصوص عدد المسجلات فتختلف من معالج الى آخر قديما كان بعض المعالجات CISC اما الان فمعظم او كل المعالجات RISC ما يعني ان الريجسترات عديدة وهي عادة FILE REGISTER و بعضها 128 و تعنون برقمها و هناك WORK REGISTER و يمكن اجراء العمليات في انظمة RISC بشكل مباشر في اي مسجل مثل زيادة او نقصان +1 او -1.

الذاكرة متصلة وجزء منها ال FILE REGISTER. بعض المعالجات 8 بت و مع ذلك لديها القدرة على ان تكون متصلة لتشكل 16 بت او 32 بت و بالتالي يمكن جمع رقمين 32 بت بشكل مباشر. كثير من الميكروكنترولر لديها دوائر تماثلية اي انها تقرا الدخل التماثلي بشكل مباشر، فلو ان عندك اشارة تماثلية توصلها مباشرة الى القطب الصحيح و تستطيع قرائتها من المعالج. عدد البورتات يختلف كذلك من معالج الى آخر و هذا نموذج لمعالج لديه 7 بورتات من A الى G.

pic18f8720.GIF

39_22.gif

تزود من التقوى فإنك لا تدري *** إذا جن ليل هل تعيش إلى الفجر

فكم من فتى أمسى وأصبح ضاحكاً *** وقد نسجت أكفانه وهو لا يدري

لقراءة القرآن الكريم و سماعه و تفسيره ........

ماذا يعني انني مسلم سني؟

قصة غريبة

ConflictResolution.gif

#3

سؤالي بدقة في معالج مثلا PIC16f84 أريد فقط مخطط ل CPU فقط دون اي قطع متصله به أخري كي أقارنه بالميكروبروسيرور 8086 يعني اريد معرفة كم ريجيستر به اتعامل معهم في البرمجة

اقتباس
قديما كان بعض المعالجات CISC اما الان فمعظم او كل المعالجات RISC

ما المقصود بالمصطلحين CISC و RISC

تم تعديل هذه المشاركة بواسطة فارس2005 في 20 أكتوبر 2004 في 21:49

#4

عدد مسجلات 1684 هي 64 مسجل كما تبدو في المخطط. صحيح ان المخطط يعطي فكرة جيدة و لكن الصورة تكون اوضح عند اطلاعك على الاسمبلى الخاصة بالمعالج وهي اوامر بسيطة تقريبا 35 امر اساسي، و هذه احد ميزات معالجات risc عن cisc و هي ان الاوامر مختصرة بنسبة كبيرة و هي اصلا اختصارات

(reduced/complex) instruction set computer

16f84block.GIF

39_22.gif

تزود من التقوى فإنك لا تدري *** إذا جن ليل هل تعيش إلى الفجر

فكم من فتى أمسى وأصبح ضاحكاً *** وقد نسجت أكفانه وهو لا يدري

لقراءة القرآن الكريم و سماعه و تفسيره ........

ماذا يعني انني مسلم سني؟

قصة غريبة

ConflictResolution.gif

#5

ما وظيفة MCLR في المايكروكونترولير هل يعمل reset للجهاز او يمحي ما هو مخزن في ذاكرة البرنامج؟

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

#6

يقوم بعمل RESET للمتحكم ولا يمحي ما هو مخزن في ذاكرة البرنامج

أما محي البرنامج فهو من اختصاص programmer

{وقل ربي زدني علماً}

#8

بالضبط وهذه هي الصفحة للبرنامج

39_22.gif

تزود من التقوى فإنك لا تدري *** إذا جن ليل هل تعيش إلى الفجر

فكم من فتى أمسى وأصبح ضاحكاً *** وقد نسجت أكفانه وهو لا يدري

لقراءة القرآن الكريم و سماعه و تفسيره ........

ماذا يعني انني مسلم سني؟

قصة غريبة

ConflictResolution.gif

#9

ما هي فكرة عمل ال watchdog؟ علي ما فهمت انه من اسمه كلب الحراسة اي يراقب أداء

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

ولكن اريد طريقة أداءه في الداحل أي كيف يكتشف الخلل في أداء الميكروكونترولير ثم يعمل reset له؟

وهل هو مرتبط بالمذبذب الخارجي في عده(oscillator )؟

#10

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

وهو كما ذكرت مربوط مع الساعة الخارجية و ربما من خلال مخفض ذبذبة step down و على كل ربما يختلف من متحكم الى آخر.

39_22.gif

تزود من التقوى فإنك لا تدري *** إذا جن ليل هل تعيش إلى الفجر

فكم من فتى أمسى وأصبح ضاحكاً *** وقد نسجت أكفانه وهو لا يدري

لقراءة القرآن الكريم و سماعه و تفسيره ........

ماذا يعني انني مسلم سني؟

قصة غريبة

ConflictResolution.gif

#11

السلام عليكم :

عند باية تشغيل الميكروكنترولر 16F84 يعطي على المخارج قيم غير صحيحة لذلك أكتب مع بداية كل برنامج عدة أسطر لتصفير المخارج و بعد ذلك أصبحت المخارج تومض لفترة صغيرة جداً ثم تتصفر.

فهل من حل لهذه القيم الخاطئة مع بداية التشغيل؟؟؟؟

#12

شكرا علي الرد

ولكن انت ذكرت انه يعد لعدد معين من المرات يعني المبرمج هو الذي يضع به قيمة معينة يعد منها ؟ ام انه يعتمد علي حجم البرنامج الخزن؟ يعني اذا كان حجم البرنامج 200 بايت مثلا هل يعد علي حسب حجم البرنامج لكي يمر بكل تعليمة تطلب منه؟ او بمعني آخر انه عندما يمر بكل تعليمة يحسب قيمة عددية ولو توقف عند نقطة معينة في البرنامج ولم تنفذ فانه يتوقف عن العمل ؟وعيد تشغيل الجهاز؟ او هل مرتبط بال program counter ؟

تم تعديل هذه المشاركة بواسطة فارس2005 في 31 أكتوبر 2004 في 15:30

#13

الاخ فارس2005 ال WDT ليس له علاقة باوامر البرنامج بدليل انك ممكن تضيفه خارج الميكروكنترولر و انت من يعين مقدار العد الذي سيصل له قبل عمل RESET. يعني لو اضفت عداد خارجي يكون خرج العداد مثلا مرتبط مع RESET تقوم انت من داخل برنامجك بالمرور بصفة دورية على WTD و تخرج PULSE تصفر فيه عداد WDT و بهذا فلا يصل الى حالة RESTART اما لو حصل خلل مثلا و غير البرنامج او مساره فغالبا لن يتم عمل تصفير لل WDT و بالتالي فهو الذي سيقوم باعادة تشغيل الجهاز.

لفهم عمل WDT مع الميكروكنترولر بشكل نهائي نعتبرهم جهازين منفصلين كل واحد يعمل RESET للاخر كانهما سهرانين مع بعض فاي واحد يغفل يقوم الاخر بتنبيهه. فلو نسي الميكروكنترولر (البرنامج) ان يصفر ال WDT فانه سيقوم باعادة تشغيل الميكروكنترولر و الوضع الطبيعي ان الميكروكنترولر بصفة دائمة يمسح عداد WDT و يقول له انه صاحى و متنبه.

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

39_22.gif

تزود من التقوى فإنك لا تدري *** إذا جن ليل هل تعيش إلى الفجر

فكم من فتى أمسى وأصبح ضاحكاً *** وقد نسجت أكفانه وهو لا يدري

لقراءة القرآن الكريم و سماعه و تفسيره ........

ماذا يعني انني مسلم سني؟

قصة غريبة

ConflictResolution.gif

#14

هل البتات 4 و 3 (TO & PD ) يمكن التغيير فيهم ام هم من خصائص عمل المايكروكونترولير يضع بهما القيم المناسبة ؟

ألاحظ ما يهمني كمبتدأ في هذا الريجيستر وله اهميته هو البيت الخامس فقط هل هذا صحيح؟

فهمت من المرشد الخاص بالمايكروكونترولير ان البتات الثلاث الاولي (C, DC and Z ) لا يمكن الكتابة عليها ولكن نقرأ منها فقط والمايكرو هو الذي يغير الحالة بها فهل هذا صحيح؟

يعني من ذلك نجد ان المكان الوحيد الي يمكن ان نتدخل فيه او نغير فيه من البرنامج هو RP0 ؟ فهل هذا صحيح؟ والبقية نقرامنهم لغرض معين؟

تم تعديل هذه المشاركة بواسطة فارس2005 في 1 نوفمبر 2004 في 16:55

#15

كنت اطلع علي صفحة موقع تعلم ال pic وهذه الصفحة تتكلم عن interrupt

http://www.mstracey.btinternet.co.uk/pictu...l/progtut11.htm

ولكن لم افهم نقطة وهي تقو عندما لا يكون flag لا يساوي واحد وهذا النص

اقتباس
If this flag wasn’t set to 1, and the PIC was allowed to keep responding to the interrupt, then continually pulsing the pin will keep the PIC going back to the start of our interrupt routine, and never finishing it
#16

اريد انا افهم نقطة معنية في ال interrupt

1- فهمت انه لابلاغ المتحكم بانه سوف يحدث مقاطعة بشكل عام بان نضع GIE = 1

ولكذل لتحديد اي مقاطعة ستحدث ولتكن INTE نجلعها = 1 ولكن هل INTF اوتوماتيكا

يصبح = 1 عندما INTE =1 ؟ ام لابد من تحديده في البرنامج؟

2- هل البت الخاص بال flag في ريجستير ال interruput لانتدخل في وضع البت فيه من عندنا عند

حدوث المقاطعة ونتدخل فقط فيهي او نكتب فيه عند الخروج من المقاطعة لتصفيره؟

#17

أخ فارس2005

في الحقيقةالبت TO.PD لم أتعامل معهم قبلاً ولكني أعرف أن TO لها علاقة بإنقضاء زمن تاخير المؤقتWDT

والخانةPD لها علاقة بنمط الطاقة المنخفضة .

أما بالنسبة للخاناتZ.C.DC فكما قلت. والخانات التي يمكن الكتابة عليها مبدئياً كما قلت

أما بشأن المقاطعة

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

لذلك يجب دوماً تصفيرعلم المقاطعة بعد معرفة نوعها، وهنا يتحدث عن المقاطعة الخارجية على القطب RB0/INT

عندما تحدث مقاطعة INTE يتفعل العلم INTF ويتم تصفير الخانةGIE اوتوماتيكاً حيث أن الحالة الأفتراضية للأعلام صفر

تم تعديل هذه المشاركة بواسطة tell me في 3 نوفمبر 2004 في 21:33

{وقل ربي زدني علماً}

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

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

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…