Perancangan Rangkaian Alarm BARAT LAUT

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