P0.3 P0.2
P0.0 P0.3
P0.1
4.7 Interface Driver LCD
LCD digunakan untuk menampilkan hasil pengolahan data dari Mikrokontroler AT89S51 berupa kecepatan dan arah angin. Gambar
interface driver
LCD 16x2 dengan mikrokontroler ditunjukkan oleh gambar 4.10.
Gambar 4.10 Perancangan interface driver LCD
Hubungan dari pin LCD dengan mikrokontroler ditunjukkan oleh tabel 4.3. Pin 7 sampai dengan pin 14 merupakan pin untuk data sebanyak 8 pin. Pin-
pin ini dihubungkan dengan
port
0 mikrokontroler. Selain pin data, terdapat juga pin RS dan pin EN yang berfungsi pada saat mikrokontroler mengirimkan data
maupun instruksi ke LCD. Pin ini masing-masing terhubung dengan
port
3.6 dan port 3.7.
Tabel 4.3 Hubungan pin LCD ke mikrokontroler
PIN LCD PORT MIKROKONTROLER
PIN 4 RS Port 3.6
PIN 6 EN Port 3.7
PIN 7 DB0 Port 0.0
PIN 8 DB1 Port 0.1
PIN 9 DB2 Port 0.2
PIN 10 DB3 Port 0.3
PIN 11 DB4 Port 0.4
PIN 12 DB5 Port 0.5
PIN 13 DB6 Port 0.6
PIN 14 DB7 Port 0.7
Alur kerja program driver LCD ditunjukkan oleh gambar 4.11:
P0.7 P0.6
P0.5 P0.4
P0.3 P0.2
P0.1 P0.0
P3.7 P3.6
Gambar 4.11 Alur kerja program driver LCD
Penjelasan mengenai gambar 4.11 yaitu: Pada saat LCD dihidupkan yang pertama kali dilakukan yaitu menghapus
isi LCD
clear display
. Setelah itu dilanjutkan dengan mengatur lebar data yang diinginkan. Data yang dikirim 8 bit sekaligus. Selanjutnya yaitu mengatur kursor
apakah ditampilkan atau tidak. Yang terakhir yaitu mengatur pergeseran karakter apakah ke kanan atau ke kiri dengan mengeset
incrementdecrement
. Berikut adalah cuplikan sub rutin untuk penulisan tampilan di LCD.
RS_LCD equ
P3.6 EN_LCD
equ P3.7
Start: Mov
DPTR,Awalan ;isi data pointer dengan awalan
Lcall Init_lcd
;panggil inisialisai lcd Lcall tulis_char
;panggil subrutin tulis karakter Lcall tulis_data
;panggil subrutin penulisan data tulis_char:
mov r3,16 ;isi R3 dengan 16
mov r1,80h ;isi R1 dengan 80h
call tulis_inst ;panggil subrutin pengiriman address ret;
tulis_data:
clr a
; A = 0 movc
a,a+dptr ; A = [A+ DPTR]
mov r1,A
; R1 = A inc
dptr ; DPTR = DPTR +1
call tulis_lcd
; panggil subrutin tulis karakter ke LCD djnz
r3,tulis_data ; r3 kurangi 1 lalu ulangi terus tulis_data hingga r3=0
ret ;
Lanjutan……………………… Mulai
Hapus Layar Atur function set
Atur kursor dan display Mengatur increment decrement
Selesai