# تكملة لشرح الميكروكنترولر Picf16f84 مفيد جدا



## نبيل الجبري (22 مارس 2007)

:2: 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
والشكل الاتى يوضح نظام العناوين الغير مباشرة


----------



## eng_mohand (23 مارس 2007)

جزاك الله كل خير ,اخي نبيل انت اضافه رائعه للمنتدى يارب نستفيد منها


----------



## eng_mohand (23 مارس 2007)

جزاك الله كل خير ,اخي نبيل انت اضافه رائعه للمنتدى يارب نستفيد منها


----------



## eng_mohand (23 مارس 2007)

جزاك الله كل خير ,اخي نبيل انت اضافه رائعه للمنتدى يارب نستفيد منها


----------



## العيون الدامعة (1 أكتوبر 2010)

شكرا جزيلا


----------

