MODUL
V
MODUL
PRAKTIKUM
MIKROPROSESOR
DYAH LESTARI
LABORATORIUM DIGITAL DAN MIKROPROSESSOR
JURUSAN
TEKNIK ELEKTRO
FAKULTAS
TEKNIK
UNIVERSITAS NEGERI
MALANG
2015
ANTARMUKA
MIKROKONTROLER DENGAN PENAMPIL LCD (Liquid Crystal Display)
- Mengetahui
dan memahami cara mengantarmukakan mikrokontroler dengan modul penampil
LCD.
- Mengetahui
dan memahami bagaimana memrogram mikrokontroler untuk menampilkan
karakter ke penampil LCD.
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
- 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
1.
Rangkailah
peralatan yang diperlukan seperti dalam Gambar 6.5. Hubungkan soket jumper
PORTB pada minimum system dengan soket jumper pada LCD.
Gambar 5.5 Rangkaian antarmuka
mikrokontroler dengan LCD
2.
Buka program
Code Vision AVR
3.
Buatlah project
baru. Pada saat mengeset chip dan clock, set juga bagian LCD seperti Gambar 5.6. Kemudian simpanlah file tersebut.
Gambar 5.6 Setting LCD
4.
Blok berikut
merupakan bagian inisialisasi LCD pada awal program.
// LCD module initialization
lcd_init(16);
5.
Tuliskan script
berikut dalam program utama:
while
(1)
{
lcd_gotoxy(0,0); //menempatkan
kursor di kolom 0 baris 0
lcd_putchar(0x41); //menampilkan
string ‘A’
}
6.
Tambahkan delay
dalam langkah 6:
while
(1)
{
lcd_gotoxy(0,0); //menempatkan
kursor di kolom 0 baris 0
lcd_putchar(0x41);//menampilkan
string ‘A’
delay_ms(1000);
lcd_clear();
lcd_gotoxy(0,1);
lcd_putchar(0x30);
delay_ms(1000);
}
7.
Tuliskan script
berikut dalam program utama:
while
(1)
{
lcd_gotoxy(0,0);//menempatkan
kursor di baris 0 kolom 0
lcd_putsf("Saya
belajar");//menampilkan string “Saya belajar”
}
8.
Ganti script
pada langkah 8 menjadi seperti berikut:
while
(1)
{
lcd_gotoxy(0,1);
//menempatkan kursor di kolom 0 baris 1
lcd_putsf("Antarmuka
LCD");//menampilkan string “Antarmuka LCD”
}
9.
Gabungkan
script pada langkah 8 dan 9 menjadi seperti berikut:
while
(1)
{
lcd_gotoxy(0,0);
//menempatkan kursor di baris 0 kolom 0
lcd_putsf("Saya belajar");//menampilkan
string “Saya belajar”
lcd_gotoxy(0,1);//menempatkan
kursor di baris 1 kolom 0
lcd_putsf("Antarmuka LCD");//menampilkan
string “Antarmuka LCD”
}
10.
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).
11.
Ubahlah nilai
dalam lcd_init(16) menjadi lcd_init(40) dan lihat perbedaannya.
1.
Tampilan LCD pada langkah percobaan nomor 6
2.
Tampilan LCD pada langkah percobaan nomor 7
3.
Tampilan LCD pada langkah percobaan nomor 8
4.
Tampilan LCD pada langkah percobaan nomor 9
5.
Tampilan LCD pada langkah percobaan nomor 10
6.
Source code program pada langkah percobaan nomor 11
7.
Tampilan LCD pada langkah percobaan nomor 12
1.
Analisa data hasil percobaan pada langkah percobaan nomor 6
sampai dengan nomor 10!
2.
Jelaskan program anda pada langkah percobaan nomor 11!
3.
Apakah fungsi sintaks lcd_init() dan jelaskan perbedaan
antara menggunakan lcd_init(16) menjadi lcd_init(40)?