MODUL PEMBELAJARAN II
PENGORGANISASIAN MEMORI
PENGORGANISASIAN MEMORI
(DOWNLOAD)
1. Pendahuluan
Memori pada mikrokontroler digunakan untuk menyimpan data yang diperlukan selama mikrokontroler bekerja. Memori pada mikrokontroler dibedakan menjadi dua jenis, yaitu memori data dan memori program. Pemisahan memori ini sesuai dengan arsitektur Von Neumann yang memisahkan antara processor dan memori. Dengan pemisahan antara memori program dan memori data ini, memungkin bagi mikrokontroler untuk bekerja lebih cepat.
2. Memori Program
Memori program merupakan memori untuk menyimpan program (urutan instruksi untuk menjalankan mikrokontroler) dan juga berisi konstanta yang diperlukan program. Memori program pada mikrokontroler AT89Sxx dikenal dengan On Chip Flash. Setiap mikrokontroler memiliki kapasitas memori program yang berbeda-beda.
3. Memori Data
Memori data pada mikrokontroler tersimpan pada internal RAM, memori data berisi variable dan register, memori RAM pada mikrokontroler AT89S51 kapasitas sangat terbatas (hanya 256 byte), apabila dalam aplikasi memerlukan memori RAM yang lebih besar, maka bisa ditambahkan memori RAM eksternal seperlunya.
Untuk mengakses register umum (R0 sampai dengan R7) pada setiap bank, perlu adanya pengalamatan pada PSW (program status word), bit RS0 dan RS1 (PSW bit ke-3 dan bit ke-4). Namun secara default nilai RS0 dan RS1 ini bernilai “0” sehingga register umum tersimpan pada bank 0 alamat 00h sampai dengan alamat 07h.
Dari alamat 20h sampai 2fh digunakan untuk penyimpanan data dengan satuan satu bit atau bit addressable, dan alamat 30h sampai 7fh merupakan ruang data RAM.
Alamat 80h sampai ffh merupakan 128 byte bagian atas dari internal RAM. Alamat memori data internal selalu mempunyai lebar data satu byte. Pengalamatan langsung diatas 7Fh akan mengakses satu alamat memori, dan pengalamatan tak langsung diatas 7Fh akan mengakses satu alamat yang berbeda. Demikianlah pada gambar 2.3 menunjukkan 128 byte bagian atas dan ruang SFR menempati blok alamat yang sama, yaitu 80h sampai dengan FFh, yang sebenarnya mereka terpisah secara fisik. SFR merupakan register-register yang memiliki fungsi khusus, khusus dalam artian satu register berkaitan dengan satu fungsi hardware atau satu proses tertentu.
4. SFR (Special Function Register) atau Register Fungsi Khusus
Sebuah peta memori yang disebut ruang special function register ( SFR ) ditunjukkan pada gambar berikut. Perhatikan bahwa tidak semua alamat-alamat tersebut ditempati, dan alamat-alamat yang tak ditempati tidak diperkenankan untuk diimplementasikan.
Register B. Register B digunakan pada saat opersi perkalian dan pembagian. Selain untuk keperluan tersebut diatas, register ini dapat digunakan untuk register bebas.
Stack Pointer. Register Pointer stack mempunyai lebar data 8 bit. Register ini akan bertambah sebelum data disimpan selama eksekusi push dan call. Sementara stack dapat berada disembarang tempat RAM. Pointer stack diawali di alamat 07h setelah reset. Hal ini menyebabkan stack untuk memulai pada lokasi 08h.
Data Pointer. Pointer Data (DPTR) terdiri dari byte atas (DPH) dan byte bawah (DPL). Fungsi ini ditujukan untuk menyimpan data 16 bit. Dapat dimanipulasi sebagai register 16 bit atau dua 8 bit register yang berdiri sendiri.
Ports 0, 1, 2 dan 3. P0, P1, P2 dan P3 adalah SFR yang ditempati oleh Port 0, 1, 2 dan 3. Menulis suatu logika 1 terhadap sebuah bit dari sebuah port SFR ( P0, P1, P2 atau P3) menyebabkan pin output port yang bersesesuaian akan berada dalam kondisi logika high ‘1’. Dan sebaliknya.
Buffer Data Serial. Buffer serial sesungguhnya merupakan dua buah register yang terpisah, buffer pemancar dan buffer penerima. Ketika data diisikan ke SBUF, maka akan menuju ke buffer pemancar dan ditahan untuk proses transmisi. Ketika data diambil dari SBUF, maka akan berasal dari buffer penerima..
Registers Timer. Pasangan register ( TH0, TL0) dan (TH1, TL1) adalah register pencacah 16 bit untuk Timer/ Counter 0 dan 1, masing-masing.
Register Control. Registers IP, IE, TMOD, TCON, SCON, dan PCON terdiri dari bit control dan status.
Program Status Word. PSW atau Program Status Word berisi bit-bit status yang berkaitan dengan kondisi atau keadaan CPU mikrokontroler pada saat tersebut. PSW berada dalam lokasi ruang SFR Pada PSW ini kita dapat memantau beberapa status yang meliputi: carry bit, auxiliary carry ( untuk operasi BCD ), dua bit pemilih bank register, flag overflow, sebuah bit paritas dan dua flag status yang bisa didifinisikan sendiri. Bit carry dapat juga anda guakan pada keperluan operasi aritmatika, juga bisa digunakan sebagai universal akumulator untuk beberapa operasi boolean.
Lembar Evaluasi
1. Gambarkan arsitektur Von Neumann!
2. Apa yang dimaksud dengan vector interupsi?
3. Sebutkan jenis-jenis ROM yang kamu ketahui!
4. Apa yang dimaksud direct addressing dan indirect addressing? Jelaskan!
5. Gambarkan diagram pin IC 6116, berikan penjelasan fungsi setiap pinnya dan berikan penjelasan kegunaan IC 6116 tersebut!
Memori pada mikrokontroler digunakan untuk menyimpan data yang diperlukan selama mikrokontroler bekerja. Memori pada mikrokontroler dibedakan menjadi dua jenis, yaitu memori data dan memori program. Pemisahan memori ini sesuai dengan arsitektur Von Neumann yang memisahkan antara processor dan memori. Dengan pemisahan antara memori program dan memori data ini, memungkin bagi mikrokontroler untuk bekerja lebih cepat.
2. Memori Program
Memori program merupakan memori untuk menyimpan program (urutan instruksi untuk menjalankan mikrokontroler) dan juga berisi konstanta yang diperlukan program. Memori program pada mikrokontroler AT89Sxx dikenal dengan On Chip Flash. Setiap mikrokontroler memiliki kapasitas memori program yang berbeda-beda.
Tabel 1. Kapasitas memori beberapa jenis mikrokontroler dari Atmel
Seperti table di atas, untuk AT89S51 memiliki kapasitas On Chip Flash sebesar 4 Kbyte, namun apabila didalam pembuatan program melebihi kapasitas tersebut, maka bisa dipergunakan eksternal ROM untuk menambah memori, tetapi apabila dalam perancangan hardware dirasakan tidak dimungkin untuk menambah memori eksternal, disarankan untuk mengganti mikrokontroler dengan tipe yang lebih tinggi (memiliki kapasitas On Chip Flash yang lebih besar).Gambar 2.1 Pemetaan program memori dan penggunaannya
Perhatikan gambar 2.1 di atas, pada beberapa alamat/ruang ROM jadikan sebagai vector interupsi, berikut beberapa vector interupsi:Tabel 2.2. Vector Interupsi
Program yang sudah dibuat diisikan dari alamat yang paling rendah (0000H), alamat ini harus diisi, untuk menunjukkan awal program yang akan dieksekusi oleh mikrokontroler.3. Memori Data
Memori data pada mikrokontroler tersimpan pada internal RAM, memori data berisi variable dan register, memori RAM pada mikrokontroler AT89S51 kapasitas sangat terbatas (hanya 256 byte), apabila dalam aplikasi memerlukan memori RAM yang lebih besar, maka bisa ditambahkan memori RAM eksternal seperlunya.
Gambar 2.2. Penggunaan Memori Data
Seperti telah diulas sebelumnya bahwa RAM digunakan untuk menyimpan data/variable dan register, berikut pemetaannya:Gambar 2.3 Memori Data Internal
Alamat 00h sampai 7fh (128 byte terendah) merupakan bagian yang dapat dialamati secara langsung dan tidak langsung (direct and indirect addressing). Pada 128 byte terendah ini tersimpan alamat untuk register umum yang berjumlah 8 buah(R0, R1, R2, R3, R4, R5, R6 dan R7). Untuk lebih jelasnya amati gambar berikut!Gambar 2.4. Pemetaan pada 128 byte terendah
Untuk mengakses register umum (R0 sampai dengan R7) pada setiap bank, perlu adanya pengalamatan pada PSW (program status word), bit RS0 dan RS1 (PSW bit ke-3 dan bit ke-4). Namun secara default nilai RS0 dan RS1 ini bernilai “0” sehingga register umum tersimpan pada bank 0 alamat 00h sampai dengan alamat 07h.
Dari alamat 20h sampai 2fh digunakan untuk penyimpanan data dengan satuan satu bit atau bit addressable, dan alamat 30h sampai 7fh merupakan ruang data RAM.
Alamat 80h sampai ffh merupakan 128 byte bagian atas dari internal RAM. Alamat memori data internal selalu mempunyai lebar data satu byte. Pengalamatan langsung diatas 7Fh akan mengakses satu alamat memori, dan pengalamatan tak langsung diatas 7Fh akan mengakses satu alamat yang berbeda. Demikianlah pada gambar 2.3 menunjukkan 128 byte bagian atas dan ruang SFR menempati blok alamat yang sama, yaitu 80h sampai dengan FFh, yang sebenarnya mereka terpisah secara fisik. SFR merupakan register-register yang memiliki fungsi khusus, khusus dalam artian satu register berkaitan dengan satu fungsi hardware atau satu proses tertentu.
4. SFR (Special Function Register) atau Register Fungsi Khusus
Sebuah peta memori yang disebut ruang special function register ( SFR ) ditunjukkan pada gambar berikut. Perhatikan bahwa tidak semua alamat-alamat tersebut ditempati, dan alamat-alamat yang tak ditempati tidak diperkenankan untuk diimplementasikan.
Gambar 2.5. Pemetaan SFR (Special Function Register)
Accumulator. ACC adalah register akumulator. Mnemonik untuk instruksi spesifik akumulator ini secara sederhana dapat disingkat sebagai A. Register B. Register B digunakan pada saat opersi perkalian dan pembagian. Selain untuk keperluan tersebut diatas, register ini dapat digunakan untuk register bebas.
Stack Pointer. Register Pointer stack mempunyai lebar data 8 bit. Register ini akan bertambah sebelum data disimpan selama eksekusi push dan call. Sementara stack dapat berada disembarang tempat RAM. Pointer stack diawali di alamat 07h setelah reset. Hal ini menyebabkan stack untuk memulai pada lokasi 08h.
Data Pointer. Pointer Data (DPTR) terdiri dari byte atas (DPH) dan byte bawah (DPL). Fungsi ini ditujukan untuk menyimpan data 16 bit. Dapat dimanipulasi sebagai register 16 bit atau dua 8 bit register yang berdiri sendiri.
Ports 0, 1, 2 dan 3. P0, P1, P2 dan P3 adalah SFR yang ditempati oleh Port 0, 1, 2 dan 3. Menulis suatu logika 1 terhadap sebuah bit dari sebuah port SFR ( P0, P1, P2 atau P3) menyebabkan pin output port yang bersesesuaian akan berada dalam kondisi logika high ‘1’. Dan sebaliknya.
Buffer Data Serial. Buffer serial sesungguhnya merupakan dua buah register yang terpisah, buffer pemancar dan buffer penerima. Ketika data diisikan ke SBUF, maka akan menuju ke buffer pemancar dan ditahan untuk proses transmisi. Ketika data diambil dari SBUF, maka akan berasal dari buffer penerima..
Registers Timer. Pasangan register ( TH0, TL0) dan (TH1, TL1) adalah register pencacah 16 bit untuk Timer/ Counter 0 dan 1, masing-masing.
Register Control. Registers IP, IE, TMOD, TCON, SCON, dan PCON terdiri dari bit control dan status.
Program Status Word. PSW atau Program Status Word berisi bit-bit status yang berkaitan dengan kondisi atau keadaan CPU mikrokontroler pada saat tersebut. PSW berada dalam lokasi ruang SFR Pada PSW ini kita dapat memantau beberapa status yang meliputi: carry bit, auxiliary carry ( untuk operasi BCD ), dua bit pemilih bank register, flag overflow, sebuah bit paritas dan dua flag status yang bisa didifinisikan sendiri. Bit carry dapat juga anda guakan pada keperluan operasi aritmatika, juga bisa digunakan sebagai universal akumulator untuk beberapa operasi boolean.
Tabel 2.3. PSW (program status word)
Lembar Evaluasi
1. Gambarkan arsitektur Von Neumann!
2. Apa yang dimaksud dengan vector interupsi?
3. Sebutkan jenis-jenis ROM yang kamu ketahui!
4. Apa yang dimaksud direct addressing dan indirect addressing? Jelaskan!
5. Gambarkan diagram pin IC 6116, berikan penjelasan fungsi setiap pinnya dan berikan penjelasan kegunaan IC 6116 tersebut!
Jawaban dari pertanyaan di atas segera dikumpulkan
Tidak ada komentar:
Posting Komentar