تسجيل البنوك وتخصيص الذاكرة المكدسة في متحكم 8051

جرب أداة القضاء على المشاكل





يُطلق على مجموعة سجلات الأغراض العامة (R0-R7) اسم بنوك التسجيل ، والتي تقبل بايت واحد من البيانات. سجل البنك هو جزء من ذاكرة RAM مضمنة في ميكروكنترولر ، ويتم استخدامه لتخزين تعليمات البرنامج. يتكون كل متحكم من بنوك ذاكرة مختلفة ، ويتكون كل سجل مصرفي من عنوان فريد للتعرف على موقع التخزين.

سجل البنوك في 8051

سجل البنوك في 8051

سجل البنوك في 8051



متحكم 8051 يتكون من أربعة بنوك مسجلة ، مثل Bank0 و Bank1 و Bank2 و Bank3 والتي يتم تحديدها بواسطة سجل PSW (كلمة حالة البرنامج). توجد بنوك التسجيل هذه في ذاكرة الوصول العشوائي الداخلية للميكروكونترولر 8051 ، وتستخدم لمعالجة البيانات عند برمجة وحدة التحكم الدقيقة.


تحويل تسجيل البنوك



افتراضيًا ، يتم تشغيل المتحكم الدقيق 8051 مع بنك التسجيل 0 ، وباستخدام كلمة حالة البرنامج (PSW) ، يمكننا التبديل إلى البنوك الأخرى. يتم استخدام البتتين من PSW للتبديل بين بنوك التسجيل. يتم الوصول إلى هاتين البتتين من خلال التعليمات الخاصة بتوجيه البت SETB و CLR.

بناءً على المجموعات الممكنة من RS1 و RS0 من PSW ، يتم تغيير بنك التسجيل وفقًا لذلك ، أي إذا كانت RS1 و RS0 تساوي 0 ، فسيتم تحديد البنك 0. وبالمثل ، يتم تحديد Bank1 و 2 و 3 وفقًا لقيم RS1 و RS0.

تخصيص ذاكرة المكدس في متحكم 8051

المكدس عبارة عن مساحة من ذاكرة الوصول العشوائي (RAM) مخصصة للاحتفاظ مؤقتًا بجميع معلمات المتغيرات. المكدس مسؤول أيضًا عن تذكير الترتيب الذي يتم من خلاله استدعاء الوظيفة بحيث يمكن إرجاعها بشكل صحيح. عندما يتم استدعاء الوظيفة ، تتم إضافة المعلمات والمتغيرات المحلية المرتبطة بها إلى المكدس (PUSH). عندما تعود الوظيفة ، تتم إزالة المعلمات والمتغيرات ('POP') من المكدس. هذا هو السبب في أن حجم مكدس البرنامج يتغير باستمرار أثناء تشغيل البرنامج.


يُطلق على السجل المستخدم للوصول إلى المكدس اسم سجل مؤشر المكدس. مؤشر المكدس هو سجل صغير يستخدم للإشارة إلى المكدس. عندما ندفع شيئًا ما في ذاكرة المكدس ، يزداد مؤشر المكدس.

تخصيص ذاكرة المكدس في متحكم 8051

تخصيص ذاكرة المكدس في متحكم 8051

مثال

عندما يتم تشغيل متحكم 8051 ، فإن قيمة مؤشر المكدس المحتوي هي 07 ، افتراضيًا ، كما هو موضح في الشكل أعلاه. إذا أجرينا عملية 'PUSH' ، فسيتم زيادة عنوان مؤشر المكدس وتحويله إلى سجل آخر. لتجنب هذه المشكلة ، قبل بدء البرنامج ، يتعين علينا تعيين موقع عنوان مختلف لمؤشر المكدس.

عملية دفع

يتم استخدام 'PUSH' لأخذ القيم من أي سجل وتخزينها في عنوان البداية لمؤشر المكدس ، أي 00h باستخدام عملية 'PUSH'. وبالنسبة لـ 'PUSH' التالي ، فإنه يزيد +1 ويخزن القيمة في العنوان التالي لمؤشر المكدس ، أي 01h.

عملية دفع من Stack

عملية دفع من Stack

تعني عملية الدفع (First in First out)

مثال: WAP بلغة التجميع لعملية PUSH

0000 ساعة
MOV 08h ، # 21h
09 س ، # 56 س
دفع 00h
دفع 01h
نهاية

عملية POP

يتم استخدامه لوضع القيم من عنوان الحد الأقصى لمؤشر المكدس إلى عنوان أي سجل آخر. إذا استخدمنا 'POP' هذا مرة أخرى ، فإنه ينخفض ​​بمقدار 1 ، ويتم إعطاء القيمة المخزنة في أي سجل كـ 'POP'.

عملية POP في Stack

عملية POP في Stack

تعني عملية POP 'آخر ما يرد أولاً يخرج'.

000H
MOV 00H ، # 12H
MOV 01H ، # 32H
POP 1FH
POP 0EH
نهاية

مسجلات متحكم 8051

