YOU ARE DOWNLOADING DOCUMENT

Please tick the box to continue:

Transcript

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. Karakteristik mikrokontroler AVR seri ATMega8535 Mikrokontroler yang digunakan pada tutorial tepatnya adalah ATMEGA 8535. 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

PENJELASAN FUNGSI PIN MIKROKONTROLER AVR IC mikrokontroler dikemas (packaging) dalam bentuk yang berbeda. Namun pada dasarnya fungsi kaki yang ada pada IC memiliki persamaan. Gambar salah satu bentuk IC seri mikrokontroler AVR ATmega8535 dapat dilihat berikut.

Berikut adalah penjelasan fungsi tiap kaki. A. Port A Merupakan 8-bit directional port I/O. Setiap pinnya dapat menyediakan internal pull-up resistor (dapat diatur per bit). Output buffer Port A dapat memberi arus 20 mA dan dapat mengendalikan display LED secara langsung. Data Direction Register port A (DDRA) harus disetting terlebih dahulu sebelum Port A digunakan. Bit-bit DDRA diisi 0 jika ingin memfungsikan pin-pin port A yang bersesuaian sebagai input, atau diisi 1 jika sebagai output. Selain itu, kedelapan pin port A juga digunakan untuk masukan sinyal analog bagi A/D converter.

B. Port B Merupakan 8-bit directional port I/O. 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. Data Direction Register port B (DDRB) harus disetting terlebih dahulu sebelum Port B digunakan. Bit-bit DDRB diisi 0 jika ingin memfungsikan pin-pin port B yang bersesuaian sebagai input, atau diisi 1 jika sebagai output. Pin-pin port B juga memiliki untuk fungsi-fungsi alternatif khusus seperti yang dapat dilihat dalam tabel berikut.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 C Merupakan 8-bit directional port I/O. Setiap pinnya dapat menyediakan internal pull-up resistor (dapat diatur per bit). Output buffer Port C dapat memberi arus 20 mA dan dapat mengendalikan display LED secara langsung. Data Direction Register port C (DDRC) harus disetting terlebih dahulu sebelum Port C digunakan. Bit-bit DDRC diisi 0 jika ingin memfungsikan pin-pin port C yang bersesuaian sebagai input, atau diisi 1 jika sebagai output. Selain itu, dua pin port C (PC6 dan PC7) juga memiliki fungsi alternatif sebagai oscillator untuk timer/counter 2. D. Port D Merupakan 8-bit directional port I/O. Setiap pinnya dapat menyediakan internal pull-up resistor (dapat diatur per bit). Output buffer Port D dapat memberi arus 20 mA dan dapat mengendalikan display LED secara langsung. Data Direction Register port D (DDRD) harus disetting terlebih dahulu sebelum Port D digunakan. Bit-bit DDRD diisi 0 jika ingin memfungsikan pin-pin port D yang bersesuaian sebagai input, atau diisi 1 jika sebagai

output. 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. RESET RST pada pin 9 merupakan reset dari AVR. Jika pada pin ini diberi masukan low selama minimal 2 machine cycle maka system akan di-reset. F. XTAL1 XTAL1 adalah masukan ke inverting oscillator amplifier dan input ke internal clock operating circuit. G. XTAL2 XTAL2 adalah output dari inverting oscillator amplifier. H. AVcc Avcc adalah kaki masukan tegangan bagi A/D Converter. Kaki ini harus secara eksternal terhubung ke Vcc melalui lowpass filter. I. AREF AREF adalah kaki masukan referensi bagi A/D Converter. Untuk operasionalisasi ADC, suatu level tegangan antara AGND dan Avcc harus dibeikan ke kaki ini. J. AGND

AGND adalah kaki untuk analog ground. Hubungkan kaki ini ke GND, kecuali jika board memiliki anlaog ground yang terpisah. C. Bahasa Pemrograman Mikrokontroler Sebelum dapat digunakan dalam berbagai aplikasi, pengembangan sebuah mikrokontroler harus melewati 3 tahapan, yaitu: 1. Pembuatan hardware untuk aplikasi. 2. Perancangan software aplikasi menggunakan bahasa pemrograman. 3. Pengisian software aplikasi yang sudah dibuat ke dalam mikrokontroler. 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. Di praktikum ini, software pemrograman (compiler) yang digunakan adalah BASCOM AVR, yang merupakan sebuah compiler BASIC. BASCOM (BASic COMpiler) sendiri memiliki beberapa jenis berdasarkan seri mikrokontroler yang digunakan. Sebagai contoh mikrokontroler AVR yang dipakai untuk praktikum ini hanya bisa menggunakan BASCOM AVR. Pengenalan BASCOM AVR Pada gambar 2.4 di bawah ini merupakan tampilan dari BASCOM AVR.

