Mikrokontroler merupakan suatu rangkaian terintegrasi (Integrated Circuit) atau biasa disebut IC, dimana didalamnya berisi CPU (Central Processing Unit), RAM (Random Access Memory), ROM (Read Only Memory), dan I/O (Input/Output) yang dapat diprogram. Dengan adanya sistem pendukung tersebut, mikrokontroler dapat melakukan proses berpikir berdasarkan program. Hal ini menjadi sebuah terobosan teknologi mikroprosesor dan mikrokomputer dalam perancangan sebuah sistem kecerdasan buatan yang lebih kompleks.
Mikrokontroler umumnya dikelompokkan dalam satu keluarga. Berikut adalah contoh-contoh keluarga mikrokontroler:
• Keluarga MCS-51
• Keluarga MC68HC05
• Keluarga MC68HC11
• Keluarga AVR
• Keluarga PIC 8
MIKROKONTROLER AT89S52
Deskripsi
Mikrokontroler AT89S52 adalah sebuah mikrokontroler buatan ATMEL. Mikrokontroler ini masih termasuk dalam keluarga mikrokontroler MCS-51 yaitu merupakan versi yang dilengkapi dengan ROM tersendiri (internal). Mikrokontroler AT89S52 adalah mikrokontroler dengan konsumsi power yang rendah dan performa yang tinggi ( low power - high performance ) CMOS 8-bit dengan 8K bytes dari ISP (In Serial Programming) Flash memory. IC mikrokontroler ini sesuai dengan standar MCS-51. Baik dari instruksi maupun pin-pinnya dapat diaplikasikan sebagai Embedded Controller.
Fitur yang disediakan oleh Mikrokontroler AT89S52 ini adalah:
1. Kompatibel dengan produk MCS-51.
2. 8K byte In Serial Programmable Flash Memory
Dapat dilakukan pemrograman 1000 tulis dan hapus.
3. Range catu daya 4,0V s/d 5,5V.
4. Operasi statis: 0 Hz s/d 33 MHz.
5. Tiga Tingkat Program memory lock.
6. 256 x 8 bit RAM internal.
7. 32 Programmable Jalur I/O.
8. Dua 16 bit Timer/ Counter.
9. Enam Sumber Interupsi.
10. Full Duplex Serial Channel.
11. Low Power Idle dan Mode Power Down.
12. Watch Dog Timer.
13. Dual Data Pointer.
14. Power Off Flag.
15. Waktu pemograman cepat (Fast Programming Time).
16. Fleksibel ISP programming.
Konfigurasi Pin Mikrokontroler AT89S52
Adapun konfigurasi pin Mikrokontroler AT89S52 dapat dilihat pada gambar 2.1 dan penjelasan fungsi tiap-tiap pin adalah sebagai berikut:
• Pin 40, VCC
Merupakan pin untuk Tegangan Supply
• Pin 20, GND
Pin untuk dihubungkan ke Ground atau V¬¬ss
• Pin 32 s/d 39 adalah Port-0
Port 0, merupakan port I/O 8 bit open drain dua arah. Sebagai sebuah port, setiap pin dapat mengendalikan 8 input TTL. Ketika logika “1” dituliskan ke port 0, maka port dapat digunakan sebagai input dengan high impedansi. Port 0 dapat juga dikonfigurasikan untuk multipleksing dengan address/data bus pada saat mengakses memori program atau data eksternal. Pada mode ini P0 harus mempunyai pull up.
• Pin 1 s/d pin 8 adalah Port1
Port 1 merupakan port I/0 8 bit dua arah dengan internal pull up. Buffer output port 1 dapat mengendalikan empat TTL input. Port 1 juga menerima alamat byte rendah selama pemrograman dan verifikasi flash.
Fungsi Alternatif Port1
P1.5 MOSI ( digunakan untuk In System Programming )
P1.6 MISO ( digunakan untuk In System Programming )
P1.7 SCK ( digunakan untuk In System Programming )
• Pin 21 s/d pin 28 adalah Port2
Port 2 merupakan port I/O 8 bit dua arah (biderectional) dengan internal pull up. Buffer output port 2 dapat mengendalikan empat TTL input. Ketika logika “1” dituliskan ke port 2, maka port ini akan mendapatkan internal pull up untuk digunakan sebagai input.
• Pin 10 s/d 17 adalah Port3
Port 3 merupakan port I/O 8 bit dua arah dengan internal pull up serta memiliki fungsi pengganti. Fungsi pengganti meliputi TxD (Transmite Data), RxD (Receiver Data), Int0 (Interrupt 0), Int1 (Interrupt 1), T0 (timer 0), T1 (Timer 1), WR (Write), dan RD (Read). Bila fungsi pengganti tidak dipakai, pin – pin ini dapat digunakan sebagai port parallel 8 bit serba guna (multipurpose).
Tabel 2.1 Fungsi Khusus Port 3
• Pin9, RST
Masukan reset aktif high. Pulsa transisi dari rendah ke tinggi akan mereset AT89S52. Pin ini dihubungkan dengan rangkaian power on reset yang terdiri dari sebuah kapasitor dan sebuah resistor yang berfungsi sebagai pembangkit frekuensi.
• Pin 30, ALE/PROG
Address Latch Enable ( ALE ) merupakan pin untuk menerima pulsa output yang akan mengunci byte low dari alamat tertentu, selama terjadi akses memori eksternal. Pin ini juga merupakan input pulsa pemrograman selama pemrograman flash (paralel). Pada operasi normal, ALE mengeluarkan suatu laju clock konstan sebesar 1/6 dari frekuensi oscilator, dan dapat digunakan untuk pewaktu eksternal.
• Pin 29, PSEN
Program Store Enable. Merupakan strobe read untuk penyimpanan memori program eksternal.
• Pin 31, EA/ VPP
Eksternal Access Enable. EA harus di hubungkan ke GND untuk enable chip, guna memasuki memori eksternal untuk alamat 0000H s/d FFFFH. Sementara untuk akses memori internal, EA harus dihubungkan ke VCC.
Pin ini juga menerima tegangan pemrograman (VPP).
• Pin 18 (XTAL 1)
Pin masukan ke rangkaian osilator internal. Sebuah osilator kristal atau sumber osilator luar dapat digunakan.
• Pin 19 (XTAL 2)
Pin keluaran ke rangkaian osilator internal. Pin ini dipakai bila menggunakan osilator kristal.
Gambar 2.1 (a) Konfigurasi Pin ; (b) Bentuk Fisik Mikrokontroler AT89S52
Blok Diagram
Mikrokontroller AT89S52 dibangun berdasarkan arsitektur seperti ditunjukkan pada gambar 2.2 Seluruh bagian yang digambarkan pada gambar tersebut saling berhubungan melalui internal bus - 8bit menelusuri seluruh bagian keping. Bus tersebut kemudian dihubungkan keluar melalui port input/output apabila memori atau ekspansi diperlukan. Setiap blok diagram memiliki hubungan fungsi yang erat dengan blok fungsi lainnya, yang bekerja secara sinkron sesuai dengan akses pemograman.
Adapun blok diagram Mikrokontroler AT89S52 dapat dilihat pada gambar 2.2.
Gambar 2.2 Blok Diagram Mikrokontroller AT89S52 |
a. ALU (Aritmatic Logic Unit)
ALU adalah suatu unit yang melaksanakan proses aritmatik dan logika seperti penjumlahan, pengurangan, pembagian, AND, OR, X – OR, rotasi, clear dan komplemen operasi percabangan.
b. Akumulator
Akumulator adalah merupakan register aritmatika yang berfungsi sebagai penempung data sebelum dan sesudah proses. Sebagian besar instruksi pemrosesan pada AT89S2051 menggunakan akumulator sebagai operand sumber atau tujuan pengiriman data dan ke port.
c. Register B
Register B digunakan selama operasi perkalian/pembagian 8 bit dan dapat juga digunakan sebagai register operand sumber atau operand tujuan.
d. Stack pointer
Stack pointer digunakan sebagai tempat penyimpanan variabel data yang ditindih dalam memori atau sebagai register petunjuk.
e. RAM (Random Acces Memory)
RAM adalah memori yang dapat dibaca atau ditulis. Data dalam RAM akan terhapus (volatile) bila catu daya dihilangkan. Karena sifat RAM yang volatile ini, maka program mikrokontroler tidak disimpan dalam RAM. RAM pada IC ini mempunyai kapasitas sebesar 128 byte x 8 bit.
f. TMP1/TMP2 (Timer/Counter)
TMP1/TMP2 berfungsi sebagai timer/counter 16 bit yang terangkai secara internal.
g. Program Address Register
Program address register merupakan alamat register dari program.
h. Buffer
Buffer pada IC ini merupakan penyangga agar data yang dipindahkan dari suatu register ke register lain tetap atau tidak berantakan.
i. RAM Address Register
RAM address register merupakan sebagai jalan menuju RAM. Semua pengolahan data memakai RAM harus terlebih dahulu melewati RAM address register
Organisasi Memori
Semua piranti 8051 termasuk AT89S52 mempunyai ruang alamat yang terpisah untuk memori program dan memori data. Seperti yang ditunjukkan pada gambar 2.3, pemisahan secara logika dari memori program dan data. Memori program ( ROM, EPROM dan FLASH ) hanya dapat dibaca, tidak dapat ditulis. Memori program dapat mencapai sampai 64K byte. Pada AT89S52, 8K byte memori program terdapat didalam chip. Untuk membaca memori program eksternal mikrokontroller mengirim sinyal PSEN ( program store enable ).
Gambar 2.3 Diagram organisasi memori mikrokontroller AT89S52 |
Memori data ( RAM ) menempati ruang alamat yang terpisah dari memori program. Pada mikrokontroler AT89S52, 128 byte terendah dari memori data berada didalam chip dan RAM eksternal maksimal sebesar 64K byte. Dalam pengaksesan RAM eksternal, mikrokontroller mingirimkan sinyal RD (Read ) dan WR (Write). Diagram arsitektur memori mikrokontroler famili 8051 dapat dilihat pada gambar 2.4.
Gambar 2.4 Arsitektur Memori Mikrokontroller 8051 |
Memori Program
Memori program atau ROM adalah tempat menyimpan data yang permanen. Memori program bersifat nonvolatire artinya tanpa dicatu, data – data tidak akan hilang. Memori program hanya dapat dibaca saja. Gambar 2.4 menunjukkan suatu peta bagian bawah dari memori program. Setelah reset, CPU mulai melakukan eksekusi dari lokasi 0000H.
Pada memori program ditempatkan sebuah interupsi pada alamat tertentu. Interupsi menyebabkan CPU untuk melompat ke lokasi dimana harus dilakukan suatu layanan tertentu atau sebuah label subrutin yang harus dikerjakan. Jika interupsi ini tidak digunakan, lokasi layanan ini dapat digunakan untuk berbagai keperluan sebagai memori program.
Memori Data
Memori data atau RAM ( Random Acces Memori ) adalah tempat menyimpan data yang bersifat sementara. Memori ini bersifat volatile, yaitu data akan hilang bila catu daya dimatikan.Pada gambar 2.4 menunjukkan ruang memori data internal dan eksternal pada keluarga 8051.
Gambar 2.5 Memori data internal |
Dalam pemograman, RAM ini akan terpisah secara fisik. 128 byte RAM bagian bawah dikelompokkan lagi menjadi beberapa blok, seperti yang ditunjukkan pada gambar 2.5. 32 byte RAM bagian 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.
Semoga bermanfaat.....