Subscribe via email

Enter your email address:

Delivered by FeedBurner

BASCOM-AVR, MEGA16, LCD 16*2

Kita akan mencoba menampilkan karakter di LCD 16*2 dan menggunakan LCD designer untuk menampilkan karakter2 unik buatan kita sendiri Flirt male. Pada bagian akhir kita juga akan berlatih membuat program yang lebih effisien dengan memanfaatkan perulangan FOR-NEXT.

Untuk menampilkan karakter di LCD, tuliskan code program berikut:

Program LCD1

 

$crystal = 11059200
$lib "lcd4busy.lbx"

Config Lcd = 16 * 2
Const _lcdport = Portb
Const _lcdddr = Ddrb
Const _lcdin = Pinb
Const _lcd_e = 2
Const _lcd_rw = 1
Const _lcd_rs = 0
Cursor Blink

Do
   Cls
   Waitms 500
   Lcd "   AVRku.com   "
   Lowerline
   Lcd "  INDOLAB.net  "
   Waitms 10000

Loop
End

Gambar tampilan hasil program diatas seperti ini:

image

Pembahasan program LCD1:

$regfile = "m16def.dat"     ' menentukan chip AVR yang kita gunakan, disini menggunakan ATmega16
 
$crystal = 11059200   'menentukan frekuensi xtal yang digunakan, kita gunakan xtal 11,0592MHz
 
$lib "lcd4busy.lbx"   'library untuk LCD
 
Config Lcd = 16 * 2   'menentukan jenis LCD yang digunakan, dalam hal ini LCD 16*2
 
Const _lcdport = Portb   'LCD dihubungkan dengan PORTB 
Const _lcdddr = Ddrb
Const _lcdin = Pinb
 
Const _lcd_e = 2 ' pin Enable LCD dihubungkan ke PORTB.2 
 
Const _lcd_rw = 1   'pin RW LCD dihubungkan ke PORTB.1
 
Const _lcd_rs = 0  'pin RW LCD dihubungkan ke PORTB.0
 
Cursor Blink   'membuat cursor LCD berkedip
 
Do
 
   Cls   'Clear LCD Screen
 
   Waitms 500
 
   Lcd "   AVRku.com   "   'menampilkan tulisan AVRku.com di LCD
 
   Lowerline   'menuju baris bawah LCD
 
   Lcd "  INDOLAB.net  "    'menampilkan tulisan INDOLAB.net
 
   Waitms 10000
 
Loop   'perintah untuk mengulangi program setelah "Do"
End

Selanjutnya kita akan menggunakan LCD designer untuk membuat karakter2 unik dan menampilkannya di LCD.

Tekan CTRL+L ata u klik Tool—>LCD Designer

 

image

Klik Ok, akan menghasilkan baris program seperti berikut:

Deflcdchar ?,32,4,4,31,4,4,32,32' replace ? with number (0-7)

Rubah “?” menjadi  angka antara 0 sampai 7. Ini untuk memberi “nama”  karakter yang telah kita buat sehingga memudahkan saat kita akan menggunakan karakter tersebut. Misalnya:

Deflcdchar 0,32,4,4,31,4,4,32,32

Angka “0” merupakan nama yang kita berikan untuk karakter. Jika ingin menampilkannya di LCD kita cukup menulis:

 LCD Chr(0)

Karakter2 yang akan saya gunakan sebagai berikut:

'karakter bintang berputar
Deflcdchar 0 , 32 , 4 , 4 , 31 , 4 , 4 , 32 , 32
Deflcdchar 1 , 32 , 2 , 20 , 14 , 5 , 8 , 32 , 32
Deflcdchar 2 , 32 , 2 , 26 , 4 , 11 , 8 , 32 , 32
Deflcdchar 3 , 32 , 17 , 10 , 4 , 10 , 17 , 32 , 32
Deflcdchar 4 , 32 , 8 , 11 , 4 , 26 , 2 , 32 , 32
Deflcdchar 5 , 32 , 8 , 5 , 14 , 20 , 2 , 32 , 32


'karakter logo AVRku.com - IndoLab.net
Deflcdchar 6 , 30 , 6 , 10 , 16 , 7 , 3 , 5 , 8

Untuk menampilkannya di LCD, kita perlu menuliskan program berikut:

Program LCD2

$regfile = "m16def.dat"
$crystal = 11059200
$lib "lcd4busy.lbx"


