Top Banner
TUTORIAL PEMROGRAMAN MIKROKONTROLER AVR (BAGIAN I) Laboratorium Elektronika dan Instrumentasi Fisika ITB Jl. Ganesha 10, Bandung 40132 Sekilas tentang Mikrokontroller Mikrokontroler merupakan suatu piranti elektronika digital yang mempunyai gerbang masukan dan gerbang keluaran serta sistem kendali yang bisa kita program melalui komputer dan bisa kita hapus dengan cara khusus. Mikrokontroler merupakan komputer didalam chip yang digunakan untuk mengontrol peralatan elektronik, yang menekankan efisiensi dan efektifitas biaya. Secara harfiahnya bisa disebut “pengendali kecil” dimana sebuah sistem elektronik yang sebelumnya banyak memerlukan komponen-komponen pendukung seperti IC TTL dan CMOS dapat direduksi/diperkecil dan akhirnya terpusat serta dikendalikan oleh mikrokontroler ini. Dengan penggunaan mikrokontroler ini maka : Sistem elektronik akan menjadi lebih ringkas Rancang bangun sistem elektronik akan lebih cepat karena sebagian besar dari sistem adalah perangkat lunak yang mudah dimodifikasi Pencarian gangguan lebih mudah ditelusuri karena sistemnya yang kompak Namun demikian tidak sepenuhnya mikrokontroler bisa mereduksi komponen IC TTL dan CMOS yang seringkali masih diperlukan untuk aplikasi kecepatan tinggi atau sekedar menambah jumlah saluran masukan dan keluaran (I/O). Dengan kata lain, mikrokontroler adalah versi mini atau mikro dari sebuah komputer karena mikrokontroler sudah mengandung beberapa periferal yang langsung bisa dimanfaatkan, misalnya port paralel, port serial, komparator, konversi digital ke analog (DAC), konversi analog ke digital dan sebagainya hanya menggunakan sistem minimum yang tidak rumit atau kompleks. Gambar 1. Pinout/Kaki Mikrokontroler ATMega8535
15

Tutorial Pemrograman Mikrokontroler Avr (Bagian i)

Nov 30, 2015

Download

Documents

pembelajaran AVR
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Tutorial Pemrograman Mikrokontroler Avr (Bagian i)

TUTORIAL PEMROGRAMAN MIKROKONTROLER AVR (BAGIAN I)

Laboratorium Elektronika dan Instrumentasi Fisika ITB

Jl. Ganesha 10, Bandung 40132

Sekilas tentang Mikrokontroller

Mikrokontroler merupakan suatu piranti elektronika digital yang mempunyai gerbang

masukan dan gerbang keluaran serta sistem kendali yang bisa kita program melalui komputer

dan bisa kita hapus dengan cara khusus. Mikrokontroler merupakan komputer didalam chip

yang digunakan untuk mengontrol peralatan elektronik, yang menekankan efisiensi dan

efektifitas biaya. Secara harfiahnya bisa disebut “pengendali kecil” dimana sebuah sistem

elektronik yang sebelumnya banyak memerlukan komponen-komponen pendukung seperti IC

TTL dan CMOS dapat direduksi/diperkecil dan akhirnya terpusat serta dikendalikan oleh

mikrokontroler ini. Dengan penggunaan mikrokontroler ini maka :

• Sistem elektronik akan menjadi lebih ringkas

• Rancang bangun sistem elektronik akan lebih cepat karena sebagian besar dari sistem

adalah perangkat lunak yang mudah dimodifikasi

• Pencarian gangguan lebih mudah ditelusuri karena sistemnya yang kompak

Namun demikian tidak sepenuhnya mikrokontroler bisa mereduksi komponen IC TTL dan

CMOS yang seringkali masih diperlukan untuk aplikasi kecepatan tinggi atau sekedar

menambah jumlah saluran masukan dan keluaran (I/O). Dengan kata lain, mikrokontroler

adalah versi mini atau mikro dari sebuah komputer karena mikrokontroler sudah mengandung

beberapa periferal yang langsung bisa dimanfaatkan, misalnya port paralel, port serial,

komparator, konversi digital ke analog (DAC), konversi analog ke digital dan sebagainya hanya

menggunakan sistem minimum yang tidak rumit atau kompleks.

Gambar 1. Pinout/Kaki Mikrokontroler ATMega8535

Page 2: Tutorial Pemrograman Mikrokontroler Avr (Bagian i)

Untuk menjalankan mikorkontroler, perlu adanya sistem minimum. Berikut adalah

