Welcome

Welcome to My Blog

Saturday, 14 January 2017

PEMROGRAMAN LCD 16x2




Definisi
Display elektronik adalah salah satu komponen elektronika yang berfungsi sebagai tampilan suatu data, baik karakter, huruf ataupun grafik. 
LCD (Liquid Cristal Display) adalah salah satu jenis display elektronik yang dibuat dengan teknologi CMOS logic yang bekerja dengan tidak menghasilkan cahaya tetapi memantulkan cahaya yang ada di sekelilingnya terhadap front-lit atau mentransmisikan cahaya dari back-lit. LCD (Liquid Cristal Display) berfungsi sebagai penampil data baik dalam bentuk karakter, huruf, angka ataupun grafik.
LCD berfungsi untuk menampilkan karakter berupa huruf, angka serta symbol.
Adapun fitur yang disajikan dalam LCD ini adalah :
      Terdiri dari 16 karakter dan 2 baris.
      Mempunyai 192 karakter tersimpan.
      Terdapat karakter generator terprogram.
      Dapat dialamati dengan mode 4-bit dan 8-bit.
      Dilengkapi dengan back light.

Fungsi Pin-Pin LCD

Modul LCD berukuran 16 karakter x 2 baris dengan fasilitas backlighting memiliki 16 pin yang terdiri dari 8 jalur data, 3 jalur kontrol dan jalur-jalur catu daya, dengan fasilitas pin yang tersedia maka lcd 16 x 2 dapat digunakan secara maksimal untuk menampilkan data yang dikeluarkan oleh mikrokontroler, secara ringkas fungsi pin-pin pada LCD dituliskan pada Tabel 2.2.
      Pin 1 dan 2
Merupakan sambungan catu daya, Vss dan Vdd. Pin Vdd dihubungkan dengan tegangan positif catu daya, dan Vss pada 0V atau ground.
      Pin 3
Pin 3 merupakan pin kontrol Vee, yang digunakan untuk mengatur kontras display. Idealnya pin ini dihubungkan dengan tegangan yang bisa dirubah untuk memungkinkan pengaturan terhadap tingkatan kontras display sesuai dengan kebutuhan, pin ini dapat dihubungkan dengan variable resistor sebagai pengatur kontras.
      Pin 4
Pin 4 merupakan Register Select (RS), masukan yang pertama dari tiga command control input. Dengan membuat RS menjadi high, data karakter dapat ditransfer dari dan menuju modulnya.
      Pin 5
Read/Write (R/W), untuk memfungsikan sebagai perintah write maka R/W low atau menulis karakter ke modul. R/W high untuk membaca data karakter atau informasi status dari register-nya.
      Pin 6
Enable (E), input ini digunakan untuk transfer aktual dari perintah-perintah atau karakter antara modul dengan hubungan data. Ketika menulis ke display, data ditransfer hanya pada perpindahan high atau low. Tetapi ketika membaca dari display, data akan menjadi lebih cepat tersedia setelah perpindahan dari low ke high dan tetap tersedia hingga sinyal low lagi.
      Pin 7-14
Pin 7 sampai 14 adalah delapan jalur data/data bus (D0 sampai D7) dimana data dapat ditransfer ke dan dari display.
      Pin 16
Pin 16 dihubungkan kedalam tegangan 5 Volt untuk memberi tegangan dan menghidupkan lampu latar/Back Light LCD.

