LCD (Liquid Crystal Display) adalah suatu display dari bahan cairan kristal yang pengoperasiannya menggunakan sistem dot matriks. LCD banyak digunakan sebagai display dari alat-alat elektronika seperti kalkulator, multimeter digital, jam digital, dsb. LCD dapat dengan mudah dihubungkan dengan mikrokontroler. Disini akan saya berikan contoh aplikasinya untuk LCD 2x16, yang mempunyai 16 pin konektor yang didefinisikan sebagai berikut :
No Nama Pin Deskripsi
____________________________________________________________
1 GND 0V
2 VCC +5V
3 VEE Tegangan Kontras LCD
4 RS Register Select, 0 = Register Perintah, 1 = Register Data
5 R/W 1 = Read, 0 = Write
6 E Enable LCD, logika 1 setiap pengiriman/pembacaan data
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 Anoda Tegangan positif backlight
16 Katoda Tegangan negatif backlight
Dengan menggunakan CodeWizardAVR kita dapat dengan mudah mendefinisikan Port yang terhubung dengan LCD, langkah-langkahnya yaitu :
Buka program CodeVision >> pilih File|New >> pilih Type|Project
Kemudian muncul tampilan konfirmasi, dan menanyakan apakah akan menggunakan CodeWizard, pilih Yes
Untuk setting IC(Chip yg digunakan) pilih Chip
Untuk mendefinisikan Port yang terhubung dengan LCD pilih LCD|Pilih Port B pada LCD Port
Jika sudah mengonfirmasi project, pilih File|Generate, Save and Exit, sehingga akan muncul source code dalam bahasa C. Setelah itu kita tinggal menambahkan instruksi-instruksi tambahan ke dalam program yang sudah ada.
Beberapa contoh instruksi pengendalian LCD dalam bahasa C antara lain:
lcd_init(n) : inisialisasi LCD dengan jumlah kolom sebanyak n buah
lcd_gotoxy(x,y) : pindah kursor LCD ke kolom x baris y
lcd_putsf("karakter") : cetak tulisan "karakter" ke LCD
lcd_puts(teks) : cetak isi dari variabel teks ke LCD
itoa(Z,Cetak) : mengubah bil integer Z ke ascinya dan disimpan di variabel cetak
lcd_gotoxy(x,y) : pindah kursor LCD ke kolom x baris y
lcd_putsf("karakter") : cetak tulisan "karakter" ke LCD
lcd_puts(teks) : cetak isi dari variabel teks ke LCD
itoa(Z,Cetak) : mengubah bil integer Z ke ascinya dan disimpan di variabel cetak
Berikut adalah contoh program menampilkan karakter ke LCD :
#include <mega16.h>
#include <delay.h>
// Alphanumeric LCD Module functions
#asm
.equ __lcd_port=0x18 ;PORTB
#endasm
#include <lcd.h>
// Declare your global variables here
void main(void)
{
// Declare your local variables here
// Input/Output Ports initialization
// Port A initialization
// Func7=Out Func6=Out Func5=Out Func4=Out Func3=Out Func2=Out Func1=Out Func0=Out
// State7=0 State6=0 State5=0 State4=0 State3=0 State2=0 State1=0 State0=0
PORTA=0x00;
DDRA=0xFF;
// Port B initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTB=0x00;
DDRB=0x00;
// Port C initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTC=0x00;
DDRC=0x00;
// Port D initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=P State6=P State5=P State4=P State3=P State2=P State1=P State0=P
PORTD=0xFF;
DDRD=0x00;
// .............
// LCD module initialization
lcd_init(16);
//Tambahkan program dibawah ini pada program utama.
lcd_gotoxy(2,0);
lcd_putsf("SUGENG RAWUH");
delay_ms(100);
while (1)
{
if (PIND.1==1){
lcd_gotoxy(1,0);
lcd_putsf("Tekan Tombol !");
PORTA = 0x00; //Led Mati
delay_ms(50);
}
else{
lcd_gotoxy(1,0);
lcd_putsf("Tombol Ditekan!");
PORTA = 0xFF; //Led Nyala
delay_ms(50);
lcd_clear();
}
};
}
#include <delay.h>
// Alphanumeric LCD Module functions
#asm
.equ __lcd_port=0x18 ;PORTB
#endasm
#include <lcd.h>
// Declare your global variables here
void main(void)
{
// Declare your local variables here
// Input/Output Ports initialization
// Port A initialization
// Func7=Out Func6=Out Func5=Out Func4=Out Func3=Out Func2=Out Func1=Out Func0=Out
// State7=0 State6=0 State5=0 State4=0 State3=0 State2=0 State1=0 State0=0
PORTA=0x00;
DDRA=0xFF;
// Port B initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTB=0x00;
DDRB=0x00;
// Port C initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTC=0x00;
DDRC=0x00;
// Port D initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=P State6=P State5=P State4=P State3=P State2=P State1=P State0=P
PORTD=0xFF;
DDRD=0x00;
// .............
// LCD module initialization
lcd_init(16);
//Tambahkan program dibawah ini pada program utama.
lcd_gotoxy(2,0);
lcd_putsf("SUGENG RAWUH");
delay_ms(100);
while (1)
{
if (PIND.1==1){
lcd_gotoxy(1,0);
lcd_putsf("Tekan Tombol !");
PORTA = 0x00; //Led Mati
delay_ms(50);
}
else{
lcd_gotoxy(1,0);
lcd_putsf("Tombol Ditekan!");
PORTA = 0xFF; //Led Nyala
delay_ms(50);
lcd_clear();
}
};
}
dan ini adalah gambar skematik rangkaian antarmukanyanya
No comments:
Post a Comment
Silakan Tuliskan Komentar Anda Untuk Kemajuan Blog Ini
Terima Kasih Atas Kunjungannya