Advanced Search

المحرر موضوع: PIC  (زيارة 22463 مرات)

0 الأعضاء و 1 ضيف يشاهدون هذا الموضوع.

سبتمبر 20, 2003, 09:34:05 مساءاً
رد #15

CCNA

  • عضو مبتدى

  • *

  • 2
    مشاركة

    • مشاهدة الملف الشخصي
PIC
« رد #15 في: سبتمبر 20, 2003, 09:34:05 مساءاً »
هلا الجميع
انا اعرف لغة الاسمبلي والتعامل مع الالكترونيات وتعاملت مع اكثر من نوع من MICROCONTROLLER
والان اتعامل مع PIC16F84A EEPROM \ MICROCONTROLLER
مع تحياتي محمد

سبتمبر 22, 2003, 02:36:23 مساءاً
رد #16

Mgh

  • عضو خبير

  • *****

  • 3536
    مشاركة

    • مشاهدة الملف الشخصي
PIC
« رد #16 في: سبتمبر 22, 2003, 02:36:23 مساءاً »
أخى ccna هل لك أن تعرفنا كيف نبدأ وماذا نحتاج لنشتريه وما هى الدوائر المطلوب تنفيذها وكيف تعمل إذا كنا نريد البدأ فى برمجة الميكروكنترولر؟
هناك أشياء جميلة في حياتنا لكننا لانراها لاننا لانكلف أنفسنا محاولة النظر اليها.. وربما تشابه الايام والروتين يحجب الرؤية عنها

سبتمبر 24, 2003, 10:55:43 مساءاً
رد #17

salwanrawas

  • عضو متقدم

  • ****

  • 597
    مشاركة

  • هندسة الكترونية

    • مشاهدة الملف الشخصي
PIC
« رد #17 في: سبتمبر 24, 2003, 10:55:43 مساءاً »
في حقيقة الأمر أنني بدأت أشتغل عملياً بالميكروكونترولر pic16f84 فعلاً
و استفدت من المجلة ترونيكس التي أشار إليها بعض الزملاء ..في بعض مشاركاتهم
حيث تتبعت الأعداد الصادرة الأولى الصادرة من 1 حتى 3 و الآن صدر العدد الرابع
و من أجل البرمجة يوجد في المجلة طريقة صنع مبرمجة بسيطة لكنني استخدمت المبرمجة المعروفة all-11
و البرنامج MPLAB لإنجاز البرمجة و الترجمة ... و حتى محاكاة عمل الدارة
م أحمد سلوان رواس

سبتمبر 30, 2003, 11:31:55 صباحاً
رد #18

nowah

  • عضو مبتدى

  • *

  • 2
    مشاركة

    • مشاهدة الملف الشخصي
PIC
« رد #18 في: سبتمبر 30, 2003, 11:31:55 صباحاً »
موضوعكم شيق جدا
بما انني بحثت كثيرا في مجال الميكروكنترولر منذ ثلاث سنوات بدأت بداية جيدة وقمت بتجربة عدة برامج و أجهزة لتعلم المايكركنترولر منها ATMEL و SX و PIC ولكن يجب أن تعلموا أن تعلم المايكروكنترولر ليس صعبا ولكن قبل كل شيء يجب على المتعلمين فهم شي ضروري وهو أن المياكروكنترولر معالج Processor نفس المعالج الموجود في جهاز الحاسب لديك ولكن هناك بعض التعديلات عليه في التطبيقات اي بمعنى تقليصة وتحديد عمله ليوصلك لأداء معين أنت تريده لذلك لابد منك فهم بناءات المعالج Computer Architecture أو Micro Controller  Architecture لتصل إلى ماتريد حيث أن كل المعالجات تقريبا لها نفس البناءات بالتحديد هم نوعين وهناك نوع واحد مشهور في بناءات المايكركنترولر لاأذكره بالضبط حاليا.
إن أفضل معالج أو مايكركنترولر ممكن تعلمه حاليا هو PIC16F84A بما يمتاز من رخص سعره وبساطته وسهولة توصيله بالحاسب وبرمجته حيث انه يتكون من فلاش ميموري ممكن التحكم به ومسحه عن طريق البرنامج المذكور.
ولكن هناك عدة أجهزة تساعدك في فهم المايكروكنترولر حيث يباع الجهاز وكتاب مفصل عن تركيب المايكروكنترولر المرافق وبرنامج خاص يقوم بتسهيل عليك عملية الفهم.
المجال في المايكركنترولر كبير لانستطيع سرده في يوم أو يومين
وإقتراحي هنا إذا قام أحد بالشرح يقوم به بعملية تسلسلية عملية لأن بدايته معقد قليلا ولكن بطريقة الشرح المبسط يكتشف أنه سهل جدا