Kontroler LCD
Dalam modul LCD (Liquid Cristal Display) terdapat microcontroller yang berfungsi sebagai pengendali tampilan karakter LCD (Liquid Cristal Display). Microntroller pada suatu LCD (Liquid Cristal Display) dilengkapi dengan memori dan register. Memori yang digunakan microcontroler internal LCD adalah :
      DDRAM (Display Data Random Access Memory) merupakan memori tempat karakter yang akan ditampilkan berada.
      CGRAM (Character Generator Random Access Memory) merupakan memori untuk menggambarkan pola sebuah karakter dimana bentuk dari karakter dapat diubah-ubah sesuai dengan keinginan.
      CGROM (Character Generator Read Only Memory) merupakan memori untuk menggambarkan pola sebuah karakter dimana pola tersebut merupakan karakter dasar yang sudah ditentukan secara permanen oleh pabrikan pembuat LCD (Liquid Cristal Display) tersebut sehingga pengguna tinggal mangambilnya sesuai alamat memorinya dan tidak dapat merubah karakter dasar yang ada dalam CGROM.
      Pin, kaki atau jalur input dan kontrol dalam suatu LCD (Liquid Cristal Display) diantaranya adalah :
      Pin data adalah jalur untuk memberikan data karakter yang ingin ditampilkan menggunakan LCD (Liquid Cristal Display) dapat dihubungkan dengan bus data dari rangkaian lain seperti mikrokontroler dengan lebar data 8 bit.
      Pin RS (Register Select) berfungsi sebagai indikator atau yang menentukan jenis data yang masuk, apakah data atau perintah. Logika low menunjukan yang masuk adalah perintah, sedangkan logika high menunjukan data.
      Pin R/W (Read Write) berfungsi sebagai instruksi pada modul jika low tulis data, sedangkan high baca data.
      Pin E (Enable) digunakan untuk memegang data baik masuk atau keluar.
      Pin VLCD berfungsi mengatur kecerahan tampilan (kontras) dimana pin ini dihubungkan dengan trimpot 5 Kohm, jika tidak digunakan dihubungkan ke ground, sedangkan tegangan catu daya ke LCD sebesar 5 Volt.
Fungsi Register LCD
Modul display LCD sudah dilengkapi dengan sebuah kontroler yang memiliki dua register 8 bit yaitu instruction register (IR) dan data register (DR).
IR menyimpan kode instruksi, seperti display clear, cursor shift dan informasi address untuk display data RAM (DDRAM) dan character generator (CGRAM).


Busy Flag (BF)
Busy Flag = 1 saat kontroler sedang mengerjakan instruksi, selama instruksi tersebut belum selesai dikerjakan, kontroler tidak akan menerima instruksi apapun. Ketika RS = 0, dan R/W = 1, busy flag mengeluarkan logika 1 pada DB7. Instruksi berikutnya akan siap diterima ketika busy flag = 0.
Address Counter (AC)
Address Counter berisi address DDRAM dan CGRAM.
Display Data RAM (DDRAM)
DDRAM menyimpan data display dalam bentuk kode karakter 8 bit. Kapasitasnya adalah 80 karakter. Berikut adalah posisi address DDRAM pada LCD 16x2 :























Pola Karater CGROM


Tabel Instruksi LCD


Program bahasa C LCD
Untuk memprogram LCD, langkah pertama adalah inisialisasi LCD.
#include <alcd.h>
void main(void){
DDRC = 0xFF; //PORT dapat diubah sesuai keinginan
lcd_init(16);
}

Pada header LCD terdapat beberapa fungsi, diantaranya :

void _lcd_write_data(unsigned char data);
/* read a byte from the LCD character generator or display RAM */
unsigned char lcd_read_byte(unsigned char addr);
/* write a byte to the LCD character generator or display RAM */
void lcd_write_byte(unsigned char addr, unsigned char data);
// set the LCD display position  x=0..39 y=0..3
void lcd_gotoxy(unsigned char x, unsigned char y);
// clear the LCD
void lcd_clear(void);
void lcd_putchar(char c);
// write the string str located in SRAM to the LCD
void lcd_puts(char *str);
// write the string str located in FLASH to the LCD
void lcd_putsf(char flash *str);
// write the string str located in EEPROM to the LCD
void lcd_putse(char eeprom *str);
// initialize the LCD controller
void lcd_init(unsigned char lcd_columns);

Untuk menampilkan karakter, kita dapat menggunakan lcd_putsf(char flash *str);
Sebagai contoh, lcd_putsf(“Hello World”);
Fungsi lcd_gotoxy(); digunakan untuk mengatur posisi karakter yang akan ditampilkan pada baris dan kolom LCD.
Jika dibutuhkan, kita dapat menambah header <stdio.h>
Fungsi “int sprintf(char *str, char flash *fmtstr,...);” dapat digunakan untuk menyimpan data variabel untuk nanti ditampilkan kedalam LCD. Lalu gunakan fungsi lcd_puts(char *str);
Sebagai contoh,
char counter[];
int data;
……
sprintf(counter, "%d", data);
lcd_puts(counter);

Berikut rangkaian LCD menggunakan ATMega8535



No comments:

Post a Comment