Anda di halaman 1dari 7

Muchammad Fakhruzzaman Al Faisal Politeknik Negeri Bandung faysal_raul@yahoo.com http://fakhruzzaman.wordpress.

com

Lisensi Dokumen: Copyright 2013 ngOOprek.Com Seluruh dokumen di ngOOprek.Com dapat digunakan, dimodifikasi dan disebarkan secara bebas untuk tujuan bukan komersial (nonprofit), dengan syarat tidak menghapus atau merubah atribut penulis dan pernyataan copyright yang disertakan dalam setiap dokumen.Tidak diperbolehkan melakukan penulisan ulang, kecuali mendapatkan ijin terlebih dahulu dari ngOOprek.Com

TUTORIAL II SERI AVR DEVELOPMENT BOARD ATMEGA 8535 INTERFACING LCD ALPHANUMERIC 16X2

Liquid Crystal Display (LCD) merupakan salah satu alat untuk penampil yang memiliki berbagai macam ukuran dari 1 hingga 4 baris, 16 hingga 40 karakter per baris dan 5 x 7 atau 5 x 8 dot display fonts. Meskipun LCD memiliki berbagai macam ukuran tetapi penggunaanya standar. LCD terdiri 16 pin yang berisikan jalur data, jalur control, power dan back light.

Gambar 1.0 LCD Alphanumeric 16x2

(sumber : www.engineergarage.com)
Tabel 1.0 Pin Symbol and Function LCD 16x2

PIN 1 2 3 4 5 6 7 14 15 16

Symbol GND VCC VEE RS R/W EN DB0 DB7 Led + Led -

Function Ground +3V or +5V Contras Adjustment Register Select Read/Write Signal Enable Signal Data Bus Line Backlight V+ Anode Backlight V- Cathode

Copyright2013 ngooprek.com

Creative Community

Gambar 1.1 skema rangkaian interfacing LCD 16x2 mode 4-bit

lcd_gotoxy (posisi_x,posisi_y)
X

0
Y

9 10 11 12 13 14 15

0 1
Gambar 1.2 Ilustrasi posisi

lcd_gotoxy(13,0)

Pada gambar 1.2 menunjukan posisi x (kolom) ke 13 dan y(baris) ke 0. Untuk menampilkan huruf, angka, karakter pada lcd ada beberapa syntax diantaranya ; lcd_putchar() = untuk menampilkan karakter. lcd_puts() lcd_putsf() = untuk menampilkan string dari SRAM. = untuk menampilkan string dari Flash.

Sedangakan untuk membersihkan/menghapus karakter dari layar LCD ; lcd_clear()

Copyright2013 ngooprek.com

Creative Community

Dengan menggunakan Code Vision AVR kita lebih mudah untuk melakukan interfacing LCD, pada Code Wizard AVR terdapat menu pengaturan alphanumeric LCD dengan pengaturan pada Character/Line serta koneksi port yang akan digunakan. Pada tutorial kali ini kita menggunakan LCD 16x2 dan port yang digunakan adalah PORT C.

Gambar 1.3 CodeWizardAVR

Setelah di generate maka secara otomatis pengaturan untuk penggunaan modul LCD telah tersedia, kita hanya menambahkan program pada bagian program utama saja;
#include <mega8535.h> #include <alcd.h> void main(void) { /* Alphanumeric LCD initialization Connections specified in the Project|Configure|C Compiler|Libraries|Alphanumeric LCD menu: RS - PORTC Bit 0 RD - PORTC Bit 1 EN - PORTC Bit 2 D4 - PORTC Bit 4 D5 - PORTC Bit 5 D6 - PORTC Bit 6 D7 - PORTC Bit 7 Characters/line: 16 */ lcd_init(16); lcd_gotoxy(0,0); lcd_putsf("TES"); lcd_gotoxy(0,1); lcd_putsf("TESS"); while (1) {} }

Copyright2013 ngooprek.com

Creative Community

COSTUM CHARACTER DISPLAY Alphanumeric LCD dapat menampilkan beberapa karakter unik dan karakter yang bisa kita buat sendiri, tentunya kita harus mengetahui konsep peta memori pada LCD. Berikut penjelasan singkatnya;

Peta Memori LCD Peta memori LCD terbagi ke dalam tiga bagian diantaranya; 1. DDRAM 2. CGROM 3. CGRAM DDRAM Singkatan dari (Data Display Random Access Memory) merupakan buffer data tampilan dimana setiap karakter pada layar memiliki lokasi sesuai DDRAM dan byte dimuat dalam kontrol DDRAM untuk mengatur karakter yang ditampilkan. Berikut alamat karakter tampilan pada DDRAM pada LCD 16x2. 00 01 02 03 04 05 06 07 08 09 01 0B 0C 0D 0F 40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4F Fungsi DDRAM 1. Menyimpan kode karakter untuk setiap karakter LCD yang ditampilkan 2. Lokasi tambahan yang digunakan selama operasi pergeseran (shifting) CGROM Singkatan dari (Character Graphics Read only Memory). ROM ini adalah bagian dari tampilan mikrokontroler pada LCD dan memegang semua pola standar untuk 5 x 8 dot matrix karakter. Misalnya, jika ingin menampilkan karakter "A", maka mengirimkan kode ASCII 65 (desimal) ke DDRAM tersebut. Isi CGROM tergantung pada set karakter tertentu dan tidak dapat diubah. Fungsi CGROM 1. Berisi bitmap font untuk karakter LCD standar yang dapat menampilkan CGRAM 2. Berisi karakter ASCII Inggris dan karakter Jepang. CGRAM Singkatan dari (Character Graphics Random Access Memory) memungkinkan pengguna untuk menentukan tambahan jenis karakter non-standar khusus yang tidak ada pada CGROM. Kita dapat memuat dot sendiri pola bentuk misalnya gambar panah ke dalam CGRAM dan menggunakan kode cadangan tertentu pada DDRAM, kemudian menampilkannya. Fungsi CGRAM 1. Menyediakan ruang untuk 8 karakter kostum

