b. Register B
Register B menempati alamat F0h. Register ini dipakai bersama-sama dengan Register A pada proses aritmatik perkalian dan pembagian.
Register B juga bisa diakses Per byte dan per bit.
c. PSW Program Status Word Program Status Word atau PSW berisi bit-bit yang berkaitan dengan
kondisi CPU. Status yang tersimpan dalam PSW meliputi : carry bit,
auxiliary carry untuk operasi BCD, dua bit pemilih bank register, overflow flag, parity, dan dua flag status yang bisa didefiniskan sendiri
user definable.
d. P0 - P3 Register Port
Register port merupakan SFR yang mengatur kerja port-port 8051P0-P3. Register ini merupakan alamat Latch dari masing-masing port. Menulis
atau membaca latch ini sama dengan menulis atau membaca latch yang bersangkutan sehingga data data bisa ditulis ke dan dibaca dari masing-
masing port 8051. Mov 80h,45h
Sama artinya dengan Mov P0,45h
e. Data Pointer DPTR dan Stack Pointer SP
Data pointer DPTR adalah register 16 bit yang biasa dipakai untuk pengalamatan data 16 bit. Misalnya pada saat membaca atau menulis
RAM eksternal dengan perintah MOVX. DPTR menempati dua alamat dalam memori SFR 82h dan 83h. DPTR bisa diakses sebagai register 8 bit
Universitas Sumatera Utara
dengan nama DPL DPTR bit 0 - bit 7 dan DPH DPTR bit 8-bit 15. DPTR tidak bisa diakses per bit.
Stack pointer merupakan register 8 bit, dipakai untuk menyimpan data sementara pada saat perintah push, pop dan call, ret. Misalnya suatu
rutin yang memakai register A akan memanggil call subrutin yang juga memakai register A, maka agar data register A pada rutin pertama tidak
dimodifikasi oleh subrutin yang dipanggil, data register A harus disimpan dulu di SP dengan perintah push.
Setelah subrutin selesai dikerjakan, data register A yang tersimpan di SP di baca kembali melalui perintah pop dan disimpan di register A.
Perintah call akan menyimpan isi PC program counter ke dalam SP dan mengambilnya kembali setelah instruksi ret. Pada saat reset SP memiliki
alamat 07h, namun karena SP akan ditambahkan satu sebelum data disimpan melalui perintah push, tumpukan data yang disimpan akan
dimulai pada alamat 08h. Alamat ini menempati memori internal 8051 SP tidak bisa dialamati per bit.
2.1.5 Struktur Memori
Mikrokontroler MCS-51 memiliki kendali yang berbeda untuk mengakses memori RAM atau memori data dan ROM atau memori program. Kendali untuk
memori program adalah PSEN dan kendali untuk memori data adalah RD. Mikrokontroler MCS-51 memiliki lebar bus alamat 16 bit, sehingga memori dapat
diakses sebesar 2×64 KB. Memori program internal dipakai jika Pin EA dihubungkan ke VCC. Sedangkan kalau EA dihubungkan ke GND maka memori
Universitas Sumatera Utara
program akan diakses eksternal. Untuk memori data internal MCS-51 adalah sebesar 128 byte. Jika dipakai memori data Eksternal dapat diakses sebesar 64
KB.
2.1.5.1 Memori RAM
Pemakaian RAM harus diperhatikan agar tidak tumpang tindih dengan memori stack pointer SP. Salah satu kesalahan mikrokontroler jika Pemakaian
RAM tumpang tindih dengan SP adalah memori pada RAM internal akan hilang jika di reset. Tabel 2.2. memperlihatkan Struktur RAM 128 byte.Memori internal
RAM 128 byte bisa dibagi menjadi 3 area: Tabel 2.2. Struktur RAM 128 byte
30H-7FH 20H-2FH
00H-1FH
1. Bank-bank Register
Bank register dibagi menjadi 4 grup yaitu bank 0 sampai bank 3. masing masing bank menempati alamat sebesar 8 byte. Tabel 2.3. adalah susunan bank-
bank register.
Area scratch pad 80 byte
Area yang bisa dialamati per Bit 16 byte
Bank-bank register 32 Byte
Universitas Sumatera Utara
Tabel 2.3 Susunan bank-bank register Alamat
Bank Register RS1,RS0
00-07 Bank 0
00 08-0F
Bank 1 01
10-17 Bank 2
10 18-1F
Bank 3 11
Masing-masing alamat dalam satu grup diberi nama R0-R7. Alamat R0-R7 ditentukan oleh Bank register yang aktif saat itu.
Semua alamat R0-R7 bisa di alamati dengan model pengalamatan langsung. R0 dan R1 juga bisa dialamati dengan model pengalamatan tak langsung. Pada
model pengalamatan tak langsung R0 dan R1 menyimpan alamat RAM internal yang akan diakses.
2. Memori Yang Bisa Dialamati Per-Bit
Area ini menempati alamat 20H-2FH 16 Byte sebagai byte dan 00H- 07FH 128bit sebagai alamat bit. Area memori ini berfungsi untuk menyimpan
tipe data bolean atau 2 keadaan.
Ada 2 cara untuk mengakses memori ini. -
Cara mengakses sebagai byte bisa dilakukan dengan pengalamatan langsung, misal. Mov 20H, 20H. Akan menulis data 45 H ke alamat
20H. -
Pengaksesan secara bit dilakukan dengan mengakses alamat bit yang bersangkutan,misal.
Mov C,13H
Universitas Sumatera Utara
Akan memindahkan alamat pada bit ke-13 ke bit C carry. Alamat 13H adalah bit ke-3 dari alamat 22H. Bahasa assembler MCS-51 memiliki
penulisan yang lain untuk mengakses bit ke-3 yaitu 22.3H,sehingga Mov C,22.3H
3. Area Memori Scratch Patch
Area memori ini yang disebut area scratch patch memory menempati alamat paling atas RAM internal sebesar 80 byte alamat 30H-7FH. Area ini
hanya bisa diakses sebagai byte dengan mode pengalamatan langsung dan tak
langsung. 2.1.5.2 Memory ROM
ROM read Only memory isinya tidak berubah meskipun IC kehilangan catu daya, dipakai untuk menyimpan program, Begitu catu daya ada
maka IC akan langsung reset dan akan menjalankan program-program yang ada pada ROM. Sesuai dengan penggunaanya ROM disebut sebagai memori
program. Memori ROM hanya sebagai memori program dan tidak bisa di tulis ke ROM saat mikrokontroler sedang bekerja.
2.1.5.3 Antar Muka Memori Eksternal
Gambar 2.3. 89C51 mengakses EPROM dan RAM Eksternal
Universitas Sumatera Utara
Memori program ROM dan memori data RAM eksternal diakses dengan menggunakan P0 dan P2 sebagai bus data dan bus alamat. P0 akan
menyediakan jalur data yang di-multipleks dengan jalur alamat orde rendah A0- A7, dan P2 menyediakan jalur alamat orde tinggi A8-A15. Konfigurasi
pengaksesan memori eksternal ditunjukkkan pada gambar 2.2. EFROM 64 KB dan RAM 32 KB. Konfigurasi ini memisahkan antara memori programROM
dengan Memori data RAM.Kendali sinyal baca untuk ROM adalah PSEN sedangkan RAM mendapat sinyal baca dan sinyal tulis dari P3.7RD dan
P3.6WR, sementara EPROM tidak mendapat sinyal kendali tulis. Pin EA dihubungkan ke ground sehingga 8051 hanya akan melaksanakan perintah-
perintah yang tersimpan di EPROM eksternal. P0, selain dihubungkan ke jalur data EPROM dan RAM, juga
dihubungkan dengan masukan latch agar alamat orde rendah A0-A7 yang dikeluarkan oleh P0 bisa dipisahkan dari jalur data EPROM. Pada saat P0
mengeluarkan alamat yang valid, ALE akan memberikan pulsa sehingga sehingga IC latch akan menyimpan alamat ini dan memberikannya ke jalur
Alamat EPROM dan RAM. Bersamaan dengan itu, P2 akan mengeluarkan alamat orde tinggi A8-A15 yang secara langsung terhubung dengan jalur
alamat EPROM dan RAM. PSEN akan diaktifkan 2 kali setiap satu siklus mesin saat membaca
program dari EPROM eksternal. Saat PSEN aktif berlogika 0 EPROM akan mengeluarkan data yang diterjemahkan sebagai perintah yang harus dijalankan
Universitas Sumatera Utara
oleh mikrokontroler. Pada saat mengakses RAM, PSEN berada pada logika tinggi.
Penulisan ke RAM dilakukan dengan mengaktifkan sinyal tulis RD=1 dan WR=0, CPU akan mengirimkan data ke RAM setelah terlebih dahulu
mengirimkan alamat RAM. Yang akan dituliskan. Sementara itu, pembacaan dilakukan dengan mengaktifkan sinyal baca RD=0 dan WR=1, CPU akan
memberikan alamat RAM yang akan dibaca, mengaktifkan sinyal baca dan membaca data RAM dari jalur data.
Osilator
Osilator berfungsi untuk menyediakan sinyal clock dan pewaktuan bagi semua perangkat internal 8051. Untuk menyediakan sinyal Clock digunakan
dengan dua cara yaitu: 1.
Dengan menggunakan pembangkit frekwensi eksternal seperti pada gambar 2.4.
Gambar.2.4. Pemakaian osilator eksternal -
Pin Xtal satu pada mikrokontroler 8051 dihubungkan ke keluaran pembangkit frekwensi eksternal.
- Pin Xtal dua dibiarkan mengambang.
Universitas Sumatera Utara
- Pin Ground pada pembangkit frekwensi eksternal
dihubungkan ke Ground pada mikrokontroler 8051. 2.
Dengan menggunakan Kristal dan 2 kapasitor 30 pF dan 47 pF, Seperti pada gambar 2.5.
Hal yang paling mendasar dari osilator sebenarnya adalah untuk menentukan siklus mesin. Siklus mesin adalah waktu minimum yang diperlukan
oleh mikrokontroler untuk menjalankan satu perintah. Siklus mesin ini akan menentukan kecepatan mikrokontroler seberapa cepat mikrokontroler
menjalankan suatu perintah. Satu siklus mesin mikrokontroler 8051 adalah 12 kali periode frekwensi osilator dengan frekwensi 12 Mhz, maka satu siklus
mesin adalah 112 dikali 12 Mhz.
Gambar 2.5 Pembangkit sinyal clock internal Jadi kecepatan satu siklus mikrokontroler 8051 jika frekwensi pada
XTAL1 12 Mhz adalah 1 Mhz atau 1 mikro detik. Berarti untuk melakukan satu perintah mikrokontroler 8051 hanya dalam satu mikro detik. Atau 1 juta perintah
dalam satu detik.
Universitas Sumatera Utara
2.1.6 Central Processing Unit CPU
CPU terdiri atas dua bagian, yaitu unit pengendali control unit serta unit aritmetika dan logika ALU. Fungsi utama unit pengendali adalah
mengambil, mengkode, dan melaksanakan urutan instruksi sebuah program yang tersimpan dalam memori.
Unit pengendali menghasilkan dan mengatur sinyal pengendali yang diperlukan untuk menyerempakkan operasi, aliran, dan instruksi program.Unit
aritmetika dan logika berfungsi untuk melakukan proses perhitungan yang diperlukan selama program dijalankan serta mempertimbangkan suatu kondisi dan
mengambil keputusan yang diperlukan untuk instruksi-instruksi berikutnya.
2.2 Penggunanaan Softwere 8051 IDE
Softwere 8051 IDE ini digunakan untuk menulis program dalam bahasa assembler. Setelah program assembler selesai ditulis kemudian di-save dan di
assemble. Program di assemble dengan tujuan untuk mengecek kesalahan penulisan. Jika masih ada kesalahan penulisan, maka softwere 8051 memberi
peringatan, sehingga program dapat diubah sampai tidak ada pesan peringatan lagi.
2.3 Penggunaan Softwere Downloader
Softwere downloader digunakan agar downloader dapat mendownload program assembler ke mikrokontroler AT89C51. Softwere dapat dijalankan jika
Universitas Sumatera Utara
komputer terhubung dengan alat downloader beserta mikrokontroler yang digunakan.
Cara menggunakan softwere downloader adalah dengan meng-klik open file untuk mengambil program assembler dari hasil kompilasi, kemudian klik Auto
programming untuk mengisikan hasil kompilasi tersebut ke mikrokontroler.
2.4. Mode-Mode Pengalamatan