1) minimum system dan microcontroller (disini saya menggunakan ATMEGA 8535) untuk membuat minimum system Anda bisa menuju link ini
2) downloader microcontroller AVR (disini saya menggunakan downloader USBASP) untuk membuat downloader USBASP anda bisa menuju link ini
3) software codevision AVR
4) software downloader untuk mentransfer file program ke microcontroller (saya menggunakan avrdude GUI jika Anda tidak punya bisa didownload disini)
5) project board
6) Led dan resistor 470ohm 8 buah (saya menggunakan Resistor pack agar lebih praktis)
7) kabel secukupnya
PERSIAPAN HARDWARE
untuk rangkaian dari percobaan ini ada 2 jenis yaitu rangkaian active low dan rangkaian active high.
untuk perbedaan dari kedua rangkaian ini adalah berlaku kebalikan dimana pada rangkaian active low led akan menyala pada saat logika output dari mikrokontroller bernilai 0 atau "low" dan padam saat logika output dari mikrokontroller bernilai 1 atau "high", sebaliknya pada rangkaian active high led akan menyala pada saat logika output dari mikrokontoler bernilai 1 atau "high" dan padam saat logika output dari mikorkontroller bernilai 0 atau "low".
maksud dari PORTx artinya Anda bisa menghubungkan dengan PORT yang tersedia pada microcontroller AVR yang disediakan (bisa PORT A,B,C,D)
baik langsung saja untuk percobaan ini saya akan menggunakan rangkaian active low dan untuk rangkaian active high anda bisa mencobanya sendiri, dan untuk PORT yang saya gunakan adalah PORTD dapat kita lihat konfigurasi pin pada ATMEGA 8535 untuk PORTD.0 sampai PORTD.7 terletak pada pin 14-21. maka saya hubungkan rangkaian diatas dengan PORTD.
PEMROGRAMAN
Untuk memulai memprogram buka software codevision AVR, kemudian pada menu bar klik File-New
Kemudian Pilih File Type-Project-OK
Kemudian akan keluar window seperti dibawah ini, pada bagian Chip kita pilih Chip yang kita gunakan disini saya menggunakan ATMEGA 8535, kemudian untuk clock juga sesuaikan dengan clock yang kita gunakan disini saya menggunakan clock yang berasal dari crystal 11,0592 Mhz.
Kemudian Untuk memprogram Digital Output kita pilih bagian Port kemudian pilih Port yang akan digunakan disini saya menggunakan PORTD. kemudian rubah Bit 0-7 dari In(default) menjadi Out dengan cara mengekliknya.
Maksudnya In disini adalah PORT pada bit yang dipilih dijadikan sebagai digital input (dapat membaca tegangan yang terhubung pada jalur PORT tersebut dimana pembacaannya 0V = logika '0' dan 5V = logika '1')
jika Out maka PORT pada bit yang dipilih dijadikan sebagai digital output(dapat mengeluarkan logika 0/1 dimana logika '0' = mengeluarkan tegangan 0v, logika '1' = mengeluarkan tegangan5 V).
Setelah itu klik Program-Generate Save and Exit, setelah itu Anda akan diminta mengesave 3 buah file yaitu berupa (*.c), (*.prj) dan (*.cwp) , tempatkan pada 1 buah folder dan beri nama yang sama. Disini saya simpan pada folder Project DO dan saya beri nama untuk setiap filenya PDO. Anda bisa beri nama sesuka Anda.
Setelah itu klik Save kemudian bim salabim program akan tergenerate secara otomatis.
Yang perlu diperhatikan pada program disini adalah bagian DDRD nilainya 0xFF(0x maksudnya nilai dalam bilangan hexa) dimana PORTD saya gunakan sebagai output, bandingkan dengan DDRA,DDRB dan DDRC yang nilainya 0x00, mengapa demikian?
Penjelasannya adalah : untuk menjadikan bit PORT menjadi output maka DDR PORT pada bit yang dipilih diberi nilai 1. dimana di awal saya set semua bit pada PORTD menjadi Output sehingga nilainya menjadi 0xFF(dalam biner nilainya 0b11111111). oh ya sedikit penjelasan untuk program disini untuk nilai dengan bilangan hexa awalnya diberi tanda 0x, untuk bilangan biner 0b, untuk desimal tanpa tanda.
Selanjutnya pada menu bar pilih project-compile-OK kemudian pilih project-build-OK.
kemudian kita akan coba transfer program ini ke microcontroller. pertama colokan USBASP ke komputer dan colokan juga ke minimum systemnya
kemudian buka program avrdude GUI kemudian pada bagian configuration atur -c programmer menjadi usbasp, -p device menjadi chip yang kita gunakan contoh ATMEGA 8535 --> m8535(m =mega).
kemudian buka program avrdude GUI kemudian pada bagian configuration atur -c programmer menjadi usbasp, -p device menjadi chip yang kita gunakan contoh ATMEGA 8535 --> m8535(m =mega).
Kemudian pada bagian Location of avrdude pilih file dengan nama avrdude.exe pada folder file usbasp tempat program avr dude GUI yang Anda download melalui blog saya
Dan pada bagian -C Location of alternate configuration file pilih file dengan nama avrdude.conf pada folder file usbasp tempat program avr dude GUI yang Anda download melalui blog saya
Setingan diatas hanya perlu dilakukan 1 x saja biasanya. untuk pemakaian selanjutnya asalakan folder tidak dipindah software sudah otomatis menyimpan alamatnya.
Setelah itu masih pada software AVRDude GUI pilih bagian Files kemudian centang bagian write dan pilih file yang kita akan downloadkan. file yang akan kita downloadkan berada pada folder dimana kita menyimpan file codevision AVR folder saya bernama "project DO", ddidalm folder Project DO ada folder exe, buka folder tersebut dan pilih file dengan format intel hex atau hex kemudian click execute.
Untuk memulai latihan program coba Anda tambahkan pada program #inlcude <delay.h> pada bagian seperti di bawah ini.
kemudian tambahkan program pada bagian while(1) seperti dibawah ini :
Setelah itu jangan lupa untuk mengcompile dan membuildnya setiap kali selesai memprogram. dengan cara F9 untuk compile, shift +F9 untuk build atau klik Project-compile dan Project build.
Kemudian transfer program melalui software avrdude GUI langsung pencet execute saja, karena tadi kita sudah mengatur alamat filenya, jadi secara otomatis avrdude GUI akan membaca file yang paling terupdate.
Setelah itu Perhatikan Apa yang terjadi.....
Dari program diatas dapat diambil beberapa hal :
1) delay_ms(1000) = digunakan untuk jeda 1000 ms atau 1 detik Anda bisa merubah nilainya sesuka Anda
2) untuk mengatur output pada bit tertentu pada suatu PORT dapat digunakan perintah PORTX.n dimana X adalah jenis PORT dan n adalah bitnya. (example PORTD.0 = 1; mengatur PORTD bit 0 mengeluarkan output high)
3) untuk rangkaian active low ini bila diberi logic 0 maka LED menyala. dan berlaku sebaliknya.
dan untuk lainnya Anda dapat mengambil kesimpulan sendiri dan Anda dapat mencoba-coba sendiri.misalkan membuat running LED, blink LED dll.
Sekian dari saya bila ada pertanyaan silahkan comment...
Thanks Bro...
ReplyDelete