LED MATRIX 8X64 ATMEGA8535
Penulisan Program dengan BASCOM AVR
PCB menggunakan Triplek 12cm x 90cm
Componen :
atmega8535
IC 74HC595N = 8 biji
IC ULN2803 = 1 Biji
Respack = 1 Biji
Led Merah = 512 Biji
TR BC547 = 64 Biji
$regfile = "8535def.dat" " "
$crystal = 110962
$hwstack = 64
$swstack = 32
$framesize = 64
'===============================================================================
Dim Char As Byte , C As Byte , Digit As Byte , L As Byte
Dim I As Byte , Temp(2) As Byte , Temp2 As Byte
Dim X As Word
Dim Str_temp As String * 1 , Reeks(250) As Byte , Str_text As String * 50
Dim 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
Declare Sub Show_text
Declare Sub Set_text
Declare Sub Test_display
'*******************************************************************************
Config Portb = Output
Config Portd = Output
'*******************************************************************************
Goto Main
'*******************************************************************************
'set text
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 > 8 Then
For L = 1 To Col_len
Do
C = 1
For R = 1 To Scroll_speed 'scrolling speed
Set Portb.0
Toggle Portb.1
Toggle Portb.1
Toggle Portb.2
Toggle Portb.2
Char = C + L
Portd = Reeks(char)
Waitms 4
C = C + 1
Reset Portb.0
For I = 1 To 65
Toggle Portb.1
Toggle Portb.1
Toggle Portb.2
Toggle Portb.2
Char = C + L
Portd = Reeks(char)
Waitms 4
Incr C
Next I
C = 1
Next R
Incr L
If L > Col_len Then L = 0
Loop
Next L
Else
For L = 0 To Col_len
C = 1
For R = 1 To Scroll_speed 'scrolling speed
Set Portb.0
Toggle Portb.1
Toggle Portb.1
Toggle Portb.2
Toggle Portb.2
Portd = Reeks(c)
Waitms 4
C = C + 1
Reset Portb.0
For X = 1 To 19
Toggle Portb.1
Toggle Portb.1
Toggle Portb.2
Toggle Portb.2
Portd = Reeks(c)
Waitms 4
C = C + 1
Next X
C = 1
Next R
Next L
End If
End Sub Show_text
Sub Test_display
Portd = 255
For X = 1 To 64
Set Portb.0
Toggle Portb.1
Toggle Portb.1
Toggle Portb.2
Toggle Portb.2
Next X
End Sub Test_display
'---------------------
Main:
Call Test_display
Waitms 50
Str_text = " CITY NET PRINT PULSA TOKEN"
'Str_text = "test"
Str_len = Len(str_text)
Col_len = Str_len * 19 ' MENAMBAH HURUF
Scroll_speed = 5 'Speed geser huruf
Call Set_text
Do
Call Show_text
Loop
End 'end program
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 &B00010000 , &B00111000 , &B01010100 , &B00010000 , &B00010000 '<
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 &B11111100 , &B00100010 , &B00100001 , &B00100010 , &B11111100 'A
Data &B11111111 , &B10000001 , &B10000001 , &B10010001 , &B01101110 'B
Data &B01111110 , &B10000001 , &B10000001 , &B10000001 , &B01000010 'C
Data &B11111111 , &B10000001 , &B10000001 , &B10000001 , &B01111110 'D
Data &B11111111 , &B10010001 , &B10010001 , &B10010001 , &B10000001 'E
Data &B11111111 , &B00001001 , &B00001001 , &B00001001 , &B00000001 'F
Data &B01111110 , &B10000001 , &B10000001 , &B10010001 , &B11110010 'G
Data &B11111111 , &B00010000 , &B00010000 , &B00010000 , &B11111111 'H
Data 0 , &B10000001 , &B11111111 , &B10000001 , 0 'I
Data &B01100000 , &B10000000 , &B10000000 , &B10000001 , &B01111111 'J
Data &B11111111 , &B00011000 , &B00100100 , &B01000010 , &B10000001 'K
Data &B11111111 , &B10000000 , &B10000000 , &B10000000 , &B11000000 'L
Data &B11111111 , &B00000100 , &B00001000 , &B00000100 , &B11111111 'M
Data &B11111111 , &B00000100 , &B00001000 , &B00010000 , &B11111111 'N
Data &B01111110 , &B10000001 , &B10000001 , &B10000001 , &B01111110 'O
Data &B11111111 , &B00010001 , &B00010001 , &B00010001 , &B00001110 'P
Data &B01111110 , &B10000001 , &B10100001 , &B01000001 , &B10111110 'Q
Data &B11111111 , &B00010001 , &B00110001 , &B01010001 , &B10001110 'R
Data &B01000110 , &B10001001 , &B10010001 , &B10010001 , &B01100010 'S
Data &B00000001 , &B00000001 , &B11111111 , &B00000001 , &B00000001 'T
Data &B01111111 , &B10000000 , &B10000000 , &B10000000 , &B01111111 'U
Data &B00111111 , &B01000000 , &B10000000 , &B01000000 , &B00111111 'V
Data &B11111111 , &B01000000 , &B00100000 , &B01000000 , &B11111111 'W
Data &B11000011 , &B00100100 , &B00011000 , &B00100100 , &B11000011 'X
Data &B00000111 , &B00001000 , &B11111000 , &B00001000 , &B00000111 '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 '