Anda di halaman 1dari 12

MIKROKONTROLLER AVR

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

Anda mungkin juga menyukai