Disusun oleh :
Indah Kusuma Wardani ( P27838015024 )
Rizki Ayu Shalekhah ( P27838015026 )
Isabella Ratna Mustika Dewi ( P27838015030 )
BAB I
TEORI DASAR
1. Pengertian LCD Karakter
Mendebug program
Menampilkan pesan
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.
Fungsi LCD terletak pada header alcd.h yang di-include-kan secara langsung
pada saat membangkitkan program dengan codewizard yaitu #include <alcd.h>
b. void lcd_clear(void)
Menghapus layar LCD dan meletakkan posisi karakter pada baris ke-0 kolom
ke-0.
d. void lcd_putchar(char c)
PEMBAHASAN
1.
START
Inisialisasi
#include
<mega8535.h>
#include <delay.h>
#include <lcd.h>
PORT C sebagai
input
DDRC=0x00;
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");
Menulis karakter
untuk dimuncullkan
pada LCD
lcd_putsf("Di
Pelatihan AVR");
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. 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>
#include <alcd.h>
void main(void)
(program utama)
PORTC=0x00;
DDRC=0x00;
lcd_init(16);
while (1)
(mengunci program)
{/
lcd_gotoxy(0,0);
lcd_putsf("Selamat Datang");
lcd_gotoxy(0,1);
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();
};
}}
(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>
void main(void)
(program utama)
PORTB=0xFF;
lcd_init(16);
lcd_clear();
while (1)
{/
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);
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>
#include <stdlib.h>
unsigned char i;
void main(void)
(program utama)
PORTB=0xFF;
DDRB=0x00;
lcd_init(16);
while (1)
while(PINB.2==1)
if (PINB.0==0)
lcd_clear();
i++;
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");
}}
(mengakhiri program)
BAB III
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
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