Mikrokontroler MCS51 memiliki beberapa buah ruang alamat memori yang dapat dibagi menjadi:
- Ruang alamat memori kode program (code address space), maksimal sebanyak 64KB. Ruang alamat memori ini biasanya ditempati oleh EPROM/ROM internal IC mikrokontroler atau bisa juga ditempati oleh IC EPROM (misalnya 2764) jika diinginkan kode program disimpan dalam EPROM eksternal.
- Ruang alamat memori data internal yang dapat dialamati secara langsung, yang terdiri atas RAM (Random Access Memory) sebanyak 128 byte dan Special Function Register sebanyak 128 byte. RAM internal dan hardware register ini terletak di dalam IC 8051. Sebagian ruang alamat pada RAM internal dapat diakses secara bit (bukan secara byte).
- Ruang alamat memori data eksternal sebanyak maksimal 64KB yang dapat ditambahkan oleh pemakai. Ruang alamat ini biasanya ditempati IC RAM (misalnya 6264).
Perlu diketahui bahwa ruang alamat memori kode program dan ruang alamat memori data eksternal sebenarnya memiliki ruang alamat yang sama (overlap). Ruang alamat memori kode program dan ruang alamat memori data eksternal dialamati dari alamat 0000h sampai FFFFh. Sementara itu, memori data internal dialamati dari alamat 00h sampai FFh. Rinciannya adalah alamat 00h sampai 7Fh dipakai untuk mengalamati RAM internal dan alamat 80h sampai FFh dipakai untuk mengalamati Special Function Register.
Memori data nomor 00h sampai 7Fh bisa dipakai sebagai memori penyimpanan data biasa, dibagi menjadi tiga bagian:
- Alamat memori 00h sampai 18h selain sebagai memori data biasa, bisa pula dipakai sebagai Register Serba Guna (General Purpose Register).
- Alamat memori 20h sampai 2Fh selain sebagai memori data biasa, bisa dipakai untuk menyimpan informasi dalam level bit.
- Alamat memori 30h sampai 7Fh (sebanyak 80 byte) merupakan memori data biasa, bisa dipakai untuk menyimpan data maupun dipakai sebagai stack.
Mikrokontroler dapat bekerja dengan kendali suatu program yang kita buat sendiri. Program tersebut akan berinteraksi dengan arsitektur perangkat keras yang sudah fix di dalam chip. Sekedar memberi wawasan tentang mikrokontroler AVR yang berbeda arsitektur dari MCS-51, Anda bisa mempelajari beberapa contoh keluarga AVR berikut. Mikrokontroler keluarga AVR secara umum dapat dibagi menjadi 6 kelompok, yaitu:
- Keluarga ATtiny: biasanya bentuk dimensinya cukup kecil, ukuran memori kecil, jumlah pin masukan dan keluaran juga sedikit.
- Keluarga AT90Sxx: merupakan mikrokontroler yang pertama kali dibuat oleh Atmel Corp.
- Keluarga ATMega: merupakan pengembangan mikrokontroler AT90Sxx dengan fitur yang lebih banyak.
- Keluarga AT86RFxx: merupakan mikrokontroler berorientasi desain minimal.
- Keluarga AT90USBxx: merupakan mikrokontroler berorientasi pemrograman USB.
- Keluarga AVR32: mikroprosesor RISC 32-bit, sebagian besar instruksi dieksekusi dalam satu siklus.
- Keluarga XMega: mikrokontroler yang merupakan kombinasi kinerja real-time, integrasi tinggi, dan konsumsi daya rendah untuk aplikasi 8/16-bit.