ولكم تحياتي
شبكة نواه للإلكترونيات

يناير 10, 2004, 02:57:12 مساءاً
رد #19

Mgh

  • عضو خبير

  • *****

  • 3536
    مشاركة

    • مشاهدة الملف الشخصي
PIC
« رد #19 في: يناير 10, 2004, 02:57:12 مساءاً »
تكملة لما بدأ الأخوة به وخصوصا الأخ المهندس أحمد سلوان أقدم لكم ترجمة حول الموضوع

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

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

فإذا أردنا الحصول على بيانات معينة فإننا نبعث بعنوان تلك البيانات فتخرج لنا ..
ولعل المصطلحين addressing و memory location أصبحا واضحين حيث أن الذاكرة تتكون من مناطق memory locations والعنونة addressing  ما هى إلا إختيار أحد هذه المناطق.

وكما يجب أن تمكنا الذاكرة بالقراءة منها فإنها يجب أن تمكنا من الكتابة فيها وقد تم هذا بإضافة خطوط سميت بخطوط التحكم control line وهذه الخطوط هى التى تحدد للذاكرة ما إذا كنا نريد القراءة أم الكتابة فيها .

ودعونا نطلق على خط التحكم أسم r/w أو قراءة/كتابة . ... إذا كان جهد هذا الخط يمثل 1 منطقى فإن هذا يعنى أننا نقرأ من الذاكرة أما لو كان جهد هذا الخط 0 منطقى فإن هذا يعنى أننا نكتب فيها.

وعندما تعرف الذاكرة ما هو مطلوب منها (قراءة أم كتابة) عن طريق خط التحكم وتقرأ العنوان المراد من خلال خطوط العنونة Address Lines فإنها ترسل البيانات أو تستقبلها على خطوط البيانات Data Lines .
هناك أشياء جميلة في حياتنا لكننا لانراها لاننا لانكلف أنفسنا محاولة النظر اليها.. وربما تشابه الايام والروتين يحجب الرؤية عنها

يناير 10, 2004, 03:08:35 مساءاً
رد #20

Mgh

  • عضو خبير

  • *****

  • 3536
    مشاركة

    • مشاهدة الملف الشخصي
PIC
« رد #20 في: يناير 10, 2004, 03:08:35 مساءاً »
========================
وحدة التحكم المركزية CPU :
=========================
دعونا نضع ثلاث Memory Locations فى قالب (كما هو موضح بالشكل المرفق) وهذا القالب صممناه ليكون عنده القدرة لضرب وقسمة وطرح ونقل البيانات من منطقة فى الذاكرة إلى أخرى .
هذا القالب يدعى وحدة التحكم المركزية Central Processing unit أو أختصاراCPU . وقطع الذاكرة التى وضعناها فيه تسمى مسجلات Registers.
هناك أشياء جميلة في حياتنا لكننا لانراها لاننا لانكلف أنفسنا محاولة النظر اليها.. وربما تشابه الايام والروتين يحجب الرؤية عنها

يناير 10, 2004, 03:22:07 مساءاً
رد #21

Mgh

  • عضو خبير

  • *****

  • 3536
    مشاركة

    • مشاهدة الملف الشخصي
PIC
« رد #21 في: يناير 10, 2004, 03:22:07 مساءاً »
إذا فالمسجلات تلك هى وحدات ذاكرة تستخدمها وحدة المعالجة المركزية CPU لإجراء العمليات الحسابية التى تريدها على البيانات.

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

