Kemudahan Memprogram LCD (Bagian II)
Merujuk pada tulisan saya terdahulu, serta beberapa komentator yang menanyakan program, maka pada tulisan kali ini saya akan memberikan contoh program (berdasarkan rutin siap pakai dari beberapa situs serta rutin yang built in
dari compiler tertentu) utk interfacing dengan lcd dengan berbagai macam compiler disesuaikan dengan mikrokontroller yang digunakan (MCS51 atau AVR RISC 8 bit).
Seperti yang saya paparkan pada postingan terdahulu, bahwa ada 2 cara utk berkomunikasi dengan LCD, yaitu 8 bit dan 4 bit jalur data. Selain 8 atau 4 jalur yang terhubung dengan kontroler, dibutuhkan 3 jalur lagi untuk kontrol, yaitu RS, RW dan EN.
Untuk MCS51 :
- Dalam Assembler Ada banyak rutin siap pakai di http://8052.com/codelib.phtml Yang sudah saya coba : http://8052.com/codelib/lcd_kepad.asm, rutin ini untuk komunikasi 8 bit. Jika menggunakan LCD 2 x 16, tidak perlu ada modifikasi pada rutin INITIALIZE. Contoh penggunaannya :
... DATA EQU PORTx ;misal x adalah PORT1 LCD_RS EQU PORTy.0 ;misal y adalah PORT2 LCD_RW EQU PORTy.1 LCD_EN EQU PORTy.2 CALL INITIALIZE ;inisialisasi LCD CALL CLEAR_SCREEN ;bersihkan layar MOV A,#80h ;mengisi 0x80 ke accumulator untuk menset CALL ADDRESS ;alamat DDRAM LCD. Ini akan menset posisi ;LCD pada baris 1 kolom 1. MOV A,#'g' ;Menulis karakter 'g' CALL WRITE_ON ;pada baris 1 kolom 1 MOV DPTR,#str1 ;menset data pointer ke alamat dgn label str1 CALL TRANSFER ;mencetak string 'gedex ... str1: DB 'gedex',offh ;rutin TRANSFER akan mencetak karakter per karakter ;dan memerlukan byte 0xff utk menandakan akhir dari ;string. ...Jika saat kompilasi timbul error yang berhubungan dengan baris yang terdapat kata DATA, maka penamaan DATA perlu di rubah. Di beberapa compiler,DATA merupakan reserved word.
Catatan : Saya mengcompilenya dengan Pinnacle v52 (Evaluation) dan ASM51.
Pada Pinnacle tidak ada masalah terhadap penamaan DATA. Pada ASM51 timbul error, sehingga penamaan DATA perlu di rubah. - Menggunakan BASCOM 8051 IDE.
Komunikasi yang digunakan bisa 8 bit atau 4 bit. Jika menggunakan komunikasi 4 bit, maka pin LCD untuk data yang digunakan adalah DB4-DB7. Konfigurasi pin LCD ke port kontroller di inisialisasi dengan statement Config Lcdpin, misal :Config Lcdpin = Pin ,Db4 = P3.4,Db5 = P3.5,Db6 = P3.6,Db7 = P3.7,E = P2.4,Rs = P2.0
Dengan pin RW terhubung ground. Tipe LCD yang digunakan diinisialisasi dengan statement Config LCD, misal :
Config Lcd = 16 * 2
Setelah pemanggilan statement di atas, LCD siap dikirimi data atau instruksi. BASCOM juga telah menyediakan syntax yang berhubungan dengan LCD seperti :
CLS : untuk membersihkan layar
CURSOR : dengan parameter ON/OFF, BLINK/NOBLINK
LOCATE y,x : untuk memindahkan kursor ke posisi tertentu.
LCD : mencetak konstanta atau variabel ke tampilan LCD.
dsb.. Contoh penggunaannya :... Config Lcdpin = Pin , Db4 = P3.4 , Db5 = P3.5 , Db6 = P3.6 , Db7 = P3.7 , E = P2.4 , Rs = P2.0 Config Lcd = 16 * 2 Cursor Off Cls Locate 1 , 1 : Lcd "gedex" Locate 2 , 1 : Lcd "C"; "o"; "o"; "L" ...
Komunikasi secara 8 bit pada BASCOM direkomendasikan untuk berkomunikasi dengan mikroprosesor, dimana DB0-DB7 harus terhubung dengan D0-D7 dan RS / EN dengan jalur A0. Saya sendiri belum pernah mencobanya.
Catatan : Saya menggunakan BASCOM 8051 v2.0.11.0 Serial Demo.
Untuk AVR RISC Microcontroller 8 bit :
- Menggunakan AVR Studio
Rutin dari OMIDKOMPANI, dapat di download di http://www.avrfreaks.net/index.php?module=Freaks%20Academy&func=viewItem&item_id=904&item_type=project - Menggunakan WinAVR
Rutin dari by iamgotzaa. Contoh pada program main nya akan menampilkan hasil sampling ADC ke LCD. dapat di download di http://www.avrfreaks.net/index.php?module=Freaks%20Academy&func=viewItem&item_id=440&item_type=project
Rutin dari nasi, dapat didownload di : http://www.avrfreaks.net/index.php?module=Freaks%20Academy&func=viewItem&item_id=293&item_type=project - BASCOM utk AVR
Penggunaannya hampir sama dengan BASCOM 8051 IDE - Menggunakan CodeVisionAVR
CodeVision menyediakan wizard, CodeWizardAVR, untuk menggenerate baris kode untuk mendefiniskan LCD. Interfacing ke LCD ini membutuhkan 7 pin pada port yang sama. Misal digunakan PORTB untuk LCD port, maka konfigurasi pin antara LCD dan chip AVR adalah :
PORTB.0 : RS
PORTB.1 : RW
PORTB.2 : EN
PORTB.4 : DB4
PORTB.5 : DB5
PORTB.6 : DB6
PORTB.7 : DB7
Langkah-langkah menggunakan CodeWizardAVR untuk LCD :- Pilih Create new file

