Ada pertanyaan masuk ke saya, bagaimana program untuk tampilan ke LCD (misalnya tipe LCD 2×16 karakter) menggunakan CodeVision. Maka pada kesempatan kali ini saya bahas jawaban dari pertanyaan itu.

Yang perlu Anda ketahui bahwa CodeVision AVR sudah menyediakan pustaka untuk antarmuka LCD, hanya saja, Anda harus menyesuaikan rangkaian dengan ketentuan yang dimiliki CodeVision, perhatikan ketentuan antarmuka LCD dari CodeVision berikut ini (PORT mewakili PORT apa saja yang Anda gunakan untuk antarmuka LCD dengan AVR), atau perhatikan Gambar 3:

  • PORT.0 - pin RS
  • PORT.1 - pin R/W
  • PORT.2 - PIN EN
  • PORT.3 - tidak dipakai
  • PORT.4 - pin D4
  • PORT.5 - pin D5
  • PORT.6 - pin D6
  • PORT.7 - pin D7

Beberapa fungsi pada pustaka LCD milik CodeVision antara lain:

  • void _lcd_ready(void);
  • void _lcd_write_data(unsigned char data);
  • void lcd_write_byte(unsigned char addr, unsigned char data); - menuliskan sebuah BYTE ke generator karakter LCD atau RAM tampilan
  • unsigned char lcd_read_byte(unsigned char addr); - membaca sebuah BYTE dari generator karakter LCD atau RAM tampilan
  • void lcd_gotoxy(unsigned char x, unsigned char y); - meletakkan kursor pada x (kolom, 0..39) dan y (baris,0..3)
  • void lcd_clear(void); - membersihkan layar LCD
  • void lcd_putchar(char c);
  • void lcd_puts(char *str); - menuliskan string STR di dalam SRAM ke LCD
  • void lcd_putsf(char flash *str); - menuliskan string STR di dalam flash ke LCD
  • unsigned char lcd_init(unsigned char lcd_columns); - inisialisasi kontroler LCD
  • void lcd_control (unsigned char control); - menuliskan BYTE kontrol ke LCD

Contoh program pertama ditunjukkan pada Gambar 1, sedangkan contoh program kedua ditunjukkan pada Gambar 2. Hasilnya sama saja, seperti ditunjukkan pada Gambar 3. Penjelasan masing-masing baris program bisa Anda perhatikan keterangan dari masing-masing gambar dan fungsi pustaka lcd.h yang sudah saya jelaskan sebelumnya.

Gambar 1

Baris 3-5 merupakan deklarasi antarmuka LCD dengan mikrokontroler AVR yang bersangkutan, karena kita menggunakan PORTC maka tertulis alamatnya 0×15. Ingat untuk menyertakan pustaka <lcd.h> selalu, sehingga kita bisa menggunakan fungsi-fungsi LCD yang terkait.

Lakukan inisialisasi LCD terlebih dahulu (baris 11), kemudian tempatkan kalimat “Halo Dunia!” pada kolom-1, baris-1 (atau posisi 0,0), perhatikan baris program 12-13. Kalimat “ATMega16 Euy” ditempatkan pada kolom-1, baris-2 (atau posisi 0,1), perhatikan baris program 14-15. Pengiriman kalimat-kalimat atau string-string tersebut masing-masing menggunakan lcd_putsf.

Gambar 2

Program ini sama saja hasilnya dengan program pertama (Gambar 1), hanya saja digunakan variabel lcd_buffer untuk menampilkan 2 kalimat yang sama seperti sebelumnya. Catatan: simbol “\n” pada instruksi sprintf digunakan untuk berganti baris, pada LCD artinya tempatkan pada baris berikutnya kolom-1. Sehingga untuk menampilkan ke LCD digunakan instruksi lcd_puts.

Gambar 3

Bisakah Anda membedakan instruksi lcd_putsf dan lcd_puts? Kemudian apa maksud dari instruksi sprintf sedemikian hingga mengharuskan program mikrokontroler AVR menggunakan lcd_puts bukan lcd_putsf?

Silahkan berkomentar, terima kasih dan semoga bermanfaat…

Tags: , , , ,

5 Responses to “CodeVision dan Pustaka LCD: Sebuah contoh sederhana”

  1. assalamu’alaikum pak agfi…

    setelah mempraktekan tutorial alhamdulillah berhasil pak…
    tapi ada sedikit kendala mengenai fungsi lcd_control…

    saat menggunakan fungsi tersebut muncul error berikut

    Error: D:\AVR\Latihan\LCD\CVAVR\a.c(116): undefined symbol ‘lcd_control’

    setelah saya lihat ternyata listing-nya menggunakan “#include ” bukan “#include ”

    dan pada saat saya ganti dengan “#include ”
    muncul sangat banyak error

    pertanyaan saya, bagaimana caranya agar kita dapat menggunakan fungsi lcd_control tersebut

    terimakasih

  2. @toyibin
    waa’alaikumsalam wr wb…
    coba gunakan CVAVR yang versinya di bawah 2.0 atau paling gampang cek help pada CVAVR yang terkait dengan antarmuka LCD…

  3. Assalamualaikum pak….
    Saya mau tanya,boleh?
    Saya sedang mencoba menggunakan lcd graphic 128×64 tapi blom bisa juga, saya menggunakan atmega 32, kalo boleh saya minta rangkaian dengan contoh program yang sederhana dengan codevisionAVR.
    atas jawabannya saya ucapkan terimakasih.

  4. klo putsf untuk menuliskan string static, klo puts biasanya dipakai untuk menuliskan string yang ada variabelnya juga njeh pak?

  5. Assalamualikum pak
    mau tanya pak, bgmana cara membuat fungsi pustaka lcd_pc.c?
    apakah bapak punya artikel tentang fungsi pustaka.

Leave a Reply

You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>