::Programming
 

 
 

 

 

 

 
my Project with uC:

Remote Control

Communication to PC

PWM Motor Control

Sensor for Robot

Interface to Camera

Temperature control

Tachometer

 
Powered by  :    
 

PROGRAMMING   
 
 

 

 

 

LCD INTERFACE

 

 

 

 

 

 

Susunan Pena Standar LCD 14 Pin

  • Pena 1(Ground) fungsi : Tegangan Power nol volt dansinyal ground

  • Pena 2 (VSS) Fungsi: +5 Volt Power

  • Pena 3 ( Contrat Voltage) Fungsi: dihubungkan dengn level ground melalui trimpot untk mengatur contrast karakter.

  • Pena 4 (RS) Fungsi: RS High : Data dikirim ke LCD gbv    

      RS LOW : Perintah (instruksi)dijalankan oleh LCD kontroller

  • Pena 5 (RW) Fungsi: Arah Data

                                    RW High : Write to LCD

                                    RW Low : read from LCD

  • Pena 6 (CE atau E) Fungsi: Clock

  • Pena 7-14 (I/O) fungsi: Perintah yang harus dijalankan LCD atau data yang akan ditampilkan

Pemrograman LCD

Hubungan antara Pena-pena LCD dengan microcontroller seperti pada gambar 1.

 

 

 

Penulisan Asembler

             RS        bit     INT1

                RW       bit     T0

                CE        bit     T1

                Busy     bit     P1.7

 

Penulisan Data

Untuk menulis karakter (data) , diperlukan sinyal RS High, R/W low, byte karakter pada pena 7-14, dan sinyal CE tinggi sejenak.

   DataWrite:

                    Mov        P1,A    ; Pindahkan accumulator pada LCD data input

                    Setb        RS        ; Set RS High (Data)

                    Clr           RW      ; Set RW Low (Write)

                    Nop                   

                    Setb        CE        ; Menerima byte Data

                    Nop                     ; tunggu sejenak

                    Nop

                    Clr CE                 ;

                    Ret

Instruksi Write

Untuk menulis perintah atau alamat ke LCD, set RS low, R/W low,perintah atau alamat pada pena 7-14, dan sinyal CE tinggi sejenak. Karena instruksi ada di Accumulator, untuk mengirim ke LCD menggunakan asembly:

    CmdWrite:

                    Mov P1,A            ; Pindahkan isi Accumulator ke LCD data input

                    Clr RS                  ; Set RS low (instruksi)

                    Nop                      ; tunggu sejenak

                    Setb CE                ; Memerintahkan LCD untuk menerima Instruksi byte

                    Nop                      ; tunggu sejenak

                    Nop

                    Clr     CE               ;

                    Ret                        ; Kembali ke pemanggil.

Inisialisasi LCD

Routine asembler Inisialisasi LCD

LCDInittialize:

                    Mov        A,#038H    ; Panjang Data 8 bit, 2 baris character

                    Call        CmdWrite  

                    Call        Delay10ms    ; Routine delay 10 ms

                    Call        CmdWrite

                    Call        Delay10ms

                    Call        CmdWrite

                    Call        Delay10ms

                    Mov         A,#006h

                    Call        CmdWrite

                    Call        Delay10ms

                    Mov        A,#00Eh    ; Display dancursor On, tidak berkedip

                    Call        CmdWrite

                    Mov        A,#001h    ; LCD clear

                    Jmp        CmdWrite    ; Kembali ke program pemanggil

Routine Delay10ms  diperlukan karena LCD butuh waktu untuk menjalakan instruksi .

Sekarang LCD siap untuk menerima data pertama, instruksi berikut adalah menuliskan  "HELLO" pada display :

Hello:    Mov A,#'H'

            Call  DataWrite

            Mov a,#'E'

            Call DataWrite

            mov A,#'L'

            Call DataWrite

            Mov A,#'L'

            Call DataWrite

            Mov A,#'O'

            Call DataWrite

            Jmp DataWrite    ; Kembali ke program pemanggil

Jika kita ingin menulis tex "HELLO" pada baris kedua, kita harus mengirimkan alamat (Instruksi) 0C0h ke LCD sebelum kita mengirim DataByte

            Mov A,#0c0h    ; Posisi Cursor di baris kedua kiri

            Call    CmdWrite    ; Perintahkan LCD

            jmp    Hello

Kita dapat membuat Routine Pesan ke display . untuk memanggil routine ini , pertama kali load DPTR dengan alamat text string. Masing-masing text string diakhiri dengan "nol"

Contoh String

MSG001:    DB "HELLO"

                DB    000H

Contoh routine LCD_MSG untuk menampilkan  string text

LCD_MSG:    Clr A

                    Movc A,@A+DPTR

                    Inc    DPTR

                    Jz LCD_MSG9    ; Kembali jika nilai nol

                    call DataWrite

                    Jmp Lcd_msg

   Lcd_Msg9:     Ret

Kode berikut akan menampilkan MSG001

   Mov Dptr,#MSG001

    Call Lcd_Msg

 

 

 


     
   
 
 

© 2004. Hantoro Dwi Putra