- Pilih File type project

Lalu pilih yes untuk menggunakan CodeWizardAVR
- Akan muncul jendela seperti gambar di bawah ini. Pilih chip yang digunakan serta clock yang dipakai. Misal menggunakan ATMega16 dengan frekuensi clock 4 MHz

- Pindah ke tab LCD, pilih port yang akan di gunakan untuk LCD port. Misal pada PORTB, maka hubungan pin antara LCD dan PORTB akan ditampilkan.

- Pilih Create new file
Menggunakan rutin LCD yang sudah built in dari compiler tertentu dapat mempermudah pekerjaan dan menghemat waktu. Jika LCD yang digunakan hanya digunakan sesaat, misal nya hanya untuk debug data dari sensor atau bagian sistem yg tidak significant, maka saya menyarankan untuk menggunakan rutin bawaan dari compiler dengan komunikasi 4 bit. Gambar di bawah ini adalah LCD yang biasa saya pakai untuk memonitor nilai sensor atau debug sistem.

Intelligent Control Systems?? WP Themes for KSLUG
There are 80 comments (Leave comment)
Pages: [8] 7 6 5 4 3 2 1 » Show All
Pages: [8] 7 6 5 4 3 2 1 » Show All
Back to top
80 hasan, 27 Feb 2010 at 11:14 pm
salam
pak.kalau tampilan Lcd list programnya gimana y mas menggunakan bascom ??tlg dijawab melalui email hasan_pray02@yahoo.com
terima kasih
79 sawitri, 10 Jan 2010 at 10:18 am
..mas mo nanya
cara menginisialisasi keypad ke LCD gmn ya??pke cvavr…
makasi
by:ira_sawitri@yahoo.com
78 evan, 27 Dec 2009 at 8:25 pm
boz mnta bntuan nh…
bsa mnta contoh program utk mmbuat timer dari detik,menit,hari,bulan,tahun,
mggunakn ds1307 yg dhbungkan k microcontroller at8535….
mhon bntuannya y…
77 budisetijo, 18 Dec 2009 at 1:57 pm
Kalau ada yang membutuhkan komponen TRF 2,4G (Modul RF 2,4GHz), SRF02, IC ISD25120, SHT11, saya mau jual dengan harga miring. Juga kalau ada yang membutuhkan jasa programming mikro,FPGa, PLC dan desain alat elektronika, bisa kontak saya ke email penyimpan73@yahoo.com atau no tlpn. 02749602575 atau 088802767057, budi setijo
76 budisetijo, 07 Dec 2009 at 3:03 pm
Kalau ada yang membutuhkan komponen TRF 2,4G (Modul RF 2,4GHz), SRF02, IC ISD25120, SHT11, saya mau jual dengan harga miring. Juga kalau ada yang membutuhkan jasa programming mikro,FPGa, PLC dan desain alat elektronika, bisa kontak saya ke email penyimpan73@yahoo.com atau no tlpn. 02749602575, budi setijo
75 skak, 25 Nov 2009 at 2:12 pm
mz klo punya program robot line follower ak bisa mnta g?luw bisa di kirim ke emai ku
74 amrullah, 03 Nov 2009 at 11:10 am
bos,,minta bantuannya dong…
saya ingin membuat pengukuran suhu menggunakan atmega8535 bahasa yang saya gunakan adalah bahasa basic compiler..
yang ingin saya tanyakan :
bagaimana caranya membuat program pada suhu antara 38 - 40 drajat celcius lampu mati,dan ketika lampu tersebut mati kipas angin hidup.
dan aplikasi ini LCD m1632 sebagai output penampil suhunya..
tolong kirim e-mile saya ya bos,,,di satria_ituaja@yahoo.co.id
terimakasih atas bantuannya..
wassalam..
73 Benrad, 16 Sep 2009 at 9:28 am
Mas, saya masih awam memakai ATMega 16. Saya mau ngirim data analog dari sensor dalam tegangan ke Port D. Keluaran dari Port D menjadi masukan pada Diffrensial amplifier, gimana programnya jika menggunakan CodeVisionAVR dan dalam Assembler? Kirim ke email saya saja ya mas. Makasih sebelumnya ya mas..
72 kandar, 13 Aug 2009 at 10:08 am
oya mas ni untuk lcd 2×16,misal data atas ada di R1,data bawah ada di R2,gmn untuk nampilin ( ‘data atas’, ‘ ,’ , ‘data bawah’ ) ke P2,utuk prog mcs51,tlong dikirim di email yo mas,thx b4
email : birowo_kk@yahoo.co.id
71 kandar, 13 Aug 2009 at 10:01 am
oya mas misal data atas ada di R1,data bawah ada di R2,tlong dikirim di email yo mas,thx b4