==============
المسار Bus :
============
وهو الطريق الذى تسلكه البيانات بين وحدة التحكم المركزية والذاكرة وهو مكون عمليا من مجمعة من 8 أو 16 أو أكثر من الأسلاك.

ويوجد نوعان من المسارات :
1- مسارات العناوين Address buses
وهى التى تحمل عنوان البيانات التى نريد التعامل معها فى الذاكرة.

2- مسارات البيانات Data buses
وهى التى تحمل البيانات المقروأة أو المكتوبة من وإلى الذاكرة.
هناك أشياء جميلة في حياتنا لكننا لانراها لاننا لانكلف أنفسنا محاولة النظر اليها.. وربما تشابه الايام والروتين يحجب الرؤية عنها

يناير 10, 2004, 03:25:15 مساءاً
رد #22

Mgh

  • عضو خبير

  • *****

  • 3536
    مشاركة

    • مشاهدة الملف الشخصي
PIC
« رد #22 في: يناير 10, 2004, 03:25:15 مساءاً »
والأن فهمنا كيف تسير الأمور بين وحدة التحكم والذاكرة ولكن لازالت هناك مشكلة وهى كيف يمكننا نحن التأثير أو الإستفادة من تلك الوحدات .
بالتأكيد نحتاج لوحدات إدخال وإخراج تربط بتلك الوحدات فتمكنا من إدخال البيانات أو قراءتها.

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

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

فالنفترض أننا نعمل بثلاث خطوط فقط . أحد هذه الخطوط الثلاثة يستخدم لإرسال البيانات والأخر لإستقبال البيانات والثالث كخط مرجعى (مثل الControl Line) لمعرفة إتجاه البيانات.
ولنجعل هذه الخطوط الثلاثة تعمل على نقل البيانات يجب أن يتفق طرفى الإتصال على قواعد لنقل البيانات وهذه القواعد تسمى بروتوكولات Protocols. وذلك حتى لا يحدث أى سوء فهم بين طرفى الإتصال.

والأن لنصنع إتفاقا Protocol وهو كالتالى :

سيكون خط الإرسال فى الحالة المنطقية "1" فإذا أردنا إرسال البيانات نضع "0" منطقى لفترة معينة متفق عليها ثم يبدأ نقل البيانات .
فعندما يرى المستقبل تغير حالة الخط من "1" إلى "0" فإنه سيجهز نفسه لإستقبال البيانات .

أما البيانات فيمكن نقلها فى صورة أصفار وأحاد خلال خط الإرسال مرتبين من البت الأول إلى البت الثامن ولنسمح لكل بت بالبقاء على خط الإرسال لفترة زمنية معينة T يتم تحديدها مسبقا.

وبعد الإنتهاء من نقل البيانات نعيد الخط لحالة ال"1" المنطقى .

وهذا البروتوكول يسمى Non-Return to Zero أو إختصارا باسم NRZ أو عدم الرجوع لحالة الصفر. (ويعنى أن تغيير حالة الخط من 1 إلى صفر تعنى أننا سنقوم بعملية إرسال).

ولأننا جعلنا خطين أحدهما للإرسال والأخر للإستقبال فإننا يمكننا الإرسال والإستقبال فى نفس الوقت وهذا النوع من الإتصال يسمى Full-duplex
وهو بعكس النوع Half-duplex والذى يتم فيه نقل البيانات إرسالا و إستقبالا فى خط واحد وليس فى نفس الوقت طبعا.

وخلال إرسال البيانات تسلسليا فإن المستقبل يجب أن يكون لديه القدرة لقراءة تلك البيانات (كل بت فى الوقت المحدد له) وتخزينهم (كل 8 بت) لنقلهم فى خطوط البيانات المتوازية بداخله للتعامل معها.
هناك أشياء جميلة في حياتنا لكننا لانراها لاننا لانكلف أنفسنا محاولة النظر اليها.. وربما تشابه الايام والروتين يحجب الرؤية عنها

يناير 10, 2004, 03:28:05 مساءاً
رد #23

Mgh

  • عضو خبير

  • *****

  • 3536
    مشاركة

    • مشاهدة الملف الشخصي
