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 ' |