TUTUORIAL MIKROKONTROLER A. Pengenalan Mikrokontroler Sebelum kita mengenal lebih jauh tentang mikrokontroler ?

kita harus mengetahui terlebih dahulu apa sih mikrokontroler itu ? Mikro itu artinya kecil dan kontroler itu artinya pengontrol/pengendali sehingga dapat diartikan suatu komponen kecil atau chip yang dapat diprogram yang berfungsi sebagai pengontrol (otak) atau lebih lengkapnya Mikrokontroler adalah otak dari suatu sistem elektronika seperti halnya mikroprosesor sebagai otak komputer dimana dia berfungsi sebagai pengendali/pengontrol. Namun mikrokontroler memiliki nilai tambah karena didalamnya sudah terdapat memori dan sistem input/output dalam suatu kemasan IC. Mikrokontroler memiliki berbagai versi dimana produsen-produsen mikrokontrolernya antara lain seperti : ATMEL, Microchip, Maxim, Renesas, dan philips. Untuk menentukan mikrokontroler mana yang ingin anda gunakan, ada baiknya anda tentukan spesifikasi yang anda inginkan, Beberapa faktor yang perlu dipertimbangkan antara lain : • • • • • • Jumlah port yang dimilikinya Ukuran memori mikrokontroler Fitur ADC, timer, dan fasilitas komunikasi 12C Penampilan LCD Kecepatan eksekusi instruksi Dan dukungan software yang dapat digunakan Tapi pada tutorial ini kita berfokus pada mikrokontroler dari ATMEL yaitu mikrokontroler AVR.( Alf and Vegard RISC/ Advanced Virtual RISC) dimana RISCnya adalah Reduced Instruction Set Computer. Arsitektur mikrokontroler jenis AVR pertamakali dikembangkan pada tahun 1996 oleh dua orang mahasiswa Norwegian institute of Technology yaitu Alf-Egil Bogen dan Vegard Wollan.Mikrokontroler AVR kemudian dikembangkan lebih lanjut oleh Atmel. Seri pertama AVR yang dikeluarkan adalah mikrokontroler 8 bit AT90S8515, dengan konfigurasi pin yang sama dengan mikrokontroler 8051, termasuk address dan data bus yang termultipleksi. Dan

B. Berikut adalah fitur-fiturnya: • • • • • • • • • • • Memori Flash 8 Kbytes untuk program Memori EEPROM 512 bytes untuk data Memori SRAM 512 bytes untuk data Maksimal 32 pin I/O 20 interrupt Satu 16-bit timer dan dua 8-bit timer 8 channel ADC 10 bit Komunikasi serial melalui SPI dan USART Analog komparator 4 I/O PWM Fasilitas In System Programming (ISP) Memory Map Mikrokontroler Avr . Karakteristik mikrokontroler AVR seri ATMega8535 Mikrokontroler yang digunakan pada tutorial tepatnya adalah ATMEGA 8535.

Gambar salah satu bentuk IC seri mikrokontroler AVR ATmega8535 dapat dilihat berikut. A. atau diisi 1 jika sebagai output. Namun pada dasarnya fungsi kaki yang ada pada IC memiliki persamaan.PENJELASAN FUNGSI PIN MIKROKONTROLER AVR IC mikrokontroler dikemas (packaging) dalam bentuk yang berbeda. Port A Merupakan 8-bit directional port I/O. Output buffer Port A dapat memberi arus 20 mA dan dapat mengendalikan display LED secara langsung. . Setiap pinnya dapat menyediakan internal pull-up resistor (dapat diatur per bit). Bit-bit DDRA diisi 0 jika ingin memfungsikan pin-pin port A yang bersesuaian sebagai input. kedelapan pin port A juga digunakan untuk masukan sinyal analog bagi A/D converter. Selain itu. Data Direction Register port A (DDRA) harus disetting terlebih dahulu sebelum Port A digunakan. Berikut adalah penjelasan fungsi tiap kaki.

