Friday, January 14, 2011

Dasar Dot Matrix (2)

Bismillahirrohmanirrohim..

Oke,sesuai dengan materi sebelumnya (dasar dot matrix - 1), pada tulisan ini akan dicontohkan bagaimana cara membuat animasi beberapa huruf yang membentuk satu atau beberapa kata. Seharusnya, terbersit sebuah pertanyaan.. "Loh gimana caranya nampilin kata yg trdiri dr beberapa huruf ke dot matrix yang cuma satu buah n cuma muat 1 huruf?"

jawabannya : mudah! 
Dengan membuat animasi geser, kita bisa dengan mudah menampilkan kata (bahkan kalimat) tersebut ke sebuah dot matrix. Terus gimana caranya?oke,sebelumnya,mari kita buat rangkaian dot matrix seperti pada materi 1. Kemudian download, co-pas / ketik, compile, dan download listing program dibawah ini.

download programnya di sini.

sebenarnya inti dari program ini adalah memanipulasi munculnya data yang tersimpan pada data tabel yang tersedia (tabel 'data_huruf') sedemikian rupa sehingga seolah-olah bergeser 1 per 1.

1:  $regfile = "m16def.dat"
2:  $crystal = 8000000   
3:
4:  Config Portc = Output
5:  Config Portd = Output
6:
7:  Baris Alias Portc
8:  Kolom Alias Portd
9:
10: Dim Data_kolom As Byte , Data_ke As Integer , Data_next As Integer , Lama As Integer
11: Dim X As Byte
12:
13: Data_kolom = &B11111110
14: Data_ke = 0
15:
16: Do
17: For Data_next = 0 To 68                'banyaknya data yang ditampilkan (tabel data_huruf)
18: For Lama = 0 To 15                'lamanya perulangan
19: Data_ke = Data_next            'index untuk pengambilan data tabel
20: For X = 0 To 4                'aktifkan kolom ('logika 0') dari kiri ke kanan (0 - 4 --> 5 kolom)
21: Kolom = Data_kolom            'kirim data_kolom ke portC
22: Baris = Lookup(data_ke , Data_huruf)    'ambil data pada tabel data_huruf pada index yang ditunjukkan oleh variabel data_ke
23: Waitms 1                'tunggu sebentar
24: Incr Data_ke                'naikkan index tabel
25: Rotate Data_kolom , Left , 1        'geser data_kolom ke kiri 1kali
26: If Data_ke = 69 Then Data_ke = 0    'reset index kembali ke 0
27: Next X
28: Data_kolom = &B11111110            'aktifkan kolom I (PORTC.0)
29: Next Lama
30: Next Data_next
31: Loop
32:
33: Data_huruf:                                        'index tabel dimulai dari 0
34: Data 0 , 0 , 0                                    'spasi
35: Data 0 , &B00110001 , &B01001001 , &B01001001 , &B01001001 , &B01000110 , 0        'S
36: Data 0 , &B00011111 , &B00100100 , &B01000100 , &B00100100 , &B00011111 , 0        'A
37: Data 0 , &B01100000 , &B00010000 , &B00001111 , &B00010000 , &B01100000 , 0        'Y
38: Data 0 , &B00011111 , &B00100100 , &B01000100 , &B00100100 , &B00011111 , 0        'A
39: Data 0 , 0 , 0                                    'spasi
40: Data 0 , &B01111111 , &B00001000 , &B00010100 , &B00100010 , &B01000001 , 0        'K
41: Data 0 , &B01111111 , &B01001001 , &B01001001 , &B01001001 , &B01001001 , 0        'E
42: Data 0 , &B01111111 , &B01001000 , &B01001100 , &B01001010 , &B00110001 , 0        'R
43: Data 0 , &B01111111 , &B01001001 , &B01001001 , &B01001001 , &B01001001 , 0        'E
44: Data 0 , &B01111111 , &B00100000 , &B00010000 , &B00001000 , &B01111111 , 0        'N


