التالى بعد نتعرف على اشارات التحكم
---------------------------------------
PSEN
------------
Program Store Enable
–يستخدم لاخراج اشارة على الطرف رقم 29 و التى يتم توصيلها على الذاكرة الخارجية (ROM). ((( اذا تم استخدام ذاكرة خارجية ))) ، و هى تعبر عن اشارة التحكم فى الشريحة لجعلها فعالة Enabled او غير فعالة Disabled حيث يتم فعلياً بتوصيلها على الطرف الخاص بالتفعيل ( OE == Output Enable ) للذاكرة الخارجية للسماح بقراء الكود المخزن عليها .
- هذه الاشارة تعتمد على التفعيل السلبى ( Active Low ) بمعنى اننا نخرج عليها 0 للسماح بعملية القراءة من الذاكرة الخارجية .
- الكود الثنائى المعبرعن البرنامج ( يسمى Opcode ) يتم قرائته من الذاكرة الخارجية EEPROM و يتم نقله عبر ناقل البيانات و يخزن على الميكروكونتروللر
8051 على مخازن التعليمات instruction register (IR) ليتم اعادة ترجمته decoding و تنفيذه .
ALE
-------------
Address Latch Enable
- اشارة خرج تظهر على الطرف رقم 30
-تستخدم فى فك التكويد الخاص بناقل البيانات و ناقل العناوين و يتم ذلك كالتالى :-
عندما يعمل المنفذ رقم 0 كناقل للبيانات تعبر الـ ALE عن الاشارة التى تخزن العنوان على مخزن خارجى خلال النصف الاول من دورة الذاكرة first-half of a memory cycle و بالتالى يكون خطوط المنفذ رقم 0 متاحة لادخال او اخراج البيانات .
خلال النصف الثانى من دورة الذاكرة second-half of the memory cycle يكون نقل البيانات قد تم .
- اشارة الـ ALE لها تردد يساوى 1/6 من تردد الميكروكونتروللر و يمكن استخدامها كنبضة عامة لتشغيل باقى الدوائر الرقمية المتصلة بالنظام .
ُِ
EA
----------
External Access
- اشارة دخل يتم ادخالها على الطرف رقم 31 للميكروكونتروللر
8051
- تأخذ أحد القيمتين ( 0 أو 1 )
القيمة ( 1 ) ، تستخدم إذا أردنا تنفيذ الأوامر المخزنة على الذاكرة الداخلية للميكروكونتروللر
8051 ، الذاكرة الداخلية محدودة ( 4/8 كيلو )
- القيمة ( 0 ) ، و تستخدم إذا أردنا أن ننفذ الأوامر المخزنة على الذاكرة الخارجية فقط ( هنا يجب ان تكون اشارات PSEN منخفضة === 0 )
RST
-----------
Reset
- اشارة دخل يتم ادخالها على الطرف رقم 9 للميكروكونتروللر
8051
- اذا تم ادخال القيمة ( 1 ) (( 5 فولت )) على هذا الطرف لمدة لا تقل عن زمن تنفيذ دورتين (machine cycles ) يتم تحميل المخازن بالقيم الاولى فى البرنامج (( يقوم الميكرو بانهاء التطبيقات الحالية و البدء من اول خطوة ))
- فى حالة التشغيل الطبيعية يجب ادخال ( 0 ) على هذا الطرف .
ترتيب الذاكرة
------------------
معظم المعالجات تنجز تداول البيانات و اوامر البرنامج من خلال المشاركة السريعة للذاكرة بينهما ، فكل من البيانات و الاوامر البرمجية تكون مقيمة فى الذاكرة العشوائية للميكروكونتروللر RAM بينما نجد دائماً ان اوامر التحكم فى البرنامج تكمن فى الذاكرة الدائمة ROM
الذاكرة الداخلية للميكروكونتروللر تحتوى على كل من ROM و RAM
و نجد ان الـ RAM تحتوى على عدد كبير من المخازن المستخدمة فى الاغراض العامة general-purpose storage و بعضها يستخدم كمخازن يمكن استدعاوها على مستوى البت bit addressable storage و البعض الاخر يستخدم كمصفوفة مخازن register banks و هناك مخازن لها وظائف خاصة special function registers. ==
SFR
الرسم التالى يوضح تقسيم الذاكرة RAM الداخلية

المخازن المستخدمة للاغراض العامة تنقسم كما هو بالشكل
[CENTER]
General-Purpose RAM
---------------------------------------------------------

نلاحظ انه لدينا عدد ( 210 ) موقع فى الذاكرة يتم استدعاؤهم على مستوى البت
210 (128+82) Bit-Addressable RAM
و الفكرة هنا هى امكانية الوصول و التعامل مع كل خانة Bit داخل مجموعة من البايت Bytes كل على حدا من خلال البرنامج ، مما اعطى ميزة قوية جداً للميكروكونتروللر .
و الرسم التالى يوضح اماكن هذه المجموعة داخل الذاكرة :-
توضيح لمنطقة الاغراض العامة و موقع الـ 128 موقع الذين يتم استدعاؤهم على مستوى البت
128 General-Purpose Bit-Addressable Locations
و الان يمكننا وضع قيمة 1 داخل البت رقم 3 داخل البايت ذات العنوان ( 25H ) بالامر التالى :-
SETB 2BH
و الى لقاء مع الجزء الثالث من الحلقة الاولى ان شاء الله تعالى