DOTMATRIK 8 DIGIT DENGAN ATMEGA8
bagi temen2 yang mau buat papan nama berjalan dengan dot matrik bisa liat rangkaian dibawah ini. dotmatrik 8 digit menggunakan atmega8 dengan program bascom avr..
'**********************************************************
'dot matrik 8 digit
'**********************************************************
$regfile = "M8def.dat"
'$crystal = 200000000
$hwstack = 32
$swstack = 32
$framesize = 40
'====================================================
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.1
Toggle Portb.1
Toggle Portb.2
Toggle Portb.2
Toggle Portb.2
Toggle Portb.2
Char = C + L
Portd = Reeks(char)
Waitms 3
C = C + 1
Reset Portb.0
For I = 1 To 19
Toggle Portb.1
Toggle Portb.1
Toggle Portb.1
Toggle Portb.1
Toggle Portb.2
Toggle Portb.2
Toggle Portb.2
Toggle Portb.2
Char = C + L
Portd = Reeks(char)
Waitms 3
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.1
Toggle Portb.1
Toggle Portb.2
Toggle Portb.2
Toggle Portb.2
Toggle Portb.2
Portd = Reeks(c)
Waitms 3
C = C + 1
Reset Portb.0
For X = 1 To 19
Toggle Portb.1
Toggle Portb.1
Toggle Portb.1
Toggle Portb.1
Toggle Portb.2
Toggle Portb.2
Toggle Portb.2
Toggle Portb.2
Portd = Reeks(c)
Waitms 3
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 20
Set Portb.0
Toggle Portb.1
Toggle Portb.1
Toggle Portb.1
Toggle Portb.1
Toggle Portb.2
Toggle Portb.2
Toggle Portb.2
Toggle Portb.2
Next X
End Sub Test_display
'---------------------
Main:
Call Test_display
Waitms 100
Str_text = " MASJID BAITUL AMAL"
'Str_text = "test"
Str_len = Len(str_text)
Col_len = Str_len * 6
Scroll_speed = 5 'adjust the scroll speed
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 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 '
download program dan simulasi proteus disini
'dot matrik 8 digit
'**********************************************************
$regfile = "M8def.dat"
'$crystal = 200000000
$hwstack = 32
$swstack = 32
$framesize = 40
'====================================================
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.1
Toggle Portb.1
Toggle Portb.2
Toggle Portb.2
Toggle Portb.2
Toggle Portb.2
Char = C + L
Portd = Reeks(char)
Waitms 3
C = C + 1
Reset Portb.0
For I = 1 To 19
Toggle Portb.1
Toggle Portb.1
Toggle Portb.1
Toggle Portb.1
Toggle Portb.2
Toggle Portb.2
Toggle Portb.2
Toggle Portb.2
Char = C + L
Portd = Reeks(char)
Waitms 3
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.1
Toggle Portb.1
Toggle Portb.2
Toggle Portb.2
Toggle Portb.2
Toggle Portb.2
Portd = Reeks(c)
Waitms 3
C = C + 1
Reset Portb.0
For X = 1 To 19
Toggle Portb.1
Toggle Portb.1
Toggle Portb.1
Toggle Portb.1
Toggle Portb.2
Toggle Portb.2
Toggle Portb.2
Toggle Portb.2
Portd = Reeks(c)
Waitms 3
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 20
Set Portb.0
Toggle Portb.1
Toggle Portb.1
Toggle Portb.1
Toggle Portb.1
Toggle Portb.2
Toggle Portb.2
Toggle Portb.2
Toggle Portb.2
Next X
End Sub Test_display
'---------------------
Main:
Call Test_display
Waitms 100
Str_text = " MASJID BAITUL AMAL"
'Str_text = "test"
Str_len = Len(str_text)
Col_len = Str_len * 6
Scroll_speed = 5 'adjust the scroll speed
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 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 '