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
No comments:
Post a Comment