Wow enaknya belajar pemrograman aplikasi mikrokontroler AVR menggunakan Flowcode 3 for AVR sebagaimana sudah saya tulis artikel-nya sejak awal. Kali ini dicoba membuat aplikasi dengan tampilan LCD 2×16, hanya sekedar menampilkan dua kalimat, masing-masing di baris-1 dan baris-2, diagram atau flow-nya ditunjukkan pada Gambar 1 (termasuk hasil simulasinya).

Gambar 1

Hasil kompilasi kedalam Bahasa C saya tunjukkan satu persatu. Pada bagian pertama, sebagaimana ditunjukkan pada Gambar 2, merupakan deklarasi fungsi-fungsi makro untuk menangani LCD (baris 66 - 74). Terdapat 9 macam fungsi makro LCD dan hanya 3 yang akan digunakan dalam program, yaitu:

  • FCD_LCDDisplay0_Start(), digunakan untuk inisialisasi LCD;
  • FCD_LCDDisplay0_PrintString(char* String, char MSZ_String), digunakan untuk menuliskan string, dan
  • FCD_LCDDisplay0_Cursor(char x, char y), digunakan untuk menempatkan kursor dengan posisi kolom,baris).

Gambar 2

Untuk fungsi FCD_LCDDisplay0_Start() listing programnya ditunjukkan pada Gambar 3. Apa yang dilakukan oleh fungsi ini adalah melakukan inisialisasi tampilan LCD dengan antarmuka 4 bit data (Flowcode 3 AVR hanya menyediakan antarmuka 4-bit data LCD walaupun bisa juga digunakan rangkaian antarmuka 8-bit data LCD). Rangkaian yang digunakan menggunakan pemetaan PORT dan pin LCD sebagai berikut:

#define LCD_2360334_BIT0    2
#define LCD_2360334_BIT1    3
#define LCD_2360334_BIT2    4
#define LCD_2360334_BIT3    5
#define LCD_2360334_RS      0
#define LCD_2360334_E       1

Gambar 3

Untuk fungsi FCD_LCDDisplay0_PrintString() listingnya ditunjukkan pada Gambar 4. Fungsi ini digunakan untuk menampilkan string ke LCD pada posisi kursor saat itu. Fungsi ini membutuhkan dua parameter, string yang akan ditampilkan dan jumlah karakter pada string tersebut.

Gambar 4

Untuk fungsi FCD_LCDDisplay0_Cursor(char x, char y) listingnya ditunjukkan pada Gambar 5. Fungsi ini membutuhkan dua parameter yaitu x (untuk posisi kolom) dan y (untuk posisi baris), jika dituliskan FCD_LCDDisplay0_Cursor(0,1) artinya menempatkan kursor pada kolom pertama baris kedua, demikian seterusnya…

Gambar 5

Nah program utama ditunjukkan pada Gambar 6. Diawali dengan inisialisasi register MCUCSR dan WDTCR pada baris 373 dan 374 (baca artikel saya sebelumnya). Kemudian dilanjutkan dengan melakukan inisialisasi LCD (baris 381) menggunakan fungsi FCD_LCDDisplay0_Start(). Diikuti dengan menampilkan string “Halo Flowcode3″ (baris 386, angka 14 merupakan jumlah karakter pada string yang bersangkutan), menempatkan kursor pada baris kedua kolom pertama (baris 391), menampilkan string “by ATMega32″ (baris 396) dan diakhiri dengan infinite-loop atau kalang-takhingga (baris 399).

Gambar 6

Jika Anda perhatikan baik-baik pada ketiga fungsi tersebut, maka bisa Anda temukan pemanggilan fungsi lain yaitu LCD_2360334_RawSend(char nIn, char nMask), yang digunakan untuk mengirimkan satu karakter. Pendefinisian fungsi ini ada di dalam fungsi FCD_LCDDisplay0_GetDefines().

Program selengkapnya bisa diunduh disini.

Semoga bermanfaat.

Tags: , , , ,

18 Responses to “Flowcode AVR 3.0: Aplikasi dengan LCD 2×16”

  1. mas kalau inisialisai lcd 2×16 inovative electronic dengan menggunakan code vision gmn?
    mau donk,saya mengalami kesulitan disini

    terima kasih sebelumnya..

  2. @Muhaimin:
    liat saja artikelnya di http://agfi.staff.ugm.ac.id/bl.....sederhana/

  3. salm kenal buat master2,
    tolong kasih sample dengan flowcode avr atmega32 alarm sesuai dengan tanggal dan jam , misalnya alarm pada tanggal 6 juni 2010 pada jam 8 dan jam 14 hidup

    trima kasih sebelumnya

  4. maas…aku punya kode hexa buat AT90S8535 apa kode tersebut bisa langsung di isi ke Atmega8535 krn kan AT90S8535 sdh gak ada,atau hrs di compile lagi.ada sih asm codenya tp masih pake AT90S8535 terus aku compiler pake codevision Avr no error tapi warning=2 maksudnya gimana apa itu sdh bisa di isikan dan kalau file hexanya kumasukan pake ponyprog2.0 sama tdk,maaf ya mas agak bulet maklum lagi belajar

  5. mas perangkat lunak Flowcode AVR versi 3.0 itu free g ya?

  6. @anisa:
    flowcode avr 3.0 merupakan aplikasi komersil bukan free, saat ini Anda bisa mengunduh demonya (Flowcode avr 4.0) di http://www.matrixmultimedia.co.....PHPSESSID=

  7. @taukhid:
    perlu buat dulu prgramnya nich… btw thanks idenya…
    @ryo:
    Insya Alloh masih bisa at90s8535 kompatibel dengan atmega8535

  8. mas, apakah configurasi LCD untuk flowcode sama dengan dengan codevision? saya sudah coba aplikasi dengan LCD 2×16 di atas, setelah saya downloadkan ke mikro kok g muncul ya? padahal portnya uda bener, mohon penjelasannya ya, terimakasi

  9. Mas, apa ada buku/ebook yang mempelajari flowcode untuk avr mulai dasar? Saya pake buku microcontroler engineering tapi susah mempelajarinya. Terutama bagian serial communication dan program adcnya. Kalau ada tolong kasih linknya ya. terima kasih

  10. Pak Agfi…:-) cara menambahkan library gimana yach….? tujuannya supaya semua jenis AVR bisa di coba…,bagi yang tau mohon di share yach….
    Terima Kasih banyak sebelumnya.

  11. mas aq bikin jam dengan alarm
    scrip..
    void tanggal_jam_tampil(void)
    {
    rtc_get_date(&dd,&mm,&yy);
    rtc_get_time(&h,&m,&s);
    //lcd_clear();
    lcd_gotoxy(0,0);
    sprintf(tgl,”TGL :%02u-%02u-20%02u”,dd,mm,yy);
    lcd_puts(tgl);
    lcd_gotoxy(0,1);
    sprintf(jam,”JAM : %02u:%02u:%02u”,h,m,s);
    lcd_puts(jam);
    delay_ms(250);

    }

    bagaimana mas biar pada menit 00, 15, 30, 45 alarm berbunyi mas…
    trimakasih

  12. terimakasih telah berbagi pak

  13. thank u for sharing

  14. thank you for sharing it’s so helpful

  15. its good thing to share, thank you.

  16. Terimakasih paka atas sharing ilmunya. Bermanfaat sekali pagi saya yang sedang belajar bisnis running text

  17. Your post is unique and interesting. Thanks for sharing

Trackbacks/Pingbacks

  1. Memulai Belajar Mikrokontroler - Quick, Easy and Harmless! | DSP & Embedded Electronics

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>