liquid crystal diode (lcd)

11

Click here to load reader

Upload: syamsul-rizal

Post on 30-Jun-2015

989 views

Category:

Documents


6 download

DESCRIPTION

Liquid Crystal Diode (LCD) merupakan output yang dapat menampilkan karakter sesuai dengan keinginan kita. karena pada LCD tersebut terdapat register CGRAM. dengan register tersebut kita dapat membuat karakter yang blom pernah kita lihat sebelumnya.

TRANSCRIPT

Page 1: Liquid Crystal Diode (LCD)

LCD

A. DASAR TEORILCD (Liquid Crystal Display) merupakan komponen yang dapat menampilkan

suatu nilai hasil sensor, menampilkan teks, atau menampilkan menu pada aplikasi mikrokontroler. LCD yang akan digunakan adalah jenis LCD M1632, yang merupakan modul LCD dengan tampilan 16x2 baris dengan konsumsi daya rendah. Modul tersebut dilengkapi dengan mikrokontroler yang didesain khusus untuk mengendalikan LCD.1. Memori

Yang menjadi pengendali LCD adalah mikrokontroler HD44780 yang memiliki CGROM (Character Generator Read Only Memory), CGRAM (Character Generator Random Access Memory), dan DDRAM (Display Data Random Access Memory).

Berikut ini merupakan bagian-bagian dari LCD M1632:a. DDRAM

DDRAM merupakan memori tempat karakter yang ditampilkan berada. Contoh, untuk karekter ‘L’ atau 4CH yang ditulis pada alamat 00, karakter tersebut akan tampil pada baris pertama dan kolom pertama pada LCD. Apabila karakter tersebut ditulis pada alamat 40, maka karakter tersebut akan tampil pada baris kedua kolom pertama dari LCD.

b. CGRAMCGRAM merupakan memori untuk membuat bentuk karakter yang dapat diubah-ubah sesuai keinginan. Karakter yang disimpan di CGRAM akan hilang apabila tidak ada power supply, karena memori RAM bersifat tidak permanen.

c. CGROMMerupakan memori yang menyimpan karakter-karakter yang sudah permanen ada di dalam LCD, sehingga tidak dapat diubah-ubah lagi bentuknya oleh pengguna. Namun karena ROM bersifat permanen, pola karakter tersebut tidak akan hilang saat tidak ada catuan daya.

Page 2: Liquid Crystal Diode (LCD)

Gambar 4.1 Hubungan Antara CGROM dan DDRAM

LCD memiliki 16 kaki pin yang memiliki fungsi masing-masing. STAL DISPLAY

Gambar 4.2 Konfigurasi Pin LCD 16 Karakter x 2 Baris

Page 3: Liquid Crystal Diode (LCD)

Tabel 4.1 Konfigurasi Pin LCD

2. RegisterHD44780 memiliki dua buah register yang aksesnya diatur menggunakan kaki RS.

Pada saat RS berlogika 0, yang diakses adalah register perintah. Saat RS berlogika 1, yang diakses adalah register data.a. Register Perintah

Register yang berisi perintah-perintah dari mikrokontroler ke HD44780 pada saat proses penulisan data atau tempat status dari HD44780 dapat dibaca pada saat pembacaan data.1) Penulisan Data ke Register Perintah

Penulisan data ke register perintah dilakukan dengan tujuan mengatur tampilan LCD, inisialisasi, dan mengatur Address Counter maupun Address Data. Kondisi RS dengan logika 0 berarti terjadi akses data ke register perintah. RW berlogika 0 berarti proses penulisan data akan dilakukan. Pada Mode 4 bit interface, data dikirimkan secara terpisah. Nible tinggi (bit7 sampai bit4) dikirimkan terlebih dahulu dengan diawali pulsa logika 1 pada E Clock. Kemudian, nible rendah (bit3 sampai bit0) dikirimkan dengan diawali pulsa logika 1 pada E Clock. Pada Mode 8 bit interface, proses penulisan dapat langsung dilakukan sekaligus 8 bit (bit7 … bit0) dan diawali pulsa logika 1 pada E Clock.

2) Pembacaan Data dari Register PerintahPembacaan data pada register perintah biasanya dilakukan untuk melihat status busy dari LCD atau membaca Address Counter. RS diberi logika 0 untuk akses ke register perintah, dan R/W diberi logika 1 agar terjadi proses pembacaan data. Pada Mode 4 bit interface, pembacaan 4 bit nibble tinggi diawali pulsa logika 1 pada E Clock dan kemudian 4 bit nibble rendah dengan diawali pulsa logika 1

