Upload
hendra-kusuma-wardhana
View
28
Download
0
Embed Size (px)
DESCRIPTION
buku tentang cara memprogram avr
Citation preview
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
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
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
5. Konfirmasi proses install, klik Install
Gambar 7. Konfirmasi proses install
6. Tunggu proses instalasi hingga selesai
Gambar 7. Proses instalasi CodeVisionAVR Evaluation Version
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
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
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
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
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) {
// 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
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); } }
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.
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
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
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)