Proposed to repeat LED snowflake gathered on the Microcontroller
AT90S2313 or analog TINY2313 and has 12 effects. 64 red LED located on
the board in the form of web and collected in the matrix. by Rubashka Vasiliy (fourth price winner in Russian BASCOM contest)
Buttons to select the effect in one direction or the other side and the rate adjustment. And if at the same time you press a button to adjust the speed, it will automatically change from more to less, and vice versa. And if at the same time press the effect of the change, they will begin to change in a circle. This will occur until not pressed any button, and all remain in the regime which was due to pressing. When using TINY2313 it can work without xtal by setting fuse to internal oscillator. Effects of the program, can be modified as you wish. Description deliberately cut, everything is clear and because of the photos and videos. As the saying goes, better to see once.
Schematic diagram  PCB layout  PCB overview
Source code:
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' Filename : LED-MATRIX 8*8 '
' Revision : 1.0 '
' Controller : AT90S2313/TINY2313 '
' Compiler: BASCOM-AVR 1.11.9.1 DEMO '
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'$regfile = "2313def.dat"
$regfile = "attiny2313.dat"
$crystal = 8000000
Config Portb = Output
Config Portd.2 = Output
Config Portd.3 = Output
Config Portd.4 = Output
Config Portd.5 = Input ' s1
Config Portd.6 = Input ' s2
Config Portd.0 = Input ' s3
Config Portd.1 = Input ' s4
'
Dim S As Byte 'Variable speed
Dim E As Byte 'variable effect
Dim Delta_t As Byte 'Delta time
Dim Spedtek As Byte 'current speed
Dim Data_out As Byte 'imprint in port
Dim Shag_effect As Byte 'step effect
Dim Shag_max As Byte 'maximum step effect
Dim D As Word
Dim Flag_effect As Byte
Dim Flag_speed As Byte
Dim Fs As Byte
Dim Ef As Byte
S = 7
Spedtek = Lookup(s , Speders)
Shag_effect = 0
Shag_max = 8
E = 1
D = 0
Do
Portd = &H00
Gosub Outdata
Portd = &H04
Gosub Outdata
Portd = &H08
Gosub Outdata
Portd = &H0C
Gosub Outdata
Portd = &H10
Gosub Outdata
Portd = &H14
Gosub Outdata
Portd = &H18
Gosub Outdata
Portd = &H1C
Gosub Outdata
Incr Delta_t 'Increase delta time
If Delta_t = Spedtek Then 'If the time delta is the current speed, the
Incr Shag_effect 'increasing current step effect
Delta_t = 0 'delta time zero
End If
If Shag_effect = Shag_max Then
Shag_effect = Shag_max - 8
If Flag_speed = 1 Then
Incr Fs
If Fs = 24 Then Fs = 1
Spedtek = Lookup(fs , Speders)
End If
If Flag_effect = 1 Then
Incr Ef
If Ef = 8 Then
Ef = 1
Incr E
If E > 12 Then E = 1
Shag_max = E * 8 'The maximum step is equal to the number effect, multiplied by 8
Shag_effect = Shag_max - 8 'Step effect is equal to the maximum step minus 8
End If
End If
End If
D = Shag_effect * 8
'
Debounce Pind.5 , 0 , Plus_speed , Sub
Debounce Pind.1 , 0 , Minus_speed , Sub
Debounce Pind.6 , 0 , Plus_effect , Sub
Debounce Pind.0 , 0 , Minus_effect , Sub
If Pind.5 = 0 And Pind.1 = 0 Then Flag_speed = 1
If Pind.6 = 0 And Pind.0 = 0 Then Flag_effect = 1
'
Loop
'
Outdata:
Data_out = Lookup(d , Effekt)
Portb = Data_out
D = D + 1
Waitms 1
Portb = &H00
Return
'
Plus_speed:
Incr S
If S > 11 Then S = 11
Spedtek = Lookup(s , Speders)
Delta_t = 0
Flag_speed = 0
Return
'
Minus_speed:
Decr S
If S < 1 Then S = 1
Spedtek = Lookup(s , Speders)
Delta_t = 0
Flag_speed = 0
Return
'
Plus_effect:
Incr E
If E > 12 Then E = 12
Shag_max = E * 8 'The maximum step is equal to the number effect, multiplied by 8
Shag_effect = Shag_max - 8 'Step effect is equal to the maximum step minus 8
Flag_effect = 0
Return
'
Minus_effect:
Decr E
If E < 1 Then E = 1
Shag_max = E * 8 'The maximum step is equal to the number effect, multiplied by 8
Shag_effect = Shag_max - 8 'Step effect is equal to the maximum step minus 8
Flag_effect = 0
Return
Speders:
Data 1 , 2 , 3 , 4 , 6 , 9 , 13 , 18 , 24 , 31 , 39 , 50 , 70 , 50 , 39 , 31 , 24 , 18 , 13 , 9 , 6 , 4 , 3 , 2 , 1
'
Effekt:
'
Data &HFF , &H00 , &H00 , &H00 , &HFF , &H00 , &H00 , &H00
Data &H00 , &HFF , &H00 , &H00 , &H00 , &HFF , &H00 , &H00
Data &H00 , &H00 , &HFF , &H00 , &H00 , &H00 , &HFF , &H00
Data &H00 , &H00 , &H00 , &HFF , &H00 , &H00 , &H00 , &HFF
Data &HFF , &H00 , &H00 , &H00 , &HFF , &H00 , &H00 , &H00
Data &H00 , &HFF , &H00 , &H00 , &H00 , &HFF , &H00 , &H00
Data &H00 , &H00 , &HFF , &H00 , &H00 , &H00 , &HFF , &H00
Data &H00 , &H00 , &H00 , &HFF , &H00 , &H00 , &H00 , &HFF
'
Data &H00 , &H00 , &H00 , &HFF , &H00 , &H00 , &H00 , &HFF
Data &H00 , &H00 , &HFF , &H00 , &H00 , &H00 , &HFF , &H00
Data &H00 , &HFF , &H00 , &H00 , &H00 , &HFF , &H00 , &H00
Data &HFF , &H00 , &H00 , &H00 , &HFF , &H00 , &H00 , &H00
Data &H00 , &H00 , &H00 , &HFF , &H00 , &H00 , &H00 , &HFF
Data &H00 , &H00 , &HFF , &H00 , &H00 , &H00 , &HFF , &H00
Data &H00 , &HFF , &H00 , &H00 , &H00 , &HFF , &H00 , &H00
Data &HFF , &H00 , &H00 , &H00 , &HFF , &H00 , &H00 , &H00
'
Data &H01 , &H01 , &H01 , &H01 , &H01 , &H01 , &H01 , &H01
Data &H02 , &H02 , &H02 , &H02 , &H02 , &H02 , &H02 , &H02
Data &H04 , &H04 , &H04 , &H04 , &H04 , &H04 , &H04 , &H04
Data &H08 , &H08 , &H08 , &H08 , &H08 , &H08 , &H08 , &H08
Data &H10 , &H10 , &H10 , &H10 , &H10 , &H10 , &H10 , &H10
Data &H20 , &H20 , &H20 , &H20 , &H20 , &H20 , &H20 , &H20
Data &H40 , &H40 , &H40 , &H40 , &H40 , &H40 , &H40 , &H40
Data &H80 , &H80 , &H80 , &H80 , &H80 , &H80 , &H80 , &H80
'
Data &H80 , &H80 , &H80 , &H80 , &H80 , &H80 , &H80 , &H80
Data &H40 , &H40 , &H40 , &H40 , &H40 , &H40 , &H40 , &H40
Data &H20 , &H20 , &H20 , &H20 , &H20 , &H20 , &H20 , &H20
Data &H10 , &H10 , &H10 , &H10 , &H10 , &H10 , &H10 , &H10
Data &H08 , &H08 , &H08 , &H08 , &H08 , &H08 , &H08 , &H08
Data &H04 , &H04 , &H04 , &H04 , &H04 , &H04 , &H04 , &H04
Data &H02 , &H02 , &H02 , &H02 , &H02 , &H02 , &H02 , &H02
Data &H01 , &H01 , &H01 , &H01 , &H01 , &H01 , &H01 , &H01
'
Data &H01 , &H02 , &H04 , &H08 , &H10 , &H20 , &H40 , &H80
Data &H80 , &H01 , &H02 , &H04 , &H08 , &H10 , &H20 , &H40
Data &H40 , &H80 , &H01 , &H02 , &H04 , &H08 , &H10 , &H20
Data &H20 , &H40 , &H80 , &H01 , &H02 , &H04 , &H08 , &H10
Data &H10 , &H20 , &H40 , &H80 , &H01 , &H02 , &H04 , &H08
Data &H08 , &H10 , &H20 , &H40 , &H80 , &H01 , &H02 , &H04
Data &H04 , &H08 , &H10 , &H20 , &H40 , &H80 , &H01 , &H02
Data &H02 , &H04 , &H08 , &H10 , &H20 , &H40 , &H80 , &H01
'
Data &H80 , &H40 , &H20 , &H10 , &H08 , &H04 , &H02 , &H01
Data &H40 , &H20 , &H10 , &H08 , &H04 , &H02 , &H01 , &H80
Data &H20 , &H10 , &H08 , &H04 , &H02 , &H01 , &H80 , &H40
Data &H10 , &H08 , &H04 , &H02 , &H01 , &H80 , &H40 , &H20
Data &H08 , &H04 , &H02 , &H01 , &H80 , &H40 , &H20 , &H10
Data &H04 , &H02 , &H01 , &H80 , &H40 , &H20 , &H10 , &H08
Data &H02 , &H01 , &H80 , &H40 , &H20 , &H10 , &H08 , &H04
Data &H01 , &H80 , &H40 , &H20 , &H10 , &H08 , &H04 , &H02
'
Data &H01 , &H80 , &H01 , &H80 , &H01 , &H80 , &H01 , &H80
Data &H02 , &H40 , &H02 , &H40 , &H02 , &H40 , &H02 , &H40
Data &H04 , &H20 , &H04 , &H20 , &H04 , &H20 , &H04 , &H20
Data &H08 , &H10 , &H08 , &H10 , &H08 , &H10 , &H08 , &H10
Data &H10 , &H08 , &H10 , &H08 , &H10 , &H08 , &H10 , &H08
Data &H20 , &H04 , &H20 , &H04 , &H20 , &H04 , &H20 , &H04
Data &H40 , &H02 , &H40 , &H02 , &H40 , &H02 , &H40 , &H02
Data &H80 , &H01 , &H80 , &H01 , &H80 , &H01 , &H80 , &H01
'
Data &H80 , &H01 , &H80 , &H01 , &H80 , &H01 , &H80 , &H01
Data &H40 , &H02 , &H40 , &H02 , &H40 , &H02 , &H40 , &H02
Data &H20 , &H04 , &H20 , &H04 , &H20 , &H04 , &H20 , &H04
Data &H10 , &H08 , &H10 , &H08 , &H10 , &H08 , &H10 , &H08
Data &H08 , &H10 , &H08 , &H10 , &H08 , &H10 , &H08 , &H10
Data &H04 , &H20 , &H04 , &H20 , &H04 , &H20 , &H04 , &H20
Data &H02 , &H40 , &H02 , &H40 , &H02 , &H40 , &H02 , &H40
Data &H01 , &H80 , &H01 , &H80 , &H01 , &H80 , &H01 , &H80
'
Data &H01 , &H01 , &H01 , &H01 , &H80 , &H80 , &H80 , &H80
Data &H02 , &H02 , &H02 , &H02 , &H40 , &H40 , &H40 , &H40
Data &H04 , &H04 , &H04 , &H04 , &H20 , &H20 , &H20 , &H20
Data &H08 , &H08 , &H08 , &H08 , &H10 , &H10 , &H10 , &H10
Data &H10 , &H10 , &H10 , &H10 , &H08 , &H08 , &H08 , &H08
Data &H20 , &H20 , &H20 , &H20 , &H04 , &H04 , &H04 , &H04
Data &H40 , &H40 , &H40 , &H40 , &H02 , &H02 , &H02 , &H02
Data &H80 , &H80 , &H80 , &H80 , &H01 , &H01 , &H01 , &H01
'
Data &HFF , &HFF , &HFF , &HFF , &HFF , &HFF , &HFF , &HFF
Data &H7F , &H7F , &H7F , &H7F , &H7F , &H7F , &H7F , &H7F
Data &H3F , &H3F , &H3F , &H3F , &H3F , &H3F , &H3F , &H3F
Data &H1F , &H1F , &H1F , &H1F , &H1F , &H1F , &H1F , &H1F
Data &H0F , &H0F , &H0F , &H0F , &H0F , &H0F , &H0F , &H0F
Data &H07 , &H07 , &H07 , &H07 , &H07 , &H07 , &H07 , &H07
Data &H03 , &H03 , &H03 , &H03 , &H03 , &H03 , &H03 , &H03
Data &H01 , &H01 , &H01 , &H01 , &H01 , &H01 , &H01 , &H01
'
Data &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00
Data &H10 , &H10 , &H10 , &H10 , &H10 , &H10 , &H10 , &H10
Data &H30 , &H30 , &H30 , &H30 , &H30 , &H30 , &H30 , &H30
Data &H70 , &H70 , &H70 , &H70 , &H70 , &H70 , &H70 , &H70
Data &HF0 , &HF0 , &HF0 , &HF0 , &HF0 , &HF0 , &HF0 , &HF0
Data &HF1 , &HF1 , &HF1 , &HF1 , &HF1 , &HF1 , &HF1 , &HF1
Data &HF3 , &HF3 , &HF3 , &HF3 , &HF3 , &HF3 , &HF3 , &HF3
Data &HF7 , &HF7 , &HF7 , &HF7 , &HF7 , &HF7 , &HF7 , &HF7
'
Data &H00 , &HFF , &HFF , &HFF , &H00 , &HFF , &HFF , &HFF
Data &HFF , &H00 , &HFF , &HFF , &HFF , &H00 , &HFF , &HFF
Data &HFF , &HFF , &H00 , &HFF , &HFF , &HFF , &H00 , &HFF
Data &HFF , &HFF , &HFF , &H00 , &HFF , &HFF , &HFF , &H00
Data &H00 , &HFF , &HFF , &HFF , &H00 , &HFF , &HFF , &HFF
Data &HFF , &H00 , &HFF , &HFF , &HFF , &H00 , &HFF , &HFF
Data &HFF , &HFF , &H00 , &HFF , &HFF , &HFF , &H00 , &HFF
Data &HFF , &HFF , &HFF , &H00 , &HFF , &HFF , &HFF , &H00
|