Page 4: Liquid Crystal Diode (LCD)

pada E Clock. Untuk Mode 8 bit Interface, pembacaan 8dilakukan langsung 8 bit, dengan diawali sebuah pulsa logika 1 pada E Clock.

Tabel 4.2 Perintah-perintah M1632Perintah D7 D6 D5 D4 D3 D2 D1 D0 Deskripsi

Hapus Display 0 0 0 0 0 0 0 1 Hapus display dan DDRAM

Posisi Awal 0 0 0 0 0 0 1 x Set alamat DDRAM di 0Set Mode 0 0 0 0 0 1 I/D S Atur arah pergeseran

cursor dan displayDisplay ON/OFF

0 0 0 0 1 D C B Atur display (D) ON/OFF, cursor (C) ON/OFF,

blinking (B) ON/OFF Geser

Cursor/Display0 0 0 1 S/

CR/L

X X Geser cursor atau display tanpa mengubah alamat

DDRAMSet Fungsi 0 0 1 DL N F X X Atur panjang data (DL),

jumlah baris yang tampil (N), dan font karakter (F)

Set Alamat CGRAM

0 1 ACG

ACG

ACG

ACG

ACG

ACG

Data dapat dibaca atau ditulis setelah alamat diatur

Set Alamat DDRAM

1 ADD

ADD

ADD

ADD

ADD

ADD

ADD

Data dapat dibaca atau ditulis setelah alamat diatur

I/D : 1 = increment 0 = decrementS : 1 = display bergeser 0 = display tidak bergeserS/C : 1 = display shift 0 = geser cursorR/L : 1 = geser kiri 0 = geser kananDL : 1 = 8 bit 0 = 4 bitN : 1 = 2 baris 0 = 1 barisF : 1 = 5x10 0 = 5x8D : 1 = display ON 0 = display OFFC : 1 = cursor ON 0 = cursor OFFB : 1 = blinking ON 0 = blinking OFF

b. Register DataRegister Data ialah register untuk menuliskan atau membaca data dari atau ke DDRAM. Penulisan data pada register akan menempatkan data tersebut ke DDRAM sesuai dengan alamat yang telah diatur sebelumnya.1) Penulisan Data ke Register Data

Page 5: Liquid Crystal Diode (LCD)

Penulisan data ke register data dilakukan mengirimkan data yang akan ditampilkan di LCD. Kondisi RS dengan logika 1 berarti terjadi akses ke register data. RW berlogika 0 berarti proses penulisan data akan dilakukan. Pada mode 4 bit interface, data dikirimkan secara terpisah. Nible tinggi (bit7 sampai bit4) dikirimkan terlebih dahulu dengan diawali pulsa logika 1 pada E Clock. Kemudian, nible rendah (bit3 sampai bit0) dikirimkan dengan diawali pulsa logika 1 pada E Clock. Pada mode 8 bit interface, proses penulisan dapat langsung dilakukan sekaligus 8 bit (bit7 … bit0) dan diawali pulsa logika 1 pada E Clock.

2) Pembacaan Data dari Register DataPembacaan data pada register data biasanya dilakukan untuk membaca kembali data yang telah ditampilkan di LCD. RS diberi logika 1 untuk akses ke register data, dan R/W diberi logika 1 agar terjadi proses pembacaan data. Pada mode 4 bit interface, pembacaan 4 bit nibble tinggi diawali pulsa logika 1 pada E Clock dan kemudian 4 bit nibble rendah dengan diawali pulsa logika 1 pada E Clock. Untuk mode 8 bit interface, pembacaan dapat dilakukan langsung (8 bit), dengan diawali sebuah pulsa logika 1 pada E Clock.

3. Contoh Program

.include "m8535def.inc"

.equ timer_value = 0xffca

.equ timer_value100 = 0xfbaf

.cseg

.org 0x0000rjmp main

main:ldi r16,low(RAMEND)out SPL,r16ldi r16,high(RAMEND)out SPH,r16ldi r16,0xffout ddra,r16rcall InitLCD

Start:ldi r17,0x01rcall SLcd

Loopx