rangkaian sistem minimum ATMega8535 yang sudah dilengkapi dengan output berupa LED dan

input berupa DIP Switch.

Gambar 2. Sistem Minimum ATMega8535 (Simulasi Software Proteus)

Sekilas CodeVisionAVR (CVAVR)

CodeVisionAVR merupakan compiler bahasa C, Integrated Development Environment

(IDE), Automatic Program Generator, dan In-System Programmer untuk mikrokontroler AVR.

CodeVisionAVR bukan open source, tetapi kita masih bisa menggunakannya secara gratis

dengan mengunduh versi evaluasi.

Installasi CodeVisionAVR (CVAVR)

1. Buka terlebih dahulu file setup.exe progam CodeVisionAVR Evaluation.

Gambar 3. Welcome Screen Installasi CodeVisionAVR Evaluation version

Page 3: Tutorial Pemrograman Mikrokontroler Avr (Bagian i)

2. Klik "I accept the agreement" dan klik Next >

Gambar 4. Lembar License Agreement

3. Tentukan lokasi install CodeVisionAVR Evaluation Version

Gambar 5. Lokasi install CodeVisionAVR Evaluation Version

4. Tentukan nama folder startup menu CodeVisionAVR Evaluation Version

Gambar 6. Nama folder startup menu CodeVisionAVR Evaluation Version

Page 4: Tutorial Pemrograman Mikrokontroler Avr (Bagian i)

5. Konfirmasi proses install, klik Install

Gambar 7. Konfirmasi proses install

6. Tunggu proses instalasi hingga selesai

Gambar 7. Proses instalasi CodeVisionAVR Evaluation Version

Page 5: Tutorial Pemrograman Mikrokontroler Avr (Bagian i)

7. Inforamasi terkait CodeVisionAVR, Klik Next >

Gambar 8. Informasi terkait CodeVisionAVR

8. Centang "Launch CodeVisionAVR C Compiler Evaluation", klik Finish

Gambar 9. Proses installasi program selesai

Gambar 10. Splash Screen CodeVisionAVR v2.05.7a evaluation

Page 6: Tutorial Pemrograman Mikrokontroler Avr (Bagian i)

Penggunaan CodeVisionAVR

Program LED Blinking

1. Buka program CodeVisionAVR

Gambar 11. Tampilan Program CodeVisionAVR

2. Kik menu File > New, lalu pilih Project di kotak dialog Create New File. Klik OK. Kemudian

Klik Yes untuk menggunakan fitur CodeWizardAVR. Fitur ini sangat memudahkan kita

untuk melakukan setting mikrokontroller tanpa harus mengetik di jendela editor.

Gambar 12. Buat Project baru

Gambar 13. Pilihan fitur CodeWizardAVR

Gambar 14. Jenis mikrokontroler yang dipakai

Page 7: Tutorial Pemrograman Mikrokontroler Avr (Bagian i)

3. Akan muncul jendela CodeWizardAVR, fokuslah terlebih dahulu ke tab-tab di sebelah kiri. Di

dalam tab tersebut, terdapat pilihan-pilihan yang digunakan untuk konfigurasi

mikrokontroler. Pertama-tama, pada bagian Chip, pilih chip mikrokontroler dan isi clock

yang sesuai, contoh : ATMega8535 dengan internal clock (RC Oscillator) 1 MHz. Kemudian

di tab Ports, pilih sub-tab port yang digunakan baik untuk input maupun output. Klik

tombol In atau Out (Data Direction) sehingga keadaannya berubah yang tadinya In

menjadi Out, begitupun sebaliknya. Tanda In berarti bit port yang bersangkutan digunakan

sebagai input sedangkan tanda Out berarti bit port digunakan sebagai output. Di samping

Data Direction ada Pullup/Output Value. Untuk Input, tanda T menandakan input tanpa

pull-up resistor sedangkan tanda P menandakan input menggunakan pull-up resistor. Untuk

output, angka 1 berarti default output dalam kondisi HIGH, sedangkan angka 0 berarti

defaut output dalam kondisi LOW. Berdasarkan gambar 2, Port C digunakan sebagai output

dengan kondisi default HIGH (led akan menyala ketika kondisi output LOW atau ACTIVE

LOW).

Gambar 15. Setting mikrokontroler di CodeWizardAVR

4. Ketika sudah selesai, klik menu Program > Preview untuk melihat kode yang dihasilkan

CodeWizardAVR.

Gambar 16. Preview kode C hasil generasi CodeWizardAVR

Page 8: Tutorial Pemrograman Mikrokontroler Avr (Bagian i)

