| Pelatihan
Mikrokontroller
89S51
15 Januari 2011
Surabaya
Microcontroller Kits
Programmer and
Target 89s51
Simple
Mikrokontroller 89s51 Trainer
Standart
Mikrokontroller 89s51 Trainer
Super
Mikrokontroller Trainer 89s51
All Kits
+
Programmer
via USB Port
|
|
1.1. Organisasi Memori
Semua divais 8051 mempunyai ruang alamat yang terpisah
untuk memori program dan memori data, seperti yang ditunjukkan pada
gambar1.1. dan gambar 1.2. Pemisahan secara logika dari memori program
dan data, mengijinkan memori data untuk diakses dengan pengalamatan
8 bit, yang dengan cepat dapat disimpan dan dimanipulasi dengan CPU
8 bit. Selain itu, pengalamatan memori data 16 bit dapat juga dibangkitkan
melalui register DPTR. Memori program ( ROM, EPROM dan FLASH ) hanya
dapat dibaca, tidak ditulis. Memori program dapat mencapai sampai 64K
byte. Pada 89S51, 4K byte memori program terdapat didalam chip. Untuk
membaca memori program eksternal mikrokontroller mengirim sinyal PSEN
( program store enable )

Gambar 1.1. Diagram blok mikrokontroller 8051
Memori data ( RAM ) menempati ruang alamat yang terpisah
dari memori program. Pada keluarga 8051, 128 byte terendah dari memori
data, berada didalam chip. RAM eksternal (maksimal 64K byte). Dalam
pengaksesan RAM Eksternal, mikrokontroller mingirimkan sinyal RD ( baca
) dan WR ( tulis ).
 
Gambar 1.2. Arsitektur Memori Mikrokontroller 8051
1.1.1. Program Memory
Gambar 1.2. menunjukkan suatu peta bagian bawah dari memori program.
Setelah reset CPU mulai melakukan eksekusi dari lokasi 0000H. Sebagaimana
yang ditunjukkan pada gambar 1.3, setiap interupsi ditempatkan pada
suatu lokasi tertentu pada memori program. Interupsi menyebabkan CPU
untuk melompat ke lokasi dimana harus dilakukan suatu layanan tertentu.
Interupsi Eksternal 0, sebagi contoh, menempatai lokasi 0003H. Jika
Interupsi Eksternal 0 akan digunakan, maka layanan rutin harus dimulai
pada lokasi 0003H. Jika interupsi ini tidak digunakan, lokasi layanan
ini dapat digunakan untuk berbagai keperluan sebagai Memori Program.

Gambar 1.3. Peta Interupsi mikrokontroller 8051
1.1.2 Memory Data
Pada gambar 1.2. menunjukkan ruang memori data internal dan eksternal
pada keluarga 8051. CPU membangkitkan sinyal RD dan WR yang diperlukan
selama akses RAM eksternal. Memori data internal terpetakan seperti
pada gambar 1.2. Ruang memori dibagi menjadi tiga blok, yang diacukan
sebagai 128 byte lower, 128 byte upper dan ruang SFR.
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 1.4 menunjukkan 128 byte bagian atas dan ruang SFR menempati
blok alamat yang sama, yaitu 80h sampai dengan FFh, yang sebenarnya
mereka terpisah secara fisik
128 byte RAM bagian bawah dikelompokkan lagi menjadi beberapa blok,
seperti yang ditunjukkan pada gambar 1.5. 32 byte RAM paling bawah,
dikelompokkan menjadi 4 bank yang masing-masing terdiri dari 8 register.
Instruksi program untuk memanggil register-register ini dinamai sebagai
R0 sampai dengan R7. Dua bit pada Program Status Word (PSW) dapat memilih
register bank mana yang akan digunakan. Penggunaan register R0 sampai
dengan R7 ini akan membuat pemrograman lebih efisien dan singkat, bila
dibandingkan pengalamatan secara langsung.

Gambar 1.4. Memori data internal

Gambar 1.5. RAM internal 128 byte paling bawah
Semua pada lokasi RAM 128 byte paling bawah dapat diakses
baik dengan menggunakan pengalamatan langsung dan tak langsung. 128
byte paling atas hanya dapat diakses dengan cara tak langsung, gambar
1.6.

Gambar 1.6. RAM internal 128 byte paling atas
1.1.3. Special Function Register
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. Akses baca untuk alamat
ini akan menghasilkan data random, dan akses tulis akan menghasilkan
efek yang tak jelas.
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.
Program Status Word
Register PSW terdiri dari informasi status dari program yang secara
detail ditunjukkan pada Tabel 1.1.
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.
NEXT
|
|
PERCOBAAN 1
LED
PERCOBAAN 2
SAKLAR
PERCOBAAN 3
7 Segmen
PERCOBAAN 4
LCD Character
PERCOBAAN 5
ADC
PERCOBAAN 6
DAC
PERCOBAAN 7
Keypad
PERCOBAAN 8
Motor Stepper
PERCOBAAN 9
Timer Counter
PERCOBAAN 10
Komunikasi Serial
PERCOBAAN 11
Interupsi
PERCOBAAN 12
Keyboard PC
PERCOBAAN 13
Printer
Dot Matr.
PERCOBAAN 14
RTC12C887
PERCOBAAN 15
P W M
APLIKASI
|