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.
Silahkan berkomentar secara bijak dan sesuai dengan topik pembahasan. Terimakasih. ConversionConversion EmoticonEmoticon