Led Sign Tool by Hossein Lachini

Schematic (PDF) can be downloaded here


BASCOM source :

$regfile = "m32def.dat"
$crystal = 8000000
$hwstack = 32
$swstack = 32
$framesize = 24

'---- this section from Text Properties
Const Width_of_text = 150
'---- end of Text Properties

'---- this section from LED Matrix Properties
Const Width = 64
Const Height = 8
'---- end of LED Matrix Properties

Const End_of_text = Width_of_text - Width
Const Number_of_matrix_in_row = Width / 8
Const Byte_in_col = Height / 8
Const Frame_size = Width * Byte_in_col
Const Number_of_byte_in_8_col = Byte_in_col * 8
Const Waitc = 30

Declare Sub Readframe(byval Idx_ofst As Word)
Declare Sub Waitr
' Port A for COL refresh
Config Porta = Output
' Port D for 74595 register
Config Portd = Output
Config Timer0 = Timer , Prescale = 64                       'Clock value: 15.625 kHz
On Ovf0 Refresh
Enable Timer0                                               ' enable the timer interrupt
Enable Interrupts
Sh_cp Alias Portd.3
Ds Alias Portd.4
St_cp Alias Portd.5
Mr Alias Portd.6
Oe Alias Portd.7
Col_port Alias Porta
Dim R As Byte
Dim Col As Byte
Dim Buf(frame_size) As Byte
Dim I As Byte
Dim Matrix_counter As Word
Dim Buf_idx As Word
Dim Col_number_in_buf As Byte
Dim Ofset As Word

Reset Mr
Set Mr
Reset Oe
 Do
  For Ofset = 0 To End_of_text
   Readframe Ofset
   Waitr
  Next Frame_count
 Loop
End                                                         'end program

Sub Readframe(byval Idx_ofst As Word)
 Local Idx As Word
 Local Lookup_idx As Word
 Disable Timer0
 'Start of Frame in lookup table
 Lookup_idx = Idx_ofst * Byte_in_col
 For Idx = 1 To Frame_size
  Buf(idx) = Lookup(lookup_idx , Text )
  Incr Lookup_idx
 Next Idx
 Enable Timer0
End Sub

Sub Waitr
 Do
 Loop Until Col = 0
 R = 0
 Do
  Do
  Loop Until Col = 0
 Loop Until R > Waitc
End Sub

Refresh:
 Reset Mr
 Set Mr
 Set Oe
 Col_port = 2 ^ Col
 For Matrix_counter = 1 To Number_of_matrix_in_row
  Col_number_in_buf = Number_of_matrix_in_row - Matrix_counter
  Col_number_in_buf = Col_number_in_buf * Number_of_byte_in_8_col
  Buf_idx = Col * Byte_in_col
  Buf_idx = Buf_idx + Col_number_in_buf
  Incr Buf_idx
  For I = 1 To Byte_in_col
   Shiftout Ds , Sh_cp , Buf(buf_idx) , 1 , 8
   Incr Buf_idx
  Next I
 Next Matrix_counter
 Reset St_cp
 Set St_cp
 Reset Oe
 Incr Col
 If Col > 7 Then
  Col = 0
  Incr R
 End If
Return

- HERE INSERT DATA CODE GENERATED BY TOOL BELOW -


Text:
Font Size:

'*********************************************
'* This Code Generate By : Hossein Lachini   *
'* The Text to Hex Code for LED Sign Board   *
'* For to get more details visit :           *
'*                    www.HLachini.com       *
'* Contact to me by : eLachini@Gmail.com     *
'* Mobile/SMS :       +98 912 381 2060       *
'*********************************************
' Your Text is : MCS Electronics
' Width for each character : 9
' Width  : 135
' Height : 16