PIC
« رد #23 في: يناير 10, 2004, 03:28:05 مساءاً »
============
وحدة المؤقت :
============
فى عملية نقل البيانات تسلسليا نحتاج لبعض القوالب لدعم هذا الإتصال ومن هذه القوالب (المؤقت) Timer وهو مهم لأنه يجعل عملية الإتصال مرتبه ومتزامنة حيث يمكن للمستقبل معرفة ميعاد إنتهاء وبدأ زمن إرسال أى بت.

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

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

===========================================
التحويل من تماثلى لرقمى Analog to digital converter :
===========================================
ربما تكون الإشارة المراد إدخالها للميكروكنترولر ليست رقمية (أى لا يمكن التعبير عنها مباشرة بطريقة الصفر والواحد) ويتم تحويل هذه الإشارات (التى تسمى تماثلية) إلى رقمية بواسطة محول (دارة) تعرف إختصارا ب ADC.

**** الأن وبعد أن تعرفنا على القوالب المكونة للميكروكنترولر بشكل عام فإننا نحتاج للدخول إلى كل قالب من خلال أطراف Pins الميكروكنترولر الخارجية.
الشكل التالى يبين كيف هو شكل الميكروكنترولر الداخلى :

لاحظ أن أطراف الميكروكنترولر مربوطة بمحتوياته بأسلاك رفيعة جدا.
هناك أشياء جميلة في حياتنا لكننا لانراها لاننا لانكلف أنفسنا محاولة النظر اليها.. وربما تشابه الايام والروتين يحجب الرؤية عنها

يناير 10, 2004, 03:31:03 مساءاً
رد #24

Mgh

  • عضو خبير

  • *****

  • 3536
    مشاركة

    • مشاهدة الملف الشخصي
PIC
« رد #24 في: يناير 10, 2004, 03:31:03 مساءاً »
الشكل التالى يوضح تركيب الشكل الأوسط فى الميكروكنترولر.
هناك أشياء جميلة في حياتنا لكننا لانراها لاننا لانكلف أنفسنا محاولة النظر اليها.. وربما تشابه الايام والروتين يحجب الرؤية عنها

يناير 10, 2004, 03:34:23 مساءاً
رد #25

Mgh

  • عضو خبير

  • *****

  • 3536
    مشاركة

    • مشاهدة الملف الشخصي
PIC
« رد #25 في: يناير 10, 2004, 03:34:23 مساءاً »
والميكروكنترولر يحتاج لبرنامج يقوم بتنفيذه ويحتاج لبعض العناصر الإلكترونية من حوله لدعم تغذية الميكروكنترولر بالطاقة وضبط بعض المتغيرات.

========
البرنامج
========
كتابة البرنامج جزء مهم فى مجال العمل بالميكروكنترولر وها هو مثال لبرنامج بسيط :

START
REGISTER1=MEMORY LOCATION_A
REGISTER2=MEMORY LOCATION_B
PORTA=REGISTER1 + REGISTER2
END

والبرنامج السابق يقوم بجمع محتويات مكانين فى الذاكرة واخراج الناتج على المنفذ A
فالسطر الأول يقوم بنسخ محتويات المكان المسمى MEMORY LOCATION_A فى الذاكرة إلى مسجل موجود فى وحدة التحكم المركزية.
والسطر الثانى ينقل البيان الثانى من الذاكرة إلى مسجل أخر داخل وحدة المعالجة المركزية.
السطر الثالث يأمر وحدة المعالجة المركزية بجمع الرقمين الموجودين الأن فى المسجلين وإرسال الناتج إلى المنفذ A
وبذلك فإن الناتج سيخرج إلى العالم الخارجى.

وطبعا كلما زاد تعقيد العملية المطلوبة كلما كان البرنامج أطول.

وبرمجة الميكروكنترولر يمكن أن تتم بعدة لغات مثل لغة التجميع Assembler و لغة السى ولغة البيسك.

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

أما البرمجة بلغة السى فهى أسهل فى البرمجة والفهم ولكنها أبطأ فى التنفيذ من لغة التجميع.

أما لغة البيسك فهى الأسهل على الإطلاق وأوامرها أقرب للغة الإنسان ولكنها أيضا أبطأ فى تنفيذ برامجها من لغة التجميع.

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

