Mikrokontroler merupakan sistem komputer kecil yang biasa digunakan untuk sistem pengendali atau pengontrol yang dapat diprogram sesuai kebutuhan. Mikrokontroller memiliki 4KB Flash Programmable dan Erasable Read Only Memory (PEROM) didalamnya.
Mikrokontroler AT89S52 merupakan pengembangan dari mikrokontroler MCS-51. Mikrokontroler ini biasa disebut juga dengan mikrokomputer CMOS 8 bit dengan 8 Kbyte yang dapat dIprogram sampai 1000 kali pemograman. Selain itu AT89S52 juga mempunyai kapasitas RAM sebesar 256 bytes, 32 saluran I/O, Watchdog timer, dua pointer data, tiga buah timer/counter 16-bit, Programmable UART (Serial Port). Memori Flash digunakan untuk menyimpan perintah (instruksi) berstandar MCS-51, sehingga memungkinkan mikrokontroler ini bekerja sendiri tanpa diperlukan tambahan chip lainnya (single chip operation), mode operasi keping tunggal yang tidak memerlukan external memory dan memori flashnya mampu diprogram hingga seribu kali. Hal lain yang menguntungkan adalah sistem pemogramanan menjadi lebih sederhana dan tidak memerlukan rangkaian yang rumit.
Sebuah mikrokontroler dapat berfungsi/bekerja, apabila telah terisi oleh program. Program terlebih dahulu dimasukan kedalam memori sesuai dengan kebutuhan penggunaaan pengontrolan yang diperlukan dan yang hendak dijalankan. Program yang dimasukkan kedalam mikrokontroler Atmel 89S52 adalah berupa file heksa (Hex File), dan program tersebut berisikan instruksi atau perintah untuk menjalankan sistem kontrol.
Mikrokontroler merupakan single chip computer yang memiliki kemampuan untuk diprogram dan digunakan untuk tugas-tugas yang berorientasi kontrol, Mikrokontroller berkembang dengan dua alasan utama, yaitu kebutuhan pasar (market needed) dan perkembangan teknologi baru. Dalam perkembangannya sampai saat ini, sudah banyak produk mikrokontroller yang telah diproduksi oleh berbagai perusahaan pembuat IC (Integrated Circuit) diantara salah satunya adalah jenis mikrokontroller yang digunakan dalam perancangan alat ini yaitu mikrokontroller seri 8052 yang dibuat oleh ATMEL, dengan kode produk AT89S52. Secara fisik, mikrokontroler AT89S52 mempunyai 40 pin, 32 pin diantaranya adalah pin untuk keperluan port masukan/keluaran. Satu port paralel terdiri dari 8 pin, dengan demikian 32 pin tersebut membentuk 4 buah portparalel, yang masing-masing dikenal dengan Port 0, Port1, Port2 dan Port3. Dengan keistimewaan di atas perancangan dengan menggunakan mikrokontroler AT89S52 menjadi lebih sederhana dan tidak memerlukan komponen pendukung yang lebih banyak lagi.
2.1.2 Konfigurasi Pin AT89S52
Setiap pin (kaki) dari mikrkontroler AT89S51 mempunyai fungsi masing-masing fungsi. Arsitektur hardware mikrokontroller AT89S52 dari perspektif luar atau biasa disebut pin out digambarkan pada gambar 2.1 di bawah ini
Gambar 2. Konfigurasi Pin Mikrokontroler AT89S52
Berikut adalah penjelasan mengenai fungsi dari tiap-tiap pin (kaki) yang ada pada mikrokontroller AT89S52.a. Port 0
Merupakan dual-purpose port (port yang memiliki dua kegunaan). Pada disain yang minimum (sederhana), port 0 digunakan sebagai port Input/Output (I/O).. Port 0 terdapat pada pin 32-39.
b. Port 1
Merupakan port yang hanya berfungsi sebagai port I/O (Input/Output). Port 1 terdapat pada pin 1-8.
c. Port 2
Merupakan dual-purpose port. Pada desain minimum digunakan sebagai port I/O (Input/Output). Sedangkan pada desain lebih lanjut digunakan sebagai high byte dari address (alamat). Port 2 terdapat pada pin 21-28.
d. Port 3
Merupakan dual-purpose port. Selain sebagai port I/O (Input/Output), port 3 juga mempunyai fungsi khusus. Fungsi khusus tersebut diperlihatkan
Tabel 2.1 Data Port 3 pin 10 -17
a. PSEN (Program Store Enable)
PSEN adalah sinyal kontrol yang mengizinkan untuk mengakses program (code) memori eksternal. Pin ini dihubungkan ke pin OE (Output Enable) dari EPROM. Sinyal PSEN akan “0” (LOW) pada tahap fetch (penjemputan) instruksi. PSEN akan selalu bernilai “1” (HIGH) pada pembacaan program memori internal. PSEN terdapat pada pin 29.
a. ALE (Address Latch Enable)
ALE digunakan untuk men-demultiplex address (alamat) dan data bus. ketika menggunakan program memori eksternal, port 0 akan berfungsi sebagai address (alamat) dan data bus. Pada setengah paruh pertama memori cycle ALE akan bernilai “1” (HIGH) sehingga mengizinkan penulisan address (alamat) pada register eksternal. Dan pada setengah paruh berikutnya akan bernilai “1” (HIGH) sehingga port 0 dapat digunakan sebagai data bus. ALE terdapat pada pin 30.
b. EA (External Access)
Jika EA diberi input “1” (HIGH), maka mikrokontroller menjalankan program memori internal saja. Jika EA diberi input “0” (LOW), maka AT89S52 menjalankan program memori eksternal (PSEN akan bernilai “0”). EA terdapat pada pin 31.
c. RST (Reset)
RST terdapat pada pin 9. Jika pada pin ini diberi input “1” (HIGH) selama minimal 2 machine cycle, maka sistem akan di-reset dan register internal AT89S52 akan berisi nilai default tertentu. Proses reset merupakan proses untuk mengembalikan sistem kekondisi semula. Reset tidak mempengaruhi internal program memory. Reset terjadi jika pin RST bernilai high selama minimal dua siklus lalu kembali bernilai low. Power on reset merupakan proses reset yang berlangsung secara otomatis pada saat sistem pertama kali diberi suplai. Proses ini mempengaruhi semua register dan internal data memory. Untuk mendapatkan proses ini, maka pin RST harus diberi tambahan rangkaian seperti pada gambar berikut.
- a. On-Chip oscillator
- b. XTAL1
- c. XTAL2
- d. VCC
2.1.1 Arsitektur dan Blok Diagram Mikrokontroler AT89C51
Mikrokontroler AT89S52 dibangun berdasarkan arsitektur seperti ditunjukkan gambar dibawah ini. Seluruh bagian yang digambar pada gambar tersebut saling berhubungan melalui internal bus 8 bit menelusuri bagian serpih. Bus tersebut kemudian dihubungkan ke luar melalui input output port apabila memori atau expansi diperlukan.
Unit pengolah pusat (CPU) terdiri atas dua bagian, yaitu unit pengendali control unit (CU), serta unit aritmatika dan logika (ALU). Fungsi utama unit pengendali ini adalah mengambil, mengkode, dan melaksanakan urutan intruksi sebuah program yang tersimpan dalam memori, unit pengendali juga berfungsi untuk mengatur urutan operasi seluruh sistem. Unit pengendali atau CPU juga menghasilkan dan mengatur sinyal pengendali yang diperlukan untuk menyerempakkan operasi, juga aliran intruksi program. Aliran informasi pada bus-bus data dan bus alamat juga diatur oleh unit ini.
2.1.1 Memori Program
Memori program merupakan suatu ruang memori yang digunakan untuk menyimpan kode program dan konstanta yang sifatnya tetap. Memori program hanya bisa dibaca saja (Read Only Memori), dalam artian ketika sedang melakukan eksekusi program memori hanya bersifat di baca saja namun tidak dapat diubah isinya, sebagian memori program terdapat didalam chip mikrokontroler (On-chip) dan sebagian lagi berada diluar (off-chip). Mikrokontroler ATMEL AT89S52 mempunyai kapasitas memori program on-chip sebesar 8 kB.
2.1.2 Memori Data
RAM merupakan memori data internal (on-chip). Untuk AT89S52 mempunyai memori sebesar 256 byte. Pada segment data ini dibagi menjadi tiga bagian, dimulai dari alamat 0×00 sampai dengan 0xFh dikenal sebagai register R0 sampai dengan R7 yang diorganisasikan menjadi 4 bank. Pemilihan bank yang dilakukan dengan memberikan kombinasi logika pada register Program Status Word(PSW). Bagian berikutnya adalah mulai alamat 0×20 sampai dengan 0x2f sebanyak 128 bit merupakan lokasi memori yang dapat dimanipulasi perbit (bit addressable) juga dikenal dengan segment bit (BDATA). Bagian berikutnya adalah general purpose RAM mulai alamat 0×30 sampai dengan 0x7fh.
2.1.3 Interuksi
Terdapat beberapa kelompok fungsi pada instruksi keluarga MCS – 52, yaitu:
- 1. Instruksi Aritmatika
Misalnya adalah: add, mul, subb, inc dan dec
Contohnya : mov a,#10h
Mov b,#05h
Mul ab
Mov a,#10h artinya salin data 10h ke a
Mov b,#05h artinya salin data 05h ke b
Mul ab artinya kalikan nilai akumulator dengan nilai register b
- 2. Instruksi Logika
Misalnya adalah :anl, orl, xrl, clr
Contohnya : clr p3.5
Clr p3.5 artinya nolkan p3.5
- 3. Instruksi Transfer Data
- Register – register
- Memori – memori
- Register – memori
- Interface – register
- Interface – memori
MOV A, R1 : memindahkan isi register R1 ke accumulator
MOV A, @R2 : memindahkan isi memori yang alamatnya
ditunjukkan oleh register R2 ke accumulator.
Demikian dari saya, untuk lebih jelas dapat di akses melalui www.atmel.com