Selain itu. Port Pin PB0 PB1 PB2 PB3 PB4 PB5 PB6 PB7 Fungsi Khusus T0 = timer/counter 0 external counter input T1 = timer/counter 0 external counter input AIN0 = analog comparator positive input AIN1 = analog comparator negative input SS = SPI slave select input MOSI = SPI bus master output / slave input MISO = SPI bus master input / slave output SCK = SPI bus serial clock C. Port D Merupakan 8-bit directional port I/O. D. Pin-pin port B juga memiliki untuk fungsi-fungsi alternatif khusus seperti yang dapat dilihat dalam tabel berikut. Bit-bit DDRC diisi 0 jika ingin memfungsikan pin-pin port C yang bersesuaian sebagai input. Data Direction Register port B (DDRB) harus disetting terlebih dahulu sebelum Port B digunakan.B. Data Direction Register port D (DDRD) harus disetting terlebih dahulu sebelum Port D digunakan. Setiap pinnya dapat menyediakan internal pull-up resistor (dapat diatur per bit). Data Direction Register port C (DDRC) harus disetting terlebih dahulu sebelum Port C digunakan. Port C Merupakan 8-bit directional port I/O. Setiap pinnya dapat menyediakan internal pull-up resistor (dapat diatur per bit). Bit-bit DDRD diisi 0 jika ingin memfungsikan pin-pin port D yang bersesuaian sebagai input. atau diisi 1 jika sebagai output. Output buffer Port C dapat memberi arus 20 mA dan dapat mengendalikan display LED secara langsung. atau diisi 1 jika sebagai . Setiap pinnya dapat menyediakan internal pull-up resistor (dapat diatur per bit). Output buffer Port B dapat memberi arus 20 mA dan dapat mengendalikan display LED secara langsung. atau diisi 1 jika sebagai output. dua pin port C (PC6 dan PC7) juga memiliki fungsi alternatif sebagai oscillator untuk timer/counter 2. Port B Merupakan 8-bit directional port I/O. Bit-bit DDRB diisi 0 jika ingin memfungsikan pin-pin port B yang bersesuaian sebagai input. Output buffer Port D dapat memberi arus 20 mA dan dapat mengendalikan display LED secara langsung.

F. RESET RST pada pin 9 merupakan reset dari AVR. I. J. H. AGND . AREF AREF adalah kaki masukan referensi bagi A/D Converter. AVcc Avcc adalah kaki masukan tegangan bagi A/D Converter.output. G. XTAL2 XTAL2 adalah output dari inverting oscillator amplifier. Kaki ini harus secara eksternal terhubung ke Vcc melalui lowpass filter. suatu level tegangan antara AGND dan Avcc harus dibeikan ke kaki ini. XTAL1 XTAL1 adalah masukan ke inverting oscillator amplifier dan input ke internal clock operating circuit. Selain itu. pin-pin port D juga memiliki untuk fungsi-fungsi alternatif khusus seperti yang dapat dilihat dalam tabel berikut. Port Pin Fungsi Khusus PD0 RDX (UART input line) PD1 TDX (UART output line) PD2 INT0 ( external interrupt 0 input ) PD3 INT1 ( external interrupt 1 input ) PD4 OC1B (Timer/Counter1 output compareB match output) PD5 OC1A (Timer/Counter1 output compareA match output) PD6 ICP (Timer/Counter1 input capture pin) PD7 OC2 (Timer/Counter2 output compare match output) E. Jika pada pin ini diberi masukan low selama minimal 2 machine cycle maka system akan di-reset. Untuk operasionalisasi ADC.

AGND adalah kaki untuk analog ground. Bahasa Pemrograman Mikrokontroler Sebelum dapat digunakan dalam berbagai aplikasi. pengembangan sebuah mikrokontroler harus melewati 3 tahapan. 2. Sebagai contoh mikrokontroler AVR yang dipakai untuk praktikum ini hanya bisa menggunakan BASCOM AVR. software pemrograman (compiler) yang digunakan adalah BASCOM AVR. Gambar 3. Hubungkan kaki ini ke GND. Di praktikum ini. Pengisian software aplikasi yang sudah dibuat ke dalam mikrokontroler. Perancangan software aplikasi menggunakan bahasa pemrograman. kecuali jika board memiliki anlaog ground yang terpisah. Adapun fungsi dari tiap-tiap icon fapat dilihat pada tabel di bawah ini.4 di bawah ini merupakan tampilan dari BASCOM AVR. . C. yaitu: 1.2 Interface BASCOM AVR Pada setiap icon yang ada pada interface diatas memiliki fungsi masing-masing. Pembuatan hardware untuk aplikasi. BASCOM (BASic COMpiler) sendiri memiliki beberapa jenis berdasarkan seri mikrokontroler yang digunakan. Pengenalan BASCOM AVR Pada gambar 2. 3. yang merupakan sebuah compiler BASIC. Bahasa pemrograman yang digunakan umumnya dapat berupa bahasa pemrograman tingkat rendah (Assembly Language). menengah (bahasa C) dimana software yang dipakai seperti codevisionAVR maupun bahasa tingkat tinggi seperti Pascal dan BASIC.

