Ada gak Rangkaian Untuk membuat Nama Huruf Berjalan menggunakan Mikrokontroler di gabung dengan Dot Matrik?Selain menggunakan PIC, ATMEL (MCs & AVR) juga bisa. Sebelumnya saya mau tanya rangkaiannya buat apaan?
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 ' |
Secara teori garis besarnya adalah mikro mengirimkan terlebih dahulu kolom mana yang akan dihidupkan, yaitu dengan cara mengeser data sepanjang kolom matrix lewat shift register.....jika data sudah sampai pada matrix yang paling ujung, tinggal menghidupkan baris dimulai dari baris pertama dari matrix...nanti kembali lagi data shift register dikirim kemudian baris ke dua matrix yang dihidupkan.....begitu terus sampai baris terakhir.....metode ini untuk matrix lama.....teknik matrix sekarang sudah menghidupkan led matrixnya pertitik.....Bedanya kalo perbaris nanti ada led matrix hurufnya nyala lebih terang dari huruf lain contoh huruf I atau .(titik) dengan huruf A...tapi klo teknik matrix pertitik nanti semua huruf terang nyalanya sama......
dot matrixnya brapa x brapa mas??