Tuesday, April 1, 2014

LCD 16×2: Pemrograman LCD Karakter (16×2) Menggunakan CV AVR



LCD (Liquid Crystal Display) adalah modul penampil yang banyak digunakan karena tampilannya menarik. LCD yang paling banyak digunakan saat ini ialah tipe LCD 16×2 M1632 karena harganya cukup murah. LCD 16×2 M1632 merupakan modul LCD dengan tampilan 2×16 (2 baris x 16 kolom) dengan konsumsi daya rendah. Modul tersebut dilengkapi dengan mikrokontroler yang didesain khusus untuk mengendalikan LCD.







LCD 16x2
Image: LCD 16×2
Untuk rangkaian interfacing, LCD 16×2 tidak banyak memerlukan komponen pendukung. Hanya diperlukan satu variable resistor untuk memberi tegangan kontras pada matriks LCD.
Dengan menggunakan CodeVision AVR, pemrograman untuk menampilkan karakter atau string ke LCD 16×2 sangat mudah karena didukung library yang telah disediakan oleh CodeVision AVR itu sendiri. Kita tidak harus memahami karakteristik LCD secara mendalam, perintah tulis dan inisialisasi sudah disediakan oleh library dari CodeVision AVR.

Pemrograman LCD 16×2 Menggunakan CV AVR

Buat proyek baru pada CV AVR. Setting chip AVR ATmega8535 dan clock 11.059200 MHz, kemudian setting bagian LCD seperti gambar berikut:
CV AVR
Setelah itu Generate file, save, and exit.
Perhatikan blok-blok program berikut:
...
// Alphanumeric LCD Module functions
#asm
   .equ __lcd_port=0x15 ;PORTC
#endasm
#include <lcd.h>
...
Arti dari blok instruksi diatas adalah setting LCD di PORT C yang kemudian akan me-link ke library lcd.h yang didalamnya terdapat instruksi-instruksi untuk akses LCD secara langsung.
Untuk inisialisasi cukup dengan instruksi berikut:
...
// LCD module initialization
lcd_init(16);
...
Instruksi-Instruksi Di Library LCD
unsigned char lcd_init(unsigned char lcd_columns);
Instruksi ini berfungsi untuk inisialisasi LCD kemudian dilanjutkan dengan penghapusan tampilan LCD dan menempatkan posisi kursor di kolom 0 baris 0. lcd_columns harus memiliki nilai yang sesuai dengan tipe LCD, missal 16. Fungsi ini harus dipanggil pertama kali sebelum memanggil fungsi-fungsi LCD yang lain.
Contoh:
lcd_init(16);
unsigned char lcd_read_byte(unsigned char addr);
Instruksi ini membaca karakter dari RAM LCD.
Contoh:
Ch=lcd_read_byte(0x10);
void lcd_clear(void);
Instruksi ini akan menghapus tampilan LCD dan menempatkan kursor di kolom 0 dan baris 0
Contoh:
lcd_clear();
void lcd_gotoxy(unsigned char x, unsigned char y);
Instruksi ini untuk menempatkan posisi kursor pada kolom x dan baris y.
Contoh:
lcd_gotoxy(4,1);//menempatkan kursor pada kolom 4 dan baris 1
void lcd_putchar(char c);
Instruksi ini untuk menampilkan karakter pada posisi kursor saat itu.
Contoh:
lcd_gotoxy(5,0);
lcd_putchar(0x41); //menampilkan karakter A
                   //lihat tabel karakter LCD
                   //dapat juga ditulis lcd_putchar(‘A’);
void lcd_putsf(char flash *str);
Instruksi ini berfungsi untuk menampilkan string pada posisi kursor saat itu.
Contoh:
lcd_gotoxy(0,1);
lcd_putsf(“Halo Eko”); //menampilkan string Halo Eko
void lcd_puts(char *str);
Instruksi ini berfungsi untuk menampilkan string yang sebelumnya disimpan di SRAM. Sebelum memanggil instruksi ini, sebelumnya string sudah ditempatkan di SRAM. Instruksi ini memerlukan pustaka stdio.hex .
Contoh:
...
#include <mega8535>
#include <stdio.h> //tambahkan library
...
//Declare your global variable here
char buf[33];//deklarasi variable untuk menyimpan data string
//LCD module initialization
lcd_init(16);
lcd_gotoxy(0,1);
sprint(buf,”Angka %d”, 14);//menyimpan string ke SRAM
lcd_puts(buf);             //menampilkan ke LCD
Contoh aplikasi program yang disimulasikan di software Proteus:
lcdproteus

No comments:

Post a Comment