Anda di halaman 1dari 15

JOBSHEET V

ANTARMUKA MIKROKONTROLER DENGAN PENAMPIL LCD


(Liquid Crystal Display)

Tugas Laporan Praktikum Mikrokontroler

Oleh :
Nama : Oditya Andalas P
NIM : 210536615228
Prodi : S1 Teknik Elektro
Offering :B

UNIVERSITAS NEGERI MALANG


FAKULTAS TEKNIK
DEPARTEMEN TEKNIK ELEKTRO
OKTOBER 2022
JOBSHEET V
ANTARMUKA MIKROKONTROLER DENGAN PENAMPIL LCD
(Liquid Crystal Display)

TUJUAN

 Mengetahui dan memahami cara mengantarmukakan mikrokontroler dengan modul


penampil LCD.
 Mengetahui dan memahami bagaimana memrogram mikrokontroler untuk menampil-
kan karakter ke penampil LCD.

LCD M1632

Modul LCD M1632 seperti dalam Gambar 5.1 merupakan modul LCD dengan
tampilan 16 x 2 baris dengan konsumsi daya yang rendah. Modul ini dilengkapi dengan
mikrokontroler yang didisain khusus untuk mengendalikan LCD. Mikrokontroler HD44780
buatan Hitachi yang berfungsi sebagai pengendali LCD ini mempunyai CGROM (Character
Generator Read Only Memory), CGRAM (Character Generator Random Access Memory), dan
DDRAM (Display Data Random Access Memory).

Gambar 5.1 Modul LCD M1632

LCD ini memiliki 16 kaki, sebagaimana ditunjukkan dalam Tabel 6.1.

Tabel 5.1 Konfigurasi Pin LCD M1632


No Kaki Deskripsi
1 Vss 0V (GND)
2 Vcc +5V
3 VLC LCD Contrast Voltage
4 RS Register Select; H: Data Input; L: Instruction
Input
5 RD H:Read; L: Write
6 EN Enable Signal
7 D0 Data Bus 0
8 D1 Data Bus 1
9 D2 Data Bus 2
10 D3 Data Bus 3
11 D4 Data Bus 4
12 D5 Data Bus 5
13 D6 Data Bus 6
14 D7 Data Bus 7
15 V+BL Positive Backlight Voltage
16 V-BL Negative Backlight Voltage
DDRAM
DDRAM adalah merupakan memori tempat karakter yang ditampilkan berada.
Contoh, untuk karakter ‘A’ atau 41H yang ditulis pada alamat 00, maka karakter tersebut
akan tampil pada baris pertama dan kolom pertama dari LCD. Apabila karakter tersebut
ditulis di alamat 40, maka karakter tersebut akan tampil pada baris kedua kolom pertama
dari LCD. Posisi ini ditunjukkan dalam Gambar 5.2.

Gambar 5.2 Posisi DDRAM


CGRAM
CGRAM adalah merupakan memori untuk menggambarkan pola sebuah karakter
di mana bentuk dari karakter dapat diubah-ubah sesuai keinginan. Namun memori ini
akan hilang saat power supply tidak aktif, sehingga pola karakter akan hilang.

CGROM
CGROM adalah merupakan memori untuk menggambarkan pola sebuah karakter di
mana pola tersebut sudah ditentukan secara permanen dari HD44780 sehingga pengguna
tidak dapat mengubah lagi. Namun karena ROM bersifat permanen, maka pola karakter
tersebut tidak akan hilang walaupun power supply tidak aktif. Pada Gambar 6.3, tampak
terlihat pola-pola karakter yang tersimpan dalam lokasi-lokasi tertentu dalam CGROM.
Pada saat HD44780 akan menampilkan data 41H ke DDRAM, maka HD44780 akan
mengambil data di alamat 41H (0100 0001) yang ada pada CGROM yaitu pola karakter
A.

