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: atmel, avr, flowcode avr, lcd, Mikrokontroler
May 23rd, 2010 at 12:23 pm
mas kalau inisialisai lcd 2×16 inovative electronic dengan menggunakan code vision gmn?
mau donk,saya mengalami kesulitan disini
terima kasih sebelumnya..
May 26th, 2010 at 9:04 am
@Muhaimin:
liat saja artikelnya di http://agfi.staff.ugm.ac.id/bl.....sederhana/
June 6th, 2010 at 1:10 am
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
June 7th, 2010 at 8:13 pm
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
June 14th, 2010 at 3:59 pm
mas perangkat lunak Flowcode AVR versi 3.0 itu free g ya?
June 14th, 2010 at 6:18 pm
@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=
June 14th, 2010 at 6:20 pm
@taukhid:
perlu buat dulu prgramnya nich… btw thanks idenya…
@ryo:
Insya Alloh masih bisa at90s8535 kompatibel dengan atmega8535
November 7th, 2010 at 10:18 am
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
November 12th, 2010 at 5:14 am
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
September 13th, 2011 at 10:10 pm
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.
August 4th, 2012 at 8:21 pm
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
March 26th, 2018 at 9:18 am
terimakasih telah berbagi pak
April 18th, 2018 at 10:06 am
thank u for sharing
May 16th, 2018 at 2:04 pm
thank you for sharing it’s so helpful
December 8th, 2018 at 11:57 pm
its good thing to share, thank you.
January 15th, 2019 at 10:22 am
Terimakasih paka atas sharing ilmunya. Bermanfaat sekali pagi saya yang sedang belajar bisnis running text
June 25th, 2019 at 2:18 am
Your post is unique and interesting. Thanks for sharing