Text:
Data &H1F, &HF8 '...@@@@@@@@@@...
Data &H1F, &HF8 '...@@@@@@@@@@...
Data &H00, &H30 '..........@@....
Data &H01, &HE0 '.......@@@@.....
Data &H01, &HE0 '.......@@@@.....
Data &H00, &H30 '..........@@....
Data &H1F, &HF8 '...@@@@@@@@@@...
Data &H1F, &HF8 '...@@@@@@@@@@...
Data &H00, &H00 '................
Data &H07, &HE0 '.....@@@@@@.....
Data &H0F, &HF0 '....@@@@@@@@....
Data &H18, &H18 '...@@......@@...
Data &H10, &H08 '...@........@...
Data &H10, &H08 '...@........@...
Data &H10, &H08 '...@........@...
Data &H18, &H18 '...@@......@@...
Data &H0C, &H30 '....@@....@@....
Data &H00, &H00 '................
Data &H08, &H70 '....@....@@@....
Data &H18, &HF8 '...@@...@@@@@...
Data &H10, &H88 '...@....@...@...
Data &H10, &H88 '...@....@...@...
Data &H10, &H88 '...@....@...@...
Data &H10, &H88 '...@....@...@...
Data &H1F, &H98 '...@@@@@@..@@...
Data &H0F, &H10 '....@@@@...@....
Data &H00, &H00 '................
Data &H00, &H00 '................
Data &H00, &H00 '................
Data &H00, &H00 '................
Data &H00, &H00 '................
Data &H00, &H00 '................
Data &H00, &H00 '................
Data &H00, &H00 '................
Data &H00, &H00 '................
Data &H00, &H00 '................
Data &H1F, &HF8 '...@@@@@@@@@@...
Data &H1F, &HF8 '...@@@@@@@@@@...
Data &H10, &H88 '...@....@...@...
Data &H10, &H88 '...@....@...@...
Data &H10, &H88 '...@....@...@...
Data &H10, &H88 '...@....@...@...
Data &H10, &H08 '...@........@...
Data &H00, &H00 '................
Data &H00, &H00 '................
Data &H00, &H00 '................
Data &H00, &H00 '................
Data &H10, &H08 '...@........@...
Data &H1F, &HF8 '...@@@@@@@@@@...
Data &H1F, &HF8 '...@@@@@@@@@@...
Data &H10, &H00 '...@............
Data &H00, &H00 '................
Data &H00, &H00 '................
Data &H00, &H00 '................
Data &H07, &H00 '.....@@@........
Data &H0F, &H80 '....@@@@@.......
Data &H1A, &HC0 '...@@.@.@@......
Data &H12, &H40 '...@..@..@......
Data &H12, &H40 '...@..@..@......
Data &H12, &HC0 '...@..@.@@......
Data &H1B, &H80 '...@@.@@@.......
Data &H0B, &H00 '....@.@@........
Data &H00, &H00 '................
Data &H07, &H00 '.....@@@........
Data &H0F, &H80 '....@@@@@.......
Data &H18, &HC0 '...@@...@@......
Data &H10, &H40 '...@.....@......
Data &H10, &H40 '...@.....@......
Data &H10, &H40 '...@.....@......
Data &H18, &HC0 '...@@...@@......
Data &H08, &H80 '....@...@.......
Data &H00, &H00 '................
Data &H00, &H40 '.........@......
Data &H00, &H40 '.........@......
Data &H0F, &HF0 '....@@@@@@@@....
Data &H1F, &HF0 '...@@@@@@@@@....
Data &H10, &H40 '...@.....@......
Data &H10, &H40 '...@.....@......
Data &H18, &H00 '...@@...........
Data &H08, &H00 '....@...........
Data &H00, &H00 '................
Data &H00, &H40 '.........@......
Data &H1F, &HC0 '...@@@@@@@......
Data &H1F, &H80 '...@@@@@@.......
Data &H00, &HC0 '........@@......
Data &H00, &H40 '.........@......
Data &H00, &H40 '.........@......
Data &H00, &HC0 '........@@......
Data &H00, &H80 '........@.......
Data &H00, &H00 '................
Data &H07, &H00 '.....@@@........
Data &H0F, &H80 '....@@@@@.......
Data &H18, &HC0 '...@@...@@......
Data &H10, &H40 '...@.....@......
Data &H10, &H40 '...@.....@......
Data &H18, &HC0 '...@@...@@......
Data &H0F, &H80 '....@@@@@.......
Data &H07, &H00 '.....@@@........
Data &H00, &H00 '................
Data &H1F, &HC0 '...@@@@@@@......
Data &H1F, &HC0 '...@@@@@@@......
Data &H00, &H80 '........@.......
Data &H00, &H40 '.........@......
Data &H00, &H40 '.........@......
Data &H00, &HC0 '........@@......
Data &H1F, &H80 '...@@@@@@.......
Data &H1F, &H00 '...@@@@@........
Data &H00, &H00 '................
Data &H00, &H00 '................
Data &H10, &H00 '...@............
Data &H10, &H40 '...@.....@......
Data &H1F, &HD8 '...@@@@@@@.@@...
Data &H1F, &HD8 '...@@@@@@@.@@...
Data &H10, &H00 '...@............
Data &H10, &H00 '...@............
Data &H00, &H00 '................
Data &H00, &H00 '................
Data &H07, &H00 '.....@@@........
Data &H0F, &H80 '....@@@@@.......
Data &H18, &HC0 '...@@...@@......
Data &H10, &H40 '...@.....@......
Data &H10, &H40 '...@.....@......
Data &H10, &H40 '...@.....@......
Data &H18, &HC0 '...@@...@@......
Data &H08, &H80 '....@...@.......
Data &H00, &H00 '................
Data &H09, &H80 '....@..@@.......
Data &H1B, &HC0 '...@@.@@@@......
Data &H12, &H40 '...@..@..@......
Data &H12, &H40 '...@..@..@......
Data &H12, &H40 '...@..@..@......
Data &H12, &H40 '...@..@..@......
Data &H1E, &HC0 '...@@@@.@@......
Data &H0C, &H80 '....@@..@.......
Data &H00, &H00 '................