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
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.
2. Kemudian klik kanan pada USB ASP dan pilih update driver software.
LABORATORIUM MIKROPROSESOR
Adam Ridianto Muhamad
Pratikum Sistem MikroController
3. Kemudian klik Browse My Computer for driver software
LABORATORIUM MIKROPROSESOR
Adam Ridianto Muhamad
Pratikum Sistem MikroController
2. Klik tombol RD (read), untuk membaca apakah trainer mikroAVR sudah terhubung dengan
laptop atau PC melalui USB downloader.
4. Chip ATMEGA16A telah dikosongkan, dan siap untuk diisi dengan program yang baru.
LABORATORIUM MIKROPROSESOR
Adam Ridianto Muhamad
Pratikum Sistem MikroController
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
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
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 <delay.h> tepat dibawah #include
LABORATORIUM MIKROPROSESOR
Adam Ridianto Muhamad
Pratikum Sistem MikroController
<mega16.h>
11. Kemudian ketik program dibawah ini
while (1)
{
// Place your code here
output();
};
LABORATORIUM MIKROPROSESOR
Adam Ridianto Muhamad
Pratikum Sistem MikroController
LABORATORIUM MIKROPROSESOR
Adam Ridianto Muhamad
Pratikum Sistem MikroController
LABORATORIUM MIKROPROSESOR
Adam Ridianto Muhamad
Pratikum Sistem MikroController
10
LABORATORIUM MIKROPROSESOR
Adam Ridianto Muhamad
Pratikum Sistem MikroController
11
LABORATORIUM MIKROPROSESOR
Adam Ridianto Muhamad
Pratikum Sistem MikroController
12
LABORATORIUM MIKROPROSESOR
Adam Ridianto Muhamad
Pratikum Sistem MikroController
13
LABORATORIUM MIKROPROSESOR
Adam Ridianto Muhamad
Pratikum Sistem MikroController
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
14
LABORATORIUM MIKROPROSESOR
Adam Ridianto Muhamad
Pratikum Sistem MikroController
15
4. Compile, download
LABORATORIUM MIKROPROSESOR
Adam Ridianto Muhamad
Pratikum Sistem MikroController
16
LABORATORIUM MIKROPROSESOR
Adam Ridianto Muhamad
Pratikum Sistem MikroController
3. Compile, download
4. PERTANYAAN
a. Apa beda PORTD.0 dengan PORTD
b. Apa Beda PINC.0 dengan PINC
6. Analisa ??
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
5. Kesimpulan
17
LABORATORIUM MIKROPROSESOR
Adam Ridianto Muhamad
Pratikum Sistem MikroController
18
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
delay_ms(100);
}
}
3. PERTANYAAN
a. Jawab pertanyaan 1 sampai 7
4. Analisa ??
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
4. Kesimpulan
LABORATORIUM MIKROPROSESOR
Adam Ridianto Muhamad
Pratikum Sistem MikroController
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
20
LABORATORIUM MIKROPROSESOR
Adam Ridianto Muhamad
Pratikum Sistem MikroController
#include <lcd.h>
Dan
// LCD module initialization
lcd_init(16);
while (1)
{
// Place your code here
tampil();
};
4.PERTANYAAN
a. Apa yang terjadi dari program diatas
5. Analisa ??
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
5. Kesimpulan
21
LABORATORIUM MIKROPROSESOR
Adam Ridianto Muhamad
Pratikum Sistem MikroController
lcd_clear();
lcd_gotoxy(0,0);
lcd_putchar(a);
lcd_gotoxy(0,1);
lcd_putchar(b);
delay_ms(100);
lcd_clear();
lcd_gotoxy(0,0);
lcd_putchar(c);
itoa(c,simpan);
lcd_gotoxy(0,1);
lcd_puts(simpan);
while(1){}
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 ??
.
.
.
.
.
.
.
.
.
.
.
22
LABORATORIUM MIKROPROSESOR
Adam Ridianto Muhamad
Pratikum Sistem MikroController
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
6. Kesimpulan
23
LABORATORIUM MIKROPROSESOR
Adam Ridianto Muhamad
Pratikum Sistem MikroController
Dan
void keypad()
{
unsigned char a=0;
lcd_gotoxy(0,0);
// pertanyaan 7. Fungsinya ?
lcd_putsf("MIKROCONTROLLER");
// pertanyaan 8. Fungsinya ?
lcd_gotoxy(0,1);
// pertanyaan 9. Fungsinya ?
lcd_putsf("BELAJAR keypad2");
// pertanyaan 10. Fungsinya ?
delay_ms(1000);
// pertanyaan 11. Fungsinya ?
lcd_clear();
while(1)
{
lcd_gotoxy(0,0);
PORTC.3=1;PORTC.2=1;PORTC.1=1;PORTC.0=0;
// P1
delay_us(5);
if(PINC.7==1 & PINC.6==1 & PINC.5==1 & PINC.4==0)
// P2
{
a='D';
}
if(PINC.7==1 & PINC.6==1 & PINC.5==0 & PINC.4==1) // P3
{
a='C';
}
if(PINC.7==1 & PINC.6==0 & PINC.5==1 & PINC.4==1) // P4
{
a='B';
}
if(PINC.7==0 & PINC.6==1 & PINC.5==1 & PINC.4==1) // P5
{
a='A';
}
24
LABORATORIUM MIKROPROSESOR
Adam Ridianto Muhamad
Pratikum Sistem MikroController
25
PORTC.3=1;PORTC.2=1;PORTC.1=0;PORTC.0=1;
// P6
delay_us(5);
if(PINC.7==1 & PINC.6==1 & PINC.5==1 & PINC.4==0) // P7
{
a='#';
}
if(PINC.7==1 & PINC.6==1 & PINC.5==0 & PINC.4==1) // P8
{
a='9';
}
if(PINC.7==1 & PINC.6==0 & PINC.5==1 & PINC.4==1) // P9
{
a='6';
}
if(PINC.7==0 & PINC.6==1 & PINC.5==1 & PINC.4==1) // P10
{
a='3';
}
PORTC.3=1;PORTC.2=0;PORTC.1=1;PORTC.0=1;
// P11
delay_us(5);
if(PINC.7==1 & PINC.6==1 & PINC.5==1 & PINC.4==0) // P12
{
a='0';
}
if(PINC.7==1 & PINC.6==1 & PINC.5==0 & PINC.4==1) // P13
{
a='8';
}
if(PINC.7==1 & PINC.6==0 & PINC.5==1 & PINC.4==1) // P14
{
a='5';
}
if(PINC.7==0 & PINC.6==1 & PINC.5==1 & PINC.4==1) // P15
{
a='2';
}
PORTC.3=0;PORTC.2=1;PORTC.1=1;PORTC.0=1;
delay_us(5);
if(PINC.7==1 & PINC.6==1 & PINC.5==1 & PINC.4==0)
{
a='*';
}
if(PINC.7==1 & PINC.6==1 & PINC.5==0 & PINC.4==1)
{
a='7';
}
if(PINC.7==1 & PINC.6==0 & PINC.5==1 & PINC.4==1)
{
a='4';
}
if(PINC.7==0 & PINC.6==1 & PINC.5==1 & PINC.4==1)
{
a='1';
}
lcd_putchar(a);
// P16
// P17
// P18
// P19
// P20
7. Pertanyaan
Jawab Pertanyaan (P1 P20 ) apa maksudnya dan fungsinya
8. Analisa ??
.
.
.
LABORATORIUM MIKROPROSESOR
Adam Ridianto Muhamad
Pratikum Sistem MikroController
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
26
LABORATORIUM MIKROPROSESOR
Adam Ridianto Muhamad
Pratikum Sistem MikroController
// P1
Dan
unsigned char keypad()
{
unsigned char a='-';
PORTC.3=1;PORTC.2=1;PORTC.1=1;PORTC.0=0;
delay_us(5);
if(PINC.7==1 & PINC.6==1 & PINC.5==1 & PINC.4==0)
{
a='D';
}
if(PINC.7==1 & PINC.6==1 & PINC.5==0 & PINC.4==1)
{
a='C';
}
if(PINC.7==1 & PINC.6==0 & PINC.5==1 & PINC.4==1)
{
a='B';
}
if(PINC.7==0 & PINC.6==1 & PINC.5==1 & PINC.4==1)
{
a='A';
}
PORTC.3=1;PORTC.2=1;PORTC.1=0;PORTC.0=1;
delay_us(5);
if(PINC.7==1 & PINC.6==1 & PINC.5==1 & PINC.4==0)
{
a='#';
}
if(PINC.7==1 & PINC.6==1 & PINC.5==0 & PINC.4==1)
{
a='9';
}
if(PINC.7==1 & PINC.6==0 & PINC.5==1 & PINC.4==1)
{
a='6';
}
if(PINC.7==0 & PINC.6==1 & PINC.5==1 & PINC.4==1)
{
a='3';
}
PORTC.3=1;PORTC.2=0;PORTC.1=1;PORTC.0=1;
delay_us(5);
if(PINC.7==1 & PINC.6==1 & PINC.5==1 & PINC.4==0)
27
LABORATORIUM MIKROPROSESOR
Adam Ridianto Muhamad
Pratikum Sistem MikroController
{
a='0';
}
if(PINC.7==1 & PINC.6==1 & PINC.5==0 & PINC.4==1)
{
a='8';
}
if(PINC.7==1 & PINC.6==0 & PINC.5==1 & PINC.4==1)
{
a='5';
}
if(PINC.7==0 & PINC.6==1 & PINC.5==1 & PINC.4==1)
{
a='2';
}
PORTC.3=0;PORTC.2=1;PORTC.1=1;PORTC.0=1;
delay_us(5);
if(PINC.7==1 & PINC.6==1 & PINC.5==1 & PINC.4==0)
{
a='*';
}
if(PINC.7==1 & PINC.6==1 & PINC.5==0 & PINC.4==1)
{
a='7';
}
if(PINC.7==1 & PINC.6==0 & PINC.5==1 & PINC.4==1)
{
a='4';
}
if(PINC.7==0 & PINC.6==1 & PINC.5==1 & PINC.4==1)
{
a='1';
}
return a;
}
5. Pertanyaan
Jawab Pertanyaan (P1) apa maksudnya dan fungsinya
6. Analisa ??
.
.
.
.
.
.
.
.
.
.
28
LABORATORIUM MIKROPROSESOR
Adam Ridianto Muhamad
Pratikum Sistem MikroController
3.Pertanyaan
Jawab Pertanyaan (P1 dan P2) apa maksudnya dan fungsinya
Mengapa P3 di tempatkan di luar function
4. Analisa ??
.
.
.
.
.
.
.
.
.
.
29