LCD KARAKTER 2 x 16
DOSEN: Triwiyanto, S.Si, MT
OLEH:
Ainul Fitroh Istiadzah (P27838012076)
POLTEKKES KEMENKES SURABAYA
JURUSAN TEKNIK ELEKTROMEDIK SURABAYA
2013
LAPORAN PERCOBAAN
LCD KARAKTER 2 X 16
1. Gambar Rangkaian
Penjelasan :
Pada percobaab kali ini kita menggunakan lcd character 2x16 yang
berarti mempunyai lebar display 2 baris dan 16 kolom , lcd ini memiliki 16 pin
2. Flowcart
a) Percobaan I
START
Inisialisasi
PORTC
lcd_gotoxy(0,0);
lcd_putsf("Selamat Datang");
lcd_gotoxy(0,1);
lcd_putsf("Di Pelatihan AVR");
delay_ms(500);
lcd_clear();
E N D
b) Percobaan II
lcd_clear();
lcd_gotoxy(0,0);
lcd_putsf("SW Belum Ditekan");
delay_ms(250);
START
Inisialisasi
PORTB,PORT
C
PINB.1==0
lcd_clear();
lcd_gotoxy(0,0);
lcd_putsf("Selamat Datang");
delay_ms(250);
PINB.2==0
lcd_clear();
lcd_gotoxy(0,0);
lcd_putsf("Pelatihan AVR");
delay_ms(250);
E N D
c) Percobaan III
START
Inisialisasi
PORTB,PORT
C
PINB.2==1
lcd_gotoxy(0,0);
lcd_putsf("Selesai");
PINB.0==0
lcd_clear();
i++;
itoa(i,temp);
lcd_gotoxy(0,0);
lcd_puts(temp);
delay_ms(500);
PINB.1==0
lcd_clear();
i--;
itoa(i,temp);
lcd_gotoxy(0,0);
lcd_puts(temp);
delay_ms(500);
E N D
3. Program
a. Percobaan I
#include <mega8535.h> // mendeklarasikan sistem AVR.
#include <delay.h> // Perintah delay berfungsi agar memasukkan
suatu jeda atau yang ada sutu jeda atau waktu
. tunggu.
#asm
.equ __lcd_port=0x15 ;PORTC
#endasm
#include <lcd.h> // Program di tampilkan ke LCD
void main(void)
{
PORTC=0x00; // kondisi PORTC menyala yaitu mendapat
logika 0
DDRC=0x00; // PORTC sebagai input
lcd_init(16); // jumlah pin dalam lcd sebanyak 16
while (1)
{
{
lcd_gotoxy(0,0); // posisi karakter pada kolom ke x dan baris
lcd_putsf("Selamat Datang"); ke y disini dijelaskan pada kolom 0 dan
baris 0.
lcd_gotoxy(0,1); // posisi karakter pada kolom ke x dan baris
lcd_putsf("Di Pelatihan AVR"); baris ke y disini dijelaskan pada kolom 0
dan baris 1.
delay_ms(500); // waktu tunda untuk karatter ditampilkan
oleh lcd yaitu 500 milisecon.
lcd_clear();
};
}} // pada prrogram ini lcd akan menampilkan
karakter pada waktu 500 ms.
b. Percobaan 2
#include <mega8535.h> // mendeklarasikan sistem AVR.
#include <delay.h> // Perintah delay berfungsi agar memasukkan
suatu jeda atau yang ada sutu jeda atau
waktu tunggu.
#asm
.equ __lcd_port=0x15 ;PORTC
#endasm
#include <lcd.h> // Program di tampilkan ke LCD
void main(void)
{
PORTB=0xFF; // PORTB dalam mendapat logika 1.
DDRB=0x00; // perintah untuk PORTB sebagai input.
lcd_init(16); // menjelaskan bahwa lcd terdapat 16 pin
lcd_clear(); //
while (1)
{
if (PINB.1==0) // jika SW2 ditekan atau mendapat logika 0
{ maka pada kordinat (0,0) akan tampil
karakter
lcd_clear(); ("Selamat Datang") dengan waktu tunda
selama
lcd_gotoxy(0,0); 250 milisekon
lcd_putsf("Selamat Datang");
delay_ms(250);
}
else if (PINB.2==0) // jika SW3 ditekan atau mendapat logika 0,
{ maka pada kordinat (0,0) akan tampil
Karakter ("Pelatihan AVR") dengan
lcd_clear(); waktu tunda 250 milisekon.
lcd_gotoxy(0,0);
lcd_putsf("Pelatihan AVR");
delay_ms(250);
}
Else // apabila SW tidak ada yang ditekan yang
{ berarti semua SW berlogika 1, maka
lcd_clear(); pada kordinat (0,0) akan tampil karakter
lcd_gotoxy(0,0); ("SW Belum Ditekan") dengan waktu
lcd_putsf("SW Belum Ditekan"); tunda 250 milisekon.
delay_ms(250);
}
}}
c. Percobaan 3
#include <mega8535.h> // mendeklarasikan sistem AVR.
#include <delay.h> // Perintah delay berfungsi agar
memasukkan suatu jeda atau yang ada
suatu jeda atau waktu tunggu.
#include <stdlib.h>
#asm
.equ __lcd_port=0x15 ;PORTC
#endasm
#include <lcd.h>
unsigned char i;
unsigned char temp[3];
void main(void)
{
PORTB=0xFF; // kondisi awal PORTB mendapat logika 1
DDRB=0x00; // perintah untuk PORTB sebagai input
lcd_init(16); // lcd yang digunakan terdapat 16 pin.
lcd_clear();
while (1)
{
while(PINB.2==1)
{i
f (PINB.0==0) // jika SW1 mendapat logika 0 atau
{ ditekan maka pada kordinat (0,0)
lcd_clear(); akan tampil angka dan apabila SW1
i++; terus ditekan maka jumlahnya akan
itoa(i,temp); terus bertambah dengan waktu tunda
lcd_gotoxy(0,0); 500 ms.
lcd_puts(temp);
delay_ms(500);
}
else if (PINB.1==0) // jika SW2 mendapat logika 0 atau
{ ditekan maka pada kordinat (0,0)
lcd_clear(); akan tampil angka dan apabila SW2
i--; terus ditekan maka jumlahnya akan
itoa(i,temp); terus berkurang dengan waktu tunda
lcd_gotoxy(0,0); 500 ms.
lcd_puts(temp);
delay_ms(500);
}}
lcd_gotoxy(0,0); // Apabila tidak ada SW yang ditekan
lcd_putsf("Selesai"); maka pada kordinat (0,0) akan
}} tampil karakter ("Selesai").
4. Simulasi
a. Percobaan 1
b. Percobaan 2
c. Percobaan 3