الدرس الخامس: استكمال مكونات الميكرو PIC16f84 الجزء الثانى

والان سنتعرف على ال

Ports

والمقصود بالبورت هو مجموعة من ارجل الميكروكنترولر التى توصل بالعالم الخارجى ويتم استقبال او قراءة البيانات منها وتكون هذه البيانات أما اصفار او واحد وهذا البورت فى الاصل عبارة عن مسجل موجود فى الذاكرة وقد لاحظنا هذا من شكل توزيع المسجلات وبالنسبة للمسجلات التى لها وظائف اضافية مثل الرجل الرابعة للبورت A وكما ذكرنا سابقا انها تستخدم مثل المؤقت او المذبذب
ويكون اختيار الوظائف الاضافية عن طريق configuration register
ولكل بورت كما عرفنا يوجد 8 ارجل يمكنكم برمجتهم كمداخل للميكرو او كمخارج عن طريق المسجل TRISA بالنسبة للبورت A وTRISB بالنسبة للبورت B

فمثلا لو كان البت الثالثة فى المسجل TRISA تساوى 0
فان البت الثالثة فى البورت A تكون مخرج والعكس ايضا اذا كانت البت الثالثة فى المسجل TRISA تساوى 1
فان البت الثالثة فى البورت A تكون كمخرج كما موضح فى الشكل الاتى :

وبالنسبة للبورت B فتوجد به خاصية اضافية وهى تسمى

weak internal pull-up resistor

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

Memory organization

والان سنتعرض بالتفصيل اكثر لذاكرة الميكرو PICF16F84
والذاكرة تتكون من بلوكين مهمين جدا

البلوك الاول وهو بلوك ذاكرة البيانات

ويحتوى على EEPROM وعلى GPR الموجودة فى الذاكرة RAM
وكما عرفنا سابقا ان البيانات الموجودة فى EEPROM لا تضيع عند قطع القدرة وحجم هذه الذاكرة 64 byte .
ولا يتم الدخول اليها مباشرة ولكن عن طريق المسجلين EEADR و EEDATA .

البلوك الثانى هو بلوك ذاكرة البرنامج

ويحتوى على Flash memory وهذه التكنولوجيا تتيح كتابه البرنامج ومسحه مرات عديدة .

المسجلات SFR

وقد وضحنا سابقا ما هى وقد عرفنا انها تشغل 12 مكان فى الذاكرة

عداد البرنامج

وهو مسجل يحتوى على 13 بت ويحتوى على عنوان التعليمة التى سوف يتم تنفيذها وفى كل مرة يتم تنفيذ تعليمة يتم زيادة العداد بمقدار 1

Stack

يحتوى الميكروكنترولر على 13 بت ستاك ويحتوى على 8 مستويات وهذا الاستاك عبارة عن اماكن فى الذاكرة ودوره الاساسى هو الاحتفاظ بقيمة عداد البرنامج وهو عنوان التعليمة التى سوف يتم تنفيذها فى حالة انتقال الميكرو من تنفيذ البرنامج الرئيسى الى برنامج فرعى Subprogram على اساس انه عند انتهاء الميكرو من تنفيذ البرنامج الفرعى فانه ينظر الى الاستاك ليرى التعليمة التى عليها الدور فى التنفيذ ويبدأ تنفيذها .

ولذلك يجب علينا عند استخدام البرامج الفرعية ان نراعى حفط قيمة العداد فى الاستاك قبل الدخول الى البرنامج الفرعى وهى العملية تسمى عملية PUSH وهى عملية حفط فى الاستاك اما عملية الاخذ منه فتسمى POP وهذين الاسمين مستخدمين فى معظم انواع الميكروكنترولر.

وفى الشكل الاتى نرى توضيح أكثر لمكونات الذاكرة والمسجلات

نظام عناوين الذاكرة

يعتمد نظام العناوين فى الذاكرة على عناوين يمكن الوصول اليها مباشرة وعناوين لا يمكن الوصول اليها مباشرة .

والعناوين المباشرة يتم الوصول اليها باستخدام
9-bit
وتتكون باستخدام طول العنوان المعروف لدينا والذى يتكون من 7 بت بالاضافة الى 2 بت واللذان يستخدمان فى اختيار البنك وهما RP1 و RP0 من المسجل STATUS
واستخدام العناوين المباشرة موضح فى الشكل الاتى :

والان ننتقل الى جزء تحديد العناوين بطريقة غير مباشرة ويسمى INDF
وهو مثل الحالة السابقة ولكن لا نأخد العنوان من التعليمة الموجودة فى البرنامج ولكن تكون عن طريق استخدام البت رقم 7 فى المسجل STATUS وهو المسئول عن اختيار البنك فى حالة نظام العناوين الغير مباشرة .

وعن طريق المسجل FSR وهو المسجل المصوب اى السجل الذى يكون فيه العنوان المطلوب
فمثلا لدينا سجل عنوانه 07 ويحتوى على المعلومة 09
ولدينا سجل اخر عنوانه 08 ويحتوى على المعلومة 02
فمثلا عن طريق البرنامج الذى سنكتبه نقوم بوضع 07 فى FSR فنجد ان العنوان اصبح 09 وبالمثل عند وضع 08
والشكل الاتى يوضح نظام العناوين الغير مباشرة

thanks you

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

قلت يا اخي الغالي

وبالنسبة للبورت B فتوجد به خاصية اضافية وهى تسمى

weak internal pull-up resistor

وهذا يعنى ان كل بت يمكنها تحديد خط معين لسير البيانات

ممكن توضيح رجاء

كيف اخزن مسجل طوله 8بت في ستاك طولها 13 بت
اي البتات سوف تلغى

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

هل ان المستويات الثلاثة اذن فقد لعداد البرنامج
وهذا يعني ممكن تخزين محتويات العداد لغاية 8 مرات

اذن اين اخزن محتويات المسجلات

هل ان المستويات الثلاثة اذن فقد لعداد البرنامج

هم 8 مستويات فى الاستاك لتخزين العداد

اذن اين اخزن محتويات المسجلات

المسجلات هى اصلا اماكن فى الذاكرة وتكون موجودة فى الرام

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

اخى انا مشارك معكم ولاكنى اخشى ان اضيق عليكم من كثره اسئلتى

الف شكر على التفصيل في الشرح وانا في انتظار الدرس التالي بشوق

يا اخي الاسئلة تزيد من توضيح الامور
انا ايضا اكثر من الاسئلة
والاخ احمد الديب ممقصر اطلاقاً

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

شكرا أخى
بارك الله فيك

شكرا أخى
بارك الله فيك

جزاك الله خيرا اخى العزيز

جزاك الله خيرا أخى الكريم المهندس أحمد وبارك الله فيك
ووفقنا الله وإياك الى ما يحبه ويرضاه