Dalam Gambar 5.4 modul LCD dihubungkan ke PORTB mikrokontroler dimana kaki
RS, RD, EN terhubung ke PORTB.0-PORTB.2 dan D4, D5, D6, D7 terhubung ke
PORTB.4-PORTB.7.
Gambar 5.3 pola Karakter dalam CGROM

Gambar 5.4 Rangkaian LCD

ALAT DAN BAHAN YANG DIGUNAKAN

 1 set PC/Laptop yang sudah berisi program Code Vision dan Khazama
 1 buah catu daya DC +5V
 1 buah multimeter
 1 buah ISP Downloader AVR
 1 buah sistem minimum AVR
 1 buah LCD
 1 buah kabel printer USB
PROSEDUR

1. Rangkailah peralatan yang diperlukan seperti dalam Gambar 6.5. Hubungkan soket
jumper PORTB pada minimum system dengan soket jumper pada LCD.

Kabel Kabel LCD


Kabel USB downloader Minimum LCD
ISP Downloader
system AVR

Gambar 5.5 Rangkaian antarmuka mikrokontroler dengan LCD

2. Buka program Code Vision AVR


3. Buatlah file project (.prj) kemudian pilih IC yang digunakan (ATmega8535) dan atur
clock 4.000 Mhz. (seperti praktikum sebelumnya)
4. Klik sub tab Libraries>>Alphanumeric LCD (alcd.h). Centang Enable Alphanumeric
LCD Support kemudian sesuaikan pada gambar di bawah ini. Kemudian klik OK

5. Buatlah file source (.c) kemudian hubungkan file project dengan file source seperti
pada praktikum sebelumnya.

6. Tuliskan file header

7. Buatlah program utama dan tuliskan program berikut di dalam program utama .
8. Tuliskan program berikut dalam program utama tepatnya di dalam while(1).

9. Compile dan Build program jika ada yang error perbaiki program. Masukkan file
hex menggunakan Khanzama AVR Programer. Klik auto program, amati tampilan
LCD.
10. Hapus program yang ada di dalam while. Tuliskan program berikut di dalam while(1).

11. Compile dan Build program jika ada yang error perbaiki program. Masukkan file
hex menggunakan Khanzama AVR Programer. Klik auto program, amati tampilan
LCD.
12. Hapus program yang ada di dalam while. Tuliskan program berikut di dalam
while(1). while (1)
{
lcd_gotoxy(0,0);//menempatkan kursor di baris 0 kolom 0
lcd_putsf("Saya belajar");//menampilkan string “Saya belajar”
}
13. Compile dan Build program jika ada yang error perbaiki program. Masukkan file hex
menggunakan Khanzama AVR Programer. Klik auto program, amati tampilan LCD.
14. Hapus program yang ada di dalam while. Tuliskan program berikut di dalam while( 1).

15. Compile dan Build program jika ada yang error perbaiki program. Masukkan file hex
menggunakan Khanzama AVR Programer. Klik auto program, amati tampilan LCD.
16. Hapus program yang ada di dalam while. Tuliskan program berikut di dalam while(1).

17. Compile dan Build program jika ada yang error perbaiki program. Masukkan file hex
menggunakan Khanzama AVR Programer. Klik auto program, amati tampilan LCD.
18. Buatlah tampilan nama anda berjalan dari kiri ke kanan pada baris 0 dan NIM anda
berjalan dari kanan ke kiri pada baris 1 (tampidlan di baris 0 dan 1 muncul secara
bersamaan).
19. Ubahlah nilai dalam lcd_init(16) menjadi lcd_init(40) dan lihat perbedaannya.

DATA HASIL PERCOBAAN

1. Tampilan LCD pada langkah percobaan nomor 8

#include <mega8535.h>
#include <alcd.h>
#include <delay.h>
void main()
{
lcd_init(16);

while(1)
{
lcd_gotoxy(0,0);
lcd_putchar(0x41);
}
}

Gambar 1 Hasil Percobaan nomor 8

2. Tampilan LCD pada langkah percobaan nomor 10

