Membuat Program Menampilkan Suatu Karakter pada LCD (Praktikum IV)
Sunday, April 15, 2018
I. TUJUAN PRAKTIKUM
- Mampu menggunakan pin I/O AVR secara bi-directional (sebagai input dan output)
- Mampu membuat program untuk menampilkan suatu karakter pada LCD (Liquid Crystal Display) melalui pin I/O AVR
II. PENGANTAR
Modul LCD memiliki controller untuk menampilkan karakter (angka, huruf, atau simbol) pada display. Modul LCD yang digunakan berukuran 8 karakter x 2 baris dengan controller HD44780 atau persamaannya. Modul LCD membutuhkan inisialisasi terlebih dahulu sebelum digunakan yang berfungsi untuk menentukan antar muka(interface) 4 bit atau 8 bit, jumlah baris display (1 baris atau 2 baris). Untuk keterangan lebih lengkap terdapat pada datasheet LCD. Karakter yang ditampilkan ke display disimpan di memori DDRAM (Display Data RAM).
III. PERCOBAAN
3.1 Alat dan Bahan
Alat dan Bahan | Gambar |
AVR Board | |
Kabel Power Supply | |
AVR ISP (In System Programming) | |
Kabel (untuk di hubungkan ke PORT) | |
3.2 Prosedur Percobaan
Berikut ini prosedur percobaan praktikum IV:
- Persiapkan alat dan bahan, pastikan semuanya bisa digunakan dengan baik
- Untuk membuat rangkaiannya perhatikan gambar dibawah ini:
Gambar. Menghubungkan PORT LCD dengan pin Mikrokontroler AVR.
3.3 Rangkaian Percobaan
IV. HASIL dan PEMBAHASAN
1) Settingan LCD di Code Vision AVR
Berikut ini adalah settingannya:
(1) Jalankan aplikasi Code Vision kemudian pada menu file pilih new, nanti akan muncul jendela create new file pilih project dan klik OK, akan muncul jendela confirm klik yes,,,Perhatikan gambar dibawah ini! Pilih Alphanumeric LCD kemudian ceklist Enable Alphanumeric LCD.
(2)Pilih Ports, Kemudian Data Dirction Pada Port A dibuat OUT semuanya .
(3)Selanjutnya Pilih Timers, pada Overflow Interrupt di Ceklist.
(4)Setelah pilih Generate Program Save dan Exit. Akan muncul jendela Save, Savelah kerja anda tersebut. Selanjutnya membuat Program untuk instruksi-instruksi berikut ini:
2)Membuat Program untuk menampilkan String dan Character pada LCD
(1) Program untuk menampilkan String (“halo.... CIZA”)
#include <mega8535.h>
#include <alcd.h> // Alphanumeric LCD Functions
void main(void){
// Untuk Inisialisasi MODUL LCD
PORTA=0x00;
DDRA=0xFF;
PORTB=0x00;
DDRB=0x00;
PORTC=0x00;
DDRC=0x00;
PORTD=0x00;
DDRD=0x00;
TCCR0=0x00;
TCNT0=0x00;
OCR0=0x00;
TCCR1A=0x00;
TCCR1B=0x00;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x00;
OCR1AL=0x00;
OCR1BH=0x00;
OCR1BL=0x00;
ASSR=0x00;
TCCR2=0x00;
TCNT2=0x00;
OCR2=0x00;
MCUCR=0x00; // External Interrupt(s) initialization INT0-2 OFF
MCUCSR=0x00;
TIMSK=0x00; // Timer(s)/Counter(s) Interrupt(s) initialization
UCSRB=0x00; // USART initialization, USART Disabled
ACSR=0x80; // Analog Comparator initialization
SFIOR=0x00;
ADCSRA=0x00; // ADC initialization, ADC Disabled
SPCR=0x00; // SPI initialization. SPI Disabled
TWCR=0x00; // TWI initialization, Disabled
lcd_init(16); // sebagai initilizationArtinya ada 8karakter 2 baris
lcd_gotoxy(0,0); // kursor KOLOM DAN BARIS maksudnya kolom 0 baris 0
lcd_putsf ("halo...."); // nilai string yang ditampilkan
lcd_gotoxy(0,1); // Tampilan pada kolom 0 baris 1
lcd_putsf("CIZA"); // nilai string yang ditampilkan
while (1)
{
}
}
Hasilnya seperti gambar dibawah ini:
2) Program untuk menampilkan Character A dan Huruf Jepang
lcd_init(16); // Artinya ada 8 karakter 2 baris
lcd_gotoxy(3,0); // kursor baris dan kolom
lcd_putchar(0xf41); // huruf A konversi heksimal posisinya pada kolom ke 3 baris 0
lcd_gotoxy(2,1 ); // Kursor baris dan kolom
lcd_putchar(0xB2);// huruf jepang yang hanya ada di dalam memory LCD untuk posisinya di kolom 2 baris 1
Hasilnya seperti gambar dibawah ini:
Catatan : untuk inisialisasinya sama seperti program untuk menampilkan String, bedanya pada apa yang ingin kita tampilkan untuk menampilkan string program nya seperti program 1 dan untuk menampilkan character seperti program 2.
3) Menampilkan String berjalan/bergerak
lcd_init(16); // Artinya ada 16 karakter maksudnya 8 karakter 2 baris
while (1)
{
for (i=0;i<8;i++) // Melakukan Looping(perulangan)
{
lcd_clear(); // untuk membersihkan perkolom
lcd_gotoxy(i,0); // kursor kolom dan baris
lcd_putsf("CITRA"); //nilai string yang ditampilkan pada kolom i (1)baris 0
delay_ms(1000); // memberikan jeda waktu 1000 ms
lcd_clear(); // untuk membersihkan perkolom
lcd_gotoxy(i,1); // kursor kolom dan baris
lcd_putsf("FIZA");// nilai string yang ditampilkan pada kolom i(2) baris 1
delay_ms(1000);// untuk memberikan jeda waktu 1000 ms
}
}
}
Hasilnya seperti gambar dibawah ini:
Catatan : untuk program ini inisialisasinya sama dengan program 1 dan 2. Yang membedakannya untuk program 3 ini perintah-perintahnya di input setelah while (1).
V. KESIMPULAN
Modul LCD memiliki 8 karakter dan 2 baris maksudnya 8 kolom dan 2 baris untuk nilai baris 0 dan 1. Sebelum membuat program, Modul LCD membutuhkan inisialisasi terlebih dahulu sebelum digunakan yang berfungsi untuk menentukan antar muka(interface) 4 bit atau 8 bit, jumlah baris display (1 baris atau 2 baris). Untuk tanda/perintah yang digunakan pada LCD ini seperti lcd_init(16);berfungsi sebagai inisialisasi bahwa LCD memiliki 8 karakter dan 2 baris, lcd_gotoxy(3,0);berfungsi menunjukkan posisi kursor pada kolom dan baris, lcd_putsf("CITRA"); berfungsi untuk transmisikan/mengirimkan nilai string , lcd_putchar(0xf41); berfungsi untuk transmisikan/mengirimkan nilai suatu character, lcd_clear(); berfungsi untuk membersihkan string/char perkolom, delay_ms(1000); berfungsi sebagai jeda waktu. Untuk tanda/perintah ini sudah ada dalam memory LCD.
Dibandingkan dengan Scanning (7 segment, Dot Matrix dan Keypad) menggunakan LCD ini lebih simple karena tidak membutuhkan banyak program untuk menampilkan character dan string sehingga lebih mudah dipahami.