'karakter bintang berputar
Deflcdchar 0 , 32 , 4 , 4 , 31 , 4 , 4 , 32 , 32
Deflcdchar 1 , 32 , 2 , 20 , 14 , 5 , 8 , 32 , 32
Deflcdchar 2 , 32 , 2 , 26 , 4 , 11 , 8 , 32 , 32
Deflcdchar 3 , 32 , 17 , 10 , 4 , 10 , 17 , 32 , 32
Deflcdchar 4 , 32 , 8 , 11 , 4 , 26 , 2 , 32 , 32
Deflcdchar 5 , 32 , 8 , 5 , 14 , 20 , 2 , 32 , 32


'karakter logo AVRku.com - IndoLab.net
Deflcdchar 6 , 30 , 6 , 10 , 16 , 7 , 3 , 5 , 8

Config Lcd = 16 * 2
Const _lcdport = Portb
Const _lcdddr = Ddrb
Const _lcdin = Pinb
Const _lcd_e = 2
Const _lcd_rw = 1
Const _lcd_rs = 0
Cursor Off



Do
   Cls
   Lcd Chr(6)
   Lcd Chr(32)
   Lcd "AVRku-IndoLab"
   Lcd Chr(6)

   Locate 2 , 6
   Lcd Chr(0)
   Lcd Chr(0)
   Lcd Chr(0)
   Lcd Chr(0)
   Waitms 100

   Locate 2 , 6
   Lcd Chr(1)
   Lcd Chr(1)
   Lcd Chr(1)
   Lcd Chr(1)
   Waitms 100

   Locate 2 , 6
   Lcd Chr(2)
   Lcd Chr(2)
   Lcd Chr(2)
   Lcd Chr(2)
   Waitms 100

   Locate 2 , 6
   Lcd Chr(3)
   Lcd Chr(3)
   Lcd Chr(3)
   Lcd Chr(3)
   Waitms 100

   Locate 2 , 6
   Lcd Chr(4)
   Lcd Chr(4)
   Lcd Chr(4)
   Lcd Chr(4)
   Waitms 100

   Locate 2 , 6
   Lcd Chr(5)
   Lcd Chr(5)
   Lcd Chr(5)
   Lcd Chr(5)
   Waitms 100


Loop
End

Hasil tampilannya:

image

Ini videonya:

http://www.youtube.com/watch?v=Z9XGiYB0-_4


Program LCD2 di atas bisa di tulis lebih simple seperti ini:

 

Program LCD3

$regfile = "m16def.dat"
$crystal = 11059200
$lib "lcd4busy.lbx"


'karakter bintang berputar
Deflcdchar 0 , 32 , 4 , 4 , 31 , 4 , 4 , 32 , 32
Deflcdchar 1 , 32 , 2 , 20 , 14 , 5 , 8 , 32 , 32
Deflcdchar 2 , 32 , 2 , 26 , 4 , 11 , 8 , 32 , 32
Deflcdchar 3 , 32 , 17 , 10 , 4 , 10 , 17 , 32 , 32
Deflcdchar 4 , 32 , 8 , 11 , 4 , 26 , 2 , 32 , 32
Deflcdchar 5 , 32 , 8 , 5 , 14 , 20 , 2 , 32 , 32


'karakter logo AVRku.com - IndoLab.net
Deflcdchar 6 , 30 , 6 , 10 , 16 , 7 , 3 , 5 , 8

Config Lcd = 16 * 2
Const _lcdport = Portb
Const _lcdddr = Ddrb
Const _lcdin = Pinb
Const _lcd_e = 2
Const _lcd_rw = 1
Const _lcd_rs = 0
Cursor Off


Declare Sub Putar_bintang

Do
   Cls
   Lcd Chr(6)
   Lcd Chr(32)
   Lcd "AVRku-IndoLab"
   Lcd Chr(6)
   Call Putar_bintang



Loop

Sub Putar_bintang
   Local Putar As Byte , Jumlah As Byte

   For Putar = 0 To 5
      Locate 2 , 6
      For Jumlah = 1 To 4
         Lcd Chr(putar)
      Next
      Waitms 100
   Next

End Sub

End

Dalam program LCD3, kita menggunakan subrutin yang diberi nama Putar_bintang. Di dalam subrutin ini, command untuk menulis karakter ke LCD –>Lcd Chr(…), dipanggil beberapa kali menggunakan perulangan FOR-NEXT.  Baris program yang ada diantara  FOR dan NEXT akan diulang sesuai pernyataan yang dibentuk oleh TO.

Contoh perulangan1:

      For Jumlah = 1 To 4
         Lcd Chr(putar)
      Next

Baris program yang diulang  yaitu Lcd Chr(putar). Berapa kali baris ini diulang?

Liat baris program FOR Jumlah = 1 TO 4.

Artikan baris program ini secara harfiah.

FOR Jumlah=1 to 4 –> Untuk Jumlah sama dengan 1 sampai 4.

Nilai Jumlah ditambah, mulai dari 1 sampai menuju 4. Setiap  Jumlah berubah nilai maka baris program Lcd Chr (putar) dikerjakan.

Dari 1 sampai 4 berarti  1—>2—>3—>4  sama dengan ada  4 kali pengulangan.

 

Contoh perulangan2:

   For Putar = 0 To 5
      Locate 2 , 6
      For Jumlah = 1 To 4
         Lcd Chr(putar)
      Next
      Waitms 100
   Next

Untuk perulangan FOR Putar = 0 To 5, terjadi 6 kali pengulangan mulai dari 0—>1—>2—>3—>4—>5

yang diulang adalah baris program:

      Locate 2 , 6
      For Jumlah = 1 To 4
         Lcd Chr(putar)
      Next
      Waitms 100

Dalam perulangan Contoh1, Lcd Chr(putar) diulang 4 kali.

Pada Contoh2, baris program untuk contoh1 di ulang 6 kali.

Berarti Lcd Chr(putar) diulang sebanyak 4*6 = 24 kali.

 

Lihat lagi program LCD2, untuk menampilkan karakter bintang{karakter-karakter DefLcdChr (0—>5)}, perintah Lcd Chr(0—>5) kita tulis berulang-ulang  satupersatu. Hayoo coba dihitung berapa kali? Flirt male

Comments :

9 comments to “BASCOM-AVR, MEGA16, LCD 16*2”

nice info MAs.,
ohya kalo utk gambar skematik rangkaian LCD ke mikro ada gak...??

Anonim mengatakan...
on 

emailnya? akan kita kirim ke email rangkaiannya

zigan mengatakan...
on 

mas saya minta rangkain komunikasnya LCD nya..
saya bingung
RS= pin.0
RW= pin.1
EN= pin.2

lalu sisa nya pin apa saja..??yang kemikronya
email [email protected]

Anonim mengatakan...
on 

mas krimkan jga ya ke emailku skemaik lcd ke mikro
email : [email protected]

kreativitas anak bangsa mengatakan...
on 

mas tolong kirim ke email ku juga ya [email protected]

Anonim mengatakan...
on 

boleh juga mas.. saya sedang belajar mikro.. tolong kirim juga ke email saya [email protected]

ada sample listing untuk membaca input dari sensor PiR gak mas.. jika ada boleh juga mas.. thanks

Anonim mengatakan...
on 

Mas minta bantuannya, saya rencana menggunakan LCD 16x2, digunakan untuk menampilkan :
1. tegangan (pada baris 1 & 2)
2. arus (pada baris 1 & 2)
3. Daya (Pada baris 1 & 2)

Tampilan diatas bergantian selama 10 detik.
namun apabila terjadi alarm tampilan tersebut berubah menjadi :
misal ;
Over voltage / over current (pada baris 1 & 2)
tampilan harus tetap pada posisi ini sebelum mikro di reset.
mohon bantuan code bascom nya. trims

Arifin mengatakan...
on 

Mas minta bantuannya, saya rencana menggunakan LCD 16x2, digunakan untuk menampilkan :
1. tegangan (pada baris 1 & 2)
2. arus (pada baris 1 & 2)
3. Daya (Pada baris 1 & 2)

Tampilan diatas bergantian selama 10 detik.
namun apabila terjadi alarm tampilan tersebut berubah menjadi :
misal ;
Over voltage / over current (pada baris 1 & 2)
tampilan harus tetap pada posisi ini sebelum mikro di reset.
mohon bantuan code bascom nya. trims

Arifin mengatakan...
on 

mas tolong bantuannya donk gimana caranya bikin sebuah program pada lcd yang hasilnya unik. kirim ke email [email protected] thanks...

Anonim mengatakan...
on