#include <mega8535.h>
#include <alcd.h>
#include <delay.h>
void main()
{
lcd_init(16);
while(1)
{
lcd_gotoxy(0,0);
lcd_putchar(0x41);
delay_ms(1000);
lcd_clear();
lcd_gotoxy(0,1);
lcd_putchar(0x30);
delay_ms(1000);
}
}

Gambar 2 Hasil Percobaan nomor 10

3. Tampilan LCD pada langkah percobaan nomor 12

#include <mega8535.h>
#include <alcd.h>
#include <delay.h>
void main()
{
lcd_init(16);

while(1)
{
lcd_gotoxy(0,0);
lcd_putsf("Saya belajar");
}
}
Gambar 3 Hasil Percobaan Nomor 12

4. Tampilan LCD pada langkah percobaan nomor 14

#include <mega8535.h>
#include <alcd.h>
#include <delay.h>
void main()
{
lcd_init(16);

while(1)
{
lcd_gotoxy(0,1);
lcd_putsf("Antarmuka LCD");
}
}

Gambar 4 Hasil Percobaan Nomor 14


5. Tampilan LCD pada langkah percobaan nomor 16

#include <mega8535.h>
#include <alcd.h>
#include <delay.h>
void main()
{
lcd_init(16);

while(1)
{
lcd_gotoxy(0,0);
lcd_putsf("Saya belajar");
lcd_gotoxy(0,1);
lcd_putsf("Antarmuka LCD");
}
}

Gambar 5 Hasil Percobaan Nomor 16

6. Source code program pada langkah percobaan nomor 18

#include <mega8535.h>
#include <alcd.h>
#include <delay.h>
#include <string.h>
char text[17] = " Oditya Andalas P ";
char c;

char NIM[17]="210536615228 ";


char b;
void main()
{
int i, n, x, y;
lcd_init(16);

while(1)
{
for (n=16,y=0; n>0,y<16; y++,n--)
{
lcd_clear();
lcd_gotoxy (0,0);
lcd_printf("%s",text);
lcd_gotoxy (0,1);
lcd_printf("%s",NIM);
b=NIM[0];
c=text[15];
for (i=15,x=0; i>0,x<16; i--,x++)
{
text[i]=text[i-1];
NIM[x]=NIM[1+x];
}
text[0]=c;
text[16]=0;
NIM[15]=b;
NIM[16]=0;
delay_ms(150);
}
}
}

Gambar 6 Hasil Percobaan Nomor 18 Menggunakan Proteus

7. Tampilan LCD pada langkah percobaan nomor 19

#include <mega8535.h>
#include <alcd.h>
#include <delay.h>
#include <string.h>
char text[17] = "Oditya Andalas P ";
char c;

char NIM[17]="210536615228 ";


char b;
void main()
{
int i, n, x, y;
lcd_init(16);

while(1)
{
for (n=16,y=0; n>0,y<16; y++,n--)
{
lcd_clear();
lcd_gotoxy (0,0);
lcd_printf("%s",text);
lcd_gotoxy (0,1);
lcd_printf("%s",NIM);
b=NIM[0];
c=text[15];
for (i=15,x=0; i>0,x<16; i--,x++)
{
text[i]=text[i-1];
NIM[x]=NIM[1+x];
}
text[0]=c;
text[16]=0;
NIM[15]=b;
NIM[16]=0;
delay_ms(150);
}
}
}

Gambar 7 Hasil Percobaan Nomor 19 Menggunakan Proteus


ANALISIS DATA

1. Analisis data hasil percobaan pada langkah percobaan nomor 8 sampai dengan nomor
16!

 Program nomor 8
