Advertisement  

Sunday, 13 July 2025
     
 
Main Menu
Home Home
Shop Shop
News News
BASCOM-AVR BASCOM-AVR
BASCOM-8051 BASCOM-8051
Products Products
Application Notes Application Notes
Publications Publications
Links Links
Support Center Support Center
Downloads Downloads
Forum Forum
Resellers Resellers
Contact Us Contact Us
Updates Updates
MCS Wiki MCS Wiki
Online Help
BASCOM-AVR Help BASCOM-AVR Help
BASCOM-8051 Help BASCOM-8051 Help
Contents in Cart
Show Cart
Your Cart is currently empty.
Search the Shop

Products Search

User Login
Username

Password

If you have problem after log in with disappeared login data, please press F5 in your browser

RSS News
 
     
 

 
   
     
 
AN #169 - Snowflake 2 Print
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.= Output
Config Portd.= Output
Config Portd.= Output
Config Portd.= Input '  s1
Config Portd.= Input '  s2
Config Portd.= Input '  s3
Config Portd.= 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
= 7
Spedtek = Lookup(, Speders)
Shag_effect = 0
Shag_max = 8
= 1
= 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

= Shag_effect * 8
'
Debounce Pind., 0 , Plus_speed , Sub
Debounce Pind., 0 , Minus_speed , Sub
Debounce Pind., 0 , Plus_effect , Sub
Debounce Pind., 0 , Minus_effect , Sub
If Pind.= 0 And Pind.= 0 Then Flag_speed = 1
If Pind.= 0 And Pind.= 0 Then Flag_effect = 1
'
Loop
'
Outdata:
Data_out = Lookup(, Effekt)
Portb = Data_out
= D + 1
Waitms 1
Portb = &H00
Return
'
Plus_speed:
Incr S
If S > 11 Then S = 11
Spedtek = Lookup(, Speders)
Delta_t = 0
Flag_speed = 0
Return
'
Minus_speed:
Decr S
If S < 1 Then S = 1
Spedtek = Lookup(, 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