ماهى الذاكرةتعرف الأنظمة الإلكترونية الفرعية التي يتم تخزين البيانات فيها باسم 'الذاكرة'. وهذه الأنظمة لا يمكنها إلا تخزين البيانات الرقمية فقط. كل جزء من البيانات يخزن في موضع واحد في الذاكرة. كل موضع فى الذاكرة له عنوان معين يتم التعبير عنه برقم محدد. هذا يعني أنه يمكننا رسم خريطة للذاكرة والتي تبين ما هي المعلومات التي خزنت في كل موقع من الذاكرة كما هو موضح بالشكل التالى
لاحظ أننا نبدأ في الترقيم من 0 الى 7 فهذه الذاكرة تحتاج الى عدد 3 بت (خانة) ثنائية للسماح للعناوين المختلفة لكل موقع ان تخزن وهذا يتيح لنا تخزين بيانات بعرض 8 بت أو 1 بايت أفقيا. و الخانة الأفقية فى دوائر الذاكرة تسمى " سجل " (register)، ممكن أن تكون بعرض 8 بت أو أكثر. حيث أن انظمة الذاكرة المستخدمة في أجهزة الكمبيوتر تكون أكبر بكثير من هذا. فغالبا ما تكون البيانات المخزنة فيها بعرض 32 بيت ، مما يسمح لأعداد أكبر من ذلك بكثير أن تخزين. والشكل التالى يبين مثالا لتخزين البيانات فى سجل بعرض 8 بيت (اى واحد بايت).
والشكل التالى يوضح العلاقة بين البت والبايت وكذلك النيبل والكلمة
حيث أن:
" البيت Bit " كل خانه من هذه الخانات الثنائية ، بغض النظر عما تحتويه " واحد أم صفر" تسمى "بيت"
" النيبل Nibble " وهى عبارة عن أربعة خانات جنب بعضها , أي أربعه بيت .
" البايت Byte " وهى تساوى ثمانية بيت"
" الكلمة Word " وهى تساوى 16 بيت أى اثنين بايت.
أنواع الذاكرةهناك عدة أنواع من الذاكرة الإلكترونية ولكل منها وظيفة مختلفة تقوم بها حيث يمكننا تقسيمها إلى نوعين رئيسيين كما هو موضح بالشكل التالى:
أولا: ذاكرة للقراءة فقط (ROM)الذاكرة ROM هى اختصار Read Only Memory وهذه الذاكرة عادة ما تكون للقراءة فقط ومحتوياتها ليست قابلة للإزالة او المحو فهذه البيانات والتى ادخلت بداخلها اثناء التصنيع تبقى مخزنة حتى عندما يتم قطع مصدر التغذية عنها. وغالبا ما تستخدم لتخزين البرامج الأساسية ، والمعروفة باسم نظام الأدخال والأخراج الأساسى' BIOS ، التي تحتاجها أجهزة الكمبيوتر. والشكل التالى يبن شريحة لذاكرة القراءة ROM
وتنقسم ذاكرة القراءة ROM الى عدة مجموعات :
PROM (ذاكرة قراءة فقط قابلة للبرمجة مرة واحدة)الذاكرة PROM وهى اختصار Programmable Rom وهذا النوع يصنع فارغا من البيانات ولكن جاهز لاستلامها. فيمكن 'حرق' ادخال البيانات اليه ( البرنامج) ولكن مرة واحدة فقط وذلك بمعرفةالمستخدم وهناك جهاز يسمى المبرمجة يستخدم لحقن (حرق) البرنامج داخل الذاكرة. بعد ذلك تكون هذه الذاكرة قابلة للقراءة عدة مرات ولكن لا يمكن تغييرها او محو البيانات من داخلها. والشكل التالى يبين شريحة لذاكرة القراءة PROM
EPROM (ذاكرة قراءة فقط قابلة للمحو والبرمجة)الذاكرة EPROM وهى اختصار Erased Programmable Rom وتشبه PROM ولكن الفرق أنه عن طريق تسليط أشعة فوق البنفسجية من خلال نافذة في الجزء العلوي من الشريحة يمكن محو محتوياتها. بعد ذلك فإن البيانات الجديدة يمكن 'حرقها' في الذاكرة من جديد وبعض الميكروكنترولر القديمة كانت تحتوى على هذا النوع. والشكل التالى يبين شريحة لذاكرة القراءة EPROM
EEPROM (ذاكرة قراءة فقط قابلة للمحو والبرمجة كهربيا)الذاكرة EEPROM وهى اختصار Electrically Erased Programmable Rom وتعمل بنفس طريقة EPROM ولكن الفرق فى ان محتوى الذاكرة يمكن محوه كهربيا عن طريق ارسال نوع خاص من الإشارات الكهربائية المتسلسلة الى اطراف معينة فيها. والشكل التالى يبين شريحة لذاكرة القراءة EEPROM
ذاكرة الفلاش Flashالذاكرة الوميضية وهى شكل من اشكال الذاكرة EEPROM ولكن يمكن بسهولة مسح البيانات التى عليها واعادة كتابتها مرة اخرى وهى تستخدم على نطاق واسع كوسيلة للتخزين في الميكروكنترولر فى الوقت الحالى وفى مختلف الاجهزة مثل الكاميرات الرقمية وفي ألعاب الفيديو والألعاب المنزلية غيرها.
ثانيا: ذاكرة الوصول العشوائي (RAM)هذا النوع من الذاكرة والمعروف بالرام RAM أو Random Access Memory يسمح بعمليات القراءة والكتابة أثناء تشغيل البرنامج. فمحتويات هذه الذاكرة تفقد وتختفى بمجرد انتقطاع او ازالة مصدرة التغذية فهى تستخدم للتخزين المؤقت ولذلك تعتبر ذاكرة متطايرة وسميت بالذاكرة العشوائية لأنه يمكن الوصول الى جميع خلاياها عشوائيا.
ذاكرة الميكروكنترولروحدة الذاكرة هي جزء هام من أجزاء الميكروكنترولر وهي الجزء المسئول عن تخزين البيانات والبرنامج ، حيث يتم ترتيب البيانات بداخلها بنظام خاص (memory locations ) يسمح بتداول هذه البيانات منها أو إليها عن (طريق الخطوط أو الممرات المختلفة التي تربطها بالمعالج أو بالأوساط الخارجية) ليسهل الوصول إليها عند كتابة أو عند قراءة واسترجاع البيانات المخزنة. فعلى سبيل المثال المتحكم PIC16F84A يحتوى من الداخل على نوعين من الذاكرة كما هو مبين بالشكل التالى
أولا: الذاكرة المؤقتة RAM (ذاكرة البيانات Data Memory)وهي الذاكرة بالرام أو ذاكرة الوصول العشوائى والتي تحفظ فيها التغيرات التي تتم في السجلات (Registers) أثناء تشغيل البرنامج ، ويمكن القول بأنها خاصة ببيانات الميكروكنترولر والتى يقوم باستخدامها أثناء تنفيذ البرنامج مع الأجهزة المتصلة به والذاكرة المؤقتة سميت بذلك لأنها تفقد وتمحي كل بياناتها عند انقطاع التغذية الكهربية عنها ، وتبلغ سعتها 68 بايت.
ثانيا: الذاكرة الدائمة ROMيمتلك الميكروكنترولر PIC16F84A نوعين من الذاكرة الأولى لحفظ البرنامج والثانية لحفظ المعلومات
1- ذاكرة البرنامج Flash memoryوهى ذاكرة من النوع Flash (أى أنها تمحى وتكتب كهربائيا)، ومهمتها أن تحتفظ ببرنامج التشغيل (الذي تم برمجته من قبل المستخدم لأداء المهمة المطلوبة) حيث يبدأ المعالج بتنفيذ أوامر البرنامج من أول موضع حتى النهاية تعاقبيا وبشكل تسلسلى حسب سرعته. فهى تقوم بعمل الهارد ديسك في الكومبيوتر. ولها القدرة على حفظ البيانات والتعليمات الخاصة بالبرنامج لمدة أعوام كثيرة ، ويمكن محيها وكتابتها عدد من المرات كثيرة جدا قد تصل الى ألف مرة. والبيانات فيها لا تمحى عند فصل التغذية الكهربية لكنها تمسح في حالة الرغبة بتغيير البرنامج حيث يعاد برمجتها. وتبلغ سعة ذاكرة البرنامج 1 كيلو بايت (1024 بايت).
2- ذاكرة المعلومات Information Memoryوهى من النوع EEPROM ذاكرة القراءة فقط للبرمجة والمحو الكهربائى هى ذاكرة للقراءة فقط والتى تحتفظ وبشكل دائم بما فيها من بيانات الميكروكنترولر وتعليماته وجميع القيم الثابتة في البرنامج وهذه الذاكرة لا يتم إزالتها عند فصل التيار الكهربى، لكنها تمسح بتغيير هذه القيم الثابتة حسب الرغبة حيث يعاد برمجتها بالقيم الأخرى الجديدة ، وهى ذاكرة يمكن استخدامها من قبل البرنامج فى عمليات القراءة والكتابة والموجودة بداخل ذاكرة البرنامج، ولها نفس مواصفات الفلاش Flash وتسع هذه الذاكرة الى 64 بايت.
ذاكرة المتحكم PIC16F877Aأما بالنسبة للمتحكم PIC16F877A فإنه يمتلك ذاكرة اكبر من المتحكم PIC16F84A حيث أن ذاكرة البرنامج فيه سعة 8 كيلو بايت (8000 بايت) ، أما الذاكرة المؤقته RAM فهى بسعة 368 بايت بالإضافة الى ذاكرة القراءة فقط EEPROM بسعة 256 بايت.