ldi ZL,low(2*text)ldi ZH,high(2*text)rcall WM1LCDldi ZL,low(2*text2)ldi ZH,high(2*text2)rcall WM2LCDend: rjmp Loopx

;-----------------------; Write Message to LCD;-----------------------WM1LCD: ldi r17,0x80 ;1st line, 1st colrcall SLcdrjmp Wr1

WM2LCD: ldi r17,0xC0rcall SLcdWr1: clr r1

Page 6: Liquid Crystal Diode (LCD)

LoopWr1: lpm ;load program memorymov r19,r0cpi r19,0brne NextCHRret

NextCHR: rcall WLCD ;write characteradiw ZL,1 ;get next charrjmp LoopWr1

;-----------------------; Inisialisasi LCD;-----------------------InitLCD: ldi r20,8

LoopDelay: rcall delay5mSdec r20cpi r20,0brne LoopDelayldi r17,0x03 ;Function setout PortA,r17sbi PortA,6 ;E=1cbi PortA,6 ;E=0rcall delay5mSldi r17,0x03 ;Function setout PortA,r17sbi PortA,6 ;E=1cbi PortA,6 ;E=0rcall delay100uSldi r17,0x02 ;Function set:4 bit operationout PortA,r17sbi PortA,6 ;E=1; rcall delay100uScbi PortA,6 ;E=0ldi r17,0x28 ;Function set:4 bit op;2linesrcall SLcd

ldi r17,0x08 ;Turn Off LCDrcall SLcdldi r17,0x0C ;Turn On LCDrcall SLcdldi r17,0x01 ;Clear Displayrcall SLcdldi r17,0x06 ;Entry mode set; Inc addrrcall SLcdret

;-----------------------; Rutin kirim instruksi;-----------------------SLcd: mov r18,r17andi r18,$F0 ;Get high nibbleswap r18out PortA,r18sbi PortA,6 ;E=1cbi PortA,6 ;E=0mov r18,r17andi r18,$0F ;Get low nibbleout PortA,r18sbi PortA,6 ;E=1cbi PortA,6 ;E=0rcall delay100uSret

;-----------------------; Rutin kirim karakter;-----------------------WLcd: mov r18,r19andi r18,$F0 ;Get high nibbleswap r18out PortA,r18sbi PortA,4 ;RS=1sbi PortA,6 ;E=1cbi PortA,6 ;E=0mov r18,r19andi r18,$0F ;Get low nibbleout PortA,r18

Page 7: Liquid Crystal Diode (LCD)

sbi PortA,4 ;RS=1sbi PortA,6 ;E=1cbi PortA,6 ;E=0rcall delay100uSret

;-----------------------; Rutin delay 5ms;-----------------------delay5ms: ldi r16,0b00000100out TIMSK,r16ldi r16,high(timer_value)out TCNT1H,r16ldi r16,low(timer_value)out TCNT1L,r16ldi r16,0b00000101out TCCR1B,r16loop: in r21,TIFRsbrs r21,TOV1rjmp loopldi r16,0b00000100out TIFR,r16

ret

;-----------------------; Rutin delay 100uS;-----------------------delay100us: ldi r16,0b00000100out TIMSK,r16ldi r16,high(timer_value100)out TCNT1H,r16ldi r16,low(timer_value100)out TCNT1L,r16ldi r16,0b00000001out TCCR1B,r16

loop1: in r21,TIFRsbrs r21,TOV1rjmp loop1ldi r16,0b00000100out TIFR,r16ret; "12345678901234567890"text: .db "Hello World",0text2: .db "How Are You?”,0

Catatan Tambahan:Register X, Register Y dan Register ZRegister R26…R31 memiliki fungsi tambahan sebagai register serbaguna. Register-register ini dapat berfungsi sebagai register 16 bit yang dapat menyimpan address pada operasi pemindahan data dalam mode indirect addressing.LPM (Load Program Memory)Load 1 byte isi address yang ditunjukkan oleh register Z ke R0. Instruksi ini mirip dengan instruksi mov A,@DPTR pada MCS-51. Contoh :ldi ZL,low(2*text) ; ZL=00hldi ZH,high(2*text) ; ZH=10hlpm ; r0=”H” (Karakter H)mov r19,r0 ; r19=”H”.org 1000htext: .db "Hello World",0

Page 8: Liquid Crystal Diode (LCD)