Menampilkan Custom Character pada LCD dengan CodeVisionAVR
Dalam aplikasi embedded system, kadang dibutuhkan suatu HMI(Human Machine Interface) untuk menjembatani antara cara kerja mesin dan indra manusia. Misalnya untuk masukan suatu seting, user juga harus dapat melihat parameter feedback dari sistem yang diseting seperti penambahan dan pengurangan suatu nilai variabel. Salah satu HMI yang paling populer adalah penampil LCD. Salah satunya adalah jenis ALPHANUMERIC LCD yang tergolong murah. Jenis ini mempunyai standar karakter yang sudah di disain oleh manufakturnya dan jumlah tersebut masih sangat terbatas bila kita butuh simbol atau tampilan huruf sesuai dengan keinginan kita.
Dalam tutorial ini akan dijelaskan langkah-langkah untuk menampilkan karakter custom pada LCD alfanumerik menggunakan CodevisionAVR C Compiler dan interfacing LCD 16×2 untuk ATmega.
Langkah pertama untuk membuat dan menampilkan karakter sendiri adalah membuat pola karakter bitmap seperti yang kita inginkan. Seperti terlihat pada gambar dibawah ini.
Langkah selanjutnya adalah mengkonversi gambar pixel yang telah dibuat menjadi kode biner atau hexadsimal, konversi dilakukan per-baris. Jika pixel menyala maka nilainya “1” sebaliknya jika pixel mati maka nilainya “0”. Data inilah yang akan dikirim ke LCD untuk ditampilkan.
Untuk mempermudah dan mempercepat dalam mendapatkan kode hexa dari pixel LCD, dapat menggunakan program LCD Custom Character Builder yang dapat diunduh di sini.
Caranya mudah kita hanya menggambar karakter sesuai keinginan kita, lalu klik Generate Code, langsung akan muncul kode hexadesimal untuk kode tersebut. Pada program ini hanya bisa menggambar untuk 8 karakter yang berbeda.
Kemudian selanjutnya adalah generate code pada CodeVisionAVR. Misal saya menggunakan ATmega16 dan LCD dihubungkan ke PORTC. Berikut adalah kode lengkapnya.
#include <mega16.h> #include <lcd.h> #asm .equ __lcd_port=0x15 ;PORTC #endasm typedef unsigned char byte; //tipe data flash untuk satu karakter //ganti KODE PIXEL dengan kode karakter yang telah dibuat flash byte char0[8]={KODE PIXEL}; /* function untuk define custom char */ void define_char(byte flash *pc,byte char_code) { byte i,a; a=(char_code<<3) | 0x40; for (i=0; i<8; i++) lcd_write_byte(a++,*pc++); } void main(void) { lcd_init(16); // LCD module initialization define_char(char0,0); //define custom char lcd_gotoxy(0,0); //posisi karakter yang akan ditampilkan pd LCD lcd_putchar(0); //tampilkan custom char while (1) {} }
Selesai. Kode diatas juga dapat digunakan untuk menampilkan lebih dari satu karakter. Berikut contoh yang saya buat untuk menampilakan 8 karakter.
Selamat Mencoba 😀
Posted on June 30, 2013, in Electronics, Mikrokontroler, Tutorial and tagged ATmega, Cara membuat custom character LCD, CodeVisionAVR, Custom Character, custom font LCD, Custom Karakter LCD, Human Machine Interface, LCD, Menampilkan Custom Character pada LCD dengan CodevisionAVR, Mikrokontroler, Tutorial Mikrokontroler ATmega. Bookmark the permalink. Leave a comment.
Leave a comment
Comments 0