يناير 10, 2004, 03:36:28 مساءاً
رد #26

Mgh

  • عضو خبير

  • *****

  • 3536
    مشاركة

    • مشاهدة الملف الشخصي
PIC
« رد #26 في: يناير 10, 2004, 03:36:28 مساءاً »
==================================
مقدمة للميكروكنترولر من نوع PIC16F84
==================================
الدارة المتكاملة PIC16F84 ينتمى لعائلة الميكروكنترولات من فئة 8 بت . ويتكون من مجموعة من القوالب موضحة فى الشكل التالى وتعريفها كما يلى :

1- Program memory أو الFlash وهى ذاكرة تستخدم لتخزين البرنامج وتتميز تقنية الفلاش التى صنعت بها هذه الذاكرة بإمكانية الكتابة فيها والمسح عدة مرات.

2- EEPROM وهى ذاكرة تستخدم لتخزين البيانات فى حالة عدم وجود مصدر تغذية موصل بالميكروكنترولر وهى البيانات المهمة التى يعيد الميكروكنترولر ضبط نفسه بها بعد عودة التغذية الكهربية له.

3- RAM وهى ذاكرة تستخدم من قبل البرنامج أثناء التشغيل لتخزين البيانات التى يتعامل معها تخزينا مؤقتا.

4- PortA و PortB وهى الوصلات الفزيائية بين الميكروكنترولر والعالم الخارجى .والمنفذA مكون من خمس أطراف أما المنفذ B مكون من 8 أطراف.

5- FREE-RUN TIMER وهو مسجل 8 بت داخل الميكروكنترولر ويعمل بدون أن يعتمد على البرنامج. حيث تزيد القيمة الموجودة فيه كل أربع نبضات من المذبذب حتى تصل إلى القيمة العظمى لها (255) ثم يبدأ مرة ثانية فى العد من الصفر.

6- CENTRAL PROCESSING UNIT هو الذى يتحكم فى جميع الوحدات السابقة وهو الذى ينفذ البرنامج المخزن فى الميكروكنترولر.
هناك أشياء جميلة في حياتنا لكننا لانراها لاننا لانكلف أنفسنا محاولة النظر اليها.. وربما تشابه الايام والروتين يحجب الرؤية عنها

يناير 10, 2004, 03:38:01 مساءاً
رد #27

Mgh

  • عضو خبير

  • *****

  • 3536
    مشاركة

    • مشاهدة الملف الشخصي
PIC
« رد #27 في: يناير 10, 2004, 03:38:01 مساءاً »
===============
CISC , RISC
============
تم بناء ال PIC16F84 بتكنولوجيا تعرف بRISC وهى تكنولوجيا سنتطرق إلى شرح فكرتها فى السطور التالية .

فى الشكل التالى نرى طريقتين لربط الCPU بالPRogram Memory و الDATA Memory والطريقتين هما :
1- Harvard architecture
2- von-Neumann's
وطريقة Harvard architecture هى الطريقة الأحدث والتى تم فيها مراعاة التصميم الذى يضمن سرعة أكبر فى عمل الميكروكنترولر.
ففى بناء هارفرد تم فصل data bus و address bus وهذا يضمن أقصى سرعة لمرور البيانات من وحدة المعالجة المركزية وإليها وبالتالى سرعة التنفيذ.

كما أن هذا البناء يفصل البرنامج عن ذاكرة البيانات مما يمكننا من استخدام أوامر تستخدم أكبر من 8 بت . فالميكروكنترولر PIC16F84 يستخدم 14 بت للأوامر.

كما أن بناء هارفارد يحتوى على أوامر أقل من البناء الأخر.

وبناء هارفارد أيضا له أوامر تنفذ فى دورة واحدة.

والميكروكنترولات المبينية بطريقة هارفارد تسمى RISC وهى إختصار للمصطلح stands for Reduced Instruction Set Computer والتى تعنى المحاولة فى بناء حاسب بأقل عدد من الأوامر.

أما الميكروكنترولات المبنية ببناء von-Neumann's فتسمى CISC وهى إختصار ل stands for Complex Instruction Set Computer

