Anda di halaman 1dari 26

LAPORAN PRATIKUM

PERCOBAAN LCD KARAKTER 2 X 16


LABORATORIUM MIKROKONTROLLER

Triana Rahmawati , ST , M.Eng

Anita Miftahul Maghfiroh , SST

Syevana Dita Musvika , SST

Disusun oleh :
Indah Kusuma Wardani ( P27838015024 )
Rizki Ayu Shalekhah ( P27838015026 )
Isabella Ratna Mustika Dewi ( P27838015030 )

POLITEKNIK KESEHATAN KEMENKES SURABAYA


JURUSAN TEKNIK ELEKTROMEDIK
TAHUN 2016

BAB I

TEORI DASAR
1. Pengertian LCD Karakter

Display elektronik adalah salah satu komponen elektronika yang berfungsi


sebagai tampilan suatu data, baik karakter, huruf ataupun grafik. LCD (Liquid Cristal
Display) adalah salah satu jenis display elektronik yang dibuat dengan teknologi
CMOS logic yang bekerja dengan tidak menghasilkan cahaya tetapi memantulkan
cahaya yang ada di sekelilingnya terhadap front-lit atau mentransmisikan cahaya dari
back-lit. LCD (Liquid Cristal Display) berfungsi sebagai penampil data baik dalam
bentuk karakter, huruf, angka ataupun grafik.

2. Fungsi LCD Karakter


Fungsi LCD dalam suatu aplikasi microcontroller sangat penting sekali . diantaranya
untuk :

 Memastikan data yang kita input valid/benar

 Mengetahui hasil suatu proses

 Memonitoring suatu proses

 Mendebug program

 Menampilkan pesan

3. Macam-macam PIN pada LCD

Jalur EN dinamakan Enable. Jalur ini digunakan untuk memberitahu LCD


bahwa anda sedang mengirimkan sebuah data. Untuk mengirimkan data ke LCD,
maka melalui program EN harus dibuat logika low “0” dan set pada dua jalur kontrol
yang lain RS dan RW. Ketika dua jalur yang lain telah siap, set EN dengan logika “1”
dan tunggu untuk sejumlah waktu tertentu ( sesuai dengan datasheet dari LCD
tersebut ) dan berikutnya set EN ke logika low “0” lagi.

Jalur RS adalah jalur Register Select. Ketika RS berlogika low “0”, data akan
dianggap sebagi sebuah perintah atau instruksi khusus ( seperti clear screen, posisi
kursor dll ). Ketika RS berlogika high “1”, data yang dikirim adalah data text yang
akan ditampilkan pada display LCD. Sebagai contoh, untuk menampilkan huruf “T”
pada layar LCD maka RS harus diset logika high “1”.

Jalur RW adalah jalur kontrol Read/ Write. Ketika RW berlogika low (0),
maka informasi pada bus data akan dituliskan pada layar LCD. Ketika RW berlogika
high ”1”, maka program akan melakukan pembacaan memori dari LCD. Sedangkan
pada aplikasi umum pin RW selalu diberi logika low ”0”.

Pada akhirnya, bus data terdiri dari 4 atau 8 jalur ( bergantung pada mode
operasi yang dipilih oleh user ). Pada kasus bus data 8 bit, jalur diacukan sebagai
DB0 s/d DB7.

4. Fungsi – fungsi untuk mengakses program LCD

Fungsi LCD terletak pada header alcd.h yang di-include-kan secara langsung
pada saat membangkitkan program dengan codewizard yaitu #include <alcd.h>

Fungsi-fungsi untuk mengakses LCD diantaranya adalah :

a. unsigned char lcd_init(unsigned char lcd_columns)

Untuk menginisialisasi modul LCD, menghapus layar dan meletakkan posisi


karakter pada baris ke-0 kolom ke-0. Jumlah kolom pada LCD harus disebutkan
(misal, 16). Kursor tidak ditampakkan. Nilai yang dikembalikan adalah 1 bila modul
LCD terdeteksi, dan bernilai 0 bila tidak terdapat modul LCD. Fungsi ini harus
dipanggil pertama kali sebelum menggunakan fungsi yang lain.

b. void lcd_clear(void)