5. Klik menu Program > Generate, save, and exit untuk menyimpan kode yang sudah dibuat

di Wizard. Beri nama file kode C, file project CodeVisionAVR, dan file CodeWizardAVR

Gambar 17. Kotak dialog Save C Compiler Source File

Gambar 18. Kotak dialog Save C Compiler Project File

Gambar 19. Kotak dialog Save CodeWizardAVR

Page 9: Tutorial Pemrograman Mikrokontroler Avr (Bagian i)

6. Setelah disimpan, jendela editor akan terisi oleh kode hasil otomatisasi Wizard.

Gambar 20. Tampilan utama program yang sudah terisi kode C hasil otomatisasi Wizard

7. Berdasarkan sistem minimum pada gambar 2, modifikasi kode tersebut menjadi seperti

berikut (huruf merah berarti kode sisipan yang ditambahkan di luar hasil Wizard)

/************************************************** *** This program was produced by the CodeWizardAVR V2.05.7a Evaluation Automatic Program Generator © Copyright 1998-2012 Pavel Haiduc, HP InfoTech s.r .l. http://www.hpinfotech.com Project : Program LED blinking Version : 1.0.0 Date : 02/04/2012 Author : Andri Rahmadhani Company : Lab. Elkafi ITB Comments: Latihan Mikro Chip type : ATmega8535 Program type : Application AVR Core Clock frequency: 1,000000 MHz Memory model : Small External RAM size : 0 Data Stack size : 128 *************************************************** **/ #include <mega8535.h> #include <delay.h> #define LED PORTC // Declare your global variables here void main(void) {

Page 10: Tutorial Pemrograman Mikrokontroler Avr (Bagian i)

// Declare your local variables here // Input/Output Ports initialization // Port A initialization // Func7=In Func6=In Func5=In Func4=In Func3=In Fun c2=In Func1=In Func0=In // State7=T State6=T State5=T State4=T State3=T Sta te2=T State1=T State0=T PORTA=0x00; DDRA=0x00; // Port B initialization // Func7=In Func6=In Func5=In Func4=In Func3=In Fun c2=In Func1=In Func0=In // State7=T State6=T State5=T State4=T State3=T Sta te2=T State1=T State0=T PORTB=0x00; DDRB=0x00; // Port C initialization // Func7=Out Func6=Out Func5=Out Func4=Out Func3=Ou t Func2=Out Func1=Out Func0=Out // State7=1 State6=1 State5=1 State4=1 State3=1 Sta te2=1 State1=1 State0=1 PORTC=0xFF; DDRC=0xFF; // Port D initialization // Func7=In Func6=In Func5=In Func4=In Func3=In Fun c2=In Func1=In Func0=In // State7=T State6=T State5=T State4=T State3=T Sta te2=T State1=T State0=T PORTD=0x00; DDRD=0x00; // Timer/Counter 0 initialization // Clock source: System Clock // Clock value: Timer 0 Stopped // Mode: Normal top=0xFF // OC0 output: Disconnected TCCR0=0x00; TCNT0=0x00; OCR0=0x00; // Timer/Counter 1 initialization // Clock source: System Clock // Clock value: Timer1 Stopped // Mode: Normal top=0xFFFF // OC1A output: Discon. // OC1B output: Discon. // Noise Canceler: Off // Input Capture on Falling Edge // Timer1 Overflow Interrupt: Off // Input Capture Interrupt: Off // Compare A Match Interrupt: Off // Compare B Match Interrupt: Off TCCR1A=0x00; TCCR1B=0x00; TCNT1H=0x00; TCNT1L=0x00; ICR1H=0x00; ICR1L=0x00; OCR1AH=0x00; OCR1AL=0x00; OCR1BH=0x00; OCR1BL=0x00; // Timer/Counter 2 initialization

Page 11: Tutorial Pemrograman Mikrokontroler Avr (Bagian i)

Scipt 1. Kode C program led blinking

Konfigurasi Chip Programmer

Sebelum meng-compile program yang telah dibuat, ada baiknya melakukan konfigrasi Chip

Programmer yang digunakan. Chip Programmer berupa software bawaan dari CodeVisionAVR

yang berfungsi untuk memasukkan kode hex (hasil kompilasi dari bahasa C yang diubah dulu ke

bahasa assembler) ke dalam mikrokontroler. Chip Programmer akan berjalan manakala

hardware programmer yang digunakan sesuai. Jenis hardware programmer yang support

CodeVisionAVR di antaranya : AVRProg (AVR910), STK200+/300, STK500/AVRISP, STK600,

