Pengenalan CodeVisionAVR Hendawan Soebhakti Oktober 2009
Sub Pokok Bahasan
Pengenalan CodeVision Menampilkan Data Ke Port Output Membaca Data Dari Port Input
2
CodeVisionAVR C Compiler
CodeVisionAVR C Compiler adalah software yang digunakan untuk membuat program mikrokontroler AVR dalam bahasa C.
Program tersebut kemudian diterjemahkan oleh CodeVisionAVR C menjadi kode heksadesimal yang akan didownload ke dalam chip mikrokontroler AVR.
3
Memulai Project 1. Start menu, Program File dan pilih CodeVisionAVR C Compiler
2. Klik Yes untuk menggunakan CodeWizardAVR
4
Memulai Project 3. Pada CodeWizardAVR pilih menu Chip dan pilih menu pilihan ATmega8535L serta pilih frekuensi Clock sebesar 11,059200 MHz. •
Pada CodeWizardAVR kita bisa melakukan setting terhadap fitur-fitur yang disediakan seperti Timer, USART, ADC dan yang lainnya.
•
File yang dihasilkan dari setting CodeWizardAVR ini akan dimasukkan (included) ke source program secara otomatis.
•
Dengan CodeWizzardAVR pekerjaan programmer menjadi lebih mudah karena tidak perlu membuat sendiri program untuk mengaktifkan fitur-fitur AVR. 5
Memulai Project 4. Masih pada CodeWizardAVR, pilih menu Ports, kemudian setting Port A sebagai output dengan output value 0.
6
Memulai Project 5. Setelah selesai melakukan setting maka klik menu File->Generate, Save and Exit.
6. Simpan dengan nama file sesuai keinginan anda.
7
Memulai Project 7. Selanjutnya anda bisa membuat program pada editor yang sudah disediakan.
8
Setting Programmer Setelah selesai membuat program, anda harus melakukan setting programmer untuk memilih jenis AVR Chip Programmer yang anda gunakan untuk mendownload program ke mikrokontroler. Ikuti langkah-langkah berikut : 1. Hubungkan programmer dengan komputer dan pastikan koneksinya sudah benar. 2. Pastikan mikrokontroler sudah terpasang dengan benar. 3. Nyalakan power supply pada programmer anda. 4. Klik menu Settings->Programmer kemudian pilih jenis chip programmer yang anda gunakan. Pastikan juga setting port komputer sudah benar sesuai dengan koneksi antara komputer dan programmer.
9
Mengkompilasi Project Untuk menghasilkan file hex yang nantinya akan didownload ke mikrokontroler, maka sebelumnya anda harus mengkompilasi project yang anda buat. Hal ini dimaksudkan untuk mengetahui apakah program yang anda buat sudah benar sesuai syntax bahasa C atau belum.
10
Mengkompilasi Project Klik menu Project->Configure, kemudian pilih Program the Chip. Perhatian ! Pastikan Chip Programming Options pada pilihan No Protection. Jangan mengubah setting yang lain jika anda belum paham benar fungsi setting tersebut. Setelah selesai klik OK.
11
Mengkompilasi Project Klik menu Project->Make untuk mengkompilasi program. Jika program anda sudah benar, maka klik Program untuk memulai proses download ke mikrokontroler. Namun jika masih terdapat kesalahan pada program, anda harus memperbaikinya terlebih dahulu. Tunggu hingga proses download selesai.
12
Setting Port Setiap port ATMega8535 terdiri dari 3 register I/O yaitu DDRx, Portx dan PINx. DDRx (Data Direction Register) Register DDRx digunakan untuk memilih arah pin. Jika DDRx = 1 maka Pxn sebagai pin output Jika DDRx = 0 maka Pxn sebagai input. Portx (Port Data Register) Register Portx digunakan untuk 2 keperluan yaitu untuk jalur output atau untuk mengaktifkan resistor pullup. 1. Portx berfungsi sebagai output jika DDRx = 1 maka : Portxn = 1 maka pin Pxn akan berlogika high. Portxn = 0 maka pin Pxn akan berlogika low. 2. Portx berfungsi untuk mengaktifkan resistor pullup jika DDRx = 0 maka : Portxn = 1 maka pin Pxn sebagai pin input dengan resistor pull up. Portxn = 0 maka pin Pxn sebagai output tanpa resistor pull up.
13
Menampilkan Data Ke Port Output Contoh 1 : LED ON/OFF Pada percobaan ini, kita akan membuat program untuk menampilkan data 0xFF ke PortA selama 1 detik, kemudian data pada PortA tersebut berubah menjadi 0x00 selama 1 detik berikutnya. Demikian siklus berulang-ulang
14
Menampilkan Data Ke Port Output Pada CodeWizard, setting mode Port bisa dilakukan dengan memilih bit Data Direction dan Pullup/Output Value pada menu Ports
15
Menampilkan Data Ke Port Output #include <mega8535.h> #include <delay.h> void main(void) { . . . while (1) { // Place your code here PORTA=0xFF; delay_ms(1000); PORTA=0x00; delay_ms(1000); }; }
//Keluarkan data 0xFF ke PORTA //Delay 1S //Keluarkan 0x00 ke PORTA //Delay 1S
16
Menampilkan Data Ke Port Output Contoh 2 : Data Increment Pada percobaan ini, kita akan membuat program untuk menampilkan data pada PortA yang naik satu persatu (increment) mulai dari 0x00 sampai 0xFF dengan interval 1 detik #include <mega8535.h> #include <delay.h> // Declare your global variables here void main(void) { . . while (1) { // Place your code here unsigned char x; //Mendefinisikan variable x x++; //x=x+1 kalau ingin dikurangi gunakan x-PORTA=x; //Keluarkan x ke PORTA delay_ms(1000); //Delay 1S }; 17 }
Membaca Data Dari Port Input Contoh 1 : Membaca Data PortB Pada contoh ini, kita akan membuat program untuk membaca data dari Port B dan menampilkan data tersebut ke PortA
18
Membaca Data Dari Port Input #include <mega8535.h> // Declare your global variables here void main(void) { . . . while (1) { // Place your code here PORTA=PINB; }; }
19
Membaca Data Dari Port Input Contoh 2 : Membaca Data Per Bit Pada PinB Pada percobaan ini, kita akan membuat program untuk membaca data dari PinB.0 dan PinB.1 Jika PinB.0 berlogika 0 maka PortA.0 dan PortA.1 akan berlogika 0. Jika PinB.1 berlogika 0 maka data pada PortA adalah 0xFF. #include <mega8535.h> // Declare your global variables here void main(void) { . . . while (1) { // Place your code here if(PINB.0==0){PORTA.0=0;PORTA.1=0;} if(PINB.1==0)PORTA=0xFF; }; } 20