Sabtu, 28 Mei 2011

Tutorial Dot Matrix 5x7 untuk Menampilkan Teks Berjalan (Tutorial Dot Matrix 5x7 to Display Running Text)


Dot matrix merupakan deretan led yang membentuk array dengan jumlah kolom dan baris tertentu, sehingga titik-titik yang menyala dapat membentuk suatu karakter angka, huruf, tanda baca, dsb. Program dot matrix 5x7 berikut menggunakan shift register 74HC595 untuk mengendalikan nyala array led, dan input teks melalui Hyperterminal. Jika dotmatrix tidak menggunakan shift register, maka led bisa menyala bersamaan satu kolom atau satu baris, berbeda dengan array button karena button hanya tersambung jika ditekan, sedangkan led selalu tersambung.


Rangkaian di dalam dot matrix 5x7 untuk common anoda dan common catoda adalah sbb:



Simulasi dengan proteus:


Untuk program ini panjang karakter running text adalah 160, tapi tak masalah untuk berapapun sampai maksimal kapasitas string karakter Bascom AVR, yang penting menambahkan jumlah array pada variabel Text, karena maksimal karakter untuk setiap array adalah 40, kalau lebih dari 45 dot matrix tidak akan berjalan. 

Listing program dot matrix 5x7 dengan Bascom AVR:

'===============================================================
'DOTMATRIX 5x7 DISPLAY

'PROGRAMMER = WAHYU RAHMANIAR
'COMPANY = TECHNOLOGINATION
'===============================================================

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

Dim Char As Byte , C As Byte , Digit As Byte , L As Byte , I As Byte , Temp(2) As Byte , Temp2 As Byte
Dim X As Word, Y As Integer
Dim Str_temp As String * 1 , Reeks(250) As Byte

Dim Str_text As String * 160 , Str_len As Byte , Col_len As Byte , R As Byte
Dim Tempmsb As Byte , Templsb As Byte , Tempstr As String * 2
Dim Scroll_speed As Byte

Dim Text(4) As String * 40 

Declare Sub Show_text
Declare Sub Set_volt
Declare Sub Set_text
Declare Sub Test_display
Declare Sub Read_volt
Declare Sub Read_temp

Config Portc = Output                                       'shift register 74HC595
Config Portb = Output                                       'Dotmatrix 8x8

Goto Main

Sub Set_text
C = 1
For Digit = 1 To Str_len
Str_temp = Mid(str_text , Digit , 1)
Char = Asc(str_temp)
X = Char * 5
For I = 1 To 5
Reeks(c) = Lookup(x , Text_data)
X = X + 1
C = C + 1
Next I
Reeks(c) = 0
C = C + 1
Next Digit
End Sub Set_string

'show text
Sub Show_text
If Str_len > 4 Then

For L = 0 To Col_len
C = 1
   For R = 1 To Scroll_speed
       Set Portc.0
       Toggle Portc.1
       Toggle Portc.1
       Toggle Portc.2
       Toggle Portc.2
       Char = C + L
       Portb = Reeks(char)
       Waitms 1
       C = C + 1
       Reset Portc.0
       For X = 1 To 19
       Toggle Portc.1
       Toggle Portc.1
       Toggle Portc.2
       Toggle Portc.2
       Char = C + L
       Portb = Reeks(char)
       Waitms 1
       C = C + 1
       Next X
       C = 1
  Next R
Next L

Else

For L = 0 To Col_len
C = 1
   For R = 1 To Scroll_speed
       Set Portc.0
       Toggle Portc.1
       Toggle Portc.1
       Toggle Portc.2
       Toggle Portc.2
       Portb = Reeks(c)
       Waitms 1
       C = C + 1
       Reset Portc.0
       For X = 1 To 19
       Toggle Portc.1
       Toggle Portc.1
       Toggle Portc.2
       Toggle Portc.2
       Portb = Reeks(c)
       Waitms 1
       C = C + 1
       Next X
       C = 1
  Next R
Next L

End If

End Sub Show_text

Sub Test_display
Portb = 255
For X = 1 To 20
       Set Portc.0
       Toggle Portc.1
       Toggle Portc.1
       Toggle Portc.2
       Toggle Portc.2
Next X
End Sub Test_display

'---------------------

Main:

Call Test_display
Waitms 100
Scroll_speed = 16
Call Set_text
Do
Input "Masukkan Text (max 50): " , Str_text
Text(1) = Mid(str_text , 1 , 40)
Text(2) = Mid(str_text , 41 , 40)
Text(3) = Mid(str_text , 81 , 40)
Text(4) = Mid(str_text , 121 , 40)

For Y = 1 To 4
Str_text = Text(y)
Str_len = Len(str_text)
Col_len = Str_len * 6
Call Set_text
Call Show_text
Next

Loop
End


Text_data:
Data 0 , 0 , 0 , 0 , 0                                      '
Data 0 , 0 , 0 , 0 , 0                                      '
Data 0 , 0 , 0 , 0 , 0                                      '
Data 0 , 0 , 0 , 0 , 0                                      '
Data 0 , 0 , 0 , 0 , 0                                      '
Data 0 , 0 , 0 , 0 , 0                                      '
Data 0 , 0 , 0 , 0 , 0                                      '
Data 0 , 0 , 0 , 0 , 0                                      '
Data 0 , 0 , 0 , 0 , 0                                      '
Data 0 , 0 , 0 , 0 , 0                                      '
Data 0 , 0 , 0 , 0 , 0                                      '
Data 0 , 0 , 0 , 0 , 0                                      '
Data 0 , 0 , 0 , 0 , 0                                      '
Data 0 , 0 , 0 , 0 , 0                                      '
Data 0 , 0 , 0 , 0 , 0                                      '
Data 0 , 0 , 0 , 0 , 0                                      '
Data 0 , 0 , 0 , 0 , 0                                      '
Data 0 , 0 , 0 , 0 , 0                                      '
Data 0 , 0 , 0 , 0 , 0                                      '
Data 0 , 0 , 0 , 0 , 0                                      '
Data 0 , 0 , 0 , 0 , 0                                      '
Data 0 , 0 , 0 , 0 , 0                                      '
Data 0 , 0 , 0 , 0 , 0                                      '
Data 0 , 0 , 0 , 0 , 0                                      '
Data 0 , 0 , 0 , 0 , 0                                      '
Data 0 , 0 , 0 , 0 , 0                                      '
Data 0 , 0 , 0 , 0 , 0                                      '
Data 0 , 0 , 0 , 0 , 0                                      '
Data 0 , 0 , 0 , 0 , 0                                      '
Data 0 , 0 , 0 , 0 , 0                                      '
Data 0 , 0 , 0 , 0 , 0                                      '
Data 0 , 0 , 0 , 0 , 0                                      '
Data 0 , 0 , 0 , 0 , 0                                      'space
Data 0 , 0 , 95 , 0 , 0                                     '!
Data 0 , 7 , 0 , 7 , 0                                      ''
Data 20 , 127 , 20 , 127 , 20                               '#
Data 36 , 42 , 127 , 42 , 18                                '$
Data 39 , 21 , 107 , 84 , 114                               '%
Data 54 , 73 , 86 , 32 , 80                                 '&
Data 0 , 0 , 11 , 7 , 0                                     ''
Data 0 , 28 , 34 , 65 , 0                                   ' (
Data 0 , 65 , 34 , 28 , 0                                   ')
Data 42 , 28 , 127 , 28 , 42                                '*
Data 8 , 8 , 62 , 8 , 8                                     '+
Data 0 , 88 , 56 , 0 , 0                                    ',
Data 8 , 8 , 8 , 8 , 8                                      '-
Data 0 , 96 , 96 , 0 , 0                                    '.
Data 32 , 16 , 8 , 4 , 2                                    '/
Data 62 , 81 , 73 , 69 , 62                                 '0
Data 0 , 66 , 127 , 64 , 0                                  '1
Data 114 , 73 , 73 , 73 , 70                                '2
Data 34 , 65 , 73 , 73 , 54                                 '3
Data 24 , 20 , 18 , 127 , 16                                '4
Data 39 , 69 , 69 , 69 , 57                                 '5
Data 60 , 74 , 73 , 73 , 48                                 '6
Data 1 , 113 , 9 , 5 , 3                                    '7
Data 54 , 73 , 73 , 73 , 54                                 '8
Data 6 , 73 , 73 , 41 , 30                                  '9
Data 0 , 54 , 54 , 0 , 0                                    ':
Data 0 , 91 , 59 , 0 , 0                                    ';
Data 8 , 20 , 34 , 65 , 0                                   '<
Data 20 , 20 , 20 , 20 , 20                                 '=
Data 0 , 65 , 34 , 20 , 8                                   '>
Data 2 , 1 , 81 , 9 , 6                                     '?
Data 50 , 73 , 121 , 65 , 62                                '@
Data 124 , 18 , 17 , 18 , 124                               'A
Data 65 , 127 , 73 , 73 , 62                                'B
Data 62 , 65 , 65 , 65 , 34                                 'C
Data 65 , 127 , 65 , 65 , 62                                'D
Data 127 , 73 , 73 , 65 , 65                                'E
Data 127 , 9 , 9 , 1 , 1                                    'F
Data 62 , 65 , 73 , 73 , 58                                 'G
Data 127 , 8 , 8 , 8 , 127                                  'H
Data 0 , 65 , 127 , 65 , 0                                  'I
Data 32 , 64 , 65 , 63 , 1                                  'J
Data 127 , 8 , 20 , 34 , 65                                 'K
Data 127 , 64 , 64 , 64 , 64                                'L
Data 127 , 2 , 12 , 2 , 127                                 'M
Data 127 , 2 , 4 , 8 , 127                                  'N
Data 62 , 65 , 65 , 65 , 62                                 'O
Data 127 , 9 , 9 , 9 , 6                                    'P
Data 62 , 65 , 65 , 33 , 94                                 'Q
Data 127 , 9 , 25 , 41 , 70                                 'R
Data 38 , 73 , 73 , 73 , 50                                 'S
Data 1 , 1 , 127 , 1 , 1                                    'T
Data 63 , 64 , 64 , 64 , 63                                 'U
Data 7 , 24 , 96 , 24 , 7                                   'V
Data 127 , 32 , 24 , 32 , 127                               'W
Data 99 , 20 , 8 , 20 , 99                                  'X
Data 3 , 4 , 120 , 4 , 3                                    'Y
Data 97 , 81 , 73 , 69 , 67                                 'Z
Data 0 , 127 , 65 , 65 , 0                                  '[
Data 2 , 4 , 8 , 16 , 32                                    '\
Data 0 , 65 , 65 , 127 , 0                                  ']
Data 4 , 2 , 1 , 2 , 4                                      '^
Data 64 , 64 , 64 , 64 , 64                                 '_
Data 0 , 0 , 7 , 11 , 0                                     ''
Data 32 , 84 , 84 , 84 , 56                                 'a
Data 127 , 40 , 68 , 68 , 56                                'b
Data 0 , 56 , 68 , 68 , 68                                  'c
Data 56 , 68 , 68 , 40 , 127                                'd
Data 56 , 84 , 84 , 84 , 24                                 'e
Data 8 , 126 , 9 , 9 , 2                                    'f
Data 8 , 84 , 84 , 84 , 60                                  'g
Data 127 , 16 , 8 , 8 , 112                                 'h
Data 0 , 68 , 125 , 0 , 0                                   'i
Data 32 , 64 , 68 , 61 , 0                                  'j
Data 0 , 127 , 16 , 40 , 68                                 'k
Data 0 , 65 , 127 , 64 , 0                                  'l
Data 124 , 4 , 120 , 4 , 120                                'm
Data 124 , 8 , 4 , 4 , 120                                  'n
Data 56 , 68 , 68 , 68 , 56                                 'o
Data 124 , 20 , 20 , 20 , 8                                 'p
Data 8 , 20 , 20 , 20 , 124                                 'q
Data 124 , 8 , 4 , 4 , 8                                    'r
Data 72 , 84 , 84 , 84 , 36                                 's
Data 0 , 4 , 63 , 68 , 68                                   't
Data 60 , 64 , 64 , 32 , 124                                'u
Data 28 , 32 , 64 , 32 , 28                                 'v
Data 60 , 64 , 60 , 64 , 60                                 'w
Data 68 , 40 , 16 , 40 , 68                                 'x
Data 12 , 80 , 80 , 80 , 60                                 'y
Data 68 , 100 , 84 , 76 , 68                                'z
Data 0 , 8 , 54 , 65 , 0                                    '{
Data 0 , 0 , 119 , 0 , 0                                    '|
Data 0 , 65 , 54 , 8 , 0                                    '}
Data 2 , 1 , 2 , 4 , 2                                      '~
Data 42 , 85 , 42 , 85 , 42                                 '


atau download aja langsung simulasi dot matrix 5x7 dan source code lengkap.



Tempat Jual Komponen dan Elektronik.
-ayuchan-