// Clock source: System Clock // Clock value: Timer2 Stopped // Mode: Normal top=0xFF // OC2 output: Disconnected ASSR=0x00; TCCR2=0x00; TCNT2=0x00; OCR2=0x00; // External Interrupt(s) initialization // INT0: Off // INT1: Off // INT2: Off MCUCR=0x00; MCUCSR=0x00; // Timer(s)/Counter(s) Interrupt(s) initialization TIMSK=0x00; // USART initialization // USART disabled UCSRB=0x00; // Analog Comparator initialization // Analog Comparator: Off // Analog Comparator Input Capture by Timer/Counter 1: Off ACSR=0x80; SFIOR=0x00; // ADC initialization // ADC disabled ADCSRA=0x00; // SPI initialization // SPI disabled SPCR=0x00; // TWI initialization // TWI disabled TWCR=0x00; while (1) { // Place your code here LED = ~LED; delay_ms(1000); } }

Page 12: Tutorial Pemrograman Mikrokontroler Avr (Bagian i)

AVRISP MkII, AVRDragon, JTAGICE MkII, JTAGICE 3, dsb. Sebagai contoh, digunakan AVR910

sebagai hardware programmer mikrokontroler. Jika programmer tidak disuppport

CodeVisionAVR seperti USBasp, gunakan file hex hasil compile CodeVisionAVR dan injeksikan

ke chip menggunakan software lain seperti Khazama AVR Programmer atau

ExteremeBurner AVR.

Gambar 21. DI-USB AVR ISP V2 / DI-USB to Serial TTL berbasis AVR910 (Depok Instruments)

Gambar 22. AVR USB Downloader berbasis USBasp (xflash electronics)

Langkah pertama yang harus dilakukan adalah konfigurasi COM Port (Serial) yang

digunakan. Jika menggunakan konverter USB to Serial (USB to RS232), install terlebih dahulu

drivernya sesuai dengan petunjuk yang ada (panduan installasi driver). Setelah driver terinstall,

cek terlebih dahulu koneksi COM Port dengan cara klik Start Menu dan klik kanan pada tulisan

Computer, lalu pilih Properties. Klik tombol Device Manager. Cari bagian Ports dan lihat

nomor port yang digunakan. Klik kanan pada device tersebut lalu klik Properties. Pada tab Port

Setting, ubahlah konfigurasi port sesuai kebutuhan dan klik Advanced... untuk setting lebih

lanjut. Pada bagian ini, nomor port bisa diubah sesuai kebutuhan. Contoh : Gunakan COM Port 1.

Page 13: Tutorial Pemrograman Mikrokontroler Avr (Bagian i)

Gambar 23. Jendela Device Manager Windows 7

Gambar 24. Konfigurasi nomor port yang digunakan COM Port

Peringatan akan muncu jika nomor COM Port telah dipakai hardware lain, abaiakn saja

dengan klik Yes.

Gambar 25. Jendela peringatan COM Port

Page 14: Tutorial Pemrograman Mikrokontroler Avr (Bagian i)

Kembali ke program CodeVisionAVR, klik menu Settings > Programmer dan sesuaikan

Communication Port dengan port yang telah dikonfigurasi. Isikan Baud Rate yang sesuai

dengan hardware, contoh : 115200.

Gambar 26. Setting Chip Programmer pada CodeVisionAVR

Setelah itu, klik menu Project > Configure lalu pilih tab After Build. Centang pilihan

Program the Chip agar setelah proses kompilasi, kode program bisa langsung diinjeksikan ke

mikrokontroler. Untuk kali ini (agar lebih cepat), hilangkan centang pada Check Signature,

Check Ensure, Preserve EEPROM, Verify, dan Program Fuse Bit. Klik OK.

Gambar 27. Konfigurasi after build project pada CodeVisionAVR

Page 15: Tutorial Pemrograman Mikrokontroler Avr (Bagian i)

Program dapat dikompilasi dan di-build dengan cara klik Project > Build All sehingga

program bisa dikompilasi, di-link, dan dibuat file hex, serta diinjeksikan ke mikrokontroler.

Setelah selesai, akan ada jendela informasi proses kompilasi. Lihat pada gambar 28 yang diberi

lingkaran biru. Jika tidak ada error, hasilnya akan terlihat seperti pada gambar. Klik Program

the chip untuk memulai injeksi program ke mikrokontroler.

Gambar 28. Informasi hasil kompilasi/build

Ditulis oleh :

Andri Rahmadhani (10209084)