Copyright2013 ngooprek.com

Creative Community

Gambar 1.4 Peta karakter LCD

(sumber : http://www.circuitvalley.com/2012/02/lcd-custom-character-hd44780-16x2.html) Pada LCD 16x2 setiap 1 blok memiliki 5x8 dot dimana dot dot tersebut dapat kita buat menjadi sebuah karakter yang unik dan yang tidak terdapat pada CGROM, untuk membuat karakter unik tersebut kita harus mengetahui konsep 5x8 dot pada 1 blok karakter pada LCD terlebih dahulu, berikut penjelasan singkatnya ;

Gambar 1.5 CGRAM Address & Data

Copyright2013 ngooprek.com

Creative Community

Pada CG RAM terdapat 8-bit data namun kita hanya bisa menggunakan 5-bit data. Misalkan pada gambar 1.5 dibentuk karakter dengan gambar panah kebawah menghasilkan data sebagai berikut;
Tabel 1.1 data karakter panah ke-bawah dalam format biner dan hex Biner 00100 00100 00100 00100 10101 01110 00100 00000 Hex 0x04 0x04 0x04 0x04 0x15 0x0E 0x04 0x00

Dengan menggunakan data hex/biner pada tabel 1.1 kita dapat menampilkan karakter panah kebawah tersebut. Berikut penjelasan beberapa baris program untuk menampilkan karakter unik yang tersimpan pada CGRAM kemudian di tampilkan pada DDRAM. /*Mendefinisikan variabel dan tipe data*/
typedef unsigned char byte;

/*Tabel untuk mendefinisikan kostum karakter dalam format biner/hex */ flash byte char0[8]={ masukan nilai bit-bit karakter unik dalam format biner/hex }; /* Fungsi untuk mendefinisikan kostum karakter */
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++); }

/*Mendefinisikan char0*/
define_char(char0,0);

/* Menampilkan kostum karater yang tersimpan pada char0 */


lcd_putchar(0);

Untuk mempermudah membuat karakter kostum sesuai keinginan, kita dapat menggunakan software LCD Custom Char Builder, yang dapat didownload di (www.extremeelectronics.com.in)

Gambar 1.6 LCD Custom Char Builder

Copyright2013 ngooprek.com

Creative Community

Contoh listing program untuk membuat kostum karakter;


#include <mega8535.h> #asm .equ __lcd_port=0x15 ;PORTC #endasm #include <alcd.h> typedef unsigned char byte; flash byte char0[8]={ 0x0A, 0x1F, 0x1F, 0x0E, 0x04, 0x00, 0x00, 0x00}; flash byte char1[8]={ 0x0A, 0x1F, 0x1F, 0x0E, 0x04, 0x00, 0x00, 0x00}; flash byte char2[8]={ 0x01, 0x03, 0x05, 0x09, 0x0B, 0x0B, 0x18, 0x18}; flash byte char3[8]={ 0x0E, 0x11, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F}; flash byte char4[8]={ 0x00, 0x00, 0x01, 0x01, 0x05, 0x05, 0x15, 0x15}; flash byte char5[8]={ 0x1F, 0x0E, 0x0E, 0x04, 0x04, 0x04, 0x04, 0x00}; flash byte char6[8]={ 0x11, 0x0A, 0x04, 0x0E, 0x15, 0x04, 0x04, 0x04}; flash byte char7[8]={ 0x00, 0x04, 0x02, 0x1F, 0x02, 0x04, 0x00, 0x00}; 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); define_char(char0,0); lcd_gotoxy(0,0);lcd_putchar(0); define_char(char1,1); lcd_gotoxy(1,0);lcd_putchar(1); define_char(char2,2); lcd_gotoxy(2,0);lcd_putchar(2); define_char(char3,3); lcd_gotoxy(3,0);lcd_putchar(3); define_char(char4,4); lcd_gotoxy(4,0);lcd_putchar(4); define_char(char5,5); lcd_gotoxy(5,0);lcd_putchar(5); define_char(char6,6); lcd_gotoxy(6,0);lcd_putchar(6); define_char(char7,7); lcd_gotoxy(7,0);lcd_putchar(7); while (1) { } }

Copyright2013 ngooprek.com

Creative Community

Anda mungkin juga menyukai