Gambar 3.2 Interface BASCOM AVR Pada setiap icon yang ada pada interface diatas memiliki fungsi masing-masing. Adapun fungsi dari tiap-tiap icon fapat dilihat pada tabel di bawah ini.

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. Untuk mencetak dokumen Untuk melihat tampilan sebelum dicetak. Untuk memeriksa kesalahan bahasa. Untuk mengkompile program yang dibuat. Untuk menampilkan hasil kompilasi program. Untuk mencimulasikan program yang dibuat. Karakter dalam BASCOM Dalam program BASCOM, karakter dasarnya terdiri atas karakter alphabet (A-Z dan a-z), karakter numeric (0-9) dan karakter spesial seperti yang ditunjukkan pada tabel di bawah ini. Tabel Karakter-karakter spesial pada BASCOM Karakter * + , . / : ; < 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

= > \ 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. Hal ini berhubungan dengan penggunaan memori mikrokontroler. Berikut ini adalah tipe data pada BASCOM berikut keterangannya. 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, misalnya menampung hasil perhitungan, menampung data hasil pembacaan register dan lain lain. Variabel merupakan pointer yang menunjuk pada alamat memori fisik di mikrokontroler. Dalam BASCOM ada beberapa aturan dalam penamaan sebuah variabel: 1. Nama variabel maksimum terdiri atas 32 karakter2. 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,768 sampai 32,767 0 sampai 65535 -2147483648 sampai 2147483647 -

3. Nama variabel harus dimulai dengan huruf4. Variabel tidak boleh menggunakan kata-kata yang digunakan oleh BASCOM

sebagai perintah, pernyataan, internal register dan nama operator (AND, OR, DIM, dan lainnya). Program Simulasi BASCOM AVR menyediakan pilihan yang dapat mensimulasikan program. Sehingga setelah membuat suatu program, dapat diperiksa terlebih dahulu apakah

program yang dibuat sudah benar atau masih salah sebelum didownload ke mikrokontroler. Adapun bentuk tampilan simulasinya dapat dilihat pada gambar 3.3.

Gambar 3.3 Tampilan listing BASCOM AVR Tekan tombol maka tekan tombol untuk memulai simulasi. Dan untuk memberhentikan simulasi . Selain itu untuk dapat melihat perubahan data pada setiap port

atau ketika ingin memberikan input pin-pin tertentu dari mikrokontroler, maka gunakan tombol maka akan muncul tampilan simulasi hardwarenya. Adapun bentuk

tampilannya dapat dilihat pada gambar 3.4.

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

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

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

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

D. Contoh Program 1. Menampilkan kata di LCD

$regfile = "m8535.dat" $crystal = 8000000

//pendeklarasian mikro yang dipakai 8535 //kecepatan kristal 8 juta baris perclock

Config Lcdpin = Pin , Db4 = Porta.4 , Db5 = Porta.5 , Db6 = Porta.6 , Db7 = Porta.7 , E = Portc.7 , Rs = Portc.6 Dim A As Byte Config Lcd = 20 * 4 Do Cls For A = 1 To 20 Shiftlcd Left Locate 1 , 1 Lcd "Selamat Datang" Waitms 100 Locate 2 , 1 Lcd "Di Teknik Elektro" Waitms 100 Next Loop 2.Membuat Led Berjalan $regfile = "m8535def.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)

Tombol_start Alias Pina.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.0 // lampu adalah portB(pinB.0-pinB.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.0 hidup //delay waktu 100 ms // lampu pada pinB.1 hidup //delay waktu 100 ms // lampu pada pinB.2 hidup //delay waktu 100 ms // lampu pada pinB.3 hidup //delay waktu 100 ms // lampu pada pinB.4 hidup //delay waktu 100 ms // lampu pada pinB.5 hidup //delay waktu 100 ms // lampu pada pinB.6 hidup //delay waktu 100 ms // lampu pada pinB.7 hidup //delay waktu 100 ms //pengakhiran perintah end-if //kode akhir pengulangan


Related Documents