Post on 10-Mar-2016
description
LAPORAN PRAKTIKUM
MIKROKONTROLLER
Pemrograman Mikrokontroller Teraplikasi
pada LCD 16 x 2
OLEH:
KHUSMAH AYUNING TYAS
P2.31.38.1.14.051
KELAS:
C1
JURUSAN TEKNIK ELEKTROMEDIK
POLITEKNIK KESEHATAN KEMENKES JAKARTA II
JAKARTA
2015
Praktikum VI: Pemrograman Mikrokontroller Teraplikasi
Pada LCD 16 x 2
Tujuan Praktikum:
1. Mahasiswa dapat menuliskan dan menampilkan karakter pada LCD 16x2
2. Mahasiswa dapat mengkolaborasikan perintah keluaran pada LCD 16x2
dengan tombol inputan
Percobaan I
1. Jalankan program CodeVision AVR
2. Pada CodeWizard AVR , langsung pilih Icon Alphanumeric LCD. Beri tanda centang dan Sesuaikan dengan Code Wizard di samping
3. Lalu pilih Icon Generate program, save and exit. Simpan file di lokasi
tertentu dan beri file tersebut. Lakukan penyimpanan dengan nama file yang
sama sebanyak 3x
4. Setelah muncul program windows, di atas while(1) tuliskan program
berikut
lcd_init(16);
lcd_gotoxy(0,0);
lcd_putchar('1');
lcd_putsf("2345");
while (1)
{
// Place your code here
}
}
3
5. Compile dan run the chip program. Perhatikan apa yang terjadi! Jelaskan !
Pada per
Pada percobaan I, buatlah programmnya terlebih dahulu
agar mendapatkan output sesuai dengan yang kita inginkan.
Buatlah coding diatas while (1) seperti berikut :
lcd_init(16);
lcd_gotoxy(0,0);
lcd_putchar('1');
lcd_putsf("2345");
while (1)
{
}
}
Setelah selesai membuat program, maka jalankan lah program
yang telah dibuat dengan Compile dan run the chip program.
lcd_init(16); merupakan inisialisasi LCD dengan jumlah kolom
sebesar 16 karakter
lcd_gotoxy(0,0); merupakan Posisi display (kolom ke 0, baris ke 0) pada LCD
lcd_putchar('1');merupakan penulisan satu karakter 1pada LCD
lcd_putsf("2345"); merupakan penulisan string (beberapa karakter) yang merupakan konstanta ("2345")ke LCD
Dari program tersebut di atas, maka output yang terjadi pada
LCD adalah tampilan konstanta 12345 pada kolom ke 0 dan
baris ke 0. Konstanta tersebut muncul terus menerus,
dikarenakan adanya while (1)pada program.
4
Lampiran foto
5
Percobaan II
1. Dengan langkah yang sama, buatlah program berikut!
lcd_init(16);
while (1)
{ lcd_gotoxy(0,0);
lcd_putsf("01234");
delay_ms(500);
lcd_clear();
delay_ms(500);
}
}
2. Compile dan run the chip program. Perhatikan apa yang terjadi!Jelaskan!
Pada percobaan II,sama seperti percobaan sebelumnya
yaitu buatlah programmnya terlebih dahulu agar mendapatkan
output sesuai dengan yang kita inginkan. Buatlah coding di
bawah while (1) seperti berikut :
lcd_init(16);
while (1)
{ lcd_gotoxy(0,0);
lcd_putsf("01234");
delay_ms(500);
lcd_clear();
delay_ms(500);
}
}
Setelah selesai membuat program, maka jalankan lah program
yang telah dibuat dengan Compile dan run the chip
program.
- lcd_init(16); merupakan inisialisasi LCD dengan jumlah
kolom sebesar 16 karakter
- lcd_gotoxy(0,0); merupakan Posisi display (kolom ke 0, baris ke 0) pada LCD
- lcd_putsf("01234"); merupakan penulisan string (beberapa karakter) yang merupakan konstanta ("01234")ke LCD
- delay_ms(500);merupakan waktu tunda selama 500ms
- lcd_clear();merupakan untuk menghapus tampilan di LCD
sesuai dengan waktu tundanya (delay_ms)
Dari program tersebut di atas, maka output yang terjadi pada
LCD adalah tampilan konstanta 01234 pada kolom ke 0 dan
baris ke 0. Konstanta tersebut muncul selama 500 ms kemudian
akan dihapus selama 500ms lalu kembali lagi ke kondisi awal
yaitu konstanta 01234 ditampilkan selama 500ms dan
seterusnya. Kondisi tersebut terus berulang (terjadi
looping), dikarenakan adanya while (1)pada program.
6
Lampiran foto
7
Percobaan III
Buatlah program yang menampilkan nama anda di baris pertama dan NIM anda di baris
kedua. Kedua tampilan tersebut berada di posisi tengah dan berkedip!
lcd_init(16);
while (1)
{ lcd_gotoxy(0,0);
lcd_putsf("KHUSMAH A. TYAS");
lcd_gotoxy(2,1);
lcd_putsf("P23138114051");
delay_ms(500);
lcd_clear();
delay_ms(500);
}
}
Tulis Programnya
8
Lampiran foto
9
Penjelasan
Pada percobaan III, jika ingin membuat nama dan NIM pada LCD
maka pastikan bahwa kita membuat programnya terlebih dahulu.
Sebagai contoh program nama dan NIM dapat anda lihat pada
bagian sebelumnya yaitu pada bagian Tulis programnya!
- lcd_init(16); merupakan inisialisasi LCD dengan jumlah kolom
sebesar 16 karakter
- lcd_gotoxy(0,0); merupakan Posisi display (kolom ke 0, baris
ke 0) pada LCD
- lcd_putsf("KHUSMAH A. TYAS");merupakan penulisan string atau
beberapa karakter ("KHUSMAH A. TYAS")pada program LCD
- lcd_gotoxy(2,1); merupakan Posisi display (kolom ke 2, baris
ke 1) pada LCD
- lcd_putsf("P23138114051"); merupakan penulisan string atau
beberapa karakter ("P23138114051" pada program LCD
- delay_ms(500);merupakan waktu tunda selama 500ms
- lcd_clear();merupakan untuk menghapus tampilan di LCD sesuai
dengan waktu tundanya (delay_ms)
Pada percobaan III ini, maka LCD akan menampilkan KHUSMAH A.
TYAS pada kolom ke 0 dan baris ke 0 serta P23138114051 pada
kolom ke 2 dan baris ke 1. Kedua tampilan tersebut muncul
secara bersamaan pada waktu tunda selama 500ms kemudian
tampilan tersebut akan dihapus selama 500ms kemudian tampilan
keduanya akan muncul kembali dan seterusnya. Kondisi tersebut
akan terus berulang (looping) dikarenakan adanya while (1) dan
tidak dibatasi oleh statement lain.
10
Percobaan IV
1. Buat project baru
2. Buatlah program seperti di bawah ini dimulai dari lcd_init(16)!
lcd_init(16);
lcd_gotoxy(0,0);
lcd_putsf("data");
while (1)
{ lcd_gotoxy(5,0);
lcd_putsf("TES");
delay_ms(500);
lcd_gotoxy(5,0);
lcd_putsf("OK ");
delay_ms(500);
}
}
3. Compile dan run the chip program. Perhatikan apa yang terjadi disaat PIND.2
ditekan dan dilepas. Perhatikan juga disaat PIND.3 ditekan dan dilepas! Jelaskan !
Pada pencobaan IV ini sama seperti pencobaan sebelumnya, program
memiliki #include berfungsi untuk mengatur waktu pada
program sesuai dengan keinginan kita.
Pilih Alphanumeric LCD untuk menyambungkan LED dengan program.
Untuk menggunakan fungsi-fungsi LCD, program diawali dengan
#include
lcd_init(16);
Statement diatas merupakan inisialisasi LCD. LCD yang digunakan
adalah LCD 16x2 sehingga jumblah kolomnya adalah 16.
lcd_gotoxy(0,0); => data
lcd_gotoxy(5,0); => TES
lcd_gotoxy(5,0); => OK
Statement diatas merupakan posisi display pada LCD, sehingga data akan muncul di kolom ke-0 dan baris ke-0, TES akan muncul di
kolom ke-5 dan baris ke-0, dan OK akan muncul di kolom ke-5 dan
baris ke-0. TES dan OK akan muncul bergantian.
lcd_putsf("data");
lcd_putsf("TES");
lcd_putsf("OK");
Statement diatas untuk menulis string (beberapa karakter) yang
merupakan konstanta ke LCD yaitu data, TES, dan OK.
Sehingga program akan dimulai dengan data TES selama 500ms lalu
di teruskan data OK selama 500ms lalu kembali lagi keawal dan
begitu seterusnya (looping).
11
Lampiran Foto
12
Percobaan V
#include #include #include #include int i; char y; char buff[30]; void main(void) { PORTA=0x00; DDRA=0x00; PORTB=0x00; DDRB=0x00; PORTC=0xff; DDRC=0xff; PORTD=0xff; DDRD=0x00;
Compile dan run the chip program. Perhatikan apa yang terjadi disaat PIND.2 ditekan
dan dilepas. Perhatikan juga disaat PIND.3 ditekan dan dilepas! Jelaskan !
lcd_init(16); lcd_gotoxy(0,0); lcd_putsf("Count D2="); lcd_gotoxy(0,1); lcd_putsf("Count D3="); while (1) { if ( PIND.2==0) {i++ ; while (PIND.2==0); delay_ms(500); } sprintf(buff,"%d",i); lcd_gotoxy(10,0); lcd_puts(buff); }
Pada pencobaan ini sama seperti pencobaan sebelumnya, program
memiliki #include berfungsi untuk mengatur waktu pada
program sesuai dengan keinginan kita.
PIND berfungsi sebagai input karena diberikan nilai 0.
Pilih Alphanumeric LCD untuk menyambungkan LED dengan
program.Untuk menggunakan fungsi-fungsi LCD, program diawali
dengan #include
lcd_init(16);
Statement diatas merupakan inisialisasi LCD. LCD yang
digunakan adalah LCD 16x2 sehingga jumblah kolomnya adalah 16.
lcd_gotoxy(0,0); => Count D2
lcd_gotoxy(0,1); => Count D3
Statement diatas merupakan posisi display pada LCD, sehingga Count D2 akan muncul di kolom ke-0 dan baris ke-0 dan Count D3
akan muncul di kolom ke-0 dan baris ke-1
lcd_putsf("Count D2=");
lcd_putsf("TES");
lcd_putsf("OK");
Statement diatas untuk menulis string (beberapa karakter) yang
merupakan konstanta ke LCD yaitu data, TES, dan OK.
Sehingga program akan dimulai dengan data TES selama 500ms
lalu di teruskan data OK selama 500ms lalu kembali lagi keawal
dan begitu seterusnya.
13
Lcd_putsf(Count D3=);
Statement diatas untuk menulis string (beberapa karakter)
yang merupakan konstanta ke LCD yaitu Count D2= dan Count D3=
//increment dengan tombol
{if ( PIND.2==0)
{i++ ;
while (PIND.2==0);
delay_ms(500);
}
sprintf(buff,"%d",i);
lcd_gotoxy(10,0);
lcd_puts(buff);
}
Program akan berjalan jika PIND.2 ditekan atau berfungsi
sebagai input, program akan berjalan counting up maka Count
D2 = 0 akan berjalan menjadi Count D2 = 1, dan begitu
seterudnya akan terjadi counting up tanpa batas.
14
Lampiran Foto
Percobaan VI
15
Pembatasan counting hingga keadaan tertentu {if ( PIND.2==0) {i++ ; while (PIND.2==0); delay_ms(500); } sprintf(buff,"%d",i); lcd_gotoxy(10,0); lcd_puts(buff); } if (i>=5) {PORTC=0x00; } } }
Compile dan run the chip program. Perhatikan apa yang terjadi disaat PIND.2 ditekan
dan dilepas. Perhatikan juga disaat PIND.3 ditekan dan dilepas! Jelaskan !
\
Pada pencobaan ini sama seperti pencobaan sebelumnya, program
memiliki #include berfungsi untuk mengatur waktu pada
program sesuai dengan keinginan kita.
PIND berfungsi sebagai input karena diberikan nilai 0.
Pilih Alphanumeric LCD untuk menyambungkan LED dengan
program.Untuk menggunakan fungsi-fungsi LCD, program diawali
dengan #include
lcd_init(16);
Statement diatas merupakan inisialisasi LCD. LCD yang digunakan
adalah LCD 16x2 sehingga jumblah kolomnya adalah 16.
lcd_gotoxy(0,0); => Count D2
lcd_gotoxy(0,1); => Count D3
Statement diatas merupakan posisi display pada LCD, sehingga Count D2 akan muncul di kolom ke-0 dan baris ke-0 dan Count D3
akan muncul di kolom ke-0 dan baris ke-1
lcd_putsf("Count D2=");
lcd_putsf("TES");
lcd_putsf("OK");
Statement diatas untuk menulis string (beberapa karakter) yang
merupakan konstanta ke LCD yaitu data, TES, dan OK.
16
Lcd_putsf(Count D3=);
Statement diatas untuk menulis string (beberapa karakter)
yang merupakan konstanta ke LCD yaitu Count D2= dan Count D3=
{if ( PIND.2==0) {i++ ;
while (PIND.2==0);
delay_ms(500);
}
sprintf(buff,"%d",i);
lcd_gotoxy(10,0);
lcd_puts(buff);
}
if (i>=5)
{PORTC=0x00;
}
}
Program akan berjalan jika PIND.2 ditekan atau berfungsi
sebagai input, program akan berjalan counting up maka count
D2 = 0 akan berjalan menjadi Count D2 = 1, dan akan couting
up seterusnya. Pada saat count D2= 5 dan seterusnya PINC.0
sampai PINC.7 akan menyala semua karena diberi nilai 0/aktif
low.
17
Lampiran Foto
18
Percobaan VII
//counting up dan counting down dimanapada angka 5 muncul ok dan selain itu OK.nya HILANG if ( PIND.2==0) {i++ ; while (PIND.2==0){} delay_ms(500); } if ( PIND.3==0) {i-- ; while (PIND.3==0){} delay_ms(500); } if(i
19
Compile dan run the chip program. Perhatikan apa yang terjadi disaat PIND.2 ditekan
dan dilepas. Perhatikan juga disaat PIND.3 ditekan dan dilepas! Jelaskan !
Pada pencobaan VII ini, sama seperti pencobaan sebelumnya,
program memiliki #include berfungsi untuk mengatur waktu
pada program sesuai dengan keinginan kita.
PIND berfungsi sebagai input karena diberikan nilai 0.
Pilih Alphanumeric LCD untuk menyambungkan LED dengan
program.Untuk menggunakan fungsi-fungsi LCD, program diawali
dengan #include
lcd_init(16);
Statement diatas merupakan inisialisasi LCD. LCD yang digunakan
adalah LCD 16x2 sehingga jumblah kolomnya adalah 16.
lcd_gotoxy(0,0); => Count D2
lcd_gotoxy(0,1); => Count D3
Statement diatas merupakan posisi display pada LCD, sehingga Count D2 akan muncul di kolom ke-0 dan baris ke-0 dan Count D3 akan
muncul di kolom ke-0 dan baris ke-1
lcd_putsf("Count D2=");
Lcd_putsf(Count D3=);
Statement diatas untuk menulis string (beberapa karakter) yang
merupakan konstanta ke LCD yaitu Count D2= dan Count D3=
Program akan berjalan jika PIND.2 ditekan atau berfungsi sebagai
input, program akan berjalan counting up maka Count D2 = 0 akan
berjalan menjadi Count D2 = 1 tanpa ada tulisan OK lalu pada saat
Count D2=5 maka tulisan OK akan muncul lalu selanjutnya Count
D2=6 tulisan OK akan hilang lagi
Lalu jika PIN.D 3 ditekan atau berfungsi sebagai input, program
akan berjalan counting down.
20
Lampiran Foto