Program nomor 8 menampilkan karakter huruf A pada bagian kiri atas LCD.
Program diawali dengan menuliskan header program #include <mega8535.h>
untuk mengaktifkan fungsi IC ATmega 8535, #include <alcd.h> untuk
mengaktifkan fungsi LCD dan #include <delay.h> untuk mengaktifkan fungsi delay
pada tampilan LCD. Setelah header program kemudian adalah tipe data void
dilanjutkan lagi dengan inisialisasi lcd_init(16) yang bermakna bahwa kolom yang
tersedia pada lcd adalah 16 (kolom 0-15). Jika angka dalam kolom dirubah, maka
jumlah kolom yang dapat diisi karakter sama dengan angka yang tertera pada angka
inisialisasi. Setelah itu masuk pada program utama while (1). Karakter atau char
“A” muncul pada baris 0 dan kolom 0, karena terdapat sintaks program
lcd_gotoxy(0,0); yang bertujuan untuk menaruh kursor di baris 0 dan kolom 0.
Sedangkan karakter atau char “A” muncul dikarenkan adanya lcd_putchar(0x41);
yang berfungsi untuk menampilkan char “A” tersebut. Sehingga pada tampilan
LCD menampilkan karakter A di baris 0 dan kolom 0.
 Program nomor 10
Sama seperti program pertama, akan tetapi karakter yang ditampilkan tidak hanya
terdapat di baris satu saja, tetapi juga terdapat di baris dua. Perbedaan tersebut
dikarenakan pada program utama tidk hanya memberikan perintah baris satu saja
(menampilkan karakter “A” seperti program nomor 8) tetapi juga diberikan
perintah untuk menampilkan karakter pada baris kedua. Perintah untuk mengisi
baris kedua ditandai dengan sintaks lcd_gotoxy(0,1); yang berarti bahwa daerah
lcd yang dituju adalah baris 1 dan kolom 0. Sedangkan karakter yang ditampilkan
adalah karakter “0”, karakter tersebut di tunjukkan dengan sintaks
lcd_putchar(0x30). Delay pada program ini berfungsi untuk memberikan perintah
jeda selama 1000ms atau 1 detik pada tampilan LCD.

 Program nomor 12
Berbeda dengan program yang terdapat pada program nomor 8 dan program nomor
10, program nomor 12 adalah program yang berfungsi untuk menampilkan string
atau kumpulan beberapa karakter. Kalimat (string) “Saya Belajar” muncul pada
baris 0 dan kolom 0, hal tersebut disebabkan oleh script lcd_gotoxy(0,0); yang
berfungsi untuk menempatkan kalimat tersebut dibaris 0 dan kolom 0. Sedangkan
untuk memunculkan kalimat “Saya Belajar” itu sendiri menggunakan script
lcd_putsf("Saya belajar");.

 Program nomor 14
Sama halnya dengan program nomor 12, program ini merupakan program yang
berfungsi untuk menampilkan kalimat. Kalimat yang ditampilkan berbeda dengan
program nomor 12. Perbedaannya terdapat pada kalimat yang ditampilkan dan baris
yang dituju. Pada program tiga kalimat yang ditampilkan adalah “Saya Belajar”
pada baris 0 dan kolom 0, sedangkan pada progam empat kalimat yang ditampilkan
adalah “Antarmuka LCD” pada baris 1 dan kolom 0 . Kalimat (string) “Antarmuka
LCD” muncul pada baris 1 dan kolom 0, disebabkan oleh script lcd_gotoxy(0,1);
yang berfungsi untuk menempatkan kalimat tersebut dibaris 1 dan kolom 0.
Sedangkan untuk memunculkan kalimat “Antarmuka LCD” itu sendiri
menggunakan script lcd_putsf("Antarmuka LCD");.

 Program 16
Program nomor 16 pada dasarnya adalah gabungan antara program nomor 12 dan
program nomor 14, yaitu program yang berfungsi menampilkan kalimat di dua
baris sekaligus. Kalimat yang ditampilkan yaitu “Saya Belajar” pada baris 0 dan
“Antarmuka LCD” pada baris 1. Kalimat (string) “Saya Belajar” muncul pada baris
0 dan kolom 0, disebabkan oleh script lcd_gotoxy(0,0); yang berfungsi untuk
menempatkan kalimat tersebut dibaris 0 dan kolom 0. Kalimat (string) “Antarmuka
LCD” muncul pada baris 1 dan kolom 0, disebabkan oleh script lcd_gotoxy(0,1);
yang berfungsi untuk menempatkan kalimat tersebut dibaris 1 dan kolom 0.
Sedangkan untuk memunculkan kalimat “Saya Belajar” itu sendiri menggunakan
script lcd_putsf("Saya belajar");. Dan untuk memunculkan kalimat “Antarmuka
LCD” itu sendiri menggunakan script lcd_putsf("Antarmuka LCD");. Sehingga
pada tampilan LCD muncul kalimat Saya Belajar di baris 0 dan kolom 0 dan
Antarmuka LCD pada baris 1 kolom 0.

