Pengantar Mikrokontroler 1
1. Pengantar Mikrokontroler
Tujuan : Setelah mempelajari bab ini mahasiswa diharapkan dapat :
• Membedakan antara mikrokontroler dengan mikroprosesor
• Menjelaskan komponen utama yang terdapat pada sistem berbasis
mikroprosesor
• Menerangkan dan memberi contoh mengenai embedded system dan dedicated
system
• Menerangkan urut-urutan langkah pemrograman mikrokontroler
Batas formal antara berbagai disiplin ilmu rekayasa saat ini semakin kabur seiring
dengan perkembangan teknologi IC (rangkaian elektronika terpadu) dan komputer. Hal ini
terutama terlihat jelas pada bidang mekanik dan elektronik dimana semakin banyak produk
yang merupakan integrasi dari komponen mekanik dan elektronik. Bidang mekatronika
telah berkembang untuk memperluas cakupan bidang elektromekanik seperti dapat
diilustrasikan pada gambar 1-1. Terdapat banyak definisi yang dapat menerangkan definisi
mekatronika. Salah satunya yaitu Alciatore menyatakan (Alciatore, 2003)
Mekatronika dapat didefinisikan sebagai bidang studi yang membahas analisis,
desain, sintesis, dan pemilihan sistem yang mengintegrasikan komponen
mekanik dan elektronik yang dikendalikan oleh sistem kendali modern,
terutama yang berbasis mikroprosesor.
Gambar 1-1 Ilustrasi sistem mekatronika sebagai perpotongan dari sistem mekanik,
elektronik, kontrol, dan komputer (Craig, 2001)
Saat ini sistem berbasis mikroprosesor telah berkembang mencakup berbagai
macam jenis sistem kontrol, yang secara umum disebut sebagai komputer. Terdapat
bermacam tingkatan komputer, tiga jenis yang paling banyak dipergunakan adalah
komputer personal (Personal Computer), mikrokontroler, dan Programmable Logic
Controller (PLC). Ketiganya mempunyai penggunaan yang berbeda-beda. Komputer
personal banyak dipergunakan sebagai pengolah kata, spreadsheet, pengolahan basis data,
drafting, dan desain grafis. Mikrokontroler dapat dianggap komputer dengan ukuran dan
kapasitas kecil banyak dipakai dalam berbagai macam produk sebagai sistem yang sering
disebut sebagai embeded system. PLC lebih banyak penggunaannya dalam aplikasi industri
karena kemudahan dalam pemrograman dan wiring, serta ketahanan terhadap kondisi yang
terdapat pada lingkungan mesin industri.
Teknik Mesin Universitas Islam Indonesia
2 Belajar Pemrograman Mikrokontroler AT89S51 Menggunakan Bascom-8051
1.1 Mikroprosesor
Mikroprosesor adalah suatu chip tunggal yang memuat sirkuit digital untuk
melakukan fungsi aritmetika, logika, komunikasi & kontrol dengan melakukan eksekusi
instruksi (program) dalam urutan tertentu. Berbeda dengan rangkaian perangkat keras
elektronik seperti rangkaian IC digital atau relay, sistem berbasis mikroprosesor
mempunyai kelebihan yaitu fleksibilitas yang tinggi, karena perubahan dapat dilakukan
dengan mengubah pemrograman pada perangkat lunak.
Nama lain dari mikroprosesor adalah Microprocessor Unit (MPU) atau Central Processing
Unit (CPU). Contoh mikroprosesor yang paling terkenal adalah produksi Intel antara lain
6502, 8086/88, 80286, 80386, 80486, Pentium I, Pentium II, hingga generasi Dual Core.
Selain intel beberapa perusahaan lain juga mengeluarkan berbagai jenis mikroprosesor
mulai dari yang klasik seperti Zilog Z80, keluarga Motorolla 6800 hingga generasi terbaru
dari AMD.
1.2 Komponen Sistem Berbasis Mikroprosesor
Supaya mikroprosesor dapat bekerja maka diperlukan komponen-komponen
lainnya. Gambar 1-2 memperlihatkan komponen dari suatu mikrokomputer sebagai
representasi dari sistem berbasis mikroprosesor.
Gambar 1-2 Komponen utama suatu mikrokomputer
Mikroprosesor merupakan pusat pengolahan data dan pengendali utama dari suatu
mikrokomputer. Control unit berfungsi untuk mengontrol komponen lainnya sehingga
instruksi dapat dijalankan dalam urutan yang benar. Arithmetic Logic Unit (ALU) bertugas
untuk melaksanakan fungsi matematika dan logika dari data yang berbentuk biner. Data
biner tersebut diproses dalam bentuk suatu kumpulan bit yang disebut word, yang biasanya
berjumlah 8, 16, 32, atau 64 bit.
Laboratorium Mekatronika
Pengantar Mikrokontroler 3
Gambar 1-3 Arithmetic Logic Unit
Selain control unit dan ALU, pada mikroprosesor juga terdapat register, yaitu
register data dan register instruksi. Register adalah sarana memori kecil yang dapat
menerima, menahan, dan mentransfer data. Instruction decoder bertugas menerjemahkan
instruksi yang diambilkan secara berurutan dari memori oleh control unit untuk disimpan
oleh instruction register. Masing-masing instruksi berupa kumpulan bit kode yang
memerintahkan ALU untuk melakukan manipulasi bit pada word yang disimpan pada
register data. Hasil dari ALU kembali akan disimpan pada register data untuk kemudian
dikirimkan ke memori oleh control unit.
Untuk menghubungkan antara mikroprosesor dan komponen lain diperlukan jalur
komunikasi yang disebut bus. Bus dapat dianalogikan sebagai jaringan saraf pada tubuh
manusia. Setiap komponen pada mikrokomputer terhubung dengan bus sebagai jalur
pertukaran informasi. Terdapat tiga jenis bus yaitu jalur data (data bus), jalur alamat
(address bus), dan jalur kendali (control bus). Data bus bertugas untuk mempertukarkan
data dari dan ke berbagai komponen dalam mikrokomputer seperti mikroprosesor, memori
dan peranti I/O. Address bus digunakan sebagai penunjuk peranti atau lokasi data pada
memori tempat data yang akan dibaca/ditulis. Control bus membawa perintah kontrol,
misal baca atau tulis, sinyal detak dan interupsi.
Memori digunakan sebagai media penyimpanan data maupun program (kumpulan
instruksi). Pada dasarnya terdapat beberapa jenis memori yakni RAM (Random Access
Memory) dan ROM (Read Only Memory). RAM dapat dibaca atau ditulis oleh
mikroprosesor, namun data akan hilang jika catu daya dilepas sehingga disebut sebagai
volatile memory. Pada saat beroperasi biasanya data dari berbagai media penyimpan akan
disimpan sementara di RAM sebelum diproses pada mikroprosesor. Hal ini disebabkan
kecepatan RAM yang jauh lebih tinggi dibanding dengan media penyimpanan lainnya.
ROM digunakan untuk penyimpanan permanen, yang dapat dibaca oleh mikroprosesor
namun mikroprosesor tidak dapat menuliskan data ke ROM. ROM disebut juga sebagai
nonvolatile memory karena akan data tidak akan hilang jika dilepaskan dari catu daya.
Terdapat berbagai jenis ROM di antaranya EPROM (Erasable Programmablee
ROM) dan EEPROM (Electrically Erasable Programmable ROM). Data pada EPROM
dapat dihapus dengan menggunakan bantuan sinar ultraviolet untuk kemudian ditulis ulang
dengan data baru. Pada EEPROM penghapusan data dilakukan secara elektronik sehingga
lebih mudah. Untuk penyimpanan data secara permanen dapat juga digunakan disket, CD-
ROM, dan flash memory.
1.3 Mikrokontroler
Mikrokontroler pada dasarnya adalah komputer dalam satu chip, yang di dalamnya
terdapat mikroprosesor, memori, jalur Input/Output (I/O) dan perangkat pelengkap lainnya.
Kecepatan pengolahan data pada mikrokontroler lebih rendah jika dibandingkan dengan
PC. Pada PC kecepatan mikroprosesor yang digunakan saat ini telah mencapai orde GHz,
Teknik Mesin Universitas Islam Indonesia
4 Belajar Pemrograman Mikrokontroler AT89S51 Menggunakan Bascom-8051
sedangkan kecepatan operasi mikrokontroler pada umumnya berkisar antara 1 – 16 MHz.
Begitu juga kapasitas RAM dan ROM pada PC yang bisa mencapai orde Gbyte,
dibandingkan dengan mikrokontroler yang hanya berkisar pada orde byte/Kbyte.
Meskipun kecepatan pengolahan data dan kapasitas memori pada mikrokontroler
jauh lebih kecil jika dibandingkan dengan komputer personal, namun kemampuan
mikrokontroler sudah cukup untuk dapat digunakan pada banyak aplikasi terutama karena
ukurannya yang kompak. Mikrokontroler sering digunakan pada sistem yang tidak terlalu
kompleks dan tidak memerlukan kemampuan komputasi yang tinggi.
Sistem yang menggunakan mikrokontroler sering disebut sebagai embedded system
atau dedicated system. Embeded system adalah sistem pengendali yang tertanam pada
suatu produk, sedangkan dedicated system adalah sistem pengendali yang dimaksudkan
hanya untuk suatu fungsi tertentu. Sebagai contoh printer adalah suatu embedded system
karena di dalamnya terdapat mikrokontroler sebagai pengendali dan juga dedicated system
karena fungsi pengendali tersebut berfungsi hanya untuk menerima data dan mencetaknya.
Hal ini berbeda dengan suatu PC yang dapat digunakan untuk berbagai macam keperluan,
sehingga mikroprosesor pada PC sering disebut sebagai general purpose microprocessor
(mikroprosesor serba guna). Pada PC berbagai macam software yang disimpan pada media
penyimpanan dapat dijalankan, tidak seperti mikrokontroler hanya terdapat satu software
aplikasi.
Penggunaan mikrokontroler antara lain terdapat pada bidang-bidang berikut ini.
• Otomotif : Engine Control Unit, Air Bag, fuel control, Antilock Braking
System, sistem pengaman alarm, transmisi automatik, hiburan, pengkondisi
udara, speedometer dan odometer, navigasi, suspensi aktif
• perlengkapan rumah tangga dan perkantoran : sistem pengaman alarm, remote
control, mesin cuci, microwave, pengkondisi udara, timbangan digital, mesin
foto kopi, printer, mouse.
• pengendali peralatan di industri.
• robotika.
Saat ini mikrokontroler 8 bit masih menjadi jenis mikrokontroler yang paling
populer dan paling banyak digunakan. Maksud dari mikrokontroler 8 bit adalah data yang
dapat diproses dalam satu waktu adalah 8 bit, jika data yang diproses lebih besar dari 8 bit
maka akan dibagi menjadi beberapa bagian data yang masing-masing terdiri dari 8 bit.
Contoh mikrokontroler 8 bit antara lain keluarga Motorolla 68HC05/11, Intel 8051,
Microchip PIC 16, dan yang akhir-akhir ini mulai populer keluarga Atmel AVR. Selain
yang telah disebutkan di atas terdapat juga beberapa seri mikrokontroler lain yang cukup
dikenal antara lain Basic Stamp dari Parallax (banyak digunakan untuk pembelajaran
mikrokontroler) dan HD64180 dari Hitachi (sebagai pengendali LCD). Masing-masing
mikrokontroler mempunyai cara dan bahasa pemrograman yang berbeda, sehingga
program untuk suatu jenis mikrokontroler tidak dapat dijalankan pada jenis mikrokontroler
lain. Untuk memilih jenis mikrokontroler yang cocok dengan aplikasi yang dibuat terdapat
tiga kriteria yaitu
• Dapat memenuhi kebutuhan secara efektif & efisien. Hal ini menyangkut
kecepatan, kemasan/packaging, konsumsi daya, jumlah RAM dan ROM,
jumlah I/O dan timer, harga per unit
• Bahasa pemrograman yang tersedia
• Kemudahan dalam mendapatkannya
1.3.1 Komponen Mikrokontroler
Gambar 1-4 menunjukkan komponen-komponen dari suatu mikrokontroler yang
mempunyai fasilitas lengkap beserta peranti eksternal yang biasanya dihubungkan ke/dari
mikrokontroler. Tidak semua mikrokontroler mempunyai semua komponen tersebut,
Laboratorium Mekatronika
Pengantar Mikrokontroler 5
misalnya konverter A/D dan D/A hanya terdapat pada beberapa jenis mikrokontroler
tertentu.
Gambar 1-4 Komponen dari suatu mikrokontroler
CPU pada mikrokontroler berupa mikroprosesor yang berfungsi sebagai otak dari
mikrokontroler. Dalam suatu mikrokontroler biasanya terdapat tiga buah memori, yaitu
RAM, ROM dan EEPROM. RAM dan ROM hampir selalu ada pada setiap
mikrokontroler, sedangkan EEPROM hanya terdapat pada beberapa jenis mikrokontroler
tertentu. RAM digunakan sebagai penyimpan data sementara yang berupa register-register.
Register adalah tempat penyimpanan data yang berkaitan dengan banyak hal, misalnya
variabel dalam program, keadaan input/output, serta pengaturan timer/counter dan
komunikasi serial. Telah disebutkan sebelumnya data pada RAM akan hilang saat catu
daya dicabut.
ROM digunakan sebagai tempat penyimpanan program. ROM yang banyak dipakai
pada mikrokontroler saat ini adalah flash PEROM (Programmable Erasable ROM), yang
mirip seperti memori pada flash disk, namun bedanya adalah flash PEROM hanya dapat
dihapus dan ditulis secara sekaligus. EEPROM biasanya digunakan untuk menyimpan data
yang tidak boleh hilang meski catu daya dihapus. Meski fungsinya mirip EEPROM
biasanya lebih sedikit digunakan dibanding RAM karena kecepatan akses EEPROM yang
lebih lambat. Contoh penggunaannya adalah penyimpanan data password. atau setting
suatu sistem.
Timer/counter adalah peranti untuk mencacah sinyal dari clock ataupun sinyal dari
suatu kejadian. Jika sinyal yang dicacah berasal dari clock maka peranti ini berfungsi
sebagai pewaktu, sedangkan jika berasal dari clock maka peranti ini berfungsi sebagai
pencacah. Pewaktu bisa digunakan untuk bermacam-macam kegunaan, misalnya untuk
menghasilkan tundaan waktu dan untuk mengukur selang waktu suatu proses.
Peranti antarmuka ke input/output pada mikrokontroler disebut sebagai port. Pada
satu port I/O digital terdiri beberapa pin, biasanya berjumlah 8 atau satu byte, dengan
masing-masing pin dapat mentransfer satu bit data biner (logika 0 dan 1) dari/ke
mikrokontroler. Selain port I/O digital, pada suatu mikrokontroler juga dapat
berkomunikasi dengan peranti lain menggunakan komunikasi serial. Terdapat berbagai
standar atau protokol untuk komunikasi serial seperti SPI (Serial Peripherial Interface), I2C
Teknik Mesin Universitas Islam Indonesia
6 Belajar Pemrograman Mikrokontroler AT89S51 Menggunakan Bascom-8051
(Inter-Integrated Circuit), 1-wire, 2-wire, UART (Universal Asynchronous Receiver
Transmitter) dan USART (Universal Synchronous- Asynchronous Receiver Transmitter).
1.3.2 Mikrokontroler Seri AT89S51
Mikrokontroler seri AT89S51 produksi ATMEL adalah pengembangan dari seri
8051 dari Intel. Selain ATMEL terdapat beberapa perisahaan lain yang juga
mengembangkan seri 8051 ini seperti Phillips, Siemens, dan Dallas Semiconductor.
Gambar 1-5 menunjukkan susunan pin dan arsitektur dari keluarga 8051.
AT89S51 merupakan mikrokontroler 8 bit 40 pin dengan kapasitas RAM 128 byte
dan ROM 4 kbyte serta mempunyai dua pewaktu/pencacah (timer/counter) 16 bit, satu port
serial, enam sumber interupsi dan empat port input/output (I/O). Masing-masing port I/O
terdiri dari 8 pin jalur data sehingga jumlah total pin I/O adalah 32 (Atmel 2001). Keluarga
AT89S mempunyai beberapa seri lain selain seri AT89S51 yaitu jenis 40 pin
(AT89S52/53/55) dan jenis 20 pin (AT89S2051/4051).
Gambar 1-5 Susunan pin dan arsitektur keluarga 8051
Keluarga AT89S adalah penerus dari keluarga AT89C dengan tambahan
kemampuan untuk dapat diprogram secara serial. Hal ini mendukung fasilitas ISP (In
System Programming) yang memungkinkan mikrokontroler untuk diprogram secara
langsung tanpa memerlukan rangkaian pemrogram khusus. Hal ini berbeda dengan
keluarga AT89C yang memerlukan rangkaian pemrogram tersendiri dengan dua level
tegangan, yaitu 5 dan 12 Volt.
Beberapa istilah yang merujuk pada rangkaian mikrokontroler adalah rangkaian
programer/downloader dan sistem minimum. Sistem minimum adalah rangkaian dasar
yang diperlukan mikrokontroler untuk dapat bekerja. Rangkaian programer/downloader
adalah rangkaian yang digunakan untuk memprogram mikrokontroler. Untuk seri
AT89S51 rangkaian sistem minimumnya dapat sekaligus sebagai rangkaian
programer/downloader.
Gambar 1-6 Rangkaian sistem minimum sekaligus downloader untuk AT89S51
Laboratorium Mekatronika
Pengantar Mikrokontroler 7
Gambar 1-6 menunjukkan salah satu contoh rangkaian sistem minimum untuk
AT89S51. Beberapa komponen pelengkap pada sistem minimum ini adalah
• regulator untuk menjaga tegangan catu daya 5 V yang diperlukan
mikrokontroler
• kristal sebagai sumber detak (clock)
• rangkaian reset
• soket untuk koneksi ke peranti I/O
• koneksi ke port paralel untuk pemrograman dari PC
Untuk memprogram suatu mikrokontroler terdapat banyak bahasa pemrograman
yang dapat digunakan. Bahasa pemrograman yang biasa digunakan dalam pemrograman
mikrokontroler adalah Assembly. File bahasa Assembly (ASM) dapat dituliskan
menggunakan sembarang pengolah kata (misal Notepad), untuk kemudian dikompile
menggunakan Assembler (misal ASM51) untuk mendapatkan file HEX. File HEX inilah
yang dimasukkan ke mikrokontroler menggunakan Microcontroller ISP Software dari
Atmel (ataupun software ISP lain) melalui perantaraan kabel paralel. Gambar 1-7
menunjukkan langkah-langkah pada pemrograman mikrokontroler. Saat ini telah
dikembangkan beberapa kompiler untuk beberapa bahasa pemrograman tingkat tinggi yang
dapat digunakan pada pemrograman mikrokontroler AT89S51 seperti Keil Compiler dari
Keil Corp, SDCC (Small Device C Compiler) dari Sandepp Duta
([Link] dan Bascom-8051 (Basic Compiler) dari MCS Electronics
([Link]) .
Gambar 1-7 Langkah-langkah pemrograman mikrokontroler.
Teknik Mesin Universitas Islam Indonesia
8 Belajar Pemrograman Mikrokontroler AT89S51 Menggunakan Bascom-8051
Laboratorium Mekatronika