إذا أجرينا أي عملية سواء كانت إضافة أو طرح ، فلا يمكن إجراء هذه العمليات مباشرة في الذاكرة ، وبالتالي ، يتم تنفيذها باستخدام السجلات. هناك أنواع مختلفة من يسجل في متحكم 8051 .

يتم تصنيف هذه السجلات إلى نوعين بناءً على عملياتها:

• سجلات الأغراض العامة

• تسجيلات الوظائف الخاصة

سجلات الأغراض العامة

كما ناقشنا سابقًا في هذه المقالة ، هناك أربعة سجلات بنكية مختلفة مع كل بنك يحتوي على 8 سجلات 8 بت قابلة للعنونة ، ويمكن الوصول إلى سجل مصرفي واحد فقط في كل مرة. ولكن ، من خلال تغيير رقم سجل البنك في سجل العلم ، يمكننا الوصول إلى سجلات البنوك الأخرى ، والتي تمت مناقشتها مسبقًا في هذه الورقة إلى جانب مفهوم المقاطعة في 8051 .

تسجيلات الوظائف الخاصة

تم تصميم سجلات الوظائف الخاصة بما في ذلك Accumulator ، و Register B ، ومؤشر البيانات ، و PCON ، و PSW ، وما إلى ذلك ، لغرض محدد مسبقًا أثناء التصنيع باستخدام العنوان 80H إلى FFH ، ولا يمكن استخدام هذه المنطقة لغرض تخزين البيانات أو البرنامج. يمكن تنفيذ هذه السجلات عن طريق عنوان البت وسجلات عناوين البايت.

أنواع سجلات الوظائف الخاصة

يتكون 8051 من أربعة سجلات ذات صلة بالإدخال / الإخراج تحتوي على 32 سطرًا من I / O. تتحكم سجلات الوظيفة الخاصة في القيم المقروءة من خطوط الإدخال / الإخراج وسجلات الوظيفة الخاصة التي تتحكم في تشغيل 8051. لا ترتبط سجلات الوظيفة الخاصة الإضافية مباشرة بـ 8051 - ولكن في الواقع ، بدون هذه السجلات - 8051 لا تعمل بشكل صحيح. يتم شرح مجموعة التسجيل 8051 أدناه.

تسجيل مجموعة من 8051 متحكم

يسمى تحديد قيمة ثابتة ثابتة في السجل مجموعة التسجيل. يتم تعيين القيم في السجلات باستخدام مجموعة التعليمات. يتبع 8051 تعليمات CISC مع هندسة 'Harvard'. ال CISC تعني حوسبة مجموعة التعليمات المعقدة . تتضمن الأنواع المختلفة من التعليمات الموجودة في المتحكم 8051 ما يلي:

  1. تعليمات حسابية
  2. تعليمات شرطية
  3. تعليمات الاتصال والقفز
  4. تعليمات الحلقة
  5. تعليمات منطقية
  6. تعليمات السبائك

1. تعليمات حسابية

تؤدي التعليمات الحسابية عدة عمليات أساسية مثل:

  • إضافة
  • الطرح
  • عمليه الضرب
  • قسم
تعليمات حسابية في متحكم 8051

تعليمات حسابية في متحكم 8051

أمثلة:

أ. إضافة:

المنظمة 0000h
MOV R0 ، # 03H // نقل القيمة 3 هي تسجيل R0 //
MOV A ، # 05H // انقل القيمة 5 في المجمع A //
أضف A، 00H // قيمة المجمع '5' مع 0 وتخزينها على المجمع //
نهاية

ب. الطرح:

المنظمة 0000h
MOV R0 ، # 03H // نقل القيمة 3 هي تسجيل R0 //
MOV A ، # 05H // انقل القيمة 5 في المجمع A //
SUBB A، 03H // A = 5-3 القيمة النهائية هي 2 مخزنة في Accumulator A //
نهاية

ج- الضرب:

المنظمة 0000h
MOV R0 ، # 03H // نقل القيمة 3 هي تسجيل R0 //
MOV A ، # 05H // انقل القيمة 5 في المجمع A //
MUL A ، 03H // A = 5 * 3 القيمة النهائية هي 15 ، مخزنة في Accumulator A //
نهاية

الشعبة:

المنظمة 0000h
MOV R0 ، # 03H // نقل القيمة 3 هي تسجيل R0 //
MOV A ، # 15H // انقل القيمة 5 في المجمع A //
DIV A، 03H // A = 15/3 القيمة النهائية هي 5 مخزنة في Accumulator A //
نهاية

2. تعليمات شرطية

يمكن لوحدة المعالجة المركزية تنفيذ التعليمات بناءً على الحالة عن طريق التحقق من حالة البت المفرد أو تسمى حالة البايت التعليمات الشرطية مثل:

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

JB- القفز إذا كان أدناه

JNB- القفز إن لم يكن أعلاه

للتحقق من حالة بتة الحمل

JC- القفز إذا حمل العلم

JNC- القفز إذا لم تحمل

للتحقق من حالة المجمع إما 0 أو 1

JZ- القفز إذا كان العلم صفر

JNZ- القفز إن لم يكن صفرًا

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