-
LABORATORIUM MIKROPROSESOR Adam Ridianto Muhamad Pratikum Sistem
MikroController 1
MODUL BELAJAR MIKRO AVR MENGGUNAKAN
ATMEGA16A
PERSIAPAN
Dalam pemrograman mikrokontroler terdapat dua klasifikasi
perangkat yang dibutuhkan, yang
pertama adalah perangkat lunak (software) dan yang kedua adalah
perangkat keras (hardware)
Berikut ini adalah daftar software yang dibutuhkan sebelum
memulai kegiatan programming
menggunakan trainer AVR.
1. CodeVisionAVR2.05.03
2. USBASP (driver USB downloader)
3. ProgISP1.72
Bentuk fisik satu paket perangkat mikroAVR adalah sebagai
berikut:
Gambar 1
Trainer MikroAVR
Gambar 2
USB downloader
Gambar 3
NumPad
-
LABORATORIUM MIKROPROSESOR Adam Ridianto Muhamad Pratikum Sistem
MikroController 2
INSTALASI SOFTWARE
Sebelum memulai kegiatan programming pada trainer mikroAVR,
ketiga software sebagaimana
yang telah disebutkan di bagian awal harus sudah terinstal pada
laptop atau PC. Proses instalasi
CodeVisionAVR2.05.03 dan ProgISP1.72 mudah untuk dilakukan
sebagaimana proses instalasi software
pada umumnya.
Untuk instalasi driver USB downloader ikuti langkah-langkah
berikut. Buka properties My Computer.
1. Kemudian pilih menu Device Manager.
2. Kemudian klik kanan pada USB ASP dan pilih update driver
software.
-
LABORATORIUM MIKROPROSESOR Adam Ridianto Muhamad Pratikum Sistem
MikroController 3
3. Kemudian klik Browse My Computer for driver software
4. Set tempat direktori file USBASP. Kemudian klik OK dan
Next.
-
LABORATORIUM MIKROPROSESOR Adam Ridianto Muhamad Pratikum Sistem
MikroController 4
MENGOSONGKAN PROGRAM DALAM CHIP
Trainer mikroAVR baru, kemungkinan sudah terisi program dari
vendor pembuatnya. Untuk itu
program dalam chip ATMEGA16A itu perlu dikosongkan terlebih
dahulu. Berikut ini adalah langkah-
langkah untuk mengosongkan chip ATMEGA16A.
1. Buka software ProgISP1.72 dan pilih chip ATMEGA16A.
2. Klik tombol RD (read), untuk membaca apakah trainer mikroAVR
sudah terhubung dengan
laptop atau PC melalui USB downloader.
3. Setelah terhubung, lakukan penghapusan program pada chip
dengan cara klik tombol erase.
4. Chip ATMEGA16A telah dikosongkan, dan siap untuk diisi dengan
program yang baru.
Ini artinya, mikroAVR telah terhubung dengan laptop/PC
-
LABORATORIUM MIKROPROSESOR Adam Ridianto Muhamad Pratikum Sistem
MikroController 5
BAB I MENAMPILKAN DATA KE PORT D (OUTPUT)
TUJUAN
1. Memahami cara membuat file project dengan aplikasi CodeVision
AVR 2. Memahami cara menggunakan CodeWizzard 3. Memahami cara
menampilkan data ke port output
PERALATAN
Personal Computer
Kit
Program CodeVision AVR
PROSEDUR Menampilkan Data Ke Port D
Percobaan 1. LED ON/OFF Pada percobaan ini, kita akan membuat
program untuk menampilkan data 0xFF ke PortD selama 1 detik,
kemudian data pada PortD tersebut berubah menjadi 0x00 selama 1
detik berikutnya. Demikian siklus berulang-ulang. Berikut adalah
langkah-langkah percobaannya : 1. Jalankan program CodeVisionAVR C
Compiler. 2. Pilih Projectuntuk membuat project baru.
3. Klik Yes untuk menggunakan CodeWizardAVR
4. Pada CodeWizardAVR pilih menu Chip dan pilih menu pilihan
ATMega16 pilih frekuensi Clock sebesar 8 MHz.
-
LABORATORIUM MIKROPROSESOR Adam Ridianto Muhamad Pratikum Sistem
MikroController 6
5. Masih pada CodeWizardAVR, pilih menu Ports, kemudian setting
Port D sebagai output dengan output value 0.
6. Setelah selesai melakukan setting maka klik menu
File->Generate, Save and Exit.
7. Simpan File program anda dengan sebuah nama file misalnya
Belajar. Kemudian klik Save. File ini akan disimpan dengan
extention .c 8. Simpan file project anda dengan nama project
misalnya Belajar. Kemudian klik Save. File ini akan disimpan dengan
extention .prj. 9. Simpan file CodeWizzardAVR project files anda
dengan nama file misalnya Belajar. Kemudian klik Save. File ini
akan disimpan dengan extention .cwp. Selanjutnya anda bisa membuat
program pada editor yang sudah disediakan.
10. Tambahkan library delay dengan menuliskan #include tepat
dibawah #include
-
LABORATORIUM MIKROPROSESOR Adam Ridianto Muhamad Pratikum Sistem
MikroController 7
11. Kemudian ketik program dibawah ini
while (1) { // Place your code here output(); // memanggil sub
rutine output(); };
// sub rutine output di tulis dibawah #include
void output() { PORTD=0xff; delay_ms(1000); PORTD=0x00;
delay_ms(1000); }
12. Compile, download
-
LABORATORIUM MIKROPROSESOR Adam Ridianto Muhamad Pratikum Sistem
MikroController 8
Percobaan 2. Data Increment Pada percobaan ini, kita akan
membuat program untuk menampilkan data pada PortD yang naik satu
persatu (increment) mulai dari 0x01 sampai 0xFF dengan interval 1
detik. Berikut adalah langkah langkah percobaannya : 1. Buat
project baru. Setting CodeWizard sama dengan Percobaan 1. 2. Buat
program seperti berikut
void output() { unsigned char x; x=1; while(1) { PORTD=x; //
hasil x di keluarka pada PORTD x++; // Nilai x = x + 1
delay_ms(1000); // tunda selama 1000ms / 1 detik } }
3. Compile, download dan perhatikan yang terjadi pada PortD 4.
PERTANYAAN APA YANG TERJADI PADA DETIK KE 256 5. Analisa ?? . . . .
. . . . . . . . . . . . . . 6. Kesimpulan
-
LABORATORIUM MIKROPROSESOR Adam Ridianto Muhamad Pratikum Sistem
MikroController 9
Percobaan 3. Data Decrement Pada percobaan ini, kita akan
membuat program untuk menampilkan data pada PortD yang turun satu
persatu (decrement) mulai dari 0x00 sampai 0xFF dengan interval 1
detik. Berikut adalah langkah langkah percobaannya : 1. Buat
project baru. Setting CodeWizard sama dengan Percobaan 1. 2. Buat
program seperti berikut
void output() { unsigned char x; x=0; while(1) { PORTD=x; //
hasil x di keluarka pada PORTD x--; // Nilai x = x - 1
delay_ms(1000); // tunda selama 1000ms / 1 detik } }
3. Compile, download dan perhatikan yang terjadi pada PortD 4.
PERTANYAAN APA YANG TERJADI PADA DETIK KE 256 5. Analisa ??
. . . . . . . . . . . . . . . . . .
6. Kesimpulan
-
LABORATORIUM MIKROPROSESOR Adam Ridianto Muhamad Pratikum Sistem
MikroController 10
Percobaan 4. Data geser kekiri Pada percobaan ini, kita akan
membuat program untuk menampilkan data pada PortA yang digeser
kekiri satu persatu (shift left) mulai dari 0x01 dengan 9 kali
iterasi dengan interval 1 detik. Berikut adalah langkahlangkah
percobaannya : 1. Buat project baru. Setting CodeWizard sama dengan
Percobaan 1. 2. Buat program seperti berikut
void output() { unsigned char x,iterasi; x=0x01;
for(iterasi=0;iterasi
-
LABORATORIUM MIKROPROSESOR Adam Ridianto Muhamad Pratikum Sistem
MikroController 11
Percobaan 5. Data geser kekanan Pada percobaan ini, kita akan
membuat program untuk menampilkan data pada PortD yang digeser
kekiri satu persatu (shift left) mulai dari 0x80 dengan 9 kali
iterasi dengan interval 1 detik. Berikut adalah langkahlangkah
percobaannya : 1. Buat project baru. Setting CodeWizard sama dengan
Percobaan 1. 2. Buat program seperti berikut
void output() { unsigned char x,iterasi; x=0x80;
for(iterasi=0;iterasi>1; // Nilai x = digeser kekiri 1 x
delay_ms(1000); // tunda selama 1000ms / 1 detik } }
3. Compile, download dan perhatikan yang terjadi pada PortD 4.
PERTANYAAN APA YANG TERJADI PADA iterasi ke 0 sampai ke 9 5.
Analisa ??
. . . . . . . . . . . . . . . . . .
6. Kesimpulan
-
LABORATORIUM MIKROPROSESOR Adam Ridianto Muhamad Pratikum Sistem
MikroController 12
Percobaan 5. Data geser kekanan dan kekiri Pada percobaan ini,
kita akan membuat program untuk menampilkan data pada PortD yang
digeser kekiri satu persatu (shift left) mulai dari 0x80 dengan 9
kali iterasi dengan interval 1 detik. Berikut adalah langkahlangkah
percobaannya : 1. Buat project baru. Setting CodeWizard sama dengan
Percobaan 1. 2. Buat program seperti berikut
void output() { unsigned char x,iterasi; x=0x80;
for(iterasi=0;iterasi>1; // Nilai x = digeser kekiri 1 x
delay_ms(1000); // tunda selama 1000ms / 1 detik }
for(iterasi=0;iterasi
-
LABORATORIUM MIKROPROSESOR Adam Ridianto Muhamad Pratikum Sistem
MikroController 13
Percobaan 6. Data geser kekanan dan kekiri Pada percobaan ini,
kita akan membuat program untuk menampilkan data pada PortA yang
digeser kekiri satu persatu (shift left) mulai dari 0x80 dengan 9
kali iterasi dengan interval 1 detik. Berikut adalah langkahlangkah
percobaannya : 1. Buat project baru. Setting CodeWizard sama dengan
Percobaan 1. 2. Buat program seperti berikut
void output() { unsigned char x,iterasi; x=0x80;
for(iterasi=0;iterasi>1; // Nilai x = digeser kekiri 1 x
delay_ms(1000); // tunda selama 1000ms / 1 detik }
for(iterasi=0;iterasi
-
LABORATORIUM MIKROPROSESOR Adam Ridianto Muhamad Pratikum Sistem
MikroController 14
BAB II MEMASUKKAN DATA KE PORT C (INPUT)
TUJUAN 1. Memahami cara membuat file project dengan aplikasi
CodeVision AVR 2. Memahami cara menggunakan CodeWizzard 3. Memahami
cara menampilkan data ke port output
PERALATAN
Personal Computer
Kit
Program CodeVision AVR
PROSEDUR
Percobaan 1. LED -> TOMBOL Memasukkan Data Ke Port C
1. BUka Tools -> Code Wizard
2. File -> Program View
-
LABORATORIUM MIKROPROSESOR Adam Ridianto Muhamad Pratikum Sistem
MikroController 15
3. Hasil Setelah Program Preview
Select pada PortC dan copy , replace pada program belajar.c
. Kemudian ketik program dibawah ini while (1) { // Place your
code here input(); // memanggil sub rutine output(); };
// sub rutine output di tulis dibawah #include
void input() { PORTD=PINC; }
4. Compile, download
-
LABORATORIUM MIKROPROSESOR Adam Ridianto Muhamad Pratikum Sistem
MikroController 16
5. PERTANYAAN APA YANG TERJADI 6. Analisa ??
. . . . . . . . . . . . . . . . . . 7. Kesimpulan
-
LABORATORIUM MIKROPROSESOR Adam Ridianto Muhamad Pratikum Sistem
MikroController 17
Percobaan 2. Beda PIN dan PORT Berikut adalah langkah langkah
percobaannya : 1. Buat project baru. Setting CodeWizard sama dengan
Percobaan 1. 2. Buat program seperti berikut
void input() { PORTD.0=PINC.7; PORTD.1=PINC.6; PORTD.2=PINC.5;
PORTD.3=PINC.4; PORTD.4=PINC.3; PORTD.5=PINC.2; PORTD.6=PINC.1;
PORTD.7=PINC.0; }
3. Compile, download 4. PERTANYAAN
a. Apa beda PORTD.0 dengan PORTD b. Apa Beda PINC.0 dengan
PINC
6. Analisa ??
. . . . . . . . . . . . . . . . . . 5. Kesimpulan
-
LABORATORIUM MIKROPROSESOR Adam Ridianto Muhamad Pratikum Sistem
MikroController 18
Percobaan 3. Memanfaatkan IF dengan PIN Berikut adalah langkah
langkah percobaannya : 1. Buat project baru. Setting CodeWizard
sama dengan Percobaan 1. 2. Buat program seperti berikut
void input() { unsigned char x; x=0x01; while(1) { PORTD=x;
if(PINC.0==0) { x=x1; if(x==0b00000000){x=0b00000001;} //
Pertanyaan 2 ..Fungsinya Apa ?? } delay_ms(100); } }
6. Compile, download 7. PERTANYAAN
a. Pertanyaan 1 ..Fungsinya Apa ?? DAN jika baris tersebut di
hapus.apa akibatnya.. b. Pertanyaan 2 ..Fungsinya Apa ?? DAN jika
baris tersebut di hapus.apa akibatnya..
6. Analisa ??
. . . . . . . . . . . . . . . . . . 8. Kesimpulan
-
LABORATORIUM MIKROPROSESOR Adam Ridianto Muhamad Pratikum Sistem
MikroController 19
Percobaan 4. Memanfaatkan IF dengan PIN Berikut adalah langkah
langkah percobaannya : 1. Buat project baru. Setting CodeWizard
sama dengan Percobaan 1. 2. Buat program seperti berikut
void input() { unsigned char x; x=0x01; while(1) { PORTD=x;
if(PINC.0==1) { x=x>>1; if(x==0b00000000){x=0b00000001;} //
Pertanyaan 1 ..Fungsinya Apa ?? } if(PINC.1==1) { // Pertanyaan 2
..Fungsinya Apa ?? x=x2; // Pertanyaan 4 ..Fungsinya Apa ??
if(x==0b00000000){x=0b00000001;} // Pertanyaan 5 ..Fungsinya Apa ??
} if(PINC.7==1) { x=x
-
LABORATORIUM MIKROPROSESOR Adam Ridianto Muhamad Pratikum Sistem
MikroController 20
BAB III
Display LCD TUJUAN
1. Memahami cara membuat file project dengan aplikasi CodeVision
AVR 2. Memahami cara menggunakan CodeWizzard 3. Memahami cara
menampilkan data ke LCD
PERALATAN
Personal Computer
Kit
Program CodeVision AVR
PROSEDUR
Percobaan 1. Inisialisasi LCD Memasukkan Data Ke Port C
1. BUka Tools -> Code Wizard
2. File -> Program View
3. Tulis program tersebut dibawah #include
// Alphanumeric LCD Module functions #asm .equ __lcd_port=0x18
;PORTB #endasm
-
LABORATORIUM MIKROPROSESOR Adam Ridianto Muhamad Pratikum Sistem
MikroController 21 #include
Dan // LCD module initialization lcd_init(16); while (1) { //
Place your code here tampil(); };
DAN program dibawah ini ditempatkan dibawah #include
void tampil() { lcd_gotoxy(0,0); lcd_putsf("MIKROCONTROLLER");
lcd_gotoxy(0,1); lcd_putsf("BELEJAR LCD"); }
4.PERTANYAAN a. Apa yang terjadi dari program diatas
5. Analisa ??
. . . . . . . . . . . . . . . . . . 5. Kesimpulan
-
LABORATORIUM MIKROPROSESOR Adam Ridianto Muhamad Pratikum Sistem
MikroController 22
Percobaan 2. Memahami FUNGSI LCD Berikut adalah langkah langkah
percobaannya : 1. Buat project baru. Setting CodeWizard sama dengan
Percobaan 1. 2. Buat program seperti berikut 3. dibawah #include di
tulis #include 4. Ketik program dibawah ini
void tampil() { unsigned char *test="ADAM RIDIANTO"; //
pertanyaan 1. Fungsinya ? unsigned char a,b,c; // pertanyaan 2.
Fungsinya ? unsigned char simpan[3]; // pertanyaan 3. Fungsinya ?
a=0; // pertanyaan 4. Fungsinya ? b='0'; // pertanyaan 5. Fungsinya
? c=123; // pertanyaan 6. Fungsinya ? lcd_gotoxy(0,0); //
pertanyaan 7. Fungsinya ? lcd_putsf("MIKROCONTROLLER"); //
pertanyaan 8. Fungsinya ? lcd_gotoxy(0,1); // pertanyaan 9.
Fungsinya ? lcd_putsf("BELAJAR LCD"); // pertanyaan 10. Fungsinya ?
delay_ms(100); // pertanyaan 11. Fungsinya ? lcd_clear(); //
pertanyaan 12. Fungsinya ? lcd_gotoxy(0,0); // pertanyaan 13.
Fungsinya ? lcd_puts(test); // pertanyaan 14. Fungsinya ?
delay_ms(100); // pertanyaan 15. Fungsinya ? lcd_clear(); //
pertanyaan 16. Fungsinya ? lcd_gotoxy(0,0); // pertanyaan 17.
Fungsinya ? lcd_putchar(a); // pertanyaan 18. Fungsinya ?
lcd_gotoxy(0,1); // pertanyaan 19. Fungsinya ? lcd_putchar(b); //
pertanyaan 20. Fungsinya ? delay_ms(100); // pertanyaan 21.
Fungsinya ? lcd_clear(); // pertanyaan 22. Fungsinya ?
lcd_gotoxy(0,0); // pertanyaan 23. Fungsinya ? lcd_putchar(c); //
pertanyaan 24. Fungsinya ? itoa(c,simpan); // pertanyaan 25.
Fungsinya ? lcd_gotoxy(0,1); // pertanyaan 26. Fungsinya ?
lcd_puts(simpan); // pertanyaan 27. Fungsinya ? while(1){} //
pertanyaan 28. Fungsinya ? }
3. PERTANYAAN a. Jawab pertanyaan 1 sampai 28 b. Apa perbedaan
pertanyaan 4 dan 5 ?? c. Apa perbedaan pertanyaan 10 dan 14 ?? d.
Apa perbedaan pertanyaan 18 dan 20 ?? e. Apa perbedaan pertanyaan
24 dan 27 ??
4. Analisa ??
. . . . . . . . . . .
-
LABORATORIUM MIKROPROSESOR Adam Ridianto Muhamad Pratikum Sistem
MikroController 23
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . 6. Kesimpulan
-
LABORATORIUM MIKROPROSESOR Adam Ridianto Muhamad Pratikum Sistem
MikroController 24