Menghapus layar LCD dan meletakkan posisi karakter pada baris ke-0 kolom
ke-0.

c. void lcd_gotoxy(unsigned char x, unsigned char y)


Meletakkan posisi karakter pada kolom ke-x baris ke-y. Nomor baris dan
kolom dimulai dari nol.

d. void lcd_putchar(char c)

Menampilkan karakter c pada LCD.

e. void lcd_puts(char *str)

Menampilkan string yang disimpan pada SRAM pada LCD.


BAB II

PEMBAHASAN

A. TABEL KEBENARAN DAN GAMBAR RANGKAIAN

Gambar 2.1 LCD Karakter 16x2

Tabel 2.1 Tabel PIN pada LCD


Gambar 2.2 Lokasi Memory Display pada LCD Karakter

Gambar 2.3 Konfigurasi Codevision dan Koneksi Hardware


B. FLOW CHART

1.
START

Inisialisasi
#include
<mega8535.h>
#include <delay.h>
#include <lcd.h>

PORT C sebagai
input
DDRC=0x00;

Kodisi awal PORT C


dalam keadaan nyala
PORT C=0x00;
Inisialisasi LCD
lcd_init(16);

Menulis karakter
untuk dimuncullkan
Menghapus layar dan
Mengatur
pada LCDkolom
memposisikan dan
pada
baris pada LCD
lcd_putsf("Di
lcd_putsf("Selamat
x=0, y=0
delay_ms(500);
lcd_gotoxy(0,1);
Pelatihan
Datang"); AVR");
lcd_clear();
Mengatur kolom dan
baris pada LCD
lcd_gotoxy(0,0);

Menulis karakter
untuk dimuncullkan
pada LCD
lcd_putsf("Selamat
Datang");

Mengatur kolom dan


baris pada LCD
lcd_gotoxy(0,1);

Menulis karakter
untuk dimuncullkan
pada LCD
lcd_putsf("Di
Pelatihan AVR");

delay_ms(500);

Menghapus layar dan


memposisikan pada
x=0, y=0
lcd_clear();

Penjelasan:

Awal program mulai pertama kita masukkan daftar fungsi yang akan kita
gunakan yaitu’ #include <mega8535.h>, #include <delay.h>, #include <lcd.h> ‘ agar
dapat didefinisikan oleh kompilator. Selanjutnya mengatur konfigurasi PortC input
dengan mengirimkan data heksa 0x00. Mengatur konfigurasi PortC dalam keadaan
awal nyala semua/dengan pull up 0 dengan mengirimkan data heksa 0x00.
Menginialisasi lcd dengan memasukkan jumlah kolom maksimum dari lcd supaya
karakter yang muncul tidak melebihi jumlah kolom yang telah diinialisasi. Setelah itu
mengatur kolom ke-x baris ke-y pada lcd untuk memunculkan karakter pada baris
pertama. Lalu menuliskan karakter yang akan dimunculkan pada lcd dengan
menuliskan kata dengan jumlah kurang dari 16 karakter. Mengatur kolom dan baris
lain untuk memunculkan karakter lain pada baris kedua. Mengatur waktu tunda untuk
lcd dalam memunculkan karakter. Meletakkan posisi karakter pada kolom ke-x baris
ke-y. Nomor baris dan kolom dimulai dari nol.

 Listing Program
Pada percobaan ini akan mencetak karakter pada baris ke 1

#include <mega8535.h>

(header; memasukkan definisi register I/O dan vector interrupt pada atmega)

#include <delay.h>

(header; menghasilkan delay)

#include <alcd.h>

(header; mengaktifkan program lcd)

// Declare your global variables here

void main(void)

(program utama)

PORTC=0x00;

(menginisialisasi output PORTC dengan pull up “0”)

DDRC=0x00;

(mengkonfigurasi PORTC sebagai input)

lcd_init(16);

(menyebutkan banyak kolom pada LCD)

while (1)

(mengunci program)
{/

/ Place your code here

lcd_gotoxy(0,0);

lcd_putsf("Selamat Datang");

lcd_gotoxy(0,1);

lcd_putsf("Di Pelatihan AVR");

delay_ms(500);

(Menampilkan tulisan “Selamat Datang” yang dimulai dari kolom ke 0 pada baris
pertama dan “Di pelatihan AVR pada baris kedua dengan delay 0,5sekon)

lcd_clear();

(membersihkan layar LCD)

};

}}

(mengakhiri program)

2.
START

Inisialisasi
#include
<mega8535.h>
#include <delay.h>
#include <lcd.h>

Inisialisasi PORT B
pull up ‘1’
PORT B=0xFF;

PORT B sebagai
Inisialisasi
input LCD
lcd_init(16);
DDRB=0x00;
lcd_clear();
no
If PIN
B(1==0)

yes
Karakter yang
muncul pada lcd
Karakter muncul
adalah pada perintah
pada lcd dengan
else
kolom ke-x baris ke-y
}
lcd_clear();
else
lcd_gotoxy(0,0);
{
lcd_putsf("Selamat
lcd_clear();
Datang");
lcd_gotoxy(0,0);
lcd_putsf("Tekan SW
1/ SW 2");
Delay_ms(250);
Delay_ms(250);
no
Else if PIN
B(2==0)

yes

Karakter muncul
pada lcd dengan
kolom ke-x baris ke-y
lcd_clear();
lcd_gotoxy(0,0);
lcd_putsf("Pelatihan
AVR");

Delay_ms(250);

Penjelasan:
Awal program mulai pertama kita masukkan daftar fungsi yang akan kita
gunakan yaitu’ #include <mega8535.h>, #include <delay.h>, #include <lcd.h> ‘ agar
dapat didefinisikan oleh kompilator. Menginialisasi PortB dengan pull up ‘1’.
Selanjutnya mengatur konfigurasi PortB sebagai input dengan mengirimkan data
heksa 0x00. Menginialisasi lcd dengan memasukkan jumlah kolom maksimum dari
lcd supaya karakter yang muncul tidak melebihi jumlah kolom yang telah diinialisasi.
Jika menekan push button 1, maka dalm lcd akan muncul kata selamat datang pada
kolom-x dan baris-y yang telah dituliskan dengan jeda waktu yang telah diatur.
Apabila push button 1 tidak ditekan maka akan muncul karakter tekan sw 1/sw2/else.
Jika menekan push button kedua maka akan muncul karakter pada lcd bertuliskan
pelatihan AVR pada kolom-x dan baris-y yang telah dituliskan dengan jeda waktu
yang telah diatur. Apabila push button kedua tidak ditekan maka maka akan muncul
karakter sw1/sw2/else.

 Listing Program
#include <mega8535.h>

(header; memasukkan definisi register I/O dan vector interrupt pada atmega)

#include <delay.h>

(header;menghasilkan delay)

#include <alcd.h>

(mengaktifkan program lcd)

// Declare your global variables here

void main(void)

(program utama)

PORTB=0xFF;

(inisialisasi PORTB sebagai input dengan pull up “1”)


DDRB=0x00;

(konfigurasi PORTB sebagai input)

lcd_init(16);

(menyebutkan banyak kolom pada lcd karakter)

lcd_clear();

(membersihkan karakter pada lcd)

while (1)

{/

/ Place your code here

if (PINB.1==0)

lcd_clear();

lcd_gotoxy(0,0);

lcd_putsf("Selamat Datang");

delay_ms(250);

(Ketika pushbutton kedua ditekan maka akan muncul karakter “selamat datang” pada
baris 1 dengan delay 0,25s)

else if (PINB.2==0)

lcd_clear();

lcd_gotoxy(0,0);

lcd_putsf("Pelatihan AVR");

delay_ms(250);
}

(ketika pushbutton ketiga ditekan maka akan muncul karakter “Pelatihan avr” pada
baris 1 dengan delay 0,25s)

else

lcd_clear();

lcd_gotoxy(0,0);

lcd_putsf("Tekan SW1/ SW2");

delay_ms(250);

(ketika tidak ada pin yang ditekan maka akan muncul tulisan “Tekan SW1/SW2 pada
baris pertama dengan delay 0,25s)

3.
START

Inisialisasi
#include
<mega8535.h>
#include <delay.h>
#include <lcd.h>
#include <stdlib.h>

Memasukkan tipe
data dan jumlah
karakter maksimum
yang muncul pada lcd

unsigned char i;
unsigned char
temp[3];

Inisialisasi PORT B
pull up ‘1’
PORT B=0xFF;

PORT B sebagai
input
DDRB=0x00;
If
while(PIN
Inisialisasi LCD
(PINB.0==
B.2==1)
lcd_init(16);
0
lcd_clear();
Delay_ms(500);
no
while(PIN
B.2==1)

Karakter muncul
yes pada lcd dengan
kolom ke-x baris ke-y
lcd_gotoxy(0,0);
lcd_putsf("Selesai");
no If
(PINB.1==
0

Menampilkan
karakter yang sama
yes

Karakter muncul
pada lcd dengan
kolom ke-x baris ke-y
dan increase
{
f (PINB.0==0)
{
lcd_clear();
i++;
itoa(i,temp);
lcd_gotoxy(0,0);
lcd_puts(temp);

Delay_ms(500);

no
If
Karakter muncul
(PINB.1==
pada lcd0 dengan
kolom ke-x baris ke-y
dan decrease Menampilkan
{ karakter yang sama
f (PINB.0==0) yes
{
lcd_clear();
i--;
itoa(i,temp);
lcd_gotoxy(0,0);
lcd_puts(temp);
Delay_ms(500);

Penjelasan:

Awal program mulai pertama kita masukkan daftar fungsi yang akan kita
gunakan yaitu’ #include <mega8535.h>, #include <delay.h>, #include <lcd.h> ‘ agar
dapat didefinisikan oleh kompilator. Mengatur tipe data yang akan digunakan dalam
pogram (unsigned char i) dan mengatur jumlah maksimum karakter yang keluar dari
lcd (unsigned char tempt[3]). Menginialisasi PortB dengan pull up ‘1’. Selanjutnya
mengatur konfigurasi PortB sebagai input dengan mengirimkan data heksa 0x00.
Menginialisasi lcd dengan memasukkan jumlah kolom maksimum dari lcd supaya
karakter yang muncul tidak melebihi jumlah kolom yang telah diinialisasi. Jika
menekan push button 1, maka dalm lcd akan muncul konversi bilangan data ke
bilangan lcd (ito(i,temp)) dan increase pada kolom-x dan baris-y yang telah dituliskan
dengan jeda waktu yang telah diatur. Apabila push button 1 tidak ditekan maka akan
muncul karakter terakhir yang telah ditekan sebelumnya. Jika menekan push button
kedua akan muncul konversi bilangan data ke bilangan lcd (ito(i,temp)) dan decrease
pada kolom-x dan baris-y yang telah dituliskan dengan jeda waktu yang telah diatur.
Apabila push button kedua tidak ditekan maka akan muncul karakter terakhir yang
telah ditekan sebelumnya. Fungsi penulisan while pada program adalah untuk
mengunci program. Apabila push button ketoga ditekan maka akan muncul karakter
selesai pada baris-y dan kolom-x.
 Listing Program
#include <mega8535.h>

(header; memasukkan definisi register I/O dan vector interrupt pada atmega)

#include <delay.h>

(header;menghasilkan delay)

#include <alcd.h>

(mengaktifka program lcd)

#include <stdlib.h>

(standart library; mengeluarkan karakter yang tersimpan dalam library codevision)

// Declare your global variables here

unsigned char i;

(pendefinisian variable tipe data dengan range 0-255)

unsigned char temp[3];

(mengeluarkan karakter maksimal 3 digit)

void main(void)

(program utama)

PORTB=0xFF;

(inisialisasi PORT B sebagai input dengan pull up “1”)

DDRB=0x00;

(konfigurasi PORTB sebagai input)

lcd_init(16);

(menyebutkan jumlah kolom lcd)


lcd_clear();

(membersihkan karakter pada lcd)

while (1)

while(PINB.2==1)

(selama pushbutton ketiga tidak ditekan)

if (PINB.0==0)

(jika pushbutton pertama ditekan)

lcd_clear();

i++;

itoa(i,temp); (integer to ascii; konversi bilangan data ke bilangan lcd)

lcd_gotoxy(0,0);

lcd_puts(temp);

delay_ms(500);

(memunculkan angka dari 0 pada baris ke 1 kolom ke 1, jika ditekan maka angka
akan bertambah)

else if (PINB.1==0)

lcd_clear();

i--;

itoa(i,temp);
lcd_gotoxy(0,0);

lcd_puts(temp);

delay_ms(500);

(memunculkan angka dari sekian pada baris ke 1 kolom ke 1, jika ditekan maka
angka akan berkurang)

}}

lcd_gotoxy(0,0);

lcd_putsf("Selesai");

(pushbutton ketiga ditekan maka akan muncul tulisan selesai)

}}

(mengakhiri program)
BAB III

HASIL DAN ANALISA

3.1 Analisa Pembahasan

Pada percobaan kali ini akan menggunakan LCD karakter 2 x 16, dengan
interface pada PORT C. Percobaan pertama yaitu percobaan cetak karakter pada
baris 1, dimana pada LCD akan muncul tulisan tanpa menggunakan pushbutton.
Percobaan kedua adalah percobaan cetak karakter interaksi dengan saklar.
Pada percobaan ini interaksi cetak karakter dilakukan dengan penekanan pada
sebuah saklar yang terhubung pada PORTB.
Percobaan ketiga yaitu percobaan simulasi setting UP/DN dan ENTER pada
LCD karakter, dimana pada percobaan ini interaksi karakter dengan
menggunakan beberapa pushbutton seperti PB0 digunakan sebagai setting UP,
PB1 digunakan sebagai setting DOWN, PB2 digunakan sebagai setting untuk
tombol ENTER.
3.2 Kesimpulan
Dari percobaaan diatas dapat disimpulkan bahwa dalam memprogram LCD
diperlukan #include<alcd.h> , dan LC PORT disetting PORTC, dan chart line
disetting 16, dan pada port B harus di pull up.LCD yang kita gunakan untuk
pratikum memiliki karakter 2 x 16 artinya LCD tersebut memiliki 2 baris dan 16
kolom. Untuk megakses LCD kita harus tau fungsi dari masing – masing karakter
serta pin – pin dari LCD. Dalam mengakses LCD kita juga menggunakan
PORTB sebagai inputan.Dalam percobaan terdapat fungsi itoa yaitu fungsi untuk
mengkonversi integer argument menjadi nilai bertipe string.
Langkah – Langkah Percobaan

1. Buka program AVR


2. Ketik new – pilih project – pilih ATMega – lalu atur chip dan port B, C dan D
Nb : konfigurasikan codevisioan pada LCD dan PORT B

3. Pilih program – pilih ketik kan nama file pada folder baru dengan nama sama
sebanyak tiga kali
4. Tulis program yang akan dijalankan pada mikro

5. Pilih compile untuk mengecek apakah program yang telah kita buat ada error
atau tidak, jika ada error klik pada program yang terjadi error lalu secara
otomatis akan menunjukkan bagian program mana yang terjadi error. Apabila
tidak terjadi error lalu pilih build all
6. Pasang downloader pada minimum system lalu pasang power supply pada
minimum system
7. Buka program ISP. Lalu lihat pada ISP pada bagian program ISP berwarna hjau
atau tidak, jika berwarna hijau maka downloader dan minsys kita telah terhubung
dengan PC/laptop, apabila tidak berwarna hijau maka teliti kembali sambungan
downloader dan power supply pada mniimum system
8. Untuk menjalankan program pada minsys, klik erase untuk menghilangkan
program yang sebelumnya - klik load flash – pilih fuile yang akan dijalankan
yang mempunyai nama file hex. – klik auto

9. Lihat pada minsys apakah program yang dimasukkan sesuai dengan apa yang
ada pada minsys
DAFTAR PUSTAKA

[1] Petunjuk Pratikum AVR – Triwiyanto – mytutorialcafe.com


[2] http://elektronika-dasar.web.id/lcd-liquid-cristal-display/
[3] http://elektronikasystem.blogspot.co.id/2014/07/menampilkan-karakter-
pada-lcd-16-x-2.html

Anda mungkin juga menyukai