רשום בנקים והעריך הקצאת זיכרון במיקרו-בקר 8051

נסה את הכלי שלנו לביטול בעיות





איסוף מרשמים למטרות כלליות (R0-R7) נקרא כבנקים רושמים, המקבלים בת אחד של נתונים. מרשם הבנקים הוא חלק מה- זיכרון RAM במוטבע מיקרו-בקרים, והוא משמש לאחסון הוראות התוכנית. כל מיקרו-בקר מורכב מבנקי זיכרון שונים, וכל מרשם בנקים מורכב מכתובת ייחודית לזיהוי מיקום האחסון.

רשום בנקים בשנת 8051

רשום בנקים בשנת 8051

רשום בנקים בשנת 8051



מיקרו-בקר 8051 מורכב מארבעה בנקים רשומים, כגון Bank0, Bank1, Bank2, Bank3 אשר נבחרים על ידי הרישום PSW (Program Status Word). בנקים רושמים אלה נמצאים בזיכרון ה- RAM הפנימי של המיקרו-בקר 8051 ומשמשים לעיבוד הנתונים כאשר המיקרו-בקר מתוכנת.


החלפת בנקים רשומים



כברירת מחדל, המיקרו-בקר 8051 מופעל באמצעות בנק הבנק 0, ובאמצעות Word Status Program (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

ה- 'PUSH' משמש לקיחת הערכים מכל רישום ואחסון בכתובת ההתחלה של מצביע הערימה, כלומר 00h באמצעות פעולת 'PUSH'. וגם עבור 'PUSH' הבא, הוא מגדיל את +1, ומאחסן את הערך בכתובת הבאה של מצביע הערימה, כלומר 01h.

פעולת PUSH של Stack

פעולת PUSH של Stack

אמצעי פעולת PUSH (ראשון בכניסה ראשונה)

דוגמה: WAP בשפת הרכבה להפעלת PUSH

0000h
MOV 08h, # 21h
MOV 09h, # 56h
לדחוף 00h
לדחוף 01h
סוֹף

מבצע POP

הוא משמש להצבת הערכים מהכתובת המקסימלית של מצביע הערימה לכתובת כל רישום אחר. אם אנו משתמשים ב- 'POP' שוב, אז הוא פוחת ב -1, והערך השמור בכל רשום ניתן כ- POP.

מבצע POP בערימה

מבצע POP בערימה

פירושו של פעולת POP 'אחרון בכניסה ראשונה'.

000H
MOV 00H, # 12H
MOV 01H, # 32H
POP 1FH
POP 0EH
סוֹף

רישומים של מיקרו-בקר 8051

אם אנו מבצעים פעולה כלשהי בין אם חיבור או חיסור, לא ניתן לבצע פעולות אלה ישירות בזיכרון, ולכן הם מבוצעים באמצעות הרישומים. ישנם סוגים שונים של נרשם למיקרו-בקר 8051 .

מרשמים אלה מסווגים לשני סוגים על סמך פעולתם:

• רישומי מטרה כללית

• רישומי פונקציות מיוחדות

רושמים למטרות כלליות

כפי שדברנו מוקדם יותר במאמר זה, ישנם ארבעה רישומי בנקים שונים, כאשר לכל בנק 8 רושמים של 8 סיביות ניתנים לניהול כתובת, ורק רישום בנק אחד ניתן לגשת בכל פעם. אך, על ידי שינוי מספר רישום הבנק במרשם הדגלים, אנו יכולים לגשת לרישומי בנק אחרים, עליהם נדון קודם לכן בעיתון זה יחד עם מושג להפריע בשנת 8051 .

רישומי פונקציות מיוחדות

רושמי הפונקציות המיוחדות הכוללים את המצבר, הרשמה B, מצביע הנתונים, PCON, PSW וכו ', מיועדים למטרה קבועה מראש במהלך הייצור עם הכתובת 80H ל- FFH, ואי אפשר להשתמש באזור זה למטרת אחסון הנתונים או התכנית. ניתן ליישם רישומים אלה באמצעות רישומי כתובת סיביות וכתובות בתים.

סוגי רישומי פונקציות מיוחדות

ה- 8051 מורכב מארבעה רושמים של פונקציות מיוחדות הקשורות לקלט / פלט ובהם 32 קווי קלט / פלט. רושמי הפונקציות המיוחדות שולטים בערכים הנקראים משורות הקלט / פלט ורישומי הפונקציות המיוחדים השולטים בתפעול 8051. רושמי הפונקציות המיוחדות העזרות אינם מחוברים ישירות ל- 8051 - אך למעשה, ללא רושמים אלה - 8051 לא יכול לפעול כראוי. ערכת הרישום של 8051 מוסברת להלן.

סט רישום של מיקרו-בקר 8051

קביעת ערך קבוע קבוע במרשם מכונה ערכת רישום. הערכים נקבעים ברשומות באמצעות ערכת הוראות. 8051 עוקב אחר הוראות CISC עם ארכיטקטורת 'הרווארד'. ה 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 המאוחסן בצבר A //
סוֹף

ג כפל:

אורג 0000h
MOV R0, # 03H // העבר את הערך 3 הוא רשום R0 //
MOV A, # 05H // העבר את הערך 5 במצבר A //
MUL A, 03H // A = 5 * 3 הערך הסופי הוא 15, מאוחסן ב- Akkumulator A //
סוֹף

חטיבה ד ':

אורג 0000h
MOV R0, # 03H // העבר את הערך 3 הוא רשום R0 //
MOV A, # 15H // הזז את הערך 5 במצבר A //
DIV A, 03H // A = 15/3 הערך הסופי הוא 5 המאוחסן בצבר A //
סוֹף

2. הוראות מותנות

המעבד יכול לבצע את ההוראות על סמך התנאי על ידי בדיקת מצב סיביות בודדות או שמצב בתים נקרא הוראות מותנות כגון:

לבדיקת סטטוס הסיביות היחידות ברשומה הניתנת לכתובת סיבית

JB- קפיצה אם למטה

JNB- קפיצה אם לא מעל

לבדיקת סטטוס הסיבית

JC- קפיצה אם נושאים דגל

קפיצת JNC אם אין נשיאה

לבדיקת מצב הצבירה או 0 או 1

JZ- קפיצה אם אפס דגל

JNZ- קפיצה אם לא אפס

זה הכל על הרישום שנקבע במיקרו 8051 והקצאת זיכרון הערימה שלהם. אנו מקווים שמאמר זה יכול היה לתת לך כמה תובנות חיוניות בנושא, יחד עם כמה תוכניות מעניינות מאוד הנלוות לכל נושא. אתה יכול גם לכתוב לנו לכל עזרה ב- קידוד המיקרו-בקר וגם על ה הפרויקטים האחרונים על מיקרו-בקר .