Untuk mengkompile program yang dibuat.Tabel Fungsi Icon pada Interface BASCOM AVR Icon Nama File New Open File File Save Save as Print Print preview Syntax check Program compile Show result Simulate Fungsi Membuat file baru Untuk membuka file Untuk menyimpan file Menyimpan file dengan nama lain. / : “ . < Nama Blank atau spasi Apostrophe Asteriks atau simbol perkalian Simbol Pertambahan (Plus Sign) Comma Simbol Pengurangan (Minus Sign) Period (decimal point) Slash (division symbol) will be handled as \ Colon Double Quotation mark Semicolon Less than Shortcut Ctrl+N Ctrl+O Ctrl+S Ctrl+P Ctrl+F7 F7 Ctrl+W F2 . Untuk menampilkan hasil kompilasi program. Karakter dalam BASCOM Dalam program BASCOM. Untuk mencetak dokumen Untuk melihat tampilan sebelum dicetak. Untuk memeriksa kesalahan bahasa. Tabel Karakter-karakter spesial pada BASCOM Karakter ‘ * + . Untuk mencimulasikan program yang dibuat. karakter numeric (0-9) dan karakter spesial seperti yang ditunjukkan pada tabel di bawah ini. . karakter dasarnya terdiri atas karakter alphabet (A-Z dan a-z).