2. Jelaskan program anda pada langkah percobaan nomor 18!

Pada progam nomor 18 ini akan menampilkan karakter nama yang akan berjalan dari
kiri ke kanan pada baris 0 dan NIM yang berjalan dari kanan ke kiri pada baris 1
(tampilan di baris 0 dan 1 muncul secara bersamaan). pada progam ini menggunakan
lcd_init(16); yang artinya jumlah karakter yang disediakan adalah sebanyak 16 karakter.
Pada program ini menggunakan perulangan for untuk setiap pergerakan karakter dan
dibantu fungsi array untuk menampilkan nama maupun NIM. Adapun program
utamannya adalah sebagai berikut:
while(1)
{
for (n=16,y=0; n>0,y<16; y++,n--)
{
lcd_clear();
lcd_gotoxy (0,0);
lcd_printf("%s",text);
lcd_gotoxy (0,1);
lcd_printf("%s",NIM);
b=NIM[0];
c=text[15];
for (i=15,x=0; i>0,x<16; i--,x++)
{
text[i]=text[i-1];
NIM[x]=NIM[1+x];
}
text[0]=c;
text[16]=0;
NIM[15]=b;
NIM[16]=0;
delay_ms(150);
}
}

3. Apakah fungsi sintaks lcd_init() dan jelaskan perbedaan antara menggunakan


lcd_init(16) menjadi lcd_init(40)?

Fungsi dari sintaks lcd_init(); adalah kapasitas satu baris lcd untuk menampung
sebuah karakter. Contoh perbedaan lcd_init(16) dan lcd_init(40) dapat dilihat pada
program nomor 18, saat Nama Mahasiswa berjalan dari kiri ke kanan, apabila
menggunakan lcd_init(16) dan karakter yang ditampung tidak mencukupi, maka
karakter tersebut akan dilanjutkan kepada baris 1. Sedangkan pada saat menggunakan
lcd_init(40) karakter yang ditampung cenderung lebih banyak (40 kolom tersedia)
sehingga karakter tidak langsung diteruskan kepada baris 1 dikarenakan masih
memiliki kapasitas untuk menampung karakter tersebut.

KESIMPULAN

 LCD (Liquid Crystal Display) merupakan salah satu pitanti elektronik yang berfungsi untuk
menampilkan karakter, gambar maupun tulisan sesuai yang kita inginkan melalui program
yang telah dibuat.
 LCD M1632 adalah LCD dengan tampilan 16 kolom x 2 baris dengan konsumsi daya yang
rendah
  LCD memiliki 3 memori utama, yaitu CGROM (Character Generator Read Only Memory),

CGRAM (Character Generator Random Access Memory), dan DDRAM (Display Data
Random Access Memory).
 DDRAM merupakan memori tempat karakter yang ditampilkan berada.
 CGRAM merupakan memori untuk menggambarkan pola sebuah karakter di mana bentuk
dari karakter dapat diubah-ubah sesuai keinginan
 CGROM merupakan memori untuk menggambarkan pola sebuah karakter di mana pola
tersebut sudah ditentukan secara permanen dari HD44780 sehingga pengguna tidak dapat
mengubah lagi
 Langkah penting sebelum mengintegrasikan LCD dengan mikrokontroller adalah mengatur
konfigurasi program pada libraries untuk mengaktifkan LCD.
 Untuk mengatur pergerakan karakter, kita bisa memanfaatkan fungsi for.

Anda mungkin juga menyukai