Mikrokontroler 89C51
Bagian II :
Mikrokontroler 89C51
Mikrokontroler 89C51 merupakan mikrokomputer CMOS 8 bit dengan 4 Kbytes Flash Programmable. Arsitektur 89C51 ditunjukkan pada gambar 2
Accumulator
ACC merupakan register akumulator. Pada program ditulis dengan A.

GAMBAR 2 BLOK DIAGRAM 89C51
Special Function Registers (SFR)
Gambar 3 menunjukkan pemetaan dari daerah memori yang disebut dengan Special Function Registers (SFR). SFR yang ditandai dengan (…) hanya terdapat pada 89C52, tetapi tidak terdapat pada 89C51. Tidak semua alamat ditempati, alamat yang kosong tidak diimplementasikan pada chip. Melakukan pembacaan pada alamat yang kosong, akan menghasilkan data random, sedangkan penulisan tidak berpengaruh. Fungsi dari masing-masing register dijelaskan pada bagian berikut :
Register B
Register B digunakan pada operasi perkalian dan pembagian. Pada instruksi-instruksi yang lain berfungsi seperti register umumnya.

Program Status Word (PSW)
PSW berisi informasi status program

Stack Pointer (SP)
Stack Pointer terdiri dari 8 bit. Alamat SP ditambah / dinaikkan sebelum data disimpan pada eksekusi instruksi PUSH dan CALL. SP dapat diletakkan pada alamat manapun di on-
Mikrokontroler 89C51 - Halaman 1
chip RAM, SP diinisialisasi pada alamat 07H setelah reset. Hal ini mengakibatkan stack dimulai pada lokasi 08H.

Data Pointer (DPTR)
DPTR terdiri dari high byte (DPH) dan low byte (DPL). Fungsi utamanya adalah sebagai tempat alamat 16 bit. Register ini bisa juga dimanipulasi sebagai sebuah register 16 bit atau 2 buah register 8 bit yang berdiri sendiri.
Register Control
SFR IP, IE, TMOD, TCON, T2CON, SCON, dan PCON berisi bit kontrol dan status untuk sistem interupt, timer / counter, dan port serial.

Struktur dan Cara Kerja Port
89C51 mempunyai 4 port bidirectional (Port 0 - Port 3), yang masing-masing terdiri dari 8 bit. Setiap port terdiri dari sebuah latch

Gambar 3. Pemetaan Special Function Registers (SFR)
Port 0 - 3
P0, P1, P2, dan P3 adalah SFR latch dari Port 0, 1, 2, dan 3.

Serial Data Buffer
Serial Data Buffer sebenarnya merupakan 2 register yang terpisah, transmit buffer (untuk mengirim data serial) dan receive buffer (untuk menerima data serial). Ketika data dipindahkan ke SBUF, maka data akan menuju ke transmit buffer di mana data ditampung untuk pengiriman serial. Memindahkan data ke SBUF berarti menginisialisasi / memulai transmisi data secara serial. Sebaliknya bila data dipindahkan dari SBUF, data tersebut berasal dari receive buffer.

Register Timer
Pasangan register (TH0 & TL0), (TH1 & TL1), serta (TH2 & TL2) adalah register 16 bit untuk proses perhitungan Timer / Counter 0, 1, dan 2.
(Special Function Registers P0 sampai P3), sebuah output driver, dan sebuah input buffer. Output driver Port 0 dan Port 2, serta input buffer Port 0 digunakan untuk mengakses memori eksternal. Untuk aplikasi yang menggunakan memori eksternal, maka Port 0 mengeluarkan 'low order byte' alamat memori eksternal (A0-A7), yang dimultipleks dengan data (1 byte) yang dibaca atau ditulis. Port 2 mengeluarkan 'high order byte' alamat memori eksternal (A8-A15) bila alamat yang diperlukan sebanyak 16 bit. Bila alamat yang diperlukan hanya A0-A7 maka output Port 2 sama dengan isi SFR (Special Function Registers). Semua pin Port 3 mempunyai fungsi alternatif selain sebagai port. Fungsi alternatif tersebut ditunjukkan pada tabel 2.
Mikrokontroler 89C51 - Halaman 2
Pin
Fungsi Alternatif
P3.0 RXD (Port input serial)
P3.1 TXD (Port output serial)
P3.2 INT0 (interupt eksternal)
P3.3 INT1 (interupt eksternal)
P3.4 T0 (input Timer/Counter 0 eksternal)
P3.5 T1 (input Timer/Counter 1 eksternal)
P3.6 WR (sinyal tulis data memory eksternal)
P3.7 RD (sinyal baca data memory eksternal)
Tabel 2 Fungsi Alternatif Port 3
Fungsi alternatif hanya akan aktif bila bit-bit yang bersesuaian pada port SFR berisi '1'. Bila tidak maka output port akan terkunci pada low.

Konfigurasi I/O
Gambar 4 menunjukkan diagram latch dan I/O buffer tiap bit dari Port 0 - Port 3. Port 1,2, dan 3 mempunyai pull-up internal. Sedangkan Port 0, konfigurasi outputnya adalah open drain. Setiap bit I/O ini berdiri sendiri, jadi dapat berfungsi sebagai input atau output tanpa tergantung satu sama lain. Port 0 dan 2 tidak dapat dipakai sebagai I/O bila digunakan sebagai jalur alamat / data. Bila port-port tersebut ingin difungsikan sebagai input, maka bit latch harus berisi '1', yang akan mematikan output driver FET. Sehingga pin-pin Port 1,2, dan 3 akan 'ditarik' ke high oleh pull-up internal, tetapi bila diinginkan dapat juga 'ditarik' ke low dengan sumber eksternal.
Port 0 agak berbeda, karena tidak menggunakan pull-up internal. FET pull-up pada output driver P0 (lihat gambar 4A) hanya digunakan pada saat Port mengeluarkan '1' selama akses memori eksternal, selain keadaan ini FET pull-up tidak aktif. Akibatnya bila bit-bit P0 berfungsi sebagai output maka bersifat open drain. Penulisan logika '1' ke bit latch menyebabkan kedua FET tidak bekerja, sehingga pin dalam keadaan mengambang (floating). Pada kondisi ini pin dapat berfungsi sebagai high impedance input. Port 1,2, dan 3 sering disebut dengan 'quasi-bidirectional' karena mempunyai pull-up internal. Saat berfungsi sebagai input maka mereka akan 'ditarik' ke high dan akan bersifat sebagai sumber arus bila 'ditarik' ke low secara eksternal. Port 0 sering disebut sebagai 'true-bidirectional', karena bila dikonfigurasikan sebagai input maka pin-pinnya akan mengambang. Pada saat reset semua port latch akan berlogika '1'.

Gambar 4. Bit Latch dan I/O Buffer 89C51

Mikrokontroler 89C51 - Halaman 3
First Page Back   Next End Page