767 0 sampai 65535 -2147483648 sampai 2147483647 - 3. Dalam BASCOM ada beberapa aturan dalam penamaan sebuah variabel: 1. Nama variabel maksimum terdiri atas 32 karakter 2. Nama variabel harus dimulai dengan huruf 4. Tabel Tipe Data BASCOM Tipe Data Bit Byte Interger Word Long Single String Variabel Variabel dalam sebuah program berfungsi sebagai tempat penyimpanan data atau penampung data sementara. dan lainnya). dapat diperiksa terlebih dahulu apakah . misalnya menampung hasil perhitungan. Sehingga setelah membuat suatu program. OR. pernyataan. Variabel tidak boleh menggunakan kata-kata yang digunakan oleh BASCOM sebagai perintah. Berikut ini adalah tipe data pada BASCOM berikut keterangannya.= > \ Tipe Data Equal sign (assignment symbol or relation operator) Greater than Backslash (integer/word division symbol) Setiap variabel dalam BASCOM memiliki tipe data yang menunjukkan daya tampungnya. internal register dan nama operator (AND. Hal ini berhubungan dengan penggunaan memori mikrokontroler. Variabel merupakan pointer yang menunjuk pada alamat memori fisik di mikrokontroler. Program Simulasi BASCOM AVR menyediakan pilihan yang dapat mensimulasikan program. menampung data hasil pembacaan register dan lain lain.768 sampai 32. Karakter bisa berupa angka atau huruf Ukuran (byte) 1/8 1 2 2 4 4 Hingga 254 byte Range 0-1 0 sampai 255 -32. DIM.

program yang dibuat sudah benar atau masih salah sebelum didownload ke mikrokontroler. Adapun bentuk tampilan simulasinya dapat dilihat pada gambar 3. Selain itu untuk dapat melihat perubahan data pada setiap port atau ketika ingin memberikan input pin-pin tertentu dari mikrokontroler. Adapun bentuk tampilannya dapat dilihat pada gambar 3. maka gunakan tombol maka akan muncul tampilan simulasi hardwarenya.3.3 Tampilan listing BASCOM AVR Tekan tombol maka tekan tombol untuk memulai simulasi. Gambar 3. Dan untuk memberhentikan simulasi . .4.

BASCOM menyediakan beberapa kontrol program yang sering digunakan untuk menguji sebuah kondisi. SELECT… CASE Perintah ini akan mengeksekusi beberapa blok pernyataan tergantung dari nilai variabelnya. Kontrol program ini meliputi kontrol pertimbangan kondisi dan keputusan. kontrol pengulangan serta kontrol alternatif. IF… THEN Dengan pernyataan ini kita dapat menguji sebuah kondisi tertentu dan kemudian menentukan tindakan yang sesuai dengan kondisi yang diinginkan. Kontrol program dapat mengendalikan alur dari sebuah program dan menentukan apa yang harus dilakukan oleh sebuah program ketika menemukan suatu kondisi tertentu. Berikut ini beberapa kontrol program yang sering digunakan dalam pemrograman dengan BASCOM. THEN. Sintak penulisannya adalah sebagai berikut: IF <Syarat Kondisi> THEN <Pernyataan> Sintak diatas digunakan jika hanya ada satu kondisi yang diuji dan hanya melakukan satu tindakan...4 Tampilan Simulasi Hardware Kontrol Program Keunggulan sebuah program terletak pada kontrol program tersebut. Perintah ini mirip dengan perintah IF. Jika melakukan lebih dari satu tindakan maka sintaknya harus ditulis sebagai berikut: IF <Syarat kondisi> THEN <Pernyataan ke-1> <Pernyataan ke-2> <Pernyataan ke-n> END IF 2. Kontrol program merupakan kunci dari keandalan program yang dibuat termasuk juga pada rule evaluation pada logika samar. Berikut adalah beberapa kontrol program yang sering digunakan dalam pemograman dengan BASCOM: 1.Gambar 3. perulangan dan pertimbangan sebuah keputusan. namun perintah ini .

loop Until. Sintaknya sebagai berikut: WHILE <Syarat kondisi> <Pernyataan> WEND 4. Perintah ini akan berhenti jika ada perubahan kondisi dan melakukan perintah selanjutnya.. Untuk membatasi pengulangannya dapat ditambahkan sebuah syarat kondisi agar perulangan berhenti dan perintahnya menjadi Do.. FOR… NEXT . DO… LOOP Perintah Do.memiliki kelebihan yaitu kemudahan pada penulisannya. Sintak penggunaan perintah ini adalah sebagai berikut: Do <Blok pernyataan> Loop Yang menggunakan perintah Do Loop Until Do <Blok pernyataan> Loop Until <syarat kondisi> 5. WHILE… WEND Perintah ini mengeksekusi sebuah pernyataan secara berulang ketika masih menemukan kondisi yang sama. Sintaknya adalah sebagai berikut: SELECT CASE Variabel CASE test1 : statement CASE test2 : statement CASE ELSE : statement END SELECT 3. Loop digunakan untuk mengulangi sebuah blok pernyataan terus menerus...

. Sub. While. 6. Endsub. Jika dalam perintah Do. Perintah ini hampir sama dengan perintah Do. Loop. perbedaannya dengan GOSUB ialah Perintah GOTO tidak memerlukan perintah Return sehingga programnya tidak akan kembali lagi ke titik dimana perintah GOTO itu berada.. GOSUB Dengan perintah GOSUB program akan melompat ke sebuah label dan akan menjalan-kan program yang ada dalam rutin tersebut sampai menemui perintah Return.. GOTO Perintah GOTO digunakan untuk melakukan percabangan. Next. 8. namun pada perintah For. Perintah Return akan mengembalikan program ke titik setelah perintah Gosub. Berikut ini adalah sintak perintah GOTO: GOTO label ... Loop maka sintaknya menjadi Exit Do..... jadi bisa digunakan ataupun tidak. EXIT Perintah ini digunakan untuk keluar secara langsung dari blok program For.. 7.. Penggunaannya sebagai berikut: For var = start To/Downto end [Step value] <Blok pernyataan> Next Untuk menaikan nilai perulangan gunakan To dan untuk menurunkan gunakan Downto. Do. Next ini nilai awal dan akhir perulangan serta tingkat kenaikan atau turunnya bisa ditentukan. Sintak penulisannya adalah sebagai berikut: Exit [Do] [For] [While] [Sub] Sintak selanjutnya setelah EXIT bisa bermacam-macam tergantung perintah exit itu berada dalam perintah apa.. Loop. Tingkat kenaikan merupakan pilihan.Perintah ini digunakan untuk mengeksekusi sebuah blok pernyataan secara berulang.. Jika nilai kenaikan tidak ditentukan maka secara otomatis BASCOM akan menentukan nilainya yaitu 1. Wend..

setelah 100% maka program sudah ditulis pada mikrokontroler. ISP Flash Programer 3. Pertama mikrokontroler dihubungkan dengan kabel downloader dengan port paralel pada komputer. kemudian nyalakan catu daya mikrokontroler. Contoh Program 1. D. dan mikrokontroler siap untuk digunakan.Label: Panjang label maksimal ialah 32 karakter. Lalu tekan tombol OpenFile untuk membuka file yang akan didownload pada mikrokontroler. Adapun tampilannya dapat dilihat pada gambar 3.7 ISP Programmer merupakan program yang digunakan untuk menuliskan program ke dalam mikrokontroler ATMega8535.5. Adapun caranya adalah sebagai berikut. Setelah itu tekan tombol Program tunggu sampai 100%. Menampilkan kata di LCD .

E = Portc.Membuat Led Berjalan $regfile = "m8535def. Db6 = Porta. Db5 = Porta.7 .dat" $crystal = 12000000 Config Porta = Input Config Portb = Output // pendeklarasian mikro yang dipakai 8535 // kecepatan kristal 12 baris juta perclock //pengaturan bahwa portA digunakan sebagai input // pengaturan bahwa portB digunakan sebagai output //konfigurasi I/O pada LCD //pendeklarasian bahwa A rangenya dari 0-255 // konfigurasi bahwa Lcd yang digunakan 20 kolom 4 baris //kode awal program untuk pengulangan //pembersihan lcd //kode awal program untuk pengulangan dimana dibatasi sebanyak 20 kali //pergeseran kekiri pada lcd //berarti huruf muncul dari locate baris 1 kolom 1 //penampilan kata-kata selamat datang pada lcd //delay waktu 100 ms // berarti huruf muncul dari locate baris 1 kolom 2 //penampilan kata-kata Di Teknik Elektro pada lcd //delay waktu 100 ms //kode akhir program untuk perintah pengulangan (ForNext) //kode akhir program untuk pengulangan (Do-Loop) . Db7 = Porta.4 .5 .7 . 1 Lcd "Di Teknik Elektro" Waitms 100 Next Loop 2. Db4 = Porta.6 Dim A As Byte Config Lcd = 20 * 4 Do Cls For A = 1 To 20 Shiftlcd Left Locate 1 . Rs = Portc.dat" $crystal = 8000000 //pendeklarasian mikro yang dipakai 8535 //kecepatan kristal 8 juta baris perclock Config Lcdpin = Pin . 1 Lcd "Selamat Datang" Waitms 100 Locate 2 .$regfile = "m8535.6 .

1 hidup //delay waktu 100 ms // lampu pada pinB.Tombol_start Alias Pina.7) //keadaan awal portA adalah 0(mati semua) //keadaan awal lampu mati //kode awal program untuk pengulangan //jika tombol_start ditekan (1) maka //lampu pada pinB.6 hidup //delay waktu 100 ms // lampu pada pinB.2 hidup //delay waktu 100 ms // lampu pada pinB.0 Lampu Alias Portb Porta = &B00000000 Lampu = 0 Do If Tombol_start = 1 Then Lampu = &B00000001 Waitms 100 Lampu = &B00000010 Waitms 100 Lampu = &B00000100 Waitms 100 Lampu = &B00001000 Waitms 100 Lampu = &B00010000 Waitms 100 Lampu = &B00100000 Waitms 100 Lampu = &B01000000 Waitms 100 Lampu = &B10000000 Waitms 100 End If Loop // tombol start adalah pinA.7 hidup //delay waktu 100 ms //pengakhiran perintah end-if //kode akhir pengulangan .5 hidup //delay waktu 100 ms // lampu pada pinB.0-pinB.0 // lampu adalah portB(pinB.3 hidup //delay waktu 100 ms // lampu pada pinB.0 hidup //delay waktu 100 ms // lampu pada pinB.4 hidup //delay waktu 100 ms // lampu pada pinB.