Custom Search

INISIALISASI LCD CHARACTER

Function Set


RS

R/W

D7

D6

D5

D4

D3

D2

D1

D0

0

0

0

0

1

DL

N

F

X

X

DL : Set data lenght. Bit ini digunakan untuk mengatur apakah interface jalur data antara mikrokontroler dengan LCD Karakter adalah 4 bit atau 8 bit

DL = 0; Data lenght 4 bit

DL = 1; Data lenght 8 bit

N : Set jumlah baris. Bit ini dugunakan untuk setting jumlah baris yang akan digunakan pada LCD Karakter, satu baris atau dua baris.

N = 0; Satu baris display

N = 1; Dua baris display

F :Set character font. Bit ini dugunakan untuk membangun ukuran besar atau kecilnya dari font karakter yang akan didisplaykan ke LCD Karakter.

F = 0; Ukuran font karakter 5 x 7 dot

F = 1; Ukuran font karakter 5 x 10 dot

Entry Mode Set


RS

R/W

D7

D6

D5

D4

D3

D2

D1

D0

0
0
0
0
0
0
0
1
I/D
S

I/D : Set increment atau decrement

I/D = 0; Decrement RAM

I/D = 1; Increment RAM

S : Menggeser display ke kanan atau ke kiri

S = 0; display tidak bergeser

S = 1; display bergeser kekanan atau kekiri bergantung I/D



Display ON-OFF/ Kursor

RS

R/W

D7

D6

D5

D4

D3

D2

D1

D0

0

0

0

0

0

0

1

D

C

B


D : Set display ON/ OFF. Bit ini untuk mengatur apakah display LCD di hidukan atau dipadamkan.

D = 0: Display OFF

D = 1; Display ON

C : Set display cursor ON/ OFF. Bit ini untuk menampilkan atau tidak, kursor pada LCD karakter. untuk menandai karakter yang tercetak pada layar seperti halnya pada monitor komputer.

C = 0; Cursor OFF

C = 1; Cursor ON

B : Set cursor berkedik ( BLINK ). Bit ini dapat digunakan untuk mengatur cursor pada LCD karakter apakah berkedip atau tidak.

B = 0; Cursor tidak berkedip

B = 1; Cursor berkedip

Display Clear


RS

R/W

D7

D6

D5

D4

D3

D2

D1

D0

0

0

0

0

0

0

0

0

0

1

Instruksi ini difungsikan untuk membersihkan layar LCD character

Sift Right atau Left

RS

R/W

D7

D6

D5

D4

D3

D2

D1

D0

0
0
0
0
0
1
S/C
R/L
X
X

S/C : Untuk menggeser cursor atau display

S/C = 0; menggeser cursor

S/C = 1; menggeser display

R/L : Untuk menggeser ke kiri atau kekanan

R/L = 0; menggeser ke Left

R/L = 1; menggeser ke Right

Pemilihan Lokasi RAM LCD Character

RS

R/W

D7

D6

D5

D4

D3

D2

D1

D0

0
0
1
Y
0
0
X
X
X
X


Y : Pemilihan lokasi RAM baris 1 atau 2

Y = 0; pemilihan lokasi RAM LCD pada baris 1

Y = 1; pemilihan lokasi RAM LCD pada baris 2

XXXX: pemilihan alamat dari address 0000 s/d 1111 atau 0 s/d 15 desimal, karena jumlah karakter yang dapat dimunculkan pada layar LCD karakter adalah 16 Karakter.

C

Contoh instruksi penulisan character C pada lokasi : Baris 1 dan Colom 6

;Percobaan 3.1.

;Menuliskan sebuah character ke layar LCD Character 2 x 16

Org 0h

Start: Mov R1, #85h; menunjuk lokasi RAM baris 1 kolom 6

Acall Write_inst

Mov R1,#'C'; menuliskan karakter C ke layar LCD character

Acall Write_data

Sjmp Start

Write_inst:
Clr P1.0 ; RS = P1.0 = 0, mode tulis instruksi ke LCD
Mov P0,R1 ; D7 s/d D0 = P0 = R1
Setb P1.1 ; EN = 1 = P1.1
Acall delay ; panggil waktu tunda
Clr P1.1 ; EN = 0 = P1.1
ret
;
Write_data:
Setb P1.0 ; RS = P1.0 = 1, mode tulis data ke LCD
Mov P0,R1 ; D7 s/d D0 = P0 = R1
Setb P1.1 ; EN = 1 = P1.1
Acall delay ; panggil waktu tunda
Clr p1.1 ; EN = 0 = P1.1
ret

Init_lcd:
mov r1,#00000001b ;Display clear, semua tampilan akan direset
acall write_inst
mov r1,#00111000b ;Function set, data 8 bit, dan dua baris font 5x7
acall write_inst
mov r1,#00001100b ;Display on, kursor off,kursor blink off
acall write_inst
mov r1,#00000110b ;Entry mode, Set increment
acall write_inst
ret
;

end


L A B

;Percobaan 3.2.

;Menuliskan tiga buah character ke layar LCD Character 2 x 16

Org 0h

Start: Mov R1, #84h; menunjuk lokasi RAM baris 1 kolom 5

Acall Write_inst

Mov R1,#'L'; menuliskan karakter C ke layar LCD character

Acall Write_data

Mov R1,#85h; menunjuk lokasi RAM baris 1 kolom 6

Mov R1,#'A';

Acall Write_data

Mov R1,#86h; menunjuk lokasi RAM baris 1 kolom 6

Mov R1,#'B';

Acall Write_data

Sjmp Start

Write_inst:
Clr P1.0 ; RS = P1.0 = 0, mode tulis instruksi ke LCD
Mov P0,R1 ; D7 s/d D0 = P0 = R1
Setb P1.1 ; EN = 1 = P1.1
Acall delay ; panggil waktu tunda
Clr P1.1 ; EN = 0 = P1.1
ret
;
Write_data:
Setb P1.0 ; RS = P1.0 = 1, mode tulis data ke LCD
Mov P0,R1 ; D7 s/d D0 = P0 = R1
Setb P1.1 ; EN = 1 = P1.1
Acall delay ; panggil waktu tunda
Clr p1.1 ; EN = 0 = P1.1
ret

;

Init_lcd:
mov r1,#00000001b ;Display clear, semua tampilan akan direset
acall write_inst
mov r1,#00111000b ;Function set, data 8 bit, dan dua baris font 5x7
acall write_inst
mov r1,#00001100b ;Display on, kursor off,kursor blink off
acall write_inst
mov r1,#00000110b ;Entry mode, Set increment
acall write_inst
ret
;

end


0 comments:

Post a Comment

Informasi Pilihan Identitas:
Google/Blogger : Khusus yang punya Account Blogger.
Lainnya : Jika tidak punya account blogger namun punya alamat Blog atau Website.
Anonim : Jika tidak ingin mempublikasikan profile anda (tidak disarankan).

Artikel yang serupa