LCD alphanumeric sudah tentu tidak asing lagi bagi para hobi
mikrokontroler. Tapi pada kesempatan kali ini saya ingin mengulas lebih lanjut
mengenai LCD alphanumeric.
LCD alphanumeric merupakan alat penampil (display) yang
digunakan untuk menampilkan karakter atau tulisan. Kebanyakan perangkat ini
telah dilengkapi perangkat pengontrol sendiri, sehingga untuk memanfaatkan
perangkat ini kita tinggal mengikuti aturan standar yang telah disimpan dalam
pengontrol tersebut.
LCD Alphanumeric dipasaran yang umum dijumpai adalah LCD
dengan ukuran 16x2, 16x4, 20x2, 20x4 dengan kontroler yang umum dijumpai adalah
kontroler dengan prefik LMxxx. Ukuran tersebut mewakili jumlah karakter pada
satu baris dan jumlah baris dalam satu modul. Misalnya LCD 16x2 mempunyai
kapasitas 16 karakter per baris dan dalam 1 modul terdapat 2 baris.
Interface
Symbol
|
Fungsi
|
Sinyal
|
Pin
|
VSS
|
GND
Power Supply
|
GND
|
1
|
VDD
|
+5V
Power Supply
|
+5V
|
2
|
VEE
|
Contrast
adjust
|
0V
s/d 5V
|
3
|
RS
|
Register
Select
|
0
= instruction
1
= data
|
4
|
R/W
|
Read
/ Write
|
0
= Write
1
= Read
|
5
|
E
|
Enable
|
1->
0
|
6
|
Db
0
|
Data
bit 0
|
0/1
|
7
|
Db
1
|
Data
bit 1
|
0/1
|
8
|
Db
2
|
Data
bit 2
|
0/1
|
9
|
Db
3
|
Data
bit 3
|
0/1
|
10
|
Db
4
|
Data
bit 4
|
0/1
|
11
|
Db
5
|
Data
bit 5
|
0/1
|
12
|
Db
6
|
Data
bit 6
|
0/1
|
13
|
Db
7
|
Data
bit 7
|
0/1
|
14
|
VB+
|
+
LED back light
|
+5
V
|
15
|
VB-
|
-
LED back light
|
GND
|
16
|
Secara umum pin LCD Alphanumeric dibagi menjadi 3 kelompok
yaitu:
- Kelompok power supply (Vss,Vdd,Vee,VB+,VB-)
- Port Data (Db7:Db0)
- Port Control (RS, R/W, E)
Kelompok power supply merupaka penyedia tegangan kerja bagi
LCD, pengatur tingkat kecerahan (contrast), dan penyedia tegangan untuk back
light LCD.
Port data merupakan jalur data yang masuk dan keluar
LCD, jumlah bit data adalah 8 sehingga
lebar data untuk port data adalah 1 byte. Aliran data pada LCD terdapat dua
mode yaitu mode 8 bit dan mode 4 bit. Untuk mode 8 bit, port data digunakan
semuanya (Db7:Db0) sedangkan mode 4 bit hanya menggunakan 4 bit dari port data
yaitu Db7:Db4.
Port Control merupakan port yang digunakan untuk mengatur
aliran data yang masuk dan keluar LCD. Masing masing Pin mempunyai fungsi
sebagai berikut.
- Pin RS : jika “0” maka byte yang ada pada port data akan ditujukan ke register perintah pada kontroler LCD. Jika “1” maka byte yang ada pada port data akan ditujukan ke register data pada kontroler LCD.
- Pin R/W : jika “0” maka LCD diset untuk menerima data (menulis data ke LCD. Jika “1” maka LCD diset untuk mengirimkan data (membaca data LCD)
- Pin E : perubahan state dari 1 ke 0 akan membuat kontroler LCD enable (dapat menerima atau mengirim data). Untuk mode 8 bit, penulisan/pembacaan data hanya butuh 1 enable, sedangkan mode 4 bit membutuhkan 2 kali enable ( nible atas kemudian nible bawah).
Memori LCD alphanumeric
CGROM (Character Generator Read Only Memory)
CGROM adalah memori ROM yang telah diisi
pola karakter oleh pabrik pembuat LCD. Ukuran CGROM adalah 256x8 Byte. Alamat CGROM dimulai dari 0x00 s/d
0xFF untuk setiap alamat mempunyai ukuran 8 byte. Khusus untuk alamat 0x00 s/d 0x07 tidak diisi
pola karakter oleh pabrik karena alamat ini tempat dimana memori CGRAM berada,
sehingga pengguna dapat membuat sendiri arakter special dan menyimpanya ke
alamat ini.
Karena sifat memori pada alamat ini adalah
non volatile (RAM) sehingga apabila catu daya pada kontroler LCD hilang, data
yang tersimpan pada CGRAM juga ikut hilang.
CGRAM(Character Generator Random Access Memory)
Telah disinggung diatas bahwa CGRAM
menempati alamat 0x00 s/d 0x07 pada CGROM, berarti bahwa CGRAM merupakan bagian
dari CGROM akan tetapi mempunyai karakteristik yang berbeda. Setiap alamat
CGRAM mempunyai ukuran 8 bit dan dimulai dari alamat 0x40 s/d 0x47 untuk alamat
0x00 pada CGROM hingga 0x78 s/d 0x7F
untuk alamat 0x07 pada CGROM.
DDRAM (Dynamic Data Random Access Memory)
Merupakan memori tempat kita meletakan
karakter yang akan ditampilkan pada layar LCD. Alamat DDRAM merupakan format
baris dan kolom pada LCD Alphanumeric yang kita gunakan. Perbedaan pengalamatan
memori DDRAM terletak pada type LCD. Untuk LCD dengan jumlah kolom 20 berbeda
dengan LCD dengan jumlah kolom 16. Akan tetapi pengalamatan barisnya sama.
Sebagai contoh, jika kita akan merubah
tampilan pada kolom 5 baris 0 maka kita harus mengakses alamat DDRAM 0x85
Karakter / Font
Pada LCD alphanumeric disediakan 2 pilhan format font
yaitu ukuran 5x7 dan 5x10 akan tetapi format font tersebut tergantung dari
kontroler yang ada pada LCD sendiri. Font yang paling umum dan sering digunakan
adalah font dengan ukuran 5x7 titik. Maksudnya adalah satu karakter / font
tersusun dari matrik bilangan biner 5x7.
Contoh diatas adalah pembentukan matrik huruf capital
‘A’. Karakter tersebut berada pada alamat CGROM 0x41. Sejauh ini apakah anda
dapat membayangkan bagaimana data matrik karakter tersebut tersimpan dalam
alamat 0x41?
Ya, gambar diatas merupakan ilustrasi data
yang tersimpan dalam alamat 0x41, dengan isi dari kolom HEX merupakan nilai
pada masing – masing byte data pada
alamat tersebut.
Karena alamat untuk membuat karakter
special pada CGROM dari 0x00 s/d 0x07 berarti ada 8x8 byte ruang memori sehingga kita dapat membuat 8 jenis karakter
special.
Instruksi - instruksi LCD
Ada dua
jenis instruksi pada LCD alphanumeric, yaitu function set dan entry mode.
Function set merupakan instruksi untuk
melakukan setting pada LCD sedangkan Entry mode merupakan instruksi yang
berkaitan dengan display LCD.
Uji coba menampilkan karakter special
Langkah 1
Menyiapkan software pemrograman
mikrokontroler dan simulatornya. Untuk software pemrograman saya menggunakan
AVR-Studio dan simulator menggunakan ISIS Proteus.
Langkah 2
Buat skematik pada ISIS seperti gambar
berikut.
Langkah 3
Membuat program.
Program yang pertama dibuat adalah library
untukLCD alphanumeric. Sebenarnya kita juga dapat mengetikan program instruksi
LCD pada program utama kita akan tetapi kita membuat library supaya kita tidak
perlu lagi mengetik ulang naskah program yang sama jika kita akan memanfaatkan
LCD alphanumeric lagi.
Untuk membuat file library pada AVR-Studio
diperlukan 2 file yaitu header file (ekstensi ”.h”) dan source file ( ekstensi
“.c”). Berikut adalah library alphanumeric LCD
hasil modifikasi dari www.eXtremeElectronics.co.in.
File header
"alcd.h" dapat di unduh disini
File Source
File program utamanya adalah sebagai berikut:
Berikut adalah contoh file program utama yang saya buat menggunakan AVR Studio.
//==========================================================================//
// Judul Program =
Menampilkan karakter spesial pada LCD Alphanumerik
// File =
TestLCD.c
// Programmer = Dwi
Kurniawan
// Mikrokontroller =
ATmega32
// Frekuensi OSC = 8 MHz
(internal)
// Deskripsi = Program akan menampilkan berbagai
karakter spesial yang
// disimpan pada CGRAM. Format karekter yang akan ditampilkan
// terdapat pada array _cgram[] pada file alcd.c
// disimpan pada CGRAM. Format karekter yang akan ditampilkan
// terdapat pada array _cgram[] pada file alcd.c
//==========================================================================//
#include "alcd.h"
#include
#include
int main(void)
{
lcd_init(2); // 2 adalah jumlah baris LCD ex: LCD 2x16
lcd_clear();
lcd_cursor(NONE); //kursor tidak terlihat
lcd_gotoxy(0,0);
lcd_puts("`3
T_SEL");
lcd_gotoxy(14,0);
lcd_puts("`4`7");
while(1)
{
lcd_gotoxy(0,1);
lcd_puts(" New Message
");
_delay_ms(500);
lcd_gotoxy(0,1);
lcd_puts(" Aku `2 Kamu
");
_delay_ms(1000);
}
return(0);
}
Tidak ada komentar:
Posting Komentar