وبما أن الميكروكنترولر PIC16F84 مبنى بتكنولوجيا RISC أى أن عدد أوامره أقل وهى 35 أمرا فقط (الميكروكنترولات من نوع Motorola أو Intel لها أكثر من مائة أمر).
وكل ال35 أمر تنفذ فى دورة واحدة One Cycle ماعدا أمر jump و أمر branch

وقلة عدد الأوامر التى تستخدم تقلل من حجم البرنامج بنسبة 1 إلى 4 بالنسبة لنفس الميكروكنترولات التى تستخدم 8 بت وليست من نوع RISC
هناك أشياء جميلة في حياتنا لكننا لانراها لاننا لانكلف أنفسنا محاولة النظر اليها.. وربما تشابه الايام والروتين يحجب الرؤية عنها

يناير 10, 2004, 03:40:14 مساءاً
رد #28

Mgh

  • عضو خبير

  • *****

  • 3536
    مشاركة

    • مشاهدة الملف الشخصي
PIC
« رد #28 في: يناير 10, 2004, 03:40:14 مساءاً »
======================
المؤقت ودورة تنفيذ الأمر
======================
المؤقت Clock هو المتحكم فى عمل الميكروكنترولر ويتم ضبط المؤقت عن طريق مذبذب Oscillator خارجى.

ونبضات المذبذب تدخل الميكروكنترولر من خلال الطرف OSC1 حيث تقسم الدارة الداخلية هذه النبضات إلى أربع ساعات Q1 , Q2,Q3,Q4 لا تتداخل نبضاتها (كما بالشكل التالى).

وهذه المؤقتات الأربع تصنع دورة أمر instruction cycle

فالأمر يستدعى من الprogram memory فى الدورة Q1 ثم يفسر Decoding وينفذ executted فى الدورتين Q2,Q3 ثم يكتب فى مسجل الأوامر instruction register فى الدورة Q4 .

وفى الشكل التالى يمكنك أن ترى العلاقة بين دورة الأمر Instruction cycle وساعة المذبذب OSC1 و المذبذبات الداخلية Q1 إلى Q4

لاحظ أن الPROGRAM COUNTER يخزن عنوان الأمر التالى أثناء تنفيذ الأمر الحالى.
هناك أشياء جميلة في حياتنا لكننا لانراها لاننا لانكلف أنفسنا محاولة النظر اليها.. وربما تشابه الايام والروتين يحجب الرؤية عنها

يناير 10, 2004, 03:42:52 مساءاً
رد #29

Mgh

  • عضو خبير

  • *****

  • 3536
    مشاركة

    • مشاهدة الملف الشخصي
PIC
« رد #29 في: يناير 10, 2004, 03:42:52 مساءاً »
فى الشكل التالى ندرك كيف يتم تنفيذ البرنامج المكتوب على اليسار والمرقم سطوره.

ففى الخطوة الأولى TCY0 يتم البحث عن مكان الأمر الأول وهو MOVELW 55H
وفى الخطوة TCY1 يتم تنفيذ الأمر MOVLW 55H والبحث عن مكان الأمر التالى
وفى الخطوة TCY2 يتم تنفيذ الأمر MOVEWF PORTB ويتم البحث عن مكان الأمر التالى.
وفى الخطوة TCY3 يتم تنفيذ الأمر CALL SUB_1 ويتم البحث عن الأمر التالى
ولأن الأمر التالى فى البرنامج هو BSF PORTA,BIT3 وهو ليس الأمر الذى نريد تنفيذه لأن أمر CALL السابق له يريد أن يرسل البرنامج لتنفيذ البرنامج الفرعى SUB_1 فإن ذلك سحتاج دورة أخرى لقراءة الأمر الأول فى البرنامج الفرعى SUB_1

وفى الخطوة TCY4 يتم البحث عن أول أمر فى البرنامج الفرعى SUB_1

وهكذا ...
هناك أشياء جميلة في حياتنا لكننا لانراها لاننا لانكلف أنفسنا محاولة النظر اليها.. وربما تشابه الايام والروتين يحجب الرؤية عنها