Jumat, 17 Juni 2011

Tutorial LCD Display with AVR GCC, Bascom AVR, and CodeVision

Sekarang saya akan membahas tentang menampilkan data ke LCD Display 16x2 dengan beberapa bahasa yang biasa dipakai, yaitu AVR GCC, Bascom AVR, dan Code Vision. Beberapa contoh ini hanya menampilkan tulisan sederhana, sehingga dapat dilihat perbedaannya antara ketiga bahasa pemrograman mikrokontroler tersebut. 
AVR GCC:
Pertama, pemrograman LCD dengan AVR GCC atau AVR Studio dengan bahasa C, setelah program AVR Studio dari Atmel tersebut dibuka, pilih New Project sbb:
: 


Klik Next dan pilih AVR GCC, kemudian beri nama file yang diinginkan, jangan lupa tempatkan file tersebut di folder yang Anda inginkan juga dengan Browse folder pada Location:

Klik Next dan pada Debug Platform pilih AVR Simulator, dan pada Device pilih ATMega32:
klik finish.
Maka akan tampil form AVR GCC seperti ini:
Klik kanan pada Source File dan pilih Create New Source File sbb:
dan beri nama project baru tsb dengan lcdlib.c sbb:
Kemudian isi kan lcdlib.c tersebut dengan source code disini.

Klik kanan pada Header dan pilih Create New Header File sbb:
kemudian berinama header tsb dengan lcdlib.h dan isi dengan source codenya disini.

Pada file utama atau teslcd.c programnya adalah sbb:
;==================================================
;LCD PROGRAM AVR GCC
;PROGRAMMER: WAHYU RAHMANIAR
;COMPANY   :TECHNOLOGINATION
;==================================================

#include <avr/io.h>
#include <avr/pgmspace.h>
#include <util/delay.h>
#include "lcdlib.h"

const uint8_t Tampil1[] PROGMEM="LCD AVR Studio\0";
const uint8_t Tampil2[] PROGMEM="Technologination\0";
int main(void)
{
    LCDinit();//init LCD bit
    LCDclr();//bersihkan tampilan LCD
    CopyStringtoLCD(Tampil1, 0, 0);
    CopyStringtoLCD(Tampil2, 0, 1);
    LCDcursorOnBlink();
    _delay_ms(100);

}


Setelah itu lakukan pengaturan mikrokontroler dan crystal yang dipakai, dengan klik kanan teslcd.c kemudian pilih Edit Configuration Option:

Mikrokontroler yang digunakan adalah ATMega32 dan crystal 8MHz, pengaturannya sbb:
Jangan lupa untuk Save program yang telah dibuat tadi, kemudian klik Build --> Build.


Rangkaian dan simulasinya adalah sbb:

download source code lengkap dan simulasinya dengan proteus.

Pada AVR Studio ini tidak ada library bawaan untuk LCD Display, sehingga kita harus menambahkan library sendiri, yaitu lcdlib.c dan lcdlib.h, karena open source dan bersifat bebas library tsb tidak harus seperti yang saya contohkan ini, ada berbagai macam library versi yang lain. Hanya saja library saya ini sudah cukup lengkap, dapat dilihat pada lcdlib.c sudah terdapat fungsi-fungsi seperti membuat karakter sendiri, cursor blink, cursor on, cursor left, cursor right, dsb.


BASCOM AVR:
Kedua,  pemrograman LCD dengan Bascom AVR. buka File --> New dan tampil form utama Bascom AVR sbb:
Kemudian tulisankan listing program dibawah ini:
'==========================================================
'LCD BASCOM AVR
'PROGRAMMER : WAHYU RAHMANIAR
'COMPANY    : TECHNOLOGINATION
'==========================================================

$regfile = "m32def.dat"
$crystal = 8000000

Config Lcdpin = Pin , Db4 = Portd.4 , Db5 = Portd.5 , Db6 = Portd.6 , Db7 = Portd.7 , E = Portd.2 , Rs = Portd.0
Config Lcd = 16 * 2

Dim Y As Integer

Do
Cls
Cursor Off
Locate 1 , 1
Lcd " LCD Bascom AVR"
Locate 2 , 1
Lcd "Technologination"
Wait 2
Loop

Setelah itu simpan filenya, dan Compile atau F7.
Jika ada pilihan seperti ini, pilih yes:

Rangkaian skematiknya sbb:

Jika ingin membuat tulisan bergerak kekiri, listing programnya seperti ini:

Cls
Cursor Off
Locate 1 , 1
Lcd "    TEST LCD BASCOM AVR"
For Y = 1 To 20
   Shiftlcd Left
   Waitms 500
   Next
   Cls


Kelebihannya pada Bascom AVR ini juga dapat membuat karakter sendiri dengan Tools --> LCD Designer, maka akan muncul form LCD designer, dan klik kotak sehingga membentuk karakter yang diinginkan, misalnya karakter "Love" berikut:
setelah di klik ok, akan muncul listing:
Deflcdchar ? , 32 , 10 , 31 , 14 , 4 , 32 , 32 , 32         ' replace ? with number (0-7)'

yang berarti ganti "?" dengan angka 0-7, misalnya kita ganti menjadi angka 1, menjadi:
Deflcdchar 1 , 32 , 10 , 31 , 14 , 4 , 32 , 32 , 32   

Kemudian diselipkan ke dalam program LCD berikut:

Cls
Cursor Off
Locate 1 , 1
Lcd chr(1); "LCD Bascom AVR"; chr(1)
Locate 2 , 1
Lcd "Technologination"
Wait 2

Hasil simulasinya menjadi seperti ini:

Simulasi dan source code-nya dapat didownload disini.


CODE VISION AVR:
Ketiga, pemrograman LCD display dengan CodeVision atau CV AVR. Buka program CV AVR, lalu pilih File --> New --> Project, sbb:
Untuk Confirm pilih YES, kemudian akan tampil CodeWizardAVR sbb:
Pilih Chip ATMega32 dan Clock 8MHz. Lalu pilih LCD dan pilih LCD Port --> PORTD dan Chars/Line --> 16, sbb:
 
Berbeda dengan AVR GCC dan Bascom AVR, RW pada CV AVR ini dihubungkan k eport mikrokokontroler, dan pengaturannya ditentukan seperti gambar diatas.
Setelah selesai pengaturan, pilih File --> Generate, Save, and Exit:
Maka akan tampil form CV AVR sbb:
Pada bagian pemanggilan library tambahkan #include<delay.h> sbb:
Program dituliskan didalam while(1) sbb:
Ketikkan listing program seperti ini:
while (1)
      {
        lcd_init(16);
        lcd_clear();
        lcd_gotoxy(0,0);
        lcd_putsf(" LCD CodeVision");
        lcd_gotoxy(0,1);
        lcd_putsf("Technologination");
        delay_ms(2000);
      };
}
Setelah itu simpan semua file, dan pilih Project --> Build All:
Hasil simulasinya seperti gambar dibawah ini:

Simulasi dan source code lengkapnya bisa di download disini.

Tempat Jual Komponen dan Elektronik.

-ayuchan-