Daftarkan Bank dan Alokasi Memori Stack pada Mikrokontroler 8051

Daftarkan Bank dan Alokasi Memori Stack pada Mikrokontroler 8051

Kumpulan register tujuan umum (R0-R7) disebut sebagai bank register, yang menerima satu byte data. Register bank adalah bagian dari Memori RAM di tanamkan mikrokontroler, dan digunakan untuk menyimpan instruksi program. Setiap mikrokontroler terdiri dari berbagai bank memori, dan setiap register bank terdiri dari alamat unik untuk mengenali lokasi penyimpanan.



Daftarkan Bank di 8051

Daftarkan Bank di 8051

Daftarkan Bank di 8051

Mikrokontroler 8051 Terdiri dari empat bank register, seperti Bank0, Bank1, Bank2, Bank3 yang dipilih oleh register PSW (Program Status Word). Bank register ini ada di memori RAM internal mikrokontroler 8051, dan digunakan untuk memproses data saat mikrokontroler diprogram.






Perpindahan Bank Register

Secara default, mikrokontroler 8051 diaktifkan dengan bank register 0 dan, dengan menggunakan Program Status Word (PSW), kita dapat beralih ke bank lain. Dua bit PSW digunakan untuk berpindah antar bank register. Kedua bit ini diakses oleh instruksi bit-addressable SETB dan CLR.



Berdasarkan kemungkinan kombinasi RS1 dan RS0 dari PSW, bank register diubah sesuai, yaitu jika RS1 dan RS0 adalah 0, maka Bank 0 dipilih. Demikian pula, Bank1, 2 & 3 dipilih sesuai nilai RS1 dan RS0.

Alokasi Stack Memory pada Mikrokontroler 8051

Tumpukan adalah area memori akses acak (RAM) yang dialokasikan untuk menampung sementara semua parameter variabel. Tumpukan juga bertanggung jawab untuk mengingatkan urutan pemanggilan suatu fungsi sehingga dapat dikembalikan dengan benar. Setiap kali fungsi dipanggil, parameter dan variabel lokal yang terkait dengannya ditambahkan ke tumpukan (PUSH). Saat fungsi kembali, parameter dan variabel dihapus ('POP') dari tumpukan. Inilah sebabnya mengapa ukuran tumpukan program berubah terus-menerus saat program berjalan.


Register yang digunakan untuk mengakses tumpukan disebut register penunjuk tumpukan. Penunjuk tumpukan adalah register kecil yang digunakan untuk menunjuk ke tumpukan. Saat kita memasukkan sesuatu ke dalam memori tumpukan, penunjuk tumpukan meningkat.

Alokasi Stack Memory pada Mikrokontroler 8051

Alokasi Stack Memory pada Mikrokontroler 8051

Contoh

Ketika mikrokontroler 8.051 menyala, stack pointer yang berisi nilai adalah 07, secara default, seperti yang ditunjukkan pada gambar di atas. Jika kita melakukan operasi 'PUSH', maka alamat stack pointer akan dinaikkan dan dipindahkan ke register lain. Untuk menghindari masalah ini, sebelum memulai program, kita harus menetapkan lokasi alamat yang berbeda ke penunjuk tumpukan.

Operasi PUSH

'PUSH' digunakan untuk mengambil nilai dari register mana pun dan menyimpannya di alamat awal penunjuk tumpukan, yaitu 00h dengan menggunakan operasi 'PUSH'. Dan, untuk 'PUSH' berikutnya, ini menambah +1, dan menyimpan nilai di alamat berikutnya dari penunjuk tumpukan, yaitu 01h.

Operasi PUSH Stack

Operasi PUSH Stack

Operasi PUSH artinya (First in First out)

Contoh: WAP dalam bahasa assembly untuk operasi PUSH

0000h
MOV 08h, # 21h
MOV 09h, # 56h
PUSH 00j
PUSH 01j
AKHIR

Operasi POP

Ini digunakan untuk menempatkan nilai dari alamat maksimum stack pointer ke alamat register lainnya. Jika kita menggunakan 'POP' ini lagi, maka itu berkurang 1, dan nilai yang disimpan dalam register mana pun diberikan sebagai 'POP'.

Operasi POP di Stack

Operasi POP di Stack

Operasi POP berarti 'Terakhir masuk Pertama keluar'.

000H
MOV 00H, # 12H
MOV 01H, # 32H
POP 1FH
POP 0EH
AKHIR

Register dari 8051 Mikrokontroler

Jika kita melakukan operasi apa pun baik penjumlahan atau pengurangan, maka operasi ini tidak dapat dilakukan secara langsung di memori, dan oleh karena itu, dilakukan dengan menggunakan register. Ada berbagai jenis mendaftar di mikrokontroler 8.051 .

Register ini diklasifikasikan menjadi dua jenis berdasarkan operasinya:

• Register Tujuan Umum

• Register Fungsi Khusus

Register Tujuan Umum

Seperti yang telah kita bahas sebelumnya di artikel ini bahwa ada empat register bank yang berbeda dengan masing-masing bank memiliki 8 register 8-bit yang dapat dialamatkan, dan hanya satu register bank yang dapat diakses pada satu waktu. Namun, dengan mengganti nomor bank register pada flag register, kita dapat mengakses register bank lain, yang telah dibahas sebelumnya pada tulisan ini beserta konsep interupsi pada 8051 .

Register Fungsi Khusus

Register fungsi khusus termasuk Akumulator, Register B, Penunjuk data, PCON, PSW, dll., Dirancang untuk tujuan yang telah ditentukan selama pembuatan dengan alamat 80H ke FFH, dan area ini tidak dapat digunakan untuk tujuan penyimpanan data atau program. Register ini dapat diimplementasikan dengan register alamat bit dan alamat byte.

Jenis Register Fungsi Khusus

8051 terdiri dari empat register fungsi khusus yang berhubungan dengan input / output di mana terdapat 32 jalur I / O seluruhnya. Register fungsi khusus mengontrol nilai yang dibaca dari garis I / O dan register fungsi khusus yang mengontrol operasi 8051. Register fungsi khusus tambahan tidak langsung terhubung ke 8051 - tetapi, pada kenyataannya, tanpa register ini - 8051 tidak dapat beroperasi dengan baik. Set register 8051 dijelaskan di bawah ini.

Daftarkan mikrokontroler 8051

Menetapkan nilai konstanta tetap di register disebut set register. Nilai ditetapkan dalam register menggunakan set instruksi. 8051 mengikuti instruksi CISC dengan arsitektur 'Harvard'. Itu CISC adalah singkatan dari komputasi set instruksi kompleks . Berbagai jenis instruksi dalam mikrokontroler 8051 meliputi:

  1. Instruksi Aritmatika
  2. Instruksi Bersyarat
  3. Instruksi Panggilan dan Lompat
  4. Instruksi Loop
  5. Instruksi Logis
  6. Instruksi Bullion

1. Instruksi aritmatika

Instruksi aritmatika melakukan beberapa operasi dasar seperti:

  • Tambahan
  • Pengurangan
  • Perkalian
  • Divisi
Petunjuk aritmatika pada 8051 Mikrokontroler

Petunjuk aritmatika pada 8051 Mikrokontroler

Contoh:

Sebuah. Tambahan:

Org 0000h
MOV R0, # 03H // pindahkan nilai 3 adalah register R0 //
MOV A, # 05H // pindahkan nilai 5 di akumulator A //
Tambahkan A, 00H // nilai akumulator '5' dengan 0 dan disimpan di akumulator //
AKHIR

b. Pengurangan:

Org 0000h
MOV R0, # 03H // pindahkan nilai 3 adalah register R0 //
MOV A, # 05H // pindahkan nilai 5 di akumulator A //
SUBB A, 03H // A = 5-3 nilai akhir adalah 2 disimpan di Akumulator A //
AKHIR

C.Perkalian:

Org 0000h
MOV R0, # 03H // pindahkan nilai 3 adalah register R0 //
MOV A, # 05H // pindahkan nilai 5 di akumulator A //
MUL A, 03H // A = 5 * 3 nilai akhir adalah 15, disimpan di Accumulator A //
AKHIR

D. Divisi:

Org 0000h
MOV R0, # 03H // pindahkan nilai 3 adalah register R0 //
MOV A, # 15H // pindahkan nilai 5 di akumulator A //
DIV A, 03H // A = 15/3 nilai akhir adalah 5 disimpan di Accumulator A //
AKHIR

2. Instruksi Bersyarat

CPU dapat menjalankan instruksi berdasarkan kondisi dengan memeriksa status bit tunggal atau status byte yang disebut instruksi kondisional seperti:

Untuk memeriksa status bit tunggal di register bit-addressable

JB- lompat jika di bawah

JNB- lompat jika tidak di atas

Untuk memeriksa status bit pembawa

JC- lompat jika membawa bendera

JNC-jump jika tidak ada barang bawaan

Untuk memeriksa status akumulator baik 0 atau 1

JZ- lompat jika tidak ada bendera

JNZ- lompat jika tidak nol

Ini semua tentang register yang ditetapkan pada mikrokontroler 8051 dan alokasi memori tumpukannya. Kami berharap artikel ini dapat memberi Anda beberapa wawasan penting tentang topik bersama dengan beberapa program yang sangat menarik yang menyertai setiap topik. Anda juga dapat menulis kepada kami untuk bantuan apa pun di mengkodekan mikrokontroler dan juga tentang proyek terbaru tentang mikrokontroler .