Penjelasan program:
Baris 20 sampai 27 merupakan prosedur utama untuk mengaktifkan kelima kolom dot matrix dan menampilkan data ke port baris. Variabel 'data_ke' berfungsi untuk mengambil 5 buah data pada data tabel secara berurutan yang kemudian ditampilkan pada port baris. Proses ini akan diulang sebanyak 16 kali (baris 18). Semakin banyak nilai variabel 'lama', jalannya dot matrix akan semakin lambat. Sedangkan untuk data_next, berfungsi untuk menentukan nilai awal index data_ke. Jadi, proses urutan pengambilan datanya adalah sbb:

data_next    data_ke
0        0,1,2,3,4    ---->diulang 16x
1        1,2,3,4,5    ---->diulang 16x
2        2,3,4,5,6    ---->diulang 16x
...
...
...
65        65,66,67,68,0    ---->diulang 16x
66        66,67,68,0,1    ---->diulang 16x
67        67,68,0,1,2    ---->diulang 16x
68        68,0,1,2,3    ---->diulang 16x
0        0,1,2,3,4    ---->diulang 16x
...dst

Hasil tampilan dari urutan diatas seolah-olah membuat tampilan dot matrix menjadi bergeser ke kiri per 1 kolom, padahal sebenarnya dot matrix nyala bergantian per kolomnya. sebagai catatan jumlah data_next harus sesuai dengan jumlah data pada tabel yang akan ditampilkan, jika tidak nyala dot matrix akan kacau. Kalo anda berhasil, jadinya seperti ini ...
 


Tulisan ini merupakan tutorial pemrograman dot matriks secara sederhana (hasil riset pertama saya), sebenarnya masih ada cara lain lagi..semoga saya bisa publish segera.. :)

- Semoga Bermanfaat dan jangan lupa komennya :) -

Related Post:

16 comments:

  1. lanjut bro tentang running textnya,
    ane tertarik buat running text,klo buat yg 8x8 gimana caranya y bro

    ReplyDelete
  2. bisa bro..cek di link ini

    http://blackbox86.blogspot.com/2011/02/dasar-dot-matrix-3-8x8.html

    :)

    ReplyDelete
  3. ass..
    karakter/hurufnya itu dapet datanya dr mana klo bole tau..
    trim's ;)

    mohon bantuannya....

    ReplyDelete
    Replies
    1. wlkmslm..
      itu dibuat sendiri..
      silahkan cek di link:
      http://blackbox86.blogspot.com/2010/11/dasar-dot-matrix-1.html

      Delete
  4. assalamualaikum pak, jika bhasanya bahsa c ada ndak pak. lom mudeng saya pake bahasa apa itu. bascom ya?

    ReplyDelete
    Replies
    1. wa'alaikumussalaaaaam..
      wah sebenarnya menurut saya lebih mudah pakai bascom lho pak..
      saya usahakan deh yang bahasa c.. :)

      Delete
  5. Wah, Mantap ne bos, saya lagi memang lagi mau belajar tentang dot matrix, bisa minta tolong info lebih lanjutnya bos... fazie_84@yahoo.com

    ReplyDelete
    Replies
    1. halo agan irham, bagaimana kabar? jadi mau belajar dotmatrixnya g nih? saya tunggu kabarnya hehe.. :)

      Delete
  6. mas.. saya simulasi pake proteus kok jadi kacau ya.. dimana nih salahnya..

    ReplyDelete
    Replies
    1. kacaunya gimana gan? agan pakai file dr saya?

      Delete
    2. iya mas.. gak kebaca SAYA KEREN cuma nyala kedip2 gak teratur.. apa emang gak bisa disimulasi di Proteus?

      Delete
  7. mantap surantap mas broow,aku banyak belajar dari blog ini.kapan di posting cara membuat karakter lebih dari satu dot metrik mas broow????????

    ReplyDelete
  8. assalamualaikum, keren mas saya jadi paham materi dot matrix nya, saya sebenernya lagi buat dot matrix juga, cuman saya ada kesulitan ketika menggunakan ic 74HC595, mohon pencerahannya mas gimana perbedaannya ketika saya pakai ic ini? soalnya saya coba lednya kacau terus ...

    ReplyDelete
  9. blum begitu paham -_-
    masih musti banyak belajar lagi nih -_-

    tapi thx gan, sharenya, ijin bukmak :)

    ReplyDelete
  10. mas, minta tolong jelaskan yang bagian ini : for s=0 to 68. cara menghtungnya dari mana???

    trima